summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-10-25fortunes: etymology: variousstanley lieber
2013-10-25kernel: dont spawn closeprocs from closechanqcinap_lenrek
make closeproc() spawn more procs on demand insead of doing it from closechanq(). this avoids the palloc lock checks and simplifies the logic.
2013-10-25kernel: disable freelist page caching for executables run from uncached mountcinap_lenrek
the image cache has the property of keeping a channel for the executable binary arround which prevents the mountpoint from going away. this can easily be reproduced by running: @{rfork n; ramfs; cp /bin/echo /tmp; /tmp/echo} observe how ramfs stays arround until the image is reclaimed. the echo binary is also cached but is unreachable from any namespace. we now restrict the caching to mounts that use the client cache (-C flag) only. this should always be the case for /bin. places where this isnt the case might observe a performance regression.
2013-10-25kernel: keep one closeproc arround in case we are unable to fork a new onecinap_lenrek
closechanq() is unable to fork a new closeproc when palloc is locked. so we spawn a closeproc early in chandevinit() and make sure theres always one process arround to handle the queue.
2013-10-23newuser: make lib/profile read drawterms /dev/secstore when availablecinap_lenrek
2013-10-22factotum: update rsa for ssh2 (sync with sources)cinap_lenrek
2013-10-20acme: attempt to fix tag lines collapsing to zero height on window move ↵cinap_lenrek
(issue 189) we'r getting a rectangle taller than a single line from coladd() which causes textresize() to collapse the tag text to zero height. should probably fix coladd() instead.
2013-10-18nusb/ether: new driver interface with kernel inspired Block bufferscinap_lenrek
introduce kernel inspured Block structure with read/write pointers to pass packets arround. the intend is to avoid copying when adding/removing frame headers and simplifying the drivers. the driver now calls etheriq() directly allowing it to queue multiple packets in one pass without having to keep state. transmit gets a buffer passed that has room for frame headers and trailers so no copying is needed. blocks are refcounted avoiding another copy when passed to only one receive queue (common case). receive queues are now limited to 100KB avoiding buffer bloat. Dq* a memory leak in destroyfid has been fixed. lots of minor cleanups.
2013-10-17keyboard(6): new <compose>x sequence, 21 bit runes.cinap_lenrek
2013-10-17html2ms: fix compiler warning for debug codecinap_lenrek
2013-10-17kbdfs: implement <compoxe>x to enter variable length unicode as suggested by ↵cinap_lenrek
erik quanstro from: http://9fans.net/archive/2013/04/327 since <compose>x is not yet entrenched, i have a suggestion for ease of input. suppose <compose>x were redefined so the syntax were "<compose>x[0-9a-f]+;". in the case that 6 hex digits are entered, then the ";" is not necessary. not only would this allow for entering 21-bit runes, it would also allow for short sequences to be entered more easily. - erik
2013-10-17factotum: fix mschap password (utf-8 to utf-16) conversioncinap_lenrek
using strlen() gives the number of bytes in the utf-8 string. could use utflen() instead, but decided to just go in a loop and get rid of the counters all together. UTF-16 surrogates are not handled.
2013-10-17libc: updated acid files for 21 bit rune changecinap_lenrek
2013-10-17change Rune from ushort to uint for to 21 bit runes (thanks mischief!)cinap_lenrek
big big change. requires rebuilding 8c first and then rebuild everything.
2013-10-179p(2): correct usage for srvrelease()/srvacquire()cinap_lenrek
the process is *NOT* allowed to exit after a srvrelease() as it still holds a reference (srv->rref) preventing the srv from beging freed/ended (listensrv) before srvacquire().
2013-10-16nusb/ether: fix wrong size check causing odd sized packets to be discarded ↵cinap_lenrek
(thanks mischief!) ethernet packets with sizes that where not multiples of 4 where discarded because the check uses the smsc frame size instead of the payload size. when a usb read returns just one packet, theres no next frame header and the calculated frame size is bigger than the usb read which caused the whole packet to be discarded as invalid. thanks to mischief for testing and debugging!
2013-10-16nusb/disk: handle blocking usb access with srv releasedcinap_lenrek
usb is bound after /dev, so a hanging usb device will hang access to /dev. we avoid this by releasing the srv, which allows the fs to still handle reads and walks of the directories. ios are serialized by a qlock in the Umsc structure.
2013-10-16cwfs: fix putbuf(nil) in error case of cmd_check()cinap_lenrek
2013-10-16mergecinap_lenrek
2013-10-16fdisk: fix struct padding for amd64 (from erik quanstros fdisk-64-bit-table ↵cinap_lenrek
patch) small little patch to help fdisk work properly on 64-bit machines. sizeof(Table) is 4 bytes too big.
2013-10-15usps: update for new usps website (thanks, mischief)stanley lieber
2013-10-12aux/statusbar: emit final newline in textmode when finishedcinap_lenrek
bad: term% echo 1 1 | aux/statusbar -t x |###########################################################| 100% term% vs. good: term% echo 1 1 | aux/statusbar -t x |###########################################################| 100% term%
2013-10-12hget: handle http contentencoding (compression)cinap_lenrek
2013-10-11cwfs: add checktag() call for cache bucket in dumpblock(), fix error stringscinap_lenrek
2013-10-11cwfs: more checking for cfsdump(), cleanup Tsuper hack in cwrecur()cinap_lenrek
add checktag and nil checks in cfsdump() making sure to notice when the roroot directory structures is corrupted. cwrecur() used tag == Tsuper to indicate that this is the first level recursive invocation. this is confusing as we really expect Tdir tag in that case for the root directory. instead, we now pass the correct tag (Tdir) and use cw->depth > 1 to see if we are past the root. the block tag was only checked when the block was not in the memory cache. check the tag always!
2013-10-10unzip/zipfs: handle optional data descriptor signature in trailercinap_lenrek
2013-10-10mothra: handle <input type=image>cinap_lenrek
2013-10-08exportfs: start filter in separate rendezvous groupcinap_lenrek
2013-10-08libpanel: fix memory corruption bug in plinitentry(), add pl_erealloc()cinap_lenrek
2013-10-08libc: remove doprintcinap_lenrek
2013-10-08ip/torrent: check piece offset, vlong castcinap_lenrek
2013-10-08ip/torrent: more checking, backoff from piece on hash errorcinap_lenrek
2013-10-07kbdfs: implement keyboard mouse buttons with /dev/mouseincinap_lenrek
2013-10-07vncs: create dummy /dev/mousein and /dev/mousectl filescinap_lenrek
this should prevent accidential fiddeling with the kernels mouse driver.
2013-10-07devmouse: differential handling of /dev/mousein buttonscinap_lenrek
2013-10-07exportfs: fix more filedescriptor leakscinap_lenrek
just closing the pipe isnt enough, we have to close all remaining file descriptors except sfd before executing sub exportfs.
2013-10-06exportfs: fix openmount() rfork flags and filedescriptor leak, silence of on ↵cinap_lenrek
initstr error fork child exportfs with new rendezvous group. fix missing close of pipe filedescriptors on error. fix missing close of other end of pipe in child. dont bark when we get eof on the first init string read. this condition can happen when unmount opens and immidiately closes a exported srv file.
2013-10-065l: apply richard millers 5l-incfloat patch (from sources)cinap_lenrek
Generate correct ARM vfp code for x++ where x is single precision float. Example test program (link with '5l -f'): void _main() { float x; x++;}
2013-10-05rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but ↵cinap_lenrek
request flushing)
2013-10-04mothra: avoid intermediate rc shell processes, use rfork(RFREND) to isolate ↵cinap_lenrek
rendezvous group
2013-10-04page: avoid intermediate rc shell processes with using exec, move ↵cinap_lenrek
newwindow() before forking namespace use exec to avoid intermediate rc processes. avoid capturing old namespace in the waiting process by doing the newwindow() call before it.
2013-10-04mothra: run page in own note group, close unneeded filedescriptors after forkingcinap_lenrek
running page in own note group avoids killing it when we exit mothra. copypaste dupfds() function from page and use it to close unneeded file descriptors.
2013-10-04page: close stdout, reopen stdout/stderr for external viewer and removed ↵cinap_lenrek
useless RFNAMEG flag we are not using stdout (fd=1) and it, so dup nullfd over it. this drops the old window reference when using with -w flag. the RFNAMEG flag isnt needed because we are calling newwindow() which forks the namespace for us. reopen stdin/stdout for the external viewer to the new window.
2013-10-04libdraw: make newwindow() unmount the old windowcinap_lenrek
newwindow() used to mount the new window directly on /dev, resulting in the old window and the new one being mounted over each other. we now try to unmount the old window from /dev first, mount new window to /mnt/wsys (replacing the old) and then bind /mnt/wsys before /dev. if theres no /mnt/wsys, just mount window directly before /dev.
2013-10-04add sdp(3) from sourcescinap_lenrek
2013-10-04mergecinap_lenrek
2013-10-04page: dont tell rio our pidcinap_lenrek
$wsys might be from a remote system so pid will not work. new rio errors out on mouse/cons instead.
2013-10-04rio: gone windows, window resize, rectonscreen, goodrectcinap_lenrek
dont rely on postnote to shutdown client. instead, make reads on cons, kbd and mouse error. when we mount a window system over exportfs, the pid useless and even dangerous! pid should be only used by clients forked by rio itself. fix bug in resized(), goodrect() takes rect in screen coordinates! make rectonscreen() fix window size if the window doesnt fit on the screen. improve goodrect() to check for windows outside of the screen or bigger than screen without borders visible.
2013-10-03io.h: change indentation from spaces to tabsppatience0
2013-10-03ether83815: fix `auto neg timed out' error with sis 900 rev 635.ppatience0
the openbsd sis(4) driver does not actually go through the rest of softreset() with sis cards. also, rev 635 reads the mac address differently, so copy-paste code from openbsd to handle that.