Commit graph

828 commits

Author SHA1 Message Date
cinap_lenrek 08cd0ea8d4 hjfs: fix getfree() races, fix very rare buf leak in deltraverse() 2012-11-16 22:57:43 +01:00
cinap_lenrek 84ddc4cd4b hjfs: fix potential deadlock in putloc() 2012-11-16 19:55:58 +01:00
cinap_lenrek b9bf9f1d54 hjfs: dentry qid checking, prevent newentry() from allocating already in use slot
always check if the directory entry qid from the loc still
matches the one on disk before doing anything. helps
catching bugs and is basically equivalent to what cwfs does
with its checktag.

make a haveloc() check in newentry() to make sure we dont
allocate a file slot thats still in use, but deleted.
this seems to fix the NPROC>1 build problems.
2012-11-16 13:42:45 +01:00
cinap_lenrek b28f60cdd3 add C-Keens tls-client-auth
This patch adds client TLS authentication to libsec in compliance with
rfc 4346.

A new -c flag has been introduced for tlsclient allowing the user to
specify a certificate in pem(8) format which will be provided to the
server upon request.

A -D debug flag has been introduced to enable debugging output.

The patch has been tested against OpenSSL 0.9.7j 04 May 2006.

It exists today because of the great (debugging) help and insight
provided by Matthias Bauer.

TODOs:

- specification of a certain client key in factotum is not possible at
	the moment
- tlssrv should support this too

These will get added in another patch.

The first try to submit this patch failed due to a network error.
Sorry for the duplication!

Kind regards,

Christian
2012-11-15 19:32:53 +01:00
cinap_lenrek df829e6c07 hjfs: fix more missing dirty marks, error handling, cleanup 2012-11-15 16:43:35 +01:00
cinap_lenrek 7ced300071 hjfs: fix missing BDELWRI mark in newentry() 2012-11-15 09:22:13 +01:00
cinap_lenrek 00daf47137 vt: on resize, restore screen using history buffer 2012-11-10 07:56:39 +01:00
cinap_lenrek 0ad8548b70 rio: fix auto compmplete candidates getting read back without prompt 2012-11-10 02:30:17 +01:00
cinap_lenrek 0df3f94ecd kbdfs: send interrupt note in separate proc to prevent potential deadlock 2012-11-09 17:39:35 +01:00
cinap_lenrek 663aff7fb2 kbdfs: kill input buffer on interrupt key 2012-11-09 17:09:20 +01:00
cinap_lenrek 01d28b9d89 pstree: manpage, print pid in first column, bio, silly walks 2012-11-08 00:06:54 +01:00
cinap_lenrek 52f71a17da pstree: sort children, fix missing close, strip newline from args 2012-11-07 21:14:41 +01:00
cinap_lenrek 479ea049e3 remove tty(1) command as kbdfs now handles interrupts 2012-11-07 19:04:26 +01:00
cinap_lenrek eb96892d85 merge 2012-11-06 17:21:15 +01:00
cinap_lenrek 599dd1c34f make interrupt key (Del) just work in the console
these changes make the interrupt key available in the
console (before rio is started).

kbdfs: will now send a "interrupt" note to its invoking
process group in cooked mode.

bootrc: is now prepared to handle interrupts, mainly to
not accidently spawn a new bootargs prompt.

init: forwards the interrupt to the cpurc/termrc pgrp.

vncs: shields itself from kbdfs notegroup so interrrupt
wont kill the whole vnc session.
2012-11-06 17:19:41 +01:00
iru 2dbc08a8bc Oops, make exponential function work 2012-11-05 15:47:13 -02:00
iru c8ea1cd8d7 Add exponential function. 2012-11-05 15:45:10 -02:00
cinap_lenrek 120412a6a2 wikifmt: fix trailing _ in heading name reference 2012-11-05 03:16:13 +01:00
cinap_lenrek 72679fd6cc add google code wiki formatter aux/wikifmt 2012-11-05 02:39:33 +01:00
cinap_lenrek c0c2660f74 add directory-examining recursive compare derp(1) 2012-11-02 20:28:12 +01:00
cinap_lenrek 5cb6be9ce3 hgfs: fix metaheader offset for log 2012-11-02 03:31:55 +01:00
cinap_lenrek ce59d96ee3 hjfs: fix group permissions for /adm and /adm/users for init 2012-11-01 16:34:33 +01:00
cinap_lenrek 4b2a1c104b hgfs: strip metadata header, bogus .n walks 2012-11-01 03:42:24 +01:00
cinap_lenrek 30d54cc055 rio: fix topping a hidden window does not activate the foreground font color 2012-10-30 23:18:53 +01:00
cinap_lenrek 559d2fc835 hgfs: work in progress stuff... 2012-10-29 22:00:38 +01:00
cinap_lenrek 6812f4679b hgfs: more work in progress stuff 2012-10-28 23:18:38 +02:00
cinap_lenrek 0372073ee8 file: paq, troff, hp pcl, lua, vcard 2012-10-26 16:06:17 +02:00
cinap_lenrek 3184aeeb07 fix permissiosn for upas and telco rc script 2012-10-25 18:51:55 +02:00
cinap_lenrek c4bfecc265 fix permissions for auth/(status enable disable) 2012-10-25 18:25:31 +02:00
cinap_lenrek da759a7fce realemu: fix REP prefix condition 2012-10-25 06:55:41 +02:00
cinap_lenrek e63f13a8de /sys/src/cmd/mk*: add $CLEANFILES to clean and nuke targets 2012-10-25 01:58:43 +02:00
cinap_lenrek 5741e1ecfd hgfs: add wip debug command 2012-10-25 01:05:39 +02:00
cinap_lenrek a0b737ad35 create bio file (/adm/keys.who) if it doesnt exist 2012-10-23 08:55:26 +02:00
cinap_lenrek 4fdc7dbe9c fmt: improved version using less memory
functional identical, but uses different data structure.
instead of reading all words into memory, we read and
tokenize on demand keeping a simple linked list of words
to conume by further calls of getword(). once the list
is empty we read the next line, tokenize it and fill the
list up again. so we only need as mutch memory to hold
all the words of the longest line.
2012-10-23 02:08:35 +02:00
cinap_lenrek 9ea332aac1 merge 2012-10-22 07:11:51 +02:00
cinap_lenrek 99216e0129 rio: fix deadlock
we can't really change the Window *input from
outside the winctl() thread. the problem is
that the window might end up reading the
mouse (scroll, select) which makes the w->cctl
channel block once you try to talk to the
window again (from the mousethread). this also
means we have to coordinate window switchin
from the winctl proc waiting for the current
window to release the input and then take over.
thers a new Winctl message Topped that basically
does that now using Wakeup and a chan to
synchronize.
2012-10-22 07:03:47 +02:00
stanley lieber 761f673032 pkg/list: handle werc directory listings 2012-10-21 21:44:53 -05:00
cinap_lenrek 54d2424a7c rio: fix cursor for sizing nocurrent window
wrepaint() used to also set the cursor for the window
if it was current. this reset the corner cursors on
bandresize when one tried to attempt to size a window
that was not current. make repaint just repaint the
window and border. set cursor explicitely for hold
toggle.
2012-10-21 18:27:43 +02:00
cinap_lenrek bf13408df2 rio: various fixes
use notefd in killprocs() insead of postnote() as the process
might'v exited. the notefd stays valid even if the particular
process it was originaly opend on exited. remove the Window.pid
field as its not needed.

dup() the notefd for interruptproc as the window might'v gone
away and closed the notefd file descriptor, resulting in us
writing to the wrong thing.

use snprint() instead of sprint() for safety.

fix bogus debug fprint().

add missing "visible" flushimage() after Reshaped winctl message
got handled. i assumed wsetname()/nameimage() would be enough,
it but does a invisible flush so softscreen doesnt get updated
immidiately.

do not make allocimage() failure in scrtemps() fatal. it wont
draw the window properly, but it gives the user a chance to
delete some windows to recover.
2012-10-21 17:00:12 +02:00
cinap_lenrek 8057e48ae1 rio: colors, flicker reduction, refresh after mouse close
allocate all the colors in iconinit(), remove unused ones
like grey. rename darkgrey to paletextcol because thats
what it is used for. new approach to window image allocation.
we allocate the window with DNofill and let the window fill
itself. this reduces flickering especially with (-b) option
and makes rio resize feel a lot faster.

wrefresh() didnt work. now fixed.
2012-10-20 15:51:32 +02:00
cinap_lenrek c33732a530 rio: wtop() after resize fix
wtop() checked w->topped == topped as a fast exit. if you
had the top most window not being current (== input) which
can happen when you delete the current window, then wtop would
after resize would not make the window current because it
is already top topmost one. wtopme() and wcurrent() both are
non-ops when window is already the topmost or window is already
current, so remove the check as its not needed. also topping
the window feels less sluggish.
2012-10-20 10:38:11 +02:00
cinap_lenrek 624c9f5112 rio: preserve window z-order on resize, fix race conditions
sort the window array by w->topped before reshaping all
windows. this preserves the window z-order.

remove implicit focus change on reshape/move. it called
wcurrent() in wtcl thread which might send a wctl message
to itself, bad... also we might not want to change focus
on reshape, like for the rio resize. so we set the input
window explicitely in all call sites.

window deletion was racy. wclosewin() destroys w->i, but
it is called outside the wctl thread so it might just
free the image under libframe doing some text selection.
this is fixed the following: add wclunk() function,
which basically just marks the window as deleted and
removes the reference from the window[] and hidden[]
arrays. (called on wclose() when refcount drops to
zero). wclosewin() now just frees the image and is only
called from the wctl thread on exit or when handing
the Deleted message.

get a reference to the window when doing sweeping or
moving as the filesystem might just clunk it under
us and we might end up sending wctl messages to
a Exited window.

wctl resize message has to fail if the window is not
current as it might be hidden... would also be annoying.
2012-10-20 22:42:01 +02:00
cinap_lenrek 558b9558d4 more generic way to deal with image chan conversion for resize/resample/rotate
this is to catch crazy color channels like k8a8 and the 15/16 bit
ones and CMAP. basically, just convert to RGBA32 or RGB24 depending
on if it has an alpha channel.
2012-10-18 20:17:12 +02:00
cinap_lenrek 0a3eb7d6b1 rio: copy window labels for menu3
as the menu is displayed, the window might go away or change its
label causing menuhit() to dereference bad memory. just strdup()
the labels before passing to menu3str to prevent accidents.
2012-10-18 18:51:32 +02:00
cinap_lenrek 909efb22c5 /sys/src/cmd/auth/mkfile: fix lib.$O.a race 2012-10-18 03:49:40 +02:00
cinap_lenrek 45c0c41280 urlencode: fix /fd/0 use 2012-10-13 15:35:39 +02:00
cinap_lenrek 5cddd21627 cifsd: fix 64bit fileoffset bug
the low 32bit word got *sign-extended* on vlong conversion. m(
2012-10-11 21:38:54 +02:00
cinap_lenrek d9394b0d87 6in4: fix exit status, less strict src filtering, logging (import from sources) 2012-10-11 13:21:30 +02:00
cinap_lenrek ca9f286b6c vncv: cleanup 2012-10-09 16:22:19 +02:00
cinap_lenrek 6f2ea28817 vncv: fork tcs with RFNOWAIT as we dont collect wait message 2012-10-09 15:26:45 +02:00