<feed xmlns='http://www.w3.org/2005/Atom'>
<title>paraslash/attribute.c, branch v0.3</title>
<subtitle>paraslash - network audio streaming tools</subtitle>
<id>https://git.tue.mpg.de/cgit/paraslash/atom?h=v0.3</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/paraslash/atom?h=v0.3'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/'/>
<updated>2009-07-11T19:01:27Z</updated>
<entry>
<title>Fix com_init() in case arguments are given.</title>
<updated>2009-07-11T19:01:27Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-07-11T19:01:27Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=133cbbe403c850da3efdaa6dcfc0cf55145d0aa2'/>
<id>urn:sha1:133cbbe403c850da3efdaa6dcfc0cf55145d0aa2</id>
<content type='text'>
As the -&gt;name field of struct afs_table was only initialized in the afs process,
com_init(), which gets forked from the server process, did not see the table
names and would segfault due to a NULL pointer dereference if table names
were given as arguments.

Fix it by initializing the -&gt;name fields in the definition of the afs_tables array.

This bug was introduced in commit 53d503ce back in 2007...
</content>
</entry>
<entry>
<title>Fix various dead stores found by the clang static analyzer.</title>
<updated>2009-03-18T22:05:22Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-03-18T22:05:22Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=31233289bedbb596b98eadd411bc6aac54d4ed69'/>
<id>urn:sha1:31233289bedbb596b98eadd411bc6aac54d4ed69</id>
<content type='text'>
</content>
</entry>
<entry>
<title>attribute.c: Trivial docu fix.</title>
<updated>2009-02-04T21:32:34Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-02-04T21:32:34Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=d9c8f984833cc51d5570987462558b2cfb7588b8'/>
<id>urn:sha1:d9c8f984833cc51d5570987462558b2cfb7588b8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Various small cleanups and documentation improvements.</title>
<updated>2009-01-11T23:43:21Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-01-11T23:43:21Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=8eb5a15bfcc068e8d2504bb84b14455e9fc7c3ba'/>
<id>urn:sha1:8eb5a15bfcc068e8d2504bb84b14455e9fc7c3ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change year of copyright from 2008 to 2009.</title>
<updated>2009-01-10T00:53:18Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2009-01-10T00:53:18Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=6bdac07456cb5872f824028912d1049883a9c21f'/>
<id>urn:sha1:6bdac07456cb5872f824028912d1049883a9c21f</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace MAX, MIN, ABS macros by type-checking variants.</title>
<updated>2008-12-01T15:51:37Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2008-12-01T15:51:37Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=3062b9da4f71ea236f46efda9a51add1b15cda1a'/>
<id>urn:sha1:3062b9da4f71ea236f46efda9a51add1b15cda1a</id>
<content type='text'>
Taken from the Linux kernel. These macros also evaluate each parameter
only once. Fix up all resulting gcc warnings.</content>
</entry>
<entry>
<title>Fix -Wdeclaration-after-statement warnings.</title>
<updated>2008-11-29T21:20:47Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2008-11-29T21:20:47Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=97e3deb06e0dd2e63520c2dc0736e753e1276fde'/>
<id>urn:sha1:97e3deb06e0dd2e63520c2dc0736e753e1276fde</id>
<content type='text'>
This option is new in gcc-4, so do not activate it by default.
</content>
</entry>
<entry>
<title>Fix lsatt command.</title>
<updated>2008-03-29T11:42:54Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2008-03-29T11:42:54Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=a5df177eedf4f95204a45a7e7dc683b1e3f828bc'/>
<id>urn:sha1:a5df177eedf4f95204a45a7e7dc683b1e3f828bc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Complete the afs callback conversion.</title>
<updated>2008-03-24T23:18:01Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2008-03-24T23:18:01Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=49bd626084bf5f48e4d80075258b6da4703752cf'/>
<id>urn:sha1:49bd626084bf5f48e4d80075258b6da4703752cf</id>
<content type='text'>
This makes it possible for the callbacks to pass a partial
result buffer through the command handler &lt;-&gt; callback socket.
This removes a serious limitation of previous paraslash-0.3.x
versions: As callbacks could not send data directly to the
command handler they had to store the full command output in
a buffer. This buffer was sent to the command handler after the
callback returns.

The problem with this approach is that it caused the callbacks
to  allocate large amounts of memory. If that amount exceeded what
can be stored in a shared memory area (32MB on Linux), the command
even failed.

The fix consists of adding a max_size field and a max_size_handler
function pointer to the para_buffer structure. Whenever para_printf()
would need to allocate more memory than specified by max_size, it
calls the max_size_handler which is supposed to send out the data.
para_printf then prints the requested data into the old but now
empty buffer.

Almost all users set the max_size_handler to pass_buffer_as_shm(),
a helper function implemented in afs.c that copies the buffer to
a shared memory area and sends its identifier through the socket.
</content>
</entry>
<entry>
<title>make send_callback_request() and friends take a result handler.</title>
<updated>2008-03-24T14:20:28Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@systemlinux.org</email>
</author>
<published>2008-03-24T14:20:28Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=0a3b9b83c371c71e41ba8470affef0fa0a7fba08'/>
<id>urn:sha1:0a3b9b83c371c71e41ba8470affef0fa0a7fba08</id>
<content type='text'>
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.
</content>
</entry>
</feed>
