Commit graph

2736 commits

Author SHA1 Message Date
cinap_lenrek 5f87d8dcc8 ndb/dns: various changes
stop absolute/relative dual use of RR.ttl. now RR.ttl is
*always* the *relative* ttl value. we derive absolute
timeout in RR.expire.

remove unused lookuptime field in DN. replace refs and
keep with mark field in DN. we do not care about the
number of references. only *iff* it is referenced, so
use a single bit for that (bit 0). for keep, we use
bit 1.

remove dolock parameter in dnagenever(), it is not
needed. we always need to lock.

mark local dns servers and domains as never to be aged.

the keeper bit is *just* a cache optimization, preventing
the domain and the domains it points to from being flushed.
it should not be used as a write protect bit in rrattach()
for preventing spoofing as it will prevent updates of say,
cname domains.

remove "removing spam ..." message. these are usualy just
hints, so normal. still, remove the hint as we currently
do no check if the nameserver has authority over the
cname domain.

remove "mydnsquery: trying to send to myself (%s); bzzzt"
message. this can happen when myaddr() fails for other
reasons. myaddr() will print error for us anyway.
2013-11-15 02:00:47 +01:00
cinap_lenrek 2ce68c5aa1 ndb/dns: case sensitive ndb attributes, Domlen consistency, dblookup() inplace lower case conversion, cleanups
ndb keys are strictly case sensitive, so consitently
use strcmp() when comparing attribute keys.

dblookup() used to lower case convert its name argument
inplace to match domain/sys name in ndb. better to do
the convesion in its own buffer and only read from the
name argument.

always use cistrcmp() when comparing DN.name.

the Domlen constant denotes the size of the buffer including
the null terminator. consistently use it as such.

have to hold dnlock in freearea() before reading list
head pointer.
2013-11-13 18:44:45 +01:00
cinap_lenrek cfc705b866 kernel: handle memimageinit() error 2013-11-12 21:43:38 +01:00
cinap_lenrek d56a6fadc5 libmemdraw: change memimageinit() to return integer error (for kernel), minor cleanups 2013-11-12 21:42:05 +01:00
cinap_lenrek def87d6016 devsd: fix scsi emulation for disks bigger than 4 billion sectors (from erik quanstros 9atom)
for read capacity (10 (0x25) if we have more than
4 billion sectors, we must not return nsectors % (1<<32),
we must return 0xffffffff.
2013-11-12 20:00:15 +01:00
BurnZeZ 983413de75 libjson: don't perform chartorune in getch() when char is null terminator, and remove empty string check added last commit 2013-11-10 03:35:25 -05:00
BurnZeZ f0483642be libjson: check for empty string in jsonparse() 2013-11-10 20:11:46 -05:00
BurnZeZ aad22f753f sdide: add pci did for VIA VT6415 PATA IDE controller 2013-11-10 19:40:01 -05:00
stanley lieber b0f7b9d80e arch(3): english 2013-11-10 18:44:33 -05:00
cinap_lenrek 235e06c988 arch(3), aml(2): document /dev/acpitbls file 2013-11-10 21:26:11 +01:00
cinap_lenrek a76d0bf6c5 ndb/common: add ipv6 addresses of root name servers 2013-11-10 19:35:33 +01:00
cinap_lenrek eb060fbfb1 aml(2): tabelize by function, move hardware linkage on separate page 2013-11-10 18:58:00 +01:00
cinap_lenrek 2bc9e8e5e3 kernel: make image cache not hold onto the channel, remove nocache flag
the image cache should not hold onto the text file channel
when not neccesary. now, the image keeps track of the number
of page cache references in Image.pgref. if the number of
page cache references and Image.ref are equal, this means
all the references to this image are from the page cache.
so no segments are using this image. in that case, we can
close the channel, but keep the Image in the hash table.

when attachimage() finds our image, it will check if Image.c
is nil and reattach the channel to the image before it is
used.

the Image.nocache flag isnt needed anymore.
2013-11-08 22:31:26 +01:00
cinap_lenrek 18e515511f acidleak: show free blocks as free (leak -b) 2013-11-08 17:42:15 +01:00
stanley lieber f4ec9a67e8 fortunes: that's great 2013-11-07 14:02:34 -05:00
cinap_lenrek b0a61bc091 merge 2013-11-06 22:19:59 +01:00
cinap_lenrek a60001871e mp3dec: fix volume for mp3dec
the libmad samples need to be scaled properly. the
previous assumption was that it is 32 bits, but it
really is MAD_F_FRACTBITS + sign bit and rest used
for overflow.

thanks eekee!
2013-11-06 22:18:36 +01:00
mischief 61269254d0 synchronize ape's vfprintf with libstdio
in ape's vfprintf we don't check if the file we're writing is actually a string buffer, resulting in a return of -1, when we should actually return the number of bytes that would be written.
2013-11-06 11:22:15 -08:00
cinap_lenrek 7b36a7e1a9 merge 2013-11-05 08:01:43 +01:00
cinap_lenrek 118cf5e36a rio: eleminate temporary allocations before frinsert() and in namecomplete()
frinsert() shouldnt modify the runes passed and the
buffer isnt going to be modified my us during the call
so removing the temporary copies.

namecomplete() makes utf-8 copies of the rune strings so
theres no need to copy the runes.
2013-11-05 08:00:26 +01:00
stanley lieber fc8734dac1 fortunes: AFTER READ THE PAGE YOU UNDRSTAND WHAT IM TALKING TO YOU ! 2013-11-03 20:01:52 -05:00
stanley lieber f637986cae aml(2): english 2013-11-03 20:01:03 -05:00
cinap_lenrek f73bf5f90d aml(2): fix amldelay() decscription. it takes microseconds, not milliseconds. 2013-11-04 00:09:28 +01:00
cinap_lenrek 65829e635c add aml(2) manual page 2013-11-03 22:13:03 +01:00
cinap_lenrek c5a70cc23d rio: do backspace \b processing inplace avoiding buffer allocation 2013-11-03 04:03:38 +01:00
cinap_lenrek 9619a621ac rio: cleanup and error handling 2013-11-03 00:34:35 +01:00
cinap_lenrek bcad0cd4e6 rio: huge simplification of flush handling
xfidflush() now uses a simpler way to flush another xfid.

when we can send to Xfid.c channel, we know that the
xfid is completed. so all xfidflush() needs todo is to
do an alt sending to both Xfid.c and Xfid.flushc.

once the send to Xfid.c succeeds, we know the xfid is gone
and we can respond to the flush request.

theres no need to keep track of flush state anymore. so
Xfid.active and Xfid.flushing can be removed.

note, that it is ok to respond normally to a currently
flushed request.
2013-11-02 17:54:42 +01:00
cinap_lenrek 837918ee5e rio: add sanity check in xfidallocthread() 2013-11-01 21:28:03 +01:00
cinap_lenrek f37ee95fbc rio: enforce flush reply ordering for all xfids
flushing isnt optional for concurrently handled requests.
we need to ensure that Rflush is replied *after* the
origianl request.

so we assign the flushtag for *every* xfid in xfidctl(),
and filsysrespond() checks if the xfid was flushed
*after* replying and wakes up the flushing xfid.
2013-11-01 21:21:24 +01:00
cinap_lenrek 413977c19b rio: properly handle follow up flushes (fixes unexpected reply tag)
when multiple flushes are send, they need to be replied
in order. we ensure this by having the flush xfid taking
over the flushtag (synchronized with a new fs->csyncflush
channel) so the next flush will flush the previous flush.
2013-11-01 18:57:11 +01:00
cinap_lenrek f87baec1d0 make auto negotiation work on 82562et (thanks mischief!)
the diver used to skip auto negotiation when
auto-negotiation enable (bit 12 in command register)
was clear.

setting the bit now, which makes auto negotiation work.

we skip auto negotiation only when it was already enabled
and status regiser indicates completion (bit 9).
2013-11-01 23:39:41 +01:00
cinap_lenrek b41bf07867 fix format compiler warning 2013-10-31 15:51:15 +01:00
cinap_lenrek 7e2e5b7a6f kernel: add support for multiboot memory map 2013-10-31 15:50:25 +01:00
BurnZeZ 1259fe5c38 libplumb: search for plumber only at /mnt/plumb, and don't try to mount $plumbsrv if the search fails 2013-10-31 04:26:01 -04:00
BurnZeZ 9a1e762dcc smtp: fix free on uninitialized pointer 2013-10-30 03:12:53 -04:00
cinap_lenrek 7211fd7ce7 fix devshr related panic caused by Mount.to being nil (thanks mischief!)
the shr mount is linked into the Mhead with m->to initially nil. only
after the the server has been attached is m->to set. just check for
it in createdir().
2013-10-30 21:24:44 +01:00
cinap_lenrek 6d4e9f11b7 init: dont rely on path containing dot 2013-10-30 00:38:12 +01:00
mischief b35df8dd22 vt: discard unhandle OSC escapes, and use nelem instead of sizeof for title buffer 2013-10-28 02:13:35 -07:00
BurnZeZ 96c1e08f48 libjson: fix missing buffer free, slight cleanup 2013-10-28 03:17:53 -04:00
BurnZeZ a8e8b650f3 libjson: dynamically allocate buffer 2013-10-28 23:21:07 -04:00
cinap_lenrek 82f4c1c0b4 rsa2ssh: fix the megashit 2013-10-28 09:20:07 +01:00
mischief 8c9e7ded17 auth/rsa2ssh: add SSH2 RSA output format (from plan9port) 2013-10-27 18:50:14 -07:00
mischief 420ed37c57 cmd/vt: fix xterm function keys 2013-10-27 18:40:21 -07:00
cinap_lenrek 4ea791806c libjson: fix mistake... (harmless) 2013-10-28 01:24:03 +01:00
cinap_lenrek ffd3421cf0 libjson: fix for 21 bit runes, implement utf-16 surrogates 2013-10-28 01:19:01 +01:00
BurnZeZ abb8ce3878 libjson: fix mistake in unicode handler (thanks cinap) 2013-10-27 19:29:02 -04:00
BurnZeZ b1bc8b5c2b libjson: handle unicode escapes 2013-10-27 15:52:35 -04:00
BurnZeZ 2dc7e311f4 make libjson from /sys/src/cmd/btc/json.c 2013-10-27 15:44:33 -04:00
cinap_lenrek 632b7adffb vt: remove defunct hp terminal emulation 2013-10-27 19:09:13 +01:00
cinap_lenrek b831ec005b vt: utf-8 support 2013-10-27 19:05:40 +01:00
cinap_lenrek 4a9f900726 mkfiles: do not rely on path containing the . element
when executing generated binaries and helper scripts,
always execute them as ./name instead of relying that
path contsins the dot.
2013-10-26 20:22:01 +02:00
cinap_lenrek 744dbd6bb8 merge 2013-10-26 01:18:23 +02:00
cinap_lenrek 1ca07d817b ndb/common: update ip for d.root-servers.net 2013-10-26 01:11:18 +02:00
cinap_lenrek 946026dc9a merge 2013-10-26 00:58:46 +02:00
cinap_lenrek 384adf4c89 ndb/common: dont use bell-labs dns servers for rfc1980 zones 2013-10-26 00:56:51 +02:00
stanley lieber 424e9d1636 fortunes: etymology: various 2013-10-25 14:46:35 -04:00
cinap_lenrek 8cdade591e kernel: dont spawn closeprocs from closechanq
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-25 19:51:46 +02:00
cinap_lenrek c7c7e7ee2a kernel: disable freelist page caching for executables run from uncached mount
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-25 02:42:35 +02:00
cinap_lenrek b66c4a6232 kernel: keep one closeproc arround in case we are unable to fork a new one
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-25 01:54:09 +02:00
cinap_lenrek 3142af56d8 newuser: make lib/profile read drawterms /dev/secstore when available 2013-10-23 23:44:25 +02:00
cinap_lenrek 43eed8d824 factotum: update rsa for ssh2 (sync with sources) 2013-10-22 18:55:00 +02:00
cinap_lenrek 95c865a497 acme: attempt to fix tag lines collapsing to zero height on window move (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-20 22:38:35 +02:00
cinap_lenrek 8ceb100fa4 nusb/ether: new driver interface with kernel inspired Block buffers
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-18 18:41:27 +02:00
cinap_lenrek 5bfaf253d3 keyboard(6): new <compose>x sequence, 21 bit runes. 2013-10-17 19:02:50 +02:00
cinap_lenrek 46f5ac0cd4 html2ms: fix compiler warning for debug code 2013-10-17 18:50:46 +02:00
cinap_lenrek 1015ae8ea8 kbdfs: implement <compoxe>x to enter variable length unicode as suggested by 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-17 18:39:44 +02:00
cinap_lenrek c501fe6936 factotum: fix mschap password (utf-8 to utf-16) conversion
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-17 15:31:07 +02:00
cinap_lenrek 0b3ad2b562 libc: updated acid files for 21 bit rune change 2013-10-17 12:53:01 +02:00
cinap_lenrek a5e9641906 change Rune from ushort to uint for to 21 bit runes (thanks mischief!)
big big change. requires rebuilding 8c first and then rebuild
everything.
2013-10-17 12:02:45 +02:00
cinap_lenrek e30f50283c 9p(2): correct usage for srvrelease()/srvacquire()
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-17 08:26:05 +02:00
cinap_lenrek 52fc6d50d4 nusb/ether: fix wrong size check causing odd sized packets to be discarded (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-16 16:42:40 +02:00
cinap_lenrek 965bb2d248 nusb/disk: handle blocking usb access with srv released
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-16 12:26:56 +02:00
cinap_lenrek 1cd4579cdc cwfs: fix putbuf(nil) in error case of cmd_check() 2013-10-16 07:21:12 +02:00
cinap_lenrek 87e187b09c fdisk: fix struct padding for amd64 (from erik quanstros fdisk-64-bit-table patch)
small little patch to help fdisk work properly on 64-bit machines.
sizeof(Table) is 4 bytes too big.
2013-10-16 04:34:58 +02:00
cinap_lenrek 0f994b1b09 aux/statusbar: emit final newline in textmode when finished
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-12 03:18:44 +02:00
cinap_lenrek 0460e4be7d cwfs: add checktag() call for cache bucket in dumpblock(), fix error strings 2013-10-11 10:17:17 +02:00
cinap_lenrek 5982c50fa4 cwfs: more checking for cfsdump(), cleanup Tsuper hack in cwrecur()
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-11 06:01:55 +02:00
cinap_lenrek 7f57d5d9c5 unzip/zipfs: handle optional data descriptor signature in trailer 2013-10-10 07:42:13 +02:00
cinap_lenrek 3b99a60154 mothra: handle <input type=image> 2013-10-10 23:59:19 +02:00
cinap_lenrek f72da96f28 exportfs: start filter in separate rendezvous group 2013-10-08 20:58:55 +02:00
cinap_lenrek bc18faccde libpanel: fix memory corruption bug in plinitentry(), add pl_erealloc() 2013-10-08 19:58:55 +02:00
cinap_lenrek 1c1bef69aa libc: remove doprint 2013-10-08 19:23:53 +02:00
cinap_lenrek 50e3c936fa ip/torrent: check piece offset, vlong cast 2013-10-08 08:12:05 +02:00
cinap_lenrek 3c2b09c9dc ip/torrent: more checking, backoff from piece on hash error 2013-10-08 07:55:26 +02:00
cinap_lenrek 8046234275 kbdfs: implement keyboard mouse buttons with /dev/mousein 2013-10-07 06:49:34 +02:00
cinap_lenrek 8aeddcf5bb vncs: create dummy /dev/mousein and /dev/mousectl files
this should prevent accidential fiddeling with the kernels
mouse driver.
2013-10-07 06:37:40 +02:00
cinap_lenrek 6c6bd66ed1 devmouse: differential handling of /dev/mousein buttons 2013-10-07 06:34:24 +02:00
cinap_lenrek ad1111cb3e exportfs: fix more filedescriptor leaks
just closing the pipe isnt enough, we have to
close all remaining file descriptors except sfd
before executing sub exportfs.
2013-10-07 23:18:37 +02:00
cinap_lenrek 6197758ec1 exportfs: fix openmount() rfork flags and filedescriptor leak, silence of on 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-06 04:42:46 +02:00
cinap_lenrek cb8eac54ed 5l: apply richard millers 5l-incfloat patch (from sources)
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-06 01:49:15 +02:00
cinap_lenrek 3da35f028f rio: gone windows gone wrong (fix missing recv(x->flushc, nil) when gone but request flushing) 2013-10-05 22:55:10 +02:00
cinap_lenrek 6187e219da mothra: avoid intermediate rc shell processes, use rfork(RFREND) to isolate rendezvous group 2013-10-04 21:11:56 +02:00
cinap_lenrek 0b42409cf4 page: avoid intermediate rc shell processes with using exec, move 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-04 21:10:33 +02:00
cinap_lenrek d160232747 mothra: run page in own note group, close unneeded filedescriptors after forking
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-04 16:08:19 +02:00
cinap_lenrek 8c1d4604db page: close stdout, reopen stdout/stderr for external viewer and removed 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-04 16:03:41 +02:00
cinap_lenrek 0be917ff4d libdraw: make newwindow() unmount the old window
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-04 15:57:05 +02:00
cinap_lenrek 40cf5957e0 add sdp(3) from sources 2013-10-04 13:52:22 +02:00
cinap_lenrek 9bcdfac3be merge 2013-10-04 02:27:53 +02:00
cinap_lenrek 5c4756974b page: dont tell rio our pid
$wsys might be from a remote system so pid will not work.

new rio errors out on mouse/cons instead.
2013-10-04 02:26:40 +02:00
cinap_lenrek fe03ec0e21 rio: gone windows, window resize, rectonscreen, goodrect
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-04 02:17:53 +02:00