Commit graph

7442 commits

Author SHA1 Message Date
Alex Musolino
59115ba407 rio: pad window status strings in wctl files
This makes it possible to read the entire initial contents of the wctl
files without blocking.
2019-11-19 12:40:53 +10:30
Alex Musolino
4d4107b385 rio: fix bug causing short reads of wctl files
Previously, reads of wctl files would return one byte less than
requested as the returned string must be null terminated.  Now we pass
the actual size of the allocated buffer to the handler, which is large
enough to accommodate a trailing partial rune and terminating null
byte.
2019-11-19 12:38:13 +10:30
Ori Bernstein
f32148b290 document 'T' flag misbehavior (thanks rgl) 2019-11-18 01:06:02 -08:00
Ori Bernstein
b2e29cf315 Specifiy the restrictions on 9boot file names more clearly. 2019-11-17 16:17:15 -08:00
Ori Bernstein
3e1a75d08f Document 9bootfat limitation. 2019-11-17 16:08:48 -08:00
cinap_lenrek
44615fba43 sdiahci: implement reset timeout for ahciencreset(), make blink() never block, fix map[] access in ledkproc()
Ori_B reports that his controller gets stuck in the ahciencreset()
wait loop. so we implement a 1000 ms timeout. we replace delay()
with esleep() as we are always called from the ledkproc().

blink() could enter infinite delay loop as well, so instead of
waiting for the message to get transmitted we exit making it
non-blocking (we will get called again anyway).

the access to the controller map[] was wrong in ledkproc(). the
index is the controller number, not the drive number!
2019-11-17 21:19:55 +01:00
cinap_lenrek
521a0b336c bootrc: for wireless netbooting, set the WPA/WPA2 preshard key with wpapsk=password boot parameter
this allows automatic netbooting without password prompt
for the wirelss network.
2019-11-17 19:04:38 +01:00
Ori Bernstein
b31e965ea3 Parse global pax header in the right place. 2019-11-15 13:26:25 -08:00
Ori Bernstein
a68bee44d3 Add pax extended header support to tar.
Support for 'path=', 'uname=', 'gname=', 'size=', and 'atime=' pax
headers is useful.  Others are ignored, possibly with a warning.

We were running into missing support with the 'go' extraction.

At the same time, this cleans up the way that we handle paths,
getting rid of static buffers with hidden space at the front.
2019-11-14 13:52:41 -08:00
Ori Bernstein
4dab28b14f thread(2): fix manpage typos (thanks rgl) 2019-11-12 13:01:38 -08:00
Ori Bernstein
52e92163a6 draw(2): fix manpage typo (thanks rgl) 2019-11-11 13:35:47 -08:00
cinap_lenrek
b638c7753d devip: use the routing table for local source ip address selection
when making outgoing connections, the source ip was selected
by just iterating from the first to the last interface and
trying each local address until a route was found. the result
was kind of hard to predict as it depends on the interface
order.

this change replaces the algorithm with the route lookup algorithm
that we already have which takes more specific desination and
source prefixes into account. so the order of interfaces does
not matter anymore.
2019-11-10 19:50:46 +01:00
Ori Bernstein
d72a404399 Fix directory heuristic for long file names.
Tar specifies that a filename ending with '/' is a directory. We were
incorrectly looking at the short name. This meant that when we have long
filenames with a '/' at the 100th character, we would decide it was a
directory.

This change uses the long name when deciding the size for extraction,
and trusts the header size when just skipping forward in the stream.
2019-11-05 10:48:51 -08:00
cinap_lenrek
8b79ad59f1 games/turtle: do exit instead of crash in redraw() when there where no lines drawn 2019-11-03 15:20:57 +01:00
aiju
528936156f add games/linden and turtle to mkfile 2019-11-03 13:54:26 +00:00
aiju
ae61eb9381 add games/linden and games/turtle 2019-11-03 13:49:23 +00:00
cinap_lenrek
37827f533b tar: fix memory corruption in extract1 (thanks petter)
extract1() expects two extra bytes to be avilabe before
fname buffer so it can prepend ./ before the name. this
used to be the case with name(), but was violated when
long name support was added and getname() was used in
place of name() which did not reserve the 2 extra bytes.

this change reserves two extra bytes in the getname()'s
static buffer and also removes the extra copy as name()
already makes a copy.
2019-11-02 14:17:34 +01:00
cinap_lenrek
638f860791 upasfs(4): fix manpage typo (thanks rgl) 2019-11-02 12:52:39 +01:00
Alex Musolino
7fbd3fd4fe file: add (very) basic support for detecting mpeg4 formats 2019-11-01 12:05:11 +10:30
Alex Musolino
06786f2a71 upas/fs: fix handling of numeric timezone offsets in strtotm
Since numeric timezone offsets are relative to GMT, initialise zone to
GMT so tm2sec(2) does not assume local time.

Note that if strtotm encounters a timezone *string* and consequently
overwrites zone then we will end up in the same mess since tm2sec(2)
only deals with GMT or local time.
2019-10-31 09:41:03 +10:30
Ori Bernstein
6c43477492 Check if 'm' is null when updating messages. 2019-10-28 14:12:44 -07:00
cinap_lenrek
82d04a4e63 bcm: fix software cursor avoidance for loadimage() case (thanks bitmapper) 2019-10-27 23:51:11 +01:00
cinap_lenrek
ff44b92c96 ip/dhcpd: prevent client from increasing max reply size beyond the reply buffer capacity 2019-10-22 06:53:50 +02:00
Ori Bernstein
9314883aff Make ctrl+g focus text windows and cycle zeroxed copies (thanks kvik) 2019-10-21 15:29:07 -07:00
Alex Musolino
7682a24bc5 /sys/lib/plumb/basic: open nedmail windows with -noscroll
This preserves the desired behaviour of *not* scrolling to the bottom
of plumbed messages even when rio(1) is invoked with the -s flag.
2019-10-22 08:18:20 +10:30
cinap_lenrek
e168ea045f ndb/dns: handle empty $DNSSERVER
when $DNSSERVER is empty, query ndb for local dns servers
instead of not using any at all.
2019-10-13 09:02:04 +02:00
Roberto E. Vargas Caballero
c0280c607f backup: Set execution bits in backup scripts 2019-10-13 10:20:10 +02:00
cinap_lenrek
e38f75fc45 ether82563: fix multicast for i210
MTA has 128 entries, according to section 8.10.15 in the datasheet.
this fixes ipv6 in apu2 which has 3x i210 (8086/157b).
2019-10-11 21:38:12 +02:00
Ori Bernstein
7367b8d2e7 Fetch IMAP flags from server. This makes us sync read/answered/... flags with unix. 2019-10-10 11:52:22 -07:00
Ori Bernstein
e3a43c4f2b awk: make empty FS unicodely-correct. 2019-10-09 17:36:02 -07:00
cinap_lenrek
db911d4fef sdiahci: force Hudson SATA Controller to AHCI mode 2019-10-08 13:53:57 +02:00
cinap_lenrek
6716e9ba20 sshfs: fix dir2attrib() memory leak in wstat error case (thanks BurnZeZ) 2019-10-07 12:51:21 +02:00
cinap_lenrek
f763dc1640 sshfs: fix race condition between sendproc() and recvproc()
there was a race between the sendproc putting the request on
the sreqrd[] id and the recvproc handling the response, and
potentially freeing the request before the sendproc() was
finished with the request (or the fid).

so we defer allocating a request id and putting it on the
sreqrd[] stage after we have completely generated the
request in vpack(). this prevents the handling of the request
before it is even sent.

this also means that the SReq should not be touched after
calling sendpkt(), submitreq(), submitsreq().

secondly, putsfid() needs to acquire the RWLock to make sure
sendproc() is finished with the request. the scenario is that
recvproc() can call respond() on the request before sendproc()
has unlocked the SFid.
2019-10-07 11:52:14 +02:00
cinap_lenrek
af23bb343a cwfs: fix listen filedescriptor leaks 2019-10-04 18:54:01 +02:00
cinap_lenrek
dea2905783 lib9p: fix listensrv() filedescriptor leaks 2019-10-04 18:52:53 +02:00
cinap_lenrek
2401794cff sshfs: use threadexits() instead of exits() 2019-10-04 18:51:44 +02:00
cinap_lenrek
ff16079e49 upas/fs: speedup mtree and henter()
move digest pointer into Mtree structrue and embed it into Idx struct
(which is embedded in Message) to avoid one level of indirection
during mtreecmp().

get rid of mtreeisdup(). instead we have mtreeadd() return the old
message in case of a collision. this avoids double lookup.

increase the hash table size for henter() and make it a prime.
2019-10-03 15:49:53 +02:00
cinap_lenrek
c0f464b98f pc: move low-level allocation details out of mmu.c into memory.c rampage() function 2019-10-02 01:01:34 +02:00
cinap_lenrek
0ee738ef8c vgai81x: use vmap() for uncached access to cursor data instead of manipulating kernel page table
on 386, the kernel memory region is mapped using huge 4MB pages
(when supported by the cpu). so the uncached pte manipulation
does not work to map the cursor data with uncached attribute.

instead, we allocate a memory page using newpage() and map
it globally using vmap(), which maps it uncached.
2019-10-02 00:58:46 +02:00
cinap_lenrek
a524fd0646 merge 2019-09-22 20:37:33 +02:00
cinap_lenrek
d15008fdef ape/cc: add spim 2019-09-22 20:35:16 +02:00
cinap_lenrek
61ad24312b merge 2019-09-22 20:30:08 +02:00
cinap_lenrek
d559cd005c 2c(1): document 7c (arm64) 2019-09-22 19:09:25 +02:00
Roberto E. Vargas Caballero
754188aa35 ape/cc: Add arm64 and remove alpha 2019-09-22 19:07:57 +02:00
cinap_lenrek
490c3d87cb usbxhci: fix endpoint stall recovery, handle Ep.clrhalt flag
after issuing CR_RESETEP command, we have to invalidate
the endpoints output context buffer so that the halted/error
status reflects the new state. not doing so resulted in
the halted state to be stuck and we continued issuing
endpoint reset commands when we where already recovered.

handle the devusb Ep.clrhalt flag from devusb that userspace
uses to force a endpoint reset on the next transaction.
2019-09-22 18:51:41 +02:00
cinap_lenrek
71a1d11a81 cmd/ip/*: chown the network connection after authentication
for servers that handle incoming network connections and authentication,
change the owner of the network connection file to the authenticated user
after successfull authentication.

note that we set the permissions as well to 0660 because old devip used
to unconditionally set the bits.
2019-09-21 23:36:44 +02:00
cinap_lenrek
5993760e14 devip: fix permission checking
permission checking had the "other" and "owner" bits swapped plus incoming
connections where always owned by "network" instead of the owner of
the listening connection. also, ipwstat() was not effective as the uid
strings where not parsed.

this fixes the permission checks for data/ctl/err file and makes incoming
connections inherit the owner from the listening connection.

we also allow ipwstat() to change ownership to the commonuser() or anyone
if we are eve.

we might have to add additional restrictions for none at a later point...
2019-09-21 23:28:37 +02:00
cinap_lenrek
b56909157f bootrc: unmount devip *before* starting factotum
we want devip to get reattached after hostowner has been written. factotum
already handles this with a private authdial() routine that mounts devip
when it is not present. so we detach devmnt before starting factotum,
and attach once factotum finishes.
2019-09-21 18:48:14 +02:00
cinap_lenrek
5b7d8e1f6f bootrc: remount devip after /dev/hostowner has been written by factotum
devip remembers the attach uname so after we set hostowner we
remount devip so future connections have the right owner.
2019-09-21 18:11:52 +02:00
cinap_lenrek
12fa017f3f devproc: fix fishy locking in proctext(), check proc validity, static functions
the locking in proctext() is wrong. we have to acquire Proc.seglock
when reading segments from Proc.seg[] as segments do not
have a private freelist and can therefore be reused for other
data structures.

once we have Proc.seglock acquired, check that the process pid
is still valid so we wont accidentally read some other processes
segments. (for both proctext() and procctlmemio()). this also
should give better error message to distinguish the case when
the process did segdetach() the segment in question before we
could acquire Proc.seglock.

declare private functions as static.
2019-09-21 16:36:40 +02:00