Commit graph

4717 commits

Author SHA1 Message Date
cinap_lenrek
4b787e3205 bitsy/keyboard: do not rely on atoi() being able to parse hex 2015-08-03 14:52:07 +02:00
cinap_lenrek
d7f4ef7bbc libauthsrv: readnvram() use vlong for nvroff, parse $nvlen/$nvoff with strtol() instead of atoi() 2015-08-03 14:45:23 +02:00
cinap_lenrek
8aee1c5060 webcookies: use strtol() to parse HH:MM:SS
atoi() currently interprets leading zeros as octal (BUG!),
so use strtol with explicit base 10 avoiding the issue.
2015-08-03 14:28:16 +02:00
cinap_lenrek
fc77a2d3d3 aux/vga: dont rely on atoi() being able to parse hex 2015-08-03 14:24:29 +02:00
cinap_lenrek
d5d6724805 devenv: simplify envremove(), cleanup 2015-08-03 22:08:10 +02:00
cinap_lenrek
37e4ce0ea7 devenv: avoid indirection, keep Evalue's allocated in an array
avoid the indirection for envlookup() by allocating Evalue structs
together in an array. remove unused link field in Evalue.
2015-08-02 21:39:33 +02:00
cinap_lenrek
29a53a52fd 1c,2c,7c,kc,vc: honor suppress condition for outstring() in swt.c 2015-08-02 14:52:54 +02:00
cinap_lenrek
8234f9d906 ipv6on: fix search for ip attribute (thanks kenji arisawa) 2015-08-02 14:48:53 +02:00
cinap_lenrek
1f3c43c017 pc, pc64: set *bootscreen= when framebuffer changes
add bootscreenconf(VGAscr *) function, that is called whenever
the framebuffer configuration is changed by devvga. that way, we
can pass the current setting of the framebuffer to the new
kernel when using /dev/reboot.
2015-08-02 07:32:49 +02:00
cinap_lenrek
27445c5768 kernel: cleanup qlock.c to use nil instead of 0 for pointers 2015-08-02 05:36:35 +02:00
cinap_lenrek
dd96b1d965 mothra: show <source> tag within <video>/<audio> tags 2015-08-01 16:38:55 +02:00
cinap_lenrek
660f54b198 mothra: fix nil crash on missing name/src attributes for source/video/audio/embed/frame/iframe 2015-08-01 16:18:02 +02:00
cinap_lenrek
71c57070c6 mothra: enable compiler warnings and type checking, cleanup 2015-08-01 14:55:33 +02:00
cinap_lenrek
fe5ede9792 mothra: fix double button hit
dolink() was hitting the button a second time!
2015-08-01 13:53:16 +02:00
cinap_lenrek
b408b386e1 mothra: cleanup url handling 2015-08-01 13:06:24 +02:00
cinap_lenrek
d6fb42f496 mothra: fix selurl() 2015-08-01 12:51:52 +02:00
cinap_lenrek
0140f20af4 jpg/ico: fix mkfile 2015-08-01 11:56:01 +02:00
cinap_lenrek
815c2ba22b mothra: support for inline images and <image> tag 2015-08-01 11:20:28 +02:00
cinap_lenrek
f62a2efb7a webcookies: create lockfile with 0600 permission, always use create() with perm 0600 for rewriting jar 2015-08-01 03:18:44 +02:00
cinap_lenrek
f42a7ade70 bio(2): Bterm() closes filedescriptor for Bfdopen() allocated buffer 2015-08-01 03:16:35 +02:00
cinap_lenrek
69daa9fd96 jpg/ico: support for embedded png icons 2015-07-31 12:58:58 +02:00
cinap_lenrek
18169e03de webcookies: fix implicit path cookie handling
parsecookie() used to inplace modify the request path
for implicit path (to get the directory from path) and
also did it wrong. now have a static copy and do not
remove the last slash.
2015-07-31 01:10:53 +02:00
cinap_lenrek
9d59fb28cf aux/vga: sandybridge support for igfx (unfinished)
as usual, the dude with the hardware vanished so i cannot
develop this further. setting mode worked the last time
but only when using vesa before, so some bits are still
missing. commiting this as it is so i dont have to start
from scratch once we have hardware again.
2015-07-31 23:03:45 +02:00
cinap_lenrek
34e2e047cc iostats: add -C to usage 2015-07-31 22:51:52 +02:00
cinap_lenrek
ee86d3cb52 devmnt: fix mntcache()
make sure mntcache() wont cache data beyond what was read from
the block list.
2015-07-30 21:00:13 +02:00
cinap_lenrek
b86a12149a games/doom: fix config file never being loaded or saved (thanks qu7uux)
basedefault[], the default path to the config file, is never set and remains
blank, unless -config %s is used (cd d_main.c). when games/doom attempts to
open the file, it silently fails and no config file is ever read or written.
this patch sets basedefault to a file in whatever directory a valid wad is
found in I_IdentifyWAD().
2015-07-30 20:30:47 +02:00
cinap_lenrek
25396d3ffd games/doom: display correct message on medkit pickup when health low (thanks qu7uux)
due to a typo in p_inter.c:P_TouchSpecialThing(), a message that is supposed
to show up when the player picks up a medikit while low on health (< 25), is
never displayed. the check for low health is done after the health is already
increased, so the condition is never true.
a cosmetic bug in all old doom executables that also seems interesting to fix.
to test: compare message displayed when picking up a medikit with and without
the patch
2015-07-30 20:02:23 +02:00
cinap_lenrek
5161442171 games/doom: fix ouchface not being shown when it should be (thanks qu7uux)
due to a typo in st_stuff.c:ST_updateFaceWidget(), doomguy mistakenly never
looks shocked when taking more than 20 damage, but rather when he gains more
than 20 health while being hit.
this is a cosmetic bug in all old versions of doom's executables, but it seems
appropriate to fix.
simple test: fire a rocket at a nearby wall, taking enough damage.
2015-07-30 20:00:43 +02:00
cinap_lenrek
b579acef97 games/doom: add bug compatibility switches (thanks qu7uux)
these emulate bugs present in select versions of the released doom executables.
they are required to correctly play demos recorded with these but affect the
gameplay, so should be otherwise disabled.

-nobounce: lost souls don't bounce off floors and ceilings like intended due
to a misplaced check; this is fixed from ultimate doom on, but doom and doom2
are still affected.

-noztele: in final doom 1.9, things' altitude was erroneously not set to the
floor's height after teleporting. this was fixed in later versions of the
executables.

examples of desyncing demos:
(plutonia.wad, without -noztele) http://doomedsda.us/lmps/946/2/30pl2646.zip
(doom2.wad, without -nobounce) http://doomedsda.us/lmps/945/3/30nm2939.zip
2015-07-30 19:55:13 +02:00
cinap_lenrek
f899b2fe3c games/doom: fix switch textures swapping in ultimate doom (thansk qu7uux)
gamemode is set according to the name of the main wad (cf. d_main.c), i.e.:
- doom1.wad: (shareware doom1, ep1 only) gamemode == shareware
- doom.wad: (registered doom1, ep1-3) gamemode == registered
- doomu.wad: (ultimate doom, ep1-4) gamemode == retail
- doom2.wad, plutonia.wad, tnt.wad: gamemode == commercial
most doom.wad's distributed online are, in fact, ultimate doom.
if your ultimate doom wad is correctly named doomu.wad, some switches in
episodes 2-4 won't swap their texture when toggled, because
p_switch.c:P_InitSwitchList() is only checking for registered doom1.

easy way to test: demo2 in either registered or ultimate doom: the player flips
a switch right at the beginning of the demo; if the main wad is called
doomu.wad, the switch won't change its texture.
% games/doom -playdemo demo2
if you rename the wad to doom.wad or alter d_main.c:IdentifyVersion, the switch
will swap its texture like it should.
2015-07-30 19:51:11 +02:00
cinap_lenrek
fdb1698791 games/doom: implement filelength() (thanks quux)
this function is used when playing demos from external lumps. the game just
exits without this patch.
to test this, download a demo lump from somewhere, and play it with -playdemo %s
where %s is the file's name, without the .lmp extension:

(note that this one is a doom 2 demo, so it requires doom2.wad)
% hget http://doomedsda.us/lmps/945/3/30nm2939.zip | unzip -sv
extracting 30nm2939.LMP
extracting 30nm2939.txt
% mv 30nm2939.LMP 30nm2939.lmp	# checking for a lump filename is case sensitive
% games/doom -playdemo 30nm2939

the game exits when the demo ends. also, note that this demo will desync on
map06 (the crusher), because of an unrelated bug (that's another patch :>)

note: filelength() returns vlong, but file lengths for doom lumps are ints.
however, this might be used elsewhere (networking), so i'd leave it this way.
2015-07-29 14:51:00 +02:00
cinap_lenrek
c4ae1a7435 etheriwl: add pciid for Centrino Wireless-N 1000 (thanks qu7uux)
card seems to work fine with just this.
http://sysinfo.9front.org/src/125/body
2015-07-29 14:17:55 +02:00
cinap_lenrek
a8735c02b6 webcookies: fix isdomainmatch() (fixes livejournal.com login)
when cookie is domain=example.com, then we implicitely add
dot to the domain name, which made us reject the cookie as the
request domain "example.com" != ".example.com". fix by making
isdomainmatch() skip the implicit dot in pattern before string
comparsion.
2015-07-29 08:50:53 +02:00
cinap_lenrek
34f3df213c ratrace: avoid blank line prints, make writer the parent
when there where multiple syscalls returning out of order,
it would print blank lines between the exits. avoid this
by remembering if the last char written was a newline and
conditionally insert newline on out of order return.

sometimes, ratrace would return before all messages have
been printed. make the writer process the parent so ratrace
wont exit until all readers are finished avoiding the
problem.
2015-07-29 05:19:24 +02:00
cinap_lenrek
059c85dd75 ratrace: various improvements
error handling, serialize exits, close reader filedescriptors,
fix channel types, embedd the string buffer in the Msg struct.
2015-07-29 03:53:11 +02:00
cinap_lenrek
d48dcf08aa cc: provide fake realloc() for getenv() 2015-07-28 12:06:29 +02:00
cinap_lenrek
20da5094d9 kernel: remove obsolete comment from namec() 2015-07-28 10:01:05 +02:00
cinap_lenrek
4bd9ed80c3 kernel: export mntattach() from devmnt.c avoiding bogus struct passing and special case in namec()
we already export mntauth() and mntversion(), so why not stop
being sneaky and just export mntattach() so bindmount() and
devshr can just call it directly with proper arguments being
checked.

we can also avoid handling #M attach specially in namec()
by having the devmnt's attach function do error(Enoattach).
2015-07-28 09:52:21 +02:00
cinap_lenrek
311a99e23b ether79c970: set mbps for proper queue sizes, assume gigabit ethernet for vmware 2015-07-28 03:30:21 +02:00
cinap_lenrek
b506c6489b lib9p: return "write prohibited" error as documented in 9p(2) when srv->write is nil (thanks silasm) 2015-07-28 01:24:02 +02:00
cinap_lenrek
652a641704 kernel: clunk the cache when removing cache flag on a channel, only call cread() chen CCACHE flag is set
to avoid double caching, attachimage() and setswapchan() clear
the CCACHE flag on the channel but this keeps the read ahread
state of the cache arround (until the chan gets closed), so also
call cclunk() to detach the mcp and free the read ahead state.

avoid the call to cread() when CCACHE flag is clear.
2015-07-27 06:42:41 +02:00
cinap_lenrek
ff494b954f devmnt: use c->iounit instead of msize-IOHDRSZ to chunk reads and writes, reduce memory overhead for Mntrpc, mntalloc lock
use the actual iounit returned from Ropen/Rcreate to chunk reads and writes
instead of c->mux->msize-IOHDRSZ.

dont preallocate the rpc buffers to msize, most 9p requests are rather small
(except Twrite of course). so we allocate the buffer on demand in mountio()
with some rounding to avoid frequent reallocations.

avoid malloc()/free() while holding mntalloc lock.
2015-07-27 04:33:46 +02:00
cinap_lenrek
23f7840056 devmnt: dont reset readahead window when requested offset still has pending rpc 2015-07-26 13:55:51 +02:00
cinap_lenrek
6617c63a37 kernel: pipelined read ahead for the mount cache
this changes devmnt adding mntrahread() function and some helpers
for it to do pipelined sequential read ahead for the mount cache.

basically, cread() calls mntrahread() with Mntrah structure and it
figures out if we where reading sequentially and if thats the case
issues reads of c->iounit size in advance.

the read ahead state (Mntrah) is kept in the mount cache so we can
handle (read ahead) cache invalidation in the presence of writes.
2015-07-26 05:43:26 +02:00
cinap_lenrek
918cb76040 page: fix deadlock, nil vs 0 for pointer comparsion, cleanup 2015-07-24 11:45:48 +02:00
cinap_lenrek
9e196fd0e2 libsec: increase handshake message buffer size (MaxChunk) to 32K (thanks sl)
_sl → webfs doesn't like packetfire.org: '/mnt/web/body' 0 No status tls: local handshake message too long 30781 16384
2015-07-24 06:18:59 +02:00
stanley lieber
5635ac3f68 fortunes: go away. 2015-07-22 21:35:50 -04:00
cinap_lenrek
ab4b7c2573 ip/httpfile: fix flushes, fix concurrent reads, set error string
Tflush handling was wrong, we cannot respond to the old
request if we have not actually removed the req from the
in progress block queue.

when reads are issued concurrently, we have to set b->len
before the block is inserted into the inprogress list.
otherwise findblock() is unable to find it and no requests
can be queued on the block. this caused the same offset
to be downloaded multiple times.

set the errstr in getrange() so in case of an error, we dont
get some random previous error string.
2015-07-23 03:24:39 +02:00
cinap_lenrek
497daed116 kernel: make sure fd is in range in fdclose()
as the Fgrp can be shared with other processes, we have to
recheck the fd index after locking the Fgrp in fdclose()
to make sure not to read beyond the bounds of the fd array.
2015-07-23 22:56:49 +02:00
cinap_lenrek
323184d775 kernel: simplify syspipe() 2015-07-23 22:34:58 +02:00