make send_callback_request() and friends take a result handler.
authorAndre Noll <maan@systemlinux.org>
Mon, 24 Mar 2008 14:20:28 +0000 (15:20 +0100)
committerAndre Noll <maan@systemlinux.org>
Mon, 24 Mar 2008 14:20:28 +0000 (15:20 +0100)
commit0a3b9b83c371c71e41ba8470affef0fa0a7fba08
treefcfeaef9000cabc0278aef5578ed068e035996fc
parent6d5a56308a3a833b08ae0e3692b794fb6122ea60
make send_callback_request() and friends take a result handler.

This is a first step to overcome a design flaw in the afs
callback code: The output of the commands is currently
stored in an osl object that is copied to a shared memory
area whose shmid is passed back to the command handler
via the local socket. This method limits the size of the
command output to the maximal size that can be stored in
a shared memory area which is not enough to hold large
outputs like that of ls -c.

This patch allows the command handlers to pass a result handler
function instead of an osl object. This result handler is
called for each shared memory area that gets sent through the
local socket.

Further patches will change the callbacks so that they pass
multiple result buffers instead of returning a single buffer.
This has the additional advantage that partial command output
produced by the callback can be sent even before the callback
returns. This parital output is seen immediately by the command
handler.
afs.c
afs.h
aft.c
attribute.c
blob.c
fsck.c
mood.c
osl.c
osl.h
playlist.c