Commit graph

5277 commits

Author SHA1 Message Date
cinap_lenrek
33682a5885 ip/ipconfig: handle internationalized domain names 2018-09-25 20:43:37 +02:00
cinap_lenrek
05f6c08985 ip/dhcp6d: handle internationalized domain names 2018-09-25 20:28:19 +02:00
cinap_lenrek
347303b136 ip/dhcpd: handle internationalized domain names 2018-09-25 20:17:56 +02:00
cinap_lenrek
2160da07de ndb/dns: use libc's new idn functions 2018-09-25 20:17:00 +02:00
cinap_lenrek
565fc2be5d webfs: remove idn.c 2018-09-25 20:16:06 +02:00
cinap_lenrek
d5f2d2cc3f webfs: fix memory leak in Nfmt(), use libc's new idn functions 2018-09-25 20:15:24 +02:00
cinap_lenrek
dfec09c436 libc: add utf2idn() and idn2utf() functions to deal with internationalized domain names 2018-09-25 20:14:25 +02:00
cinap_lenrek
d2b3e2f55a merge 2018-09-25 15:06:13 +02:00
cinap_lenrek
dbfb766735 ip/dhcpd: implement rfc3397 dhcp search domain option (dnsdomain) 2018-09-25 15:04:19 +02:00
cinap_lenrek
12b3c82014 ip/ipconfig: implement rfc3397 dhcp dns search option (dnsdomain) 2018-09-25 15:02:29 +02:00
Ori Bernstein
72a840b31d Disallow '/' in file names.
A bad rename call could send a path with a '/' to cwfs.
	This is invalid, and should be disallowed.
2018-09-25 01:02:31 -07:00
cinap_lenrek
2f076f946f ip/ipconfig: handle noconfig flag for router advertisement, add debug prints, cleanup 2018-09-24 13:56:25 +02:00
cinap_lenrek
ef17043327 libhtml: increase Nestmax to render some convoluted pages (thanks fernan)
example page with broken citation list numbering:

https://en.m.wikipedia.org/wiki/Commodore_64
2018-09-23 23:35:41 +02:00
cinap_lenrek
94333ce6a6 devip, ipconfig: avoid overflow on lifetime checks 2018-09-23 22:07:56 +02:00
cinap_lenrek
70c6bd0397 devip: valid and prefered life-time should be unsigned, add remove6 ctl command 2018-09-23 19:09:48 +02:00
cinap_lenrek
4a92a8f6b2 devip: fix default parameter calculation for router life-time
router life time is in seconds, while max ra interval is
in milliseconds!
2018-09-23 19:08:16 +02:00
cinap_lenrek
259ce5e3de devip: make updating ra6 router parameters atomic
when we fail to parse and validate the command, no update
should take place.
2018-09-23 17:24:59 +02:00
cinap_lenrek
1d4a36c699 ip/ipconfig: valid lifetime is in seconds, not milliseconds. 2018-09-23 17:14:29 +02:00
cinap_lenrek
74272a8364 ip/ipconfig: remove expired default routes on router advertisement 2018-09-23 02:08:59 +02:00
cinap_lenrek
8c7a4e28d5 vt: make selecting() wait until all buttons are lifted avoiding menu when chording 2018-09-20 21:25:38 +02:00
cinap_lenrek
b9796e0774 vt: implement line selection by double click 2018-09-20 21:07:10 +02:00
mischief
6fa3e08412 cfs: close mount half of pipe, fixes cfs not exiting when unmounted 2018-09-19 13:27:55 -07:00
cinap_lenrek
45afecffd1 kprof: fix precedence (thanks geoff) 2018-09-19 01:11:49 +02:00
mischief
d73c67660b sum, md5sum, sha1sum: set exit status properly on open/read errors 2018-09-18 15:58:22 -07:00
mischief
026c679f49 webfs: remove automatic Referer header
automatic Referer headers were found to break downloads from
sourceforge.net, causing html pages to appear instead of tarballs.

if a website does need them, they can be added as needed via hget's -r
flag, or added to mothra.

reverts commits 67f536d20329 and 6d999c39a9f0
2018-09-18 13:14:00 -07:00
cinap_lenrek
6b9cc409de mtx, ppc: remove cistrcmp() and cistrncmp() redefinition 2018-09-18 19:34:29 +02:00
cinap_lenrek
bd49212b46 kernel: fix livelock in rebalance (thanks Richard Miller)
Once a second rebalance() is called on cpu0 to adjust priorities,
so cpu-bound processes won't lock others out.  However it was only
adjusting processes which were running on cpu0.  This was observed
to lead to livelock, eg when a higher-priority process spin-waits
for a lock held by a lower priority one.
2018-09-18 00:53:05 +02:00
cinap_lenrek
2985d53b7a bootrc: add experimental reboot method to load another kernel
syntax: reboot!bootfile[!method...]

this echos bootfile to /dev/reboot, causing bootfile kernel
to be started.

when method is given, we first connect to the filesystem and
set bootargs so that bootfile can be loaded from the target
network or local fileserver.

note, when no bootfile is given, this causes the kernel to
reboot to bios.
2018-09-16 22:35:16 +02:00
cinap_lenrek
9d60ece816 libndb: add missing ndbdedup.c 2018-09-16 15:27:17 +02:00
cinap_lenrek
ed41dd5b28 9boot: don't let user erase the prompt (thanks mischief) 2018-09-16 13:47:33 +02:00
cinap_lenrek
a4e444f430 libndb: make ndbipinfo() walk ipnet for all matching entries, concatenate and dedup result 2018-09-16 12:39:47 +02:00
cinap_lenrek
08385e6681 ip/tftpd: remove sunkernel hack 2018-09-13 22:15:42 +02:00
cinap_lenrek
a33d76f8c9 ape/make: fix \ line continuation parsing 2018-09-13 11:54:20 +02:00
mischief
5ea7337ae7 port: sync two longjmp fixes from drawterm
see drawterm commits f5e26ae93a6a and fa388286b4ca
2018-09-12 00:35:45 -07:00
cinap_lenrek
e4d0a76289 ndb/cs: don't do dns lookups when all we got is loopback or link local addresses 2018-09-09 15:38:53 +02:00
cinap_lenrek
183ab18dfc libip: ignore ipv6 link local addresses for myipaddr() 2018-09-09 15:35:14 +02:00
cinap_lenrek
b591ee195b devarch: reading msr 0xffffffff 2018-09-09 01:53:53 +02:00
cinap_lenrek
ba7b07d51a devarch: restrict i/o port access to 64K, disallow msr 32-bit wrap arround (thanks aiju) 2018-09-09 01:41:35 +02:00
cinap_lenrek
4f2cdcf74b stats: fix etherstats, avoid vmax == 0 2018-09-09 00:24:43 +02:00
cinap_lenrek
e534c4147e libmach: substitute /dev/zero for /proc/$pid/fpregs when missing (for snapfs) 2018-09-08 23:31:30 +02:00
cinap_lenrek
97a2e35a0c devarch: fix /dev/msr (thanks joe9, aiju)
the end condition port < offset+n could never become
false when offset truncated to 32 bit signed port is
negative. change the condition variables to unsigned
int.

msr's are not byte addressible, so advance reads by
one instead of 8.
2018-09-08 22:24:36 +02:00
cinap_lenrek
a3d8481bb6 libvorbis: fix broken free() (thanks mischief) 2018-09-08 15:15:08 +02:00
cinap_lenrek
96210d79b2 merge 2018-09-08 14:50:41 +02:00
cinap_lenrek
2839760066 rc: fix Xpipefd unbalancing the redir stack
Xpipefd wants the pipe descriptor to be closed in turfredir(), so
it pushes the redirection, but this breaks Xpopredir after normal
redirection. so we shuffle the Xpipefd redir to the bottom of the
stack.
2018-09-08 14:49:00 +02:00
mischief
46d49b5dd2 audio/libogg: nuke old libogg.au 2018-09-05 08:37:01 -07:00
cinap_lenrek
2e9835e771 vt: fix selection past baseline (thanks BurnZeZ) 2018-09-04 20:55:10 +02:00
cinap_lenrek
217e8a0619 vt: fix selrange() to recover whitespace indention 2018-09-03 22:37:45 +02:00
cinap_lenrek
676298b16b vt: get rid of "clear" menu entry, fix 24x80 resize, reset selection on setdim(), document snarf/plumb 2018-09-03 21:51:32 +02:00
cinap_lenrek
80cd634c4d vt: fix plumbsel(), snarfsel()
- plumbsel()
	- remove debug prints
	- use smalloc() to convert to bytes
	- fix spurious -1 close of plumb fd

- snarfsel()
	- fix rune buffer leak in open error case
2018-09-03 20:54:26 +02:00
cinap_lenrek
de9aa721f6 vt: implement proper selections (thanks Ori_B)
Ori Bernstein wrote:
> I finally got around to taking another shot at this vt patch. This change
> gets rid of implicit snarfing, and instead makes selection the way you
> select text for snarfing or plumbing. Select, then use a menu entry.
>
> It would probably be nice to have double click to expand the selection,
> rio-style, along with plumbing implicitly taking the current word, but
> that can be a separate patch.
>
> This change also punts on scrolling for simplicity -- it clears the
> selection instead of trying to handle the cases where the selection
> goes offscreen.

little amendments:

- fix line selection (point min/max inversion)
- clear selection when switching linesel/blocksel
- move selection on scroll
2018-09-03 20:05:26 +02:00
cinap_lenrek
5a2c3580fc ip/dhcpd: bring back interface address for arpenter()
the arp table is per interface, so it is possible to have the same
netwrok on multiple physical interfaces, tho with different source
ip address. one example would be a ethernet and a wlan interface.
the mac addresses on these mediums can differ (arp proxying taking
place).

so provide our source address on the interface we received the
request on.

the previous change used the ifcaddr; which is correct; but due to a
oversight in the kernel, had to match the ip of the arp entry.
source address will always work.
2018-09-01 15:08:40 +02:00
cinap_lenrek
4e61bc282c ip/dhcpd: add varargck pragma for warning() and fatal(), do syserr with %r format 2018-09-01 14:59:19 +02:00
cinap_lenrek
3fa5aaa1bc ip/ipconfig: add varargck pragma for warning() function 2018-09-01 14:53:38 +02:00
cinap_lenrek
2d9147a33c rtl8169: fix receive for nuc BOXNUC7CJYH 2018-08-31 22:39:46 +02:00
qwx
55e0fd6031 dmid: add support for midi streams
tested with a usb midi keyboard and a midi->usb adaptor
2018-08-31 18:01:21 +02:00
mischief
67b24e6dac nusbrc: add LG G5 for nusb/ether 2018-08-30 16:23:36 -07:00
cinap_lenrek
11d1947814 arp: interface address only specifies the interface, not the source address for route lookup 2018-08-30 21:17:54 +02:00
cinap_lenrek
590bed4bf8 merge 2018-08-30 00:05:00 +02:00
cinap_lenrek
b863253879 ip/dhcpd: revert arpenter() changes 2018-08-30 00:03:07 +02:00
aiju
82559c3fdc shift-jis: add support for half-width kana 2018-08-28 05:56:29 +00:00
cinap_lenrek
5c945a0b48 devip: fix router adv/sol options validation (options padded to 8 bytes) 2018-08-27 20:58:48 +02:00
cinap_lenrek
cff1ab5fdf ip/ipconfig: add missing {} as DEBUG() is a macro 2018-08-26 23:05:45 +02:00
cinap_lenrek
c35027e03d ip/ipconfig: check for recvra 0 on timeout 2018-08-26 22:25:35 +02:00
cinap_lenrek
52b773d635 ip/dhcpd: reject bogus requests, handle multiple ether= attributes in ndb, cleanup
unless relay agent (gaddr) is specified, dhcp requests need to
taget a local ip address on the incoming interface or broadcast.

clients might have multiple ethernet interfaces, so we need to
check if any of the ether= attributes in ndb matches. this is
done by passing lookupip() the attribute name and a expected
value and if a match is found, set Info.indb = 1.

remove tohex(), use encodefmt instead. avoid dynamcic allocation.

include interface device in log messages.
2018-08-26 18:36:35 +02:00
cinap_lenrek
5c326d9f35 devvga: disable cursor on shutdown avoiding graphics glitches on reboot 2018-08-25 21:44:08 +02:00
cinap_lenrek
82c08a8a44 ip/dhcpd: handle multiple networks on the same interface, dont get confused by v6 interface address 2018-08-25 15:10:26 +02:00
mischief
4e938841f0 igfx: support blanking by turning off panel power and backlight
tested on t61, x200, x230, x301, t420, w520
2018-08-21 11:31:45 -07:00
cinap_lenrek
976d19960f vncs: fix uninterruptable temporary warning 2018-08-21 02:21:21 +02:00
cinap_lenrek
b1b347a0f4 merge 2018-08-21 02:04:33 +02:00
cinap_lenrek
37cbd6b632 vncv: adjust window size on desktop resize, fix canresize checks 2018-08-21 02:02:50 +02:00
mischief
56a2263aae vncs: shut up used and not set warning 2018-08-20 12:51:29 -07:00
mischief
e1907b41d3 hjfs: set group of new files to that of the parent directory (thanks umbraticus) 2018-08-20 12:48:06 -07:00
cinap_lenrek
f8f677b48e merge 2018-08-20 19:25:58 +02:00
cinap_lenrek
d2089f949e vncs: support for desktop resize extension, update devdraw 2018-08-20 19:23:42 +02:00
aiju
4a120a3816 fix unbounded recursion bug in hjfs 2018-08-20 14:26:19 +01:00
cinap_lenrek
670137bf0a devdraw: zero initialize DImage.dscreen pointer (vnc, drawterm) 2018-08-19 22:00:45 +02:00
cinap_lenrek
c8a71691b4 vncs: fix mistake "screen" vs "gscreen", thanks eekee 2018-08-18 00:03:14 +02:00
cinap_lenrek
d263134394 vncv: handle [] enclosed literal ipv6 addresses in host 2018-08-16 20:34:46 +02:00
cinap_lenrek
43636dbb7f ip/ipconfig: make ra6 daemon less chatty, log to /sys/log/ipconfig instead of /sys/log/v6routeradv 2018-08-15 21:54:42 -04:00
cinap_lenrek
cd752a39f8 ipv6 autoconfiguration on ethernet
for ip autoconfiguration, setup ipv6 link local addresses
and do SLAAC in parallel to DHCP.
2018-08-15 21:39:30 +02:00
cinap_lenrek
ab4c0a012f ip/ipconfig: simplify by combining mklladdr() into mkclientid() 2018-08-12 22:39:44 +02:00
cinap_lenrek
9445f08788 ip/ipconfig: call mklladdr() to get conf.hwa initialized for ipv6 2018-08-11 16:19:32 +02:00
cinap_lenrek
e49f7fc1f7 devip: fix multicastarp() when ipconfig assigned the 0 address
sending multicast was broken when ipconfig assigned the 0
address for dhcp as they would wrongly classified as Runi.

this could happen when we do slaac and dhcp in parallel,
breaking the sending of router solicitations.
2018-08-11 16:18:12 +02:00
cinap_lenrek
45ce4de650 nusb/ether: fix ethertype filtering 2018-08-07 23:46:58 +02:00
cinap_lenrek
445fc8e5a7 merge 2018-08-06 23:14:59 +02:00
cinap_lenrek
abe463b931 wifi: lilu dallas multirate
now handle the supported rates element properly, only
providing the intersecting set of rates that the bss
advertises and what the driver supports, putting the
basic rates first.

also avoid using usupported rates.
2018-08-06 23:13:23 +02:00
mischief
eb1be5b4df devaoe: really fix unit numbering, to be 0-based 2018-08-06 09:41:28 -07:00
mischief
796c41092a devaoe: fix unit numbering for Qdevlinkdir
a side effect of 3c77cd3ae664 changed the unit ordering to start at one, so fix the condition accordingly.
2018-08-06 08:50:40 -07:00
cinap_lenrek
209a6b4b55 acme: pass pointer to int type to avoid pointer to int cast warning 2018-08-03 16:53:50 +02:00
spew
4757debd0b acme: add spacesindent mode 2018-08-01 11:14:59 -04:00
cinap_lenrek
2b619dc966 etheriwl: add pci did for WifiLink 5300 (thans senthil) 2018-07-31 18:33:42 +02:00
cinap_lenrek
c4dd0f6282 kbdfs: ignore first 16 scancodes (number row) in kbtabctl[] for control key reverse mapping 2018-07-30 20:40:28 +02:00
cinap_lenrek
36abc45f28 vncv: implement extended DesktopSize extension, cleanup 2018-07-30 02:21:28 +02:00
cinap_lenrek
da5c0bada7 dc: fix off by one in stack overflow check (thanks BurnZeZ)
BurnZeZ → Found a bug in dc(1)
BurnZeZ → Everything breaks when you fill the stack
BurnZeZ → You have stkptr which crap expects to point to an available member in Blk *stack[STKSZ];
BurnZeZ → stkend = &stack[STKSZ];
BurnZeZ → stkptr is allowed to equal stkend
BurnZeZ → So crap that expects stkptr to be pointing to an available Blk ends up dereferencing past the end of the array
BurnZeZ → term% echo `{seq 1 100} f | dc
BurnZeZ → dc 628283: suicide: sys: trap: fault read addr=0xffffe0000040a618 pc=0x204b1c
2018-07-27 09:31:28 +02:00
cinap_lenrek
6cd83e5d24 audiohda: support Intel Sunrise Point-LP on thinkpad X1 2018-07-26 02:48:00 +02:00
qwx
a8644d01c3 add games/dpic and games/todpic 2018-07-25 05:02:46 +02:00
cinap_lenrek
d07fb3261f devmouse: produce signed msec timestamp in /dev/mouse, accept unsigned on write 2018-07-23 19:29:15 +02:00
cinap_lenrek
34c7af22c1 libdraw: accept unsigned msec timestamp in /dev/mouse 2018-07-23 19:25:28 +02:00
cinap_lenrek
0431ea242d pc, pc64: look for "RSD PTR " in ACPI reserved memory region from e820 map
nobody passes us the "RSD PTR " address when doing multiboot/kexec
on UEFI systems. so we search for it manually in the ACPI reserved
area as indicated in the e820 memory map.
2018-07-22 21:00:20 +02:00
qwx
f4b9f0304d dmid: better fnumber calculation and fix fine tuning for 2nd voice 2018-07-21 05:05:53 +02:00
cinap_lenrek
2d6f9f4700 ssh: fix nil dereference when TERM isnt set and -r is requested 2018-07-18 09:48:45 +02:00
cinap_lenrek
ec5227f7f5 merge 2018-07-16 23:55:45 +02:00
cinap_lenrek
00622d4d2b ndb/dns: fix delegation with norecursion (-R flag)
when the question zone is in a delegated area, we still
need to provide the nameservers.
2018-07-16 23:54:23 +02:00
cinap_lenrek
37b560e50f merge 2018-07-16 01:36:35 +02:00
cinap_lenrek
0d7bbda9b9 devmnt: make sure auth chan is on said conection in mntattach() 2018-07-16 01:35:02 +02:00
qwx
e7b1c1aad8 doom: use wadfs to expose music lumps
launch wadfs after detecting main wad, exposing GENMIDI and music lumps
under /mnt/wad.  /bin/dmus can then use them directly, and wadfs doesn't
need to be started manually.
2018-07-15 06:31:45 +02:00
cinap_lenrek
51b0b0235b bootrc: write fatal error message to fd2 2018-07-14 17:20:49 +02:00
mischief
c5559504cd ndb/dnsgetip: report errors when dns resolution fails 2018-07-13 20:44:57 +00:00
qwx
96e511d736 add games/dmid and games/opl3 2018-07-12 09:33:33 +02:00
aiju
d16a96daca pc64: update headers to match pc 2018-07-11 16:05:03 +01:00
aiju
6b0de3de8e pc: fix ugly and partially broken switch() statement 2018-07-11 15:12:24 +01:00
aiju
3a77c01f43 pc kernel: get rid of ugly and partially broken cpuid macros 2018-07-11 14:50:22 +01:00
aiju
911df94e5d asaudit: make error more explicit 2018-07-11 12:23:48 +01:00
cinap_lenrek
83de8c0f5f authsrv: log message when no AES key is found for pak 2018-07-11 10:17:04 +02:00
qwx
4e04e03142 midi: properly skip sysex messages
this fixes playing any midi files containing such messages
example: prince of persia midis from vgmpf wiki
2018-07-10 23:26:17 +02:00
cinap_lenrek
24611cf5ed ndb/cs: add -6 flag for v6 only lookups and "ipv4" control message to toggle v4 lookups. 2018-07-10 19:57:55 +02:00
cinap_lenrek
a8a6429204 devip: make il connect fail quickly when theres no route 2018-07-10 09:11:19 +02:00
cinap_lenrek
9898aafa0c devip: don't pad the tag for routing commands (fixes removing routes with < 4 character tags) 2018-07-09 01:32:21 +02:00
Alex Musolino
8fd222c157 upas/smtp: use current login id in absence of -u option (as per man page) 2018-07-08 12:18:06 +09:30
Alex Musolino
259a31e59b upas/smtp: allow remote port to be set to something other than smtp (e.g. ssmtp) 2018-07-08 12:05:42 +09:30
cinap_lenrek
e181b7e405 kbdfs: handle mouse control (Kmouse, Kshift button swap) in parallel, bring back ^X form handling 2018-07-07 21:10:38 +02:00
cinap_lenrek
cc5d74262c vncs: silence devdraw debug prints 2018-07-07 17:11:51 +02:00
spew
77ca4e0056 ape: fix MAXSIG 2018-07-03 14:41:14 -04:00
spew
ede15f38e5 ape: remove getitimer setitimer implemenations 2018-07-03 12:28:05 -04:00
aiju
ac891003ea games/mines: add missing checks for UseGhost 2018-07-03 07:22:19 +00:00
spew
2e05af858e ape: improve setitimer 2018-07-01 23:35:23 -04:00
spew
91d0343627 ape: an implemenation of getitimer setitimer 2018-07-01 18:48:12 -04:00
cinap_lenrek
899ec4d0b5 ssh: wait for remote channel close (thanks piroko) 2018-06-28 20:10:11 +02:00
23hiro
2f1b8246e2 Persist 'k' command in mothra and add matching -k flag (thanks piroko)
"I sometimes find myself on either slow or data-capped network links where downloading images isn't ideal. Attached is a simple patch to mothra that changes the 'k' command to not only remove already-downloaded images from a page, but also toggle a state such that mothra won't attempt to download images on future visited sites until 'k' is toggled again. This also adds a '-k' flag to mothra which enables the flag at startup." --Jeremy O'Brien<neutral@fastmail.com> on 9fans
2018-06-27 19:20:28 +02:00
cinap_lenrek
902eceee63 ndb/dns: fix encoding of srv record target
the target has to be encoded as a domain name (the individual
name components as separate labels followed by . (empty) label),
not as a literal string.

to disable compression, pass nil dictionary to pname().
2018-06-26 19:30:52 +02:00
qwx
deae5c854b mus: fix note volume and channel selection; simplify
- fix overwriting channel 10 with channel 9
- fix using channel volume instead of last volume when setting note
  (fixes d_doom and others)
- remove useless state
2018-06-26 10:35:23 +02:00
cinap_lenrek
65e0e1c3e3 merge 2018-06-24 21:54:21 +02:00
cinap_lenrek
8f1eb1ac77 webfs: don't handle unknown status codes as continuations, reset status when handling continuation to avoid infinite loop 2018-06-24 21:52:17 +02:00
qwx
0da9e3a7f5 gba: handle 8bit writes to vram
ignore 8bit writes to obj and oam, and duplicate bits for bg and palette
memory, as per gbatek.

thanks aiju for helping with the implementation.
2018-06-22 14:49:18 +02:00
spew
55c122d59f ape: add strnlen 2018-06-21 11:56:37 -04:00
spew
3b376b43af ape: provide bogus chroot implementation 2018-06-20 22:19:37 -04:00
cinap_lenrek
8dd003eb04 devip: fix flush, copy tag when replacing route entry 2018-06-19 21:17:15 +02:00
spew
583c6d269b ape: add some common fields for stat, grp and pwd 2018-06-17 17:38:00 -04:00
cinap_lenrek
0763dd4279 zunq: add sdram driver 2018-06-14 21:54:42 +02:00
cinap_lenrek
4971db9e32 udp: fix udp checksum
we did not apply the special case to store 0xFFFF (-0)
in the checksum field when the checksum calculation
returned zero. we survived this for v4 as RFC768 states:

> If the computed checksum is zero, it is transmitted as
> all ones (the equivalent in one's complement arithmetic).
>
> An all zero transmitted checksum value means that the
> transmitter generated no checksum (for debuging or for
> higher level protocols that don't care).

for ipv6 however, the checksum is not optional and receivers
would drop packets with a zero checksum.
2018-06-14 20:48:21 +02:00
cinap_lenrek
39fb26df70 9pc, 9pc64: make mapalloc() and mapfree() static in memory.c 2018-06-14 20:22:34 +02:00
cinap_lenrek
5c87dfb9d5 merge 2018-06-14 01:12:46 +02:00
cinap_lenrek
a9a92cab48 stats: fix crash with -Y fag when window too narrow 2018-06-14 01:10:52 +02:00
cinap_lenrek
4d496b3c7a merge 2018-06-14 00:08:46 +02:00
cinap_lenrek
de9141bc6d devip: don't send arp requests from null address
during dhcp, ipconfig assigns the null address :: which makes
ipforme() return Runi for any destination, which can trigger
arp resolution when we attempt to reply. so have v4local()
skip the null address and have sendarp() check the return
status of v4local(), avoing the spurious arp requests.
2018-06-14 00:07:45 +02:00
cinap_lenrek
71ce6f53a4 devip: reject incompatible multicast/interface ip address pairs for ipifcaddmulti() 2018-06-13 18:58:17 +02:00
qwx
e4b842056c emulators ui: don't drink and code 2018-06-13 14:14:25 +02:00
qwx
09c6120444 emulators ui: add option for fixed factor scaling and bound scale vertically 2018-06-13 14:05:19 +02:00
mischief
382c9ef92c stats: read cputemp as C, set scale max to 100 C 2018-06-13 11:59:14 +00:00
aiju
9fbce3b1b4 games/gb: attempt at fixing sprite priority 2018-06-13 09:52:41 +00:00
aiju
5d202d3456 games/gb: fix mbc5 register addressing (fixes warioland3 gamebreaking bug) 2018-06-13 09:26:55 +00:00
cinap_lenrek
8fdd633d57 devip: fix missing wunlock() for "ipifc not yet bound to device" case, don't create multicast entry on error 2018-06-12 20:31:39 +02:00
cinap_lenrek
55b73cbbbf ip/dhcp6d: don't drink and code 2018-06-12 19:50:04 +02:00
cinap_lenrek
b9b6fcd85f ip/dhcp6d: only announce all-dhcp-servers multicast address on interface with link-local address on it 2018-06-12 19:36:31 +02:00
cinap_lenrek
fca2c1cb31 /sys/src/mkfile: add libttf 2018-06-12 19:29:38 +02:00
Alex Musolino
1c862bd24e upas/nedmail: marshal(1) options -n and -8 are mutually exclusive 2018-06-12 20:04:16 +09:30
cinap_lenrek
232382bfc1 ip/dhcp6d: ignore short and from non-local source packets 2018-06-11 19:32:44 +02:00
cinap_lenrek
71402b2ea1 devip: fix use after free in ipifcremmulti()
closeconv() calls ipifcremmulti() like:

	while((mp = cv->multi) != nil)
		ipifcremmulti(cv, mp->ma, mp->ia);

so we have to defer freeing the entry after doing:

		if((lifc = iplocalonifc(ifc, ia)) != nil)
			remselfcache(f, ifc, lifc, ma);

which accesses the otherwise free'd ia and ma arguments.
2018-06-11 03:19:42 +02:00
cinap_lenrek
94f6f89ac1 devip: do not icmp reply on multicast destination 2018-06-11 03:14:28 +02:00
cinap_lenrek
d497eb2d2f dhcp6d: make constants for message types, check server identifier in request, only recheck ndb every minute 2018-06-10 22:48:51 +02:00
cinap_lenrek
a3f3e31b20 dhcp6d: add minimal stateless DHCPv6 server for network boot and DNS configuration 2018-06-10 22:08:57 +02:00
cinap_lenrek
eed90aa0ad kernel: don't cap the minimum sleep time to TK2MS(1) for syssleep()
on HZ 100 systems like pc and pc64, the minium sleep time
was 10ms, which is quite high. the cap isnt really needed
as arch specific timerset() enforces its own limit, but on
a higher resolution.

background:

from Charles Forsyth:

I haven't really got an opinion on it. The 10ms interval was first used on
machines that were much slower.
I thought someone did set HZ to a bigger value, partly to support better
in-kernel timing. I haven't done it because I never had a need for it.
If I were doing (say) protocol implementation in user mode, I'd certainly
reconsider. Sleep itself forces at best ms granularity,
and for some applications that's too big.

initial mail from qwx raising the issue:

> Hello,
>
> I found out recently that sleep(2)'s resolution on 386 and 9front's amd64
> kernel is 10 ms rather than 1 ms.  The reason is that on those kernels,
> HZ is set to 100 rather than say 1000.  In syssleep, we get 1 tich every
> 10 ms.
>
> What is unclear is why.
>
> To paraphrase cinap_lenrek's answer to my question:
>
> In syssleep:
>                 if(ms < TK2MS(1))
>                         ms = TK2MS(1);
>                 tsleep(&up->sleep, return0, 0, ms);
>
> "TK2MS(1)" can be replaced with just "1", and the arch specific
> timerset() routine would do its own capping of the period if it's too
> small for the timer resolution, and make better decisions based on what
> the minimum timer period should be given the latency overhead of the
> given arch's interrupt handling and performance characteristics.
>
> Alternatively, HZ could be raised to 500 or 1000.
>
> It seems it's just trying to prevent excessive context switches and
> interrupts, but it seems somewhat arbitrary.  A ton of syscalls can be
> done in 1 ms, and it's the lowest we can go without changing the unit.
>
>
> What do you think?
>
> Thanks in advance,
>
> qwx
2018-06-10 19:47:21 +02:00
aiju
ce9d09a965 libttf: add missing file impl.h 2018-06-09 14:55:32 +00:00
aiju
3b63c5a73f add ttfrender(1) 2018-06-09 14:34:44 +00:00
aiju
db71e19005 add libttf 2018-06-09 14:33:19 +00:00
qwx
198f10bb25 snes: fix input botch 2 2018-06-09 07:12:43 +02:00
qwx
54ac2c2871 snes: fix input botch 2018-06-09 07:08:43 +02:00
mischief
9a7b1b57b6 mklib: add %.acid target 2018-06-08 16:48:31 +00:00
cinap_lenrek
56ffc907ac kernel: stop the practice of passing DMDIR to devir() perm argument
devdir internally replicates the qid in ther perm stat field
already and the practice of explicitely passing just causing
confusion when done inconsistently.
2018-06-03 23:33:35 +02:00
cinap_lenrek
8c70c09bfd devaoe: fix dotdot walk in devlinkdir, make perms consistent 2018-06-03 23:30:57 +02:00
cinap_lenrek
a2623fd82a devenv: make #ec files not show up as world writable 2018-06-03 23:30:05 +02:00
cinap_lenrek
182077ac24 ip/dhcpd: parseip() error handling, make sure client ip is ipv4, add explicit length arguments to lookupname() and lookupserver() 2018-06-03 20:52:10 +02:00
cinap_lenrek
0cf8a0c4a8 ip/ipconfig: use ipmove() instead of memmove() 2018-06-03 20:31:48 +02:00
aiju
55edec2b8a tcs: support EUC-JP JIS X 0212 codes 2018-06-02 00:02:29 +00:00
cinap_lenrek
5db80edcd1 merge 2018-06-01 23:54:44 +02:00
cinap_lenrek
7113f730de ndb/cs: make ipv6 only host practical by checking ip version on local interfaces
avoid returning ip addresses that cannot be reached due
to lack of a compatible ip address. this means when here
is no ipv4 address configured, we wont return ipv4 addresses
and would not query dns for an A record.

likewise, when here is no ipv6 address configured then
we wont query dns for an AAAA record.

ipv6 lookups can still be disabled with the -4 flag just
as before.
2018-06-01 23:53:09 +02:00
qwx
50b36c5112 doom: don't set repl if scale is 1 2018-05-31 05:11:33 +02:00
cinap_lenrek
16c87febd3 sdram: properly support multiple ramdisks, so that ramdiskX corresponds to sdZX 2018-05-29 22:50:04 +02:00
qwx
f1eb657db0 emulators ui: don't call flushmouse twice 2018-05-29 05:28:31 +02:00
spew
3d0ebdc439 6c, 8c: Fix nocast cast bug which prevents address arithmetic from being computed at compile time 2018-05-28 19:38:33 -04:00
cinap_lenrek
6b22a732e8 merge 2018-05-27 23:05:00 +02:00
cinap_lenrek
8f9642a514 9boot: detect SYSLINUX "memdisk" and pass to kernel via ramdisk0= parameter
this makes virtual "memdisk" from SYSLINUX accessible to
the kernel, allowing the iso to be loaded via TFTP and
started without any ethernet or disk drivers available.
2018-05-27 23:03:38 +02:00
cinap_lenrek
5da4f0fc0f sdram: experimental ramdisk driver
this driver makes regions of physical memory accessible as a disk.

to use it, ramdiskinit() has to be called before confinit(), so
that conf.mem[] banks can be reserved. currently, only pc and pc64
kernel use it, but otherwise the implementation is portable.

ramdisks are not zeroed when allocated, so that the contents are
preserved across warm reboots.

to not waste memory, physical segments do not allocate Page structures
or populate the segment pte's anymore. theres also a new SG_CHACHED
attribute.
2018-05-27 22:59:19 +02:00
aiju
41013392a1 sshfs(4): replace the much maligned -r option 2018-05-27 11:06:07 +00:00
spew
1ddf581f8c cc: fix result of operation not used warning for void casts 2018-05-24 19:31:55 -04:00
aiju
1984f6813c merge 2018-05-24 13:41:08 +01:00
aiju
be3809866c ape: floating point improvements (thanks spew) 2018-05-24 13:40:44 +01:00
cinap_lenrek
ad7390dda8 ndb/dnsdebug: handle .ip6.arpa names 2018-05-23 19:44:12 +02:00
cinap_lenrek
03ced8cca1 ndb/dnsquery: handle .ip6.arpa names, don't mount the dns service 2018-05-23 19:43:45 +02:00
cinap_lenrek
d5c906f515 ip/tftpd: deal with block wrap arround 2018-05-22 01:53:15 +02:00
cinap_lenrek
66eac7d687 pc64: fix fpu bug
fpurestore() unconditionally changed fpstate to FPinactive when
the kernel used the FPU. but in the FPinit case, the registers are
not saved by mathemu(), resulting in all zero initialized registers
being loaded once userspace uses the FPU so the process would have
wrong MXCR value.

the index overflow check was wrong with using shifted value.
2018-05-21 19:23:54 +02:00
cinap_lenrek
e69cde3120 authsrv: implement AuthNTLM 2018-05-20 22:59:24 +02:00
cinap_lenrek
87617ea25e merge 2018-05-20 22:50:50 +02:00
cinap_lenrek
6e19d19285 separate MSCHAP(v2) and NTLM(v2) authentication
due to linux omiting the final Z(4) in the NTLMv2 reply, and
the need for the windom for LMv2 authentication, here is a new
AuthNTLM ticket request now with length and dom fields.
2018-05-20 22:49:24 +02:00
qwx
2e717a5557 camv: fix leak on resize 2018-05-20 16:47:41 +02:00
aiju
1f8d347c92 fplot: draw axes; zoom more naturally; unzoom 2018-05-20 09:14:16 +00:00
cinap_lenrek
40f6e00b9c ip/cifsd: limit response data count in TRANS2 for remotebuffersize, avoid empty filename for the root 2018-05-20 03:48:33 +02:00
cinap_lenrek
e684b2a3fb authsrv: work arround linux omiting final Z(4) after the AvrPairs 2018-05-20 01:37:38 +02:00
cinap_lenrek
58aba2a67f cifsd: fix ntlmv2 authentication
in ntlmv2, the client will retry the challenge response trying a bunch
of different domain names assuming the same server challenge. so we have
to make retries work with factotum and the auth server.

also, windows 7 with compatlevel=4 sends all zeros LM response.
2018-05-19 16:40:01 +02:00
spew
a59aa24a94 merge 2018-05-18 21:39:19 -04:00
spew
9360415d56 ssh:add -r for extra raw mode 2018-05-18 21:36:33 -04:00
cinap_lenrek
530ab11783 merge 2018-05-16 21:43:29 +02:00
cinap_lenrek
6e284eaad5 ndb/cs: prevent deadlock with ndb/cs by mounting /srv/dns *AFTER* /net
the dnsquery() library function should not start mouting /srv/dns on
its own. this problem arrises only for ndb/cs as it is started before
ndb/dns.

the issue with mounting /srv/dns before /net is when ndb/cs attempts
to read the list of interfaces, accessing /net/ipifc, which triggers
a rpc to ndb/dns as it is ontop of the mount. this can yield a deadlock
when ndb/dns blocks its 9p loop waiting for requests to complete on
a refresh and the requests are stuck waiting for ndb/cs to translate
a dial string for announce().
2018-05-16 21:41:42 +02:00
aiju
b8430d5395 sshfs: if we're going to annoy everyone we should at least match documentation 2018-05-15 16:19:28 +01:00
cinap_lenrek
5c2b4dfc81 9boot: DHCPv6 support for efi 2018-05-15 02:18:50 +02:00
qwx
c83a6f9c00 emulators ui: fix input botch and typo 2018-05-14 20:49:08 +02:00
cinap_lenrek
7e33a75e36 merge 2018-05-14 19:19:50 +02:00
cinap_lenrek
c9bb6f68eb devip: don't set mtu of interface to zero when not specified (thanks joe9)
change 9f74a951ae6a introduced a bug that set the mtu of a new
interface to 0 when not specified in the add ctl.
2018-05-14 19:18:13 +02:00
BurnZeZ
f44cfeb7d7 audio/pcmconv: fix accidental cast to float instead of double 2018-05-13 19:58:16 +00:00
qwx
88537cfe9b demote libemu to common code
- too small, nothing else that won't be under /games will use it
- "libemu" as a name doesn't make sense here
2018-05-13 07:01:47 +02:00
qwx
abf8c8bf2c add port of aiju's port of games/2600 2018-05-12 19:21:48 +02:00
qwx
1195ca910c add libemu
move redundant code from emulators to a common library
2018-05-12 19:20:53 +02:00
qwx
70c7a9eb07 add signed fixed size integer typedefs 2018-05-12 19:19:52 +02:00
cinap_lenrek
2728e06589 ndb/dns: lookup *all* entries in dblookup(), v4 and v6 queries in parallel, remove weigthed timeouts
dblookup() used to only return the first matching entry. in
case of ipv6, we want all entries returned to get both v4
and v6 addresses... and these might not neccesarily be in
the same entry (see /lib/ndb/common). note also this makes
it behave the same as in cachedb mode which reads in the
whole database.

we do not know if v4 or v6 routing works, so the simplest
is just to query v4 and v6 nameservers in parallel. this is
done by changing serveraddrs() to return one address type,
and we make sure to get at least one v4 and one v6 address
each round.

get rid of the weigthed timeout code... there where too many
assumptions. instead, we give a round 500ms timeout (or 1 second
in patient mode) and honor the maximum query time.
2018-05-11 22:37:28 +02:00
cinap_lenrek
f428a5daaa libplumb: fix plumbunpackpartial()
- *morep was not set in error cases
- attr and ntext could be leaked
2018-05-10 19:46:38 +02:00
cinap_lenrek
fcb974af3a merge 2018-05-10 19:38:01 +02:00
cinap_lenrek
eb3951bcd4 ppp: set source specific default route regardless of primary flag, set link speed thru new ctl message when -b is specified 2018-05-10 19:36:14 +02:00
cinap_lenrek
298f239695 ip: add some primitive rate limiting knobs to counteract bufferbloat 2018-05-10 19:31:58 +02:00
aiju
0e5888a0cf add usb tablet support 2018-05-08 08:28:48 +00:00
aiju
ec60da4961 libmp: add awk-generated tests 2018-05-05 12:14:39 +00:00
aiju
a7a07b2d43 mpdiv: get signs right... 2018-05-05 12:03:45 +00:00
aiju
0930daf295 mp: more tests 2018-05-05 08:49:38 +00:00
aiju
72ad2d1ee1 mpmagadd: oops... 2018-05-04 21:42:08 +00:00
aiju
35065b9127 mpmagadd: force output sign +1 always 2018-05-04 21:41:16 +00:00
aiju
8dc43a951c mpdiv: fix sign bug 2018-05-04 21:18:46 +00:00
aiju
454d26a0e4 pc: add $ operator 2018-05-04 11:07:39 +01:00
aiju
fa028a9352 libmp: add new tests 2018-05-04 00:42:59 +00:00
aiju
cda7129cd2 mplogic: don't drop carry out 2018-05-03 23:31:24 +00:00
aiju
98a5fc6535 pc(1): always allocate at least one mpdigit (itomp assumes this) 2018-05-03 14:06:15 +01:00
cinap_lenrek
2cfc72db76 merge 2018-05-03 12:28:41 +02:00
mischief
12716019bf libplumb: fix old leak introduced in 18b8ed1a5ea3 2018-05-03 01:26:09 -07:00
aiju
02e584c06c games/mines: chain new CLists in splitknown correctly 2018-05-02 23:01:39 +00:00
aiju
28c519295f games/mines -g: elements taken from list should be -2, not -1 2018-05-02 22:47:04 +00:00
cinap_lenrek
87d922589d ip/linklocal: invert the localadm bit from mac address instead of just setting it 2018-05-02 20:34:43 +02:00
cinap_lenrek
2247741fe0 ip/ipconfig: fix exit status for ndbconfig 2018-05-02 00:03:54 +02:00
cinap_lenrek
8f91d94d19 merge 2018-05-01 23:40:00 +02:00
cinap_lenrek
190c40c9ff ip/ipconfig: populate /net/ndb from v6 router advertisements, configure multiple addresses in ndbconfig()
we now update /net/ndb with the following information gathered
from router advertisements (rfc6106 and plan9 specific options):

- recursive dns servers (option 25, ndb: dns=)
- dns search list (option 31, ndb: dnsdomain=)
- plan9 fileserver (option 250, ndb: fs=)
- plan9 authserver (option 251, ndb: auth=)

note the plan9 specific options can be disabled with the -G flag.

for ndbconfig (-N flag), we now collect all ip addresses in ndb
belonging to the devices mac address and configue them all. v6
addresses are getting added when a link local address exists
or the -6 flag has been specified to automatically configure one.

move the dhcp code in its own dhcp.c file and make symbols static
that are not used across modules.
2018-05-01 23:32:28 +02:00
cinap_lenrek
8e53fe132e ndb/cs: fix crash in ndbredorder due to ndbnew() not maintaining the ->line ring
we have to maintain the ->line chain for ndbreorder() to work, so add
a little helper: ndbline() which replicates the ->entry chain and links
the last tuple to the first; makeing the whole list into a single line.
2018-05-01 22:17:27 +02:00
mischief
d05b90f300 libplumb: allow attributes larger than 4096, set some malloc tags 2018-05-01 12:47:26 -07:00
cinap_lenrek
bc4469e5d2 ndb/csquery: insert \n between read chunks 2018-04-28 04:40:09 +02:00
cinap_lenrek
af3fd92789 ip/ppp: remove old struct 2018-04-28 04:39:09 +02:00
cinap_lenrek
dbfb320566 libndb: cleanup 2018-04-28 04:38:34 +02:00
aiju
e87ca8d976 mpdiv: fix dividing 0 by a small power of two 2018-04-26 14:55:02 +01:00
cinap_lenrek
69298c79ab merge 2018-04-24 21:25:16 +02:00
cinap_lenrek
5aae3d344b devip: improve arp and ndp code
there appears to be confusion about the refresh flag of arpenter().
when we get an arp reply, it makes more sense to just refresh
waiting/existing entries instead creating a new one as we do not
know if we are going to communicate with the remote host in the future.

when we see an arp request for ourselfs however, we want to always
enter the senders address into the arp cache as it is likely the sender
attempts to communicate with us and with the arp entry, we can reply
immidiately.

reject senders from multicast/broadcast mac addresses. thats just silly.

we can get rid of the multicast/broadcast ip checks in ethermedium and
do it in arpenter() instead, checking the route type for the target to
see if its a non unicast target.

enforce strict separation of interface's arp entries by passing a
rlock'd ifc explicitely to arpenter, which we compare against the route
target interface. this makes sure arp/ndp replies only affect entries for
the receiving interface.

handle neighbor solicitation retransmission in nbsendsol() only. that is,
both ethermedium and the rxmitproc just call nbsendsol() which maintains
the timers and counters and handles the rotation on the re-transmission
chain.
2018-04-24 20:21:09 +02:00
aiju
3c53021357 forp: fix ternary operator 2018-04-24 12:58:54 +01:00
aiju
29f03ba4e7 libsat, forp: fix va_list hack on amd64 2018-04-24 12:20:07 +01:00
cinap_lenrek
20b9326dad devip: fix ipv6 icmp unreachable handling, fix retransmit, fix ifc locking, remove tentative check 2018-04-22 18:54:13 +02:00
cinap_lenrek
c80d94304d devip: cleanup ipmux.c 2018-04-22 18:50:45 +02:00
cinap_lenrek
8962551055 devip: increment in counter *AFTER* acquiering the ifc lock or loopbackmedium 2018-04-22 18:50:11 +02:00