paraslash.git
12 years agoIntroduce pass_object_as_shm().
Andre Noll [Mon, 24 Mar 2008 15:04:21 +0000 (16:04 +0100)]
Introduce pass_object_as_shm().

This singles out the code for passing data from the callback
to the command handler. The plan is to change the callbacks
so that they call this function whenever the result buffer
is too large to fit into a shared memory area.

12 years agomake send_callback_request() and friends take a result handler.
Andre Noll [Mon, 24 Mar 2008 14:20:28 +0000 (15:20 +0100)]
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.

12 years agoFix use of uninitialized afhi->header_len.
Andre Noll [Wed, 19 Mar 2008 20:51:46 +0000 (21:51 +0100)]
Fix use of uninitialized afhi->header_len.

In aft's add_one_audio_file() we set the header len and
the header offset to zero so that the get_file_info()
functions of the audio format handlers that do not use
headers don't need to zero these fields.

However, this is not the right place to do that as para_afh
also calls get_file_info() via compute_afhi() but missed to
clear these fields which leads to a segmentation fault.

Fix this bug by moving the zeroing to compute_afhi().

12 years agoFix compilation of para_fade in certain cases.
Andre Noll [Mon, 17 Mar 2008 09:49:41 +0000 (10:49 +0100)]
Fix compilation of para_fade in certain cases.

We really need to do the _cmdline_objs and _errlist_objs dance
in configure.ac.

Also, fix the configure warning message in case linux/soundcard.h
was found but alsa wasn't, and remove the object list of para_fsck
from Makefile.in.

12 years agoMerge commit 'remotes/meins/master'
Andre Noll [Mon, 17 Mar 2008 08:43:33 +0000 (09:43 +0100)]
Merge commit 'remotes/meins/master'

12 years agofsck.c: Fix typo.
Andre Noll [Mon, 17 Mar 2008 08:41:08 +0000 (09:41 +0100)]
fsck.c: Fix typo.

Spotted and fixed by Gerrit Renker.

12 years agosignal.c: Cosmetics.
Andre Noll [Mon, 17 Mar 2008 06:40:48 +0000 (07:40 +0100)]
signal.c: Cosmetics.

12 years agoKill unused error code SIGNAL_READ.
Andre Noll [Mon, 17 Mar 2008 06:36:40 +0000 (07:36 +0100)]
Kill unused error code SIGNAL_READ.

12 years agoFix para_next_signal().
Andre Noll [Mon, 17 Mar 2008 06:34:29 +0000 (07:34 +0100)]
Fix para_next_signal().

The function returned zero in case of errors..

12 years agoLet the daemon option depend on the logfile option.
Andre Noll [Sun, 16 Mar 2008 13:16:17 +0000 (14:16 +0100)]
Let the daemon option depend on the logfile option.

This allows to remove the check in server.c.

12 years agoMore detailed and much nicer para_server man page.
Andre Noll [Sun, 16 Mar 2008 13:12:11 +0000 (14:12 +0100)]
More detailed and much nicer para_server man page.

12 years agoafh.c: Use write_all() instead of write().
Andre Noll [Sat, 15 Mar 2008 18:12:32 +0000 (19:12 +0100)]
afh.c: Use write_all() instead of write().

12 years agoMove write_all() from net.c to fd.c.
Andre Noll [Sat, 15 Mar 2008 18:09:53 +0000 (19:09 +0100)]
Move write_all() from net.c to fd.c.

This way it can be used also for programs that don't need
networking.

12 years agonet.c: Rename sendall() to write_all().
Andre Noll [Sat, 15 Mar 2008 18:06:22 +0000 (19:06 +0100)]
net.c: Rename sendall() to write_all().

It actually uses write(), not send().

12 years agoImplement streaming mode for para_afh.
Andre Noll [Sat, 15 Mar 2008 18:03:18 +0000 (19:03 +0100)]
Implement streaming mode for para_afh.

12 years agoMove the get_chunk and the get_header functions from vss.c to afh.c.
Andre Noll [Sat, 15 Mar 2008 18:02:27 +0000 (19:02 +0100)]
Move the get_chunk and the get_header functions from vss.c to afh.c.

Also move compute_chunk_time() to time.c.

12 years agoAdd missing files for para_afh.
Andre Noll [Fri, 14 Mar 2008 20:29:24 +0000 (21:29 +0100)]
Add missing files for para_afh.

It's too easy to miss with git..

12 years agoMerge commit 'remotes/meins/master'
Andre Noll [Fri, 14 Mar 2008 09:01:47 +0000 (10:01 +0100)]
Merge commit 'remotes/meins/master'

12 years agoAdd para_afh to web pages.
Andre Noll [Fri, 14 Mar 2008 08:33:37 +0000 (09:33 +0100)]
Add para_afh to web pages.

12 years agoGet rid of E_BAD_AUDIO_FILE_SUFFIX.
Andre Noll [Thu, 13 Mar 2008 23:16:54 +0000 (00:16 +0100)]
Get rid of E_BAD_AUDIO_FILE_SUFFIX.

It's value was never used.

12 years agoImplement para_afh: The stand-alone audio file handler.
Andre Noll [Thu, 13 Mar 2008 23:11:12 +0000 (00:11 +0100)]
Implement para_afh: The stand-alone audio file handler.

12 years agoaft.c: Move definition of "buf" down a bit.
Andre Noll [Thu, 13 Mar 2008 23:07:20 +0000 (00:07 +0100)]
aft.c: Move definition of "buf" down a bit.

12 years agoosl.c: Simplify comment.
Andre Noll [Thu, 13 Mar 2008 21:33:03 +0000 (22:33 +0100)]
osl.c: Simplify comment.

12 years agoafs.c: Cosmetic comment cleanup.
Andre Noll [Thu, 13 Mar 2008 21:32:14 +0000 (22:32 +0100)]
afs.c: Cosmetic comment cleanup.

12 years agoconfigure.ac: para_audiod is optional.
Andre Noll [Thu, 13 Mar 2008 21:08:33 +0000 (22:08 +0100)]
configure.ac: para_audiod is optional.

So add it only to all_executables if at least one audio
format is supported.

12 years agoFix documentation of select command.
Andre Noll [Thu, 13 Mar 2008 15:49:58 +0000 (16:49 +0100)]
Fix documentation of select command.

As pointed out by Gerrit Renker, the help text still used the old
syntax that changed in

f010019b9e89b814699bd6a94edaa8cde9cbd45c

12 years agoAdd new ls option: -lc to print out the chunk table.
Andre Noll [Wed, 12 Mar 2008 21:57:24 +0000 (22:57 +0100)]
Add new ls option: -lc to print out the chunk table.

12 years agonew codename, reset version to git
Andre Noll [Sat, 23 Feb 2008 19:27:46 +0000 (20:27 +0100)]
new codename, reset version to git

12 years agothe paraslash-0.3.1 release tarball
Andre Noll [Sat, 23 Feb 2008 19:22:08 +0000 (20:22 +0100)]
the paraslash-0.3.1 release tarball

12 years agoparaslash 0.3.1 v0.3.1
Andre Noll [Sat, 23 Feb 2008 19:19:05 +0000 (20:19 +0100)]
paraslash 0.3.1

12 years agopara.h: Change copyright year to 2008.
Andre Noll [Sat, 23 Feb 2008 19:18:39 +0000 (20:18 +0100)]
para.h: Change copyright year to 2008.

12 years agoFEATURES: Fix a typo and use uniform capitalization for list items.
Andre Noll [Mon, 18 Feb 2008 00:42:16 +0000 (01:42 +0100)]
FEATURES: Fix a typo and use uniform capitalization for list items.

12 years agoNEWS update.
Andre Noll [Mon, 18 Feb 2008 00:28:26 +0000 (01:28 +0100)]
NEWS update.

12 years agostring.c: Fix a typo.
Andre Noll [Mon, 18 Feb 2008 00:28:03 +0000 (01:28 +0100)]
string.c: Fix a typo.

12 years agoserver.c: Add missing newline in log message.
Andre Noll [Sun, 17 Feb 2008 21:13:13 +0000 (22:13 +0100)]
server.c: Add missing newline in log message.

12 years agoKill superfluous "%s" in log messages.
Andre Noll [Sun, 17 Feb 2008 21:12:39 +0000 (22:12 +0100)]
Kill superfluous "%s" in log messages.

12 years agoosl_core: Fix some typos in documentation.
Andre Noll [Sun, 17 Feb 2008 21:01:46 +0000 (22:01 +0100)]
osl_core: Fix some typos in documentation.

12 years agoserver.c: Clarify fatal log message.
Andre Noll [Sun, 17 Feb 2008 20:55:19 +0000 (21:55 +0100)]
server.c: Clarify fatal log message.

And kill the superfluous "%s" parameter.

12 years agodaemon.c: Minor logging impreovments.
Andre Noll [Sun, 17 Feb 2008 20:54:02 +0000 (21:54 +0100)]
daemon.c: Minor logging impreovments.

12 years agoBe more careful in daemon_init().
Andre Noll [Sun, 17 Feb 2008 20:53:21 +0000 (21:53 +0100)]
Be more careful in daemon_init().

setsid(), chdir() and dup2() all may fail. So check the
return value.

12 years agoaudiod.c: Don't log to /dev/null.
Andre Noll [Sun, 17 Feb 2008 20:52:21 +0000 (21:52 +0100)]
audiod.c: Don't log to /dev/null.

There's no point in computing the log message if we are
going to write it to /dev/null.

12 years agoAdd documentation of struct sender status.
Andre Noll [Sun, 17 Feb 2008 13:14:10 +0000 (14:14 +0100)]
Add documentation of struct sender status.

12 years agocom_touch(): Print a message if no audio files matched.
Andre Noll [Sat, 16 Feb 2008 19:25:48 +0000 (20:25 +0100)]
com_touch(): Print a message if no audio files matched.

12 years agoDoxify send_common.c.
Andre Noll [Sat, 16 Feb 2008 19:25:10 +0000 (20:25 +0100)]
Doxify send_common.c.

12 years agoSender code consolidation, on/off commands for the dccp sender.
Andre Noll [Sat, 16 Feb 2008 14:33:50 +0000 (15:33 +0100)]
Sender code consolidation, on/off commands for the dccp sender.

This patch moves a bunch of code from the http sender to
send_common.c to make it available also for the dccp sender.

To this aim a new structure sender_status is introduced which
holds the configuration and the current status of the http/dccp
sender. Most of the new functions in send_common.c take a pointer
to such a structure.

This allows to implement the off/on/allow/deny/info commands
as a one-liner for both the dccp and the http sender.

The new server config option dccp_max_clients allows to restrict the
number of simultaneous connections to the dccp sender.

12 years agoacl.c: Trivial whitespace cleanups.
Andre Noll [Wed, 13 Feb 2008 18:36:08 +0000 (19:36 +0100)]
acl.c: Trivial whitespace cleanups.

12 years agouser_list: Fix doxygen \param.
Andre Noll [Mon, 11 Feb 2008 19:33:50 +0000 (20:33 +0100)]
user_list: Fix doxygen \param.

12 years agoinit_random_seed(): Use para_open() to open /dev/urandom.
Andre Noll [Mon, 11 Feb 2008 19:33:20 +0000 (20:33 +0100)]
init_random_seed(): Use para_open() to open /dev/urandom.

Clean up this function while at it.

12 years agoDoxyfile: Remove HAVE_MYSQL define.
Andre Noll [Mon, 11 Feb 2008 19:32:17 +0000 (20:32 +0100)]
Doxyfile: Remove HAVE_MYSQL define.

12 years agoRemove duplicate error code.
Andre Noll [Mon, 11 Feb 2008 19:31:52 +0000 (20:31 +0100)]
Remove duplicate error code.

We had AFS_SHORT_READ and SHORT_AFS_READ.

12 years agoRemove para_mkstemp().
Andre Noll [Sun, 10 Feb 2008 13:30:30 +0000 (14:30 +0100)]
Remove para_mkstemp().

It's unused.

12 years agoNEWS update.
Andre Noll [Sun, 10 Feb 2008 13:20:36 +0000 (14:20 +0100)]
NEWS update.

12 years agoSpeed up audiod_pre_select.
Andre Noll [Sun, 10 Feb 2008 13:20:09 +0000 (14:20 +0100)]
Speed up audiod_pre_select.

Catch the common case early in the function to minimize the
number of checks for that case.

12 years agocompress.c: Get rid of min_gain.
Andre Noll [Sun, 10 Feb 2008 13:19:02 +0000 (14:19 +0100)]
compress.c: Get rid of min_gain.

Always use no amplification, i.e. 1 << pcd->conf->inertia_arg as
the minimal gain.

12 years agostring.c: Documentation cleanups.
Andre Noll [Sun, 10 Feb 2008 13:17:25 +0000 (14:17 +0100)]
string.c: Documentation cleanups.

12 years agoGet rid of E_MKSTEMP and E_FCHMOD.
Andre Noll [Sun, 10 Feb 2008 13:16:42 +0000 (14:16 +0100)]
Get rid of E_MKSTEMP and E_FCHMOD.

Use the system errno instead.

12 years agoSpeed up open_current_receiver().
Andre Noll [Sun, 10 Feb 2008 11:49:29 +0000 (12:49 +0100)]
Speed up open_current_receiver().

To my surprise, this function showed up in the profiling info.
This is due to the fact that the old code was parsing the
FORMAT status item in audiod_pre_select() which gets called
on each iteration of the sheduler. However, this status item
gets only modified on audio file change.

So parse the status item string only once, when we receive it,
and store the current audio format number in the new field of
struct status_task.

12 years agocompress_filter.ggo: Decrease block size from 16 to 15.
Andre Noll [Sat, 9 Feb 2008 19:33:36 +0000 (20:33 +0100)]
compress_filter.ggo: Decrease block size from 16 to 15.

This means twice as many volume adjustments.

12 years agocompress.c: Simplify volume adjusting code.
Andre Noll [Sat, 9 Feb 2008 19:32:36 +0000 (20:32 +0100)]
compress.c: Simplify volume adjusting code.

There's no need to distinguish the cases sample > 0 and
sample < 0. Work with its absolute value instead and get
rid of some similar code in the hot path.

Also print a log message in case clipping occurs.

12 years agocompress.c: Cosmetics.
Andre Noll [Sat, 9 Feb 2008 18:53:28 +0000 (19:53 +0100)]
compress.c: Cosmetics.

12 years agouser_list.c: Minor documentation impreovements.
Andre Noll [Sat, 9 Feb 2008 18:42:05 +0000 (19:42 +0100)]
user_list.c: Minor documentation impreovements.

12 years agopopulate_user_list(): Do not abort if the rsa key of a user is unavailable.
Andre Noll [Sat, 9 Feb 2008 18:34:53 +0000 (19:34 +0100)]
populate_user_list(): Do not abort if the rsa key of a user is unavailable.

Skip this line of the user list file instead.

12 years agouser_list.c: Simplify populate_user_list().
Andre Noll [Sat, 9 Feb 2008 18:22:13 +0000 (19:22 +0100)]
user_list.c: Simplify populate_user_list().

12 years agouser_list.c: Fix documentation of populate_user_list().
Andre Noll [Sat, 9 Feb 2008 18:07:02 +0000 (19:07 +0100)]
user_list.c: Fix documentation of populate_user_list().

12 years agoafs.c: Fix fd number in log output.
Andre Noll [Sat, 9 Feb 2008 17:57:47 +0000 (18:57 +0100)]
afs.c: Fix fd number in log output.

12 years agoKill unused error code WRITE_OK.
Andre Noll [Sat, 9 Feb 2008 17:57:14 +0000 (18:57 +0100)]
Kill unused error code WRITE_OK.

12 years agoosl_core.h: Replace static inline by _static_inline_.
Andre Noll [Sat, 9 Feb 2008 17:46:52 +0000 (18:46 +0100)]
osl_core.h: Replace static inline by _static_inline_.

12 years agoRemove gui_common.[ch].
Andre Noll [Sat, 9 Feb 2008 13:39:00 +0000 (14:39 +0100)]
Remove gui_common.[ch].

As the only gui in paraslash-0.3.x is the curses-based para_gui
there is no point in having common gui functions.

12 years agoMore trivial cleanups.
Andre Noll [Sat, 9 Feb 2008 13:17:21 +0000 (14:17 +0100)]
More trivial cleanups.

12 years agoerror.h: Kill two unused alsa error codes.
Andre Noll [Sat, 9 Feb 2008 13:10:06 +0000 (14:10 +0100)]
error.h: Kill two unused alsa error codes.

12 years agoTrivial documentation cleanups.
Andre Noll [Sat, 9 Feb 2008 13:05:43 +0000 (14:05 +0100)]
Trivial documentation cleanups.

12 years agoFix a typo on the Documentation web page.
Andre Noll [Sat, 9 Feb 2008 12:14:56 +0000 (13:14 +0100)]
Fix a typo on the Documentation web page.

12 years agoPrint codename in version info.
Andre Noll [Sat, 9 Feb 2008 11:27:21 +0000 (12:27 +0100)]
Print codename in version info.

12 years agonet.c: Fix error messages in makesock().
Andre Noll [Sat, 9 Feb 2008 10:31:07 +0000 (11:31 +0100)]
net.c: Fix error messages in makesock().

12 years agoalsa_write.c: Kill deprecated snd_pcm_sw_params_{get,set}_xfer_align.
Andre Noll [Wed, 6 Feb 2008 21:02:36 +0000 (22:02 +0100)]
alsa_write.c: Kill deprecated snd_pcm_sw_params_{get,set}_xfer_align.

Fixes

warning: 'snd_pcm_sw_params_get_xfer_align' is deprecated

for alsa-lib-1.0.16.

12 years agoImplement access control for the dccp sender.
Andre Noll [Mon, 4 Feb 2008 21:22:57 +0000 (22:22 +0100)]
Implement access control for the dccp sender.

Introduce new acl functions to avoid duplicate code
in the http/dccp sender.

12 years agohttp_send.c: Minor post_select() cleanups.
Andre Noll [Mon, 4 Feb 2008 20:11:58 +0000 (21:11 +0100)]
http_send.c: Minor post_select() cleanups.

Defer allocating memory for the client until
we will accept it.

12 years agohttp_send.c: Kill unused variable "i".
Andre Noll [Mon, 4 Feb 2008 19:43:43 +0000 (20:43 +0100)]
http_send.c: Kill unused variable "i".

12 years agohttp_send.c: Fix a bug in http_post_select().
Andre Noll [Mon, 4 Feb 2008 19:41:00 +0000 (20:41 +0100)]
http_send.c: Fix a bug in http_post_select().

If the accept() on the listen_fd fails, we don't have a valid
file descriptor but tried to close it anyway. Even worse, the
old code dereferenced and then freed the "sc" pointer which
isn't inititialized at that point.

12 years agodccp_send.c: Simplify dccp_info().
Andre Noll [Mon, 4 Feb 2008 08:42:48 +0000 (09:42 +0100)]
dccp_send.c: Simplify dccp_info().

12 years agoNEWS update.
Andre Noll [Mon, 4 Feb 2008 08:42:11 +0000 (09:42 +0100)]
NEWS update.

12 years agodccp_senc.d: No need to use static variable in dccp_info().
Andre Noll [Mon, 4 Feb 2008 08:32:43 +0000 (09:32 +0100)]
dccp_senc.d: No need to use static variable in dccp_info().

12 years agoMake the http sender use the generic sender code.
Andre Noll [Mon, 4 Feb 2008 08:31:55 +0000 (09:31 +0100)]
Make the http sender use the generic sender code.

12 years agoIntoduce send_common.c and use it from the dccp sender.
Andre Noll [Sat, 2 Feb 2008 20:28:51 +0000 (21:28 +0100)]
Intoduce send_common.c and use it from the dccp sender.

This new file contains code that was identical for the
dccp and the http sender. A subsequent patch will convert
the http sender to also use the shared code in send_common.c

12 years agosend.h: Cosmetic cleanups.
Andre Noll [Sat, 2 Feb 2008 13:47:30 +0000 (14:47 +0100)]
send.h: Cosmetic cleanups.

12 years agohttp_send.c: Kill check_r member from struct http_client.
Andre Noll [Sat, 2 Feb 2008 13:30:11 +0000 (14:30 +0100)]
http_send.c: Kill check_r member from struct http_client.

It was set to one if and only if the client is in state
HTTP_CONNECTED.

12 years agohttp_send.c: Never check the client fd for writability.
Andre Noll [Sat, 2 Feb 2008 13:28:25 +0000 (14:28 +0100)]
http_send.c: Never check the client fd for writability.

The fd is set to nonblocking mode, so writes will never
block but fail.

12 years agohttp_send.c: Kill HTTP_SENT_OK_MSG.
Andre Noll [Sat, 2 Feb 2008 12:49:25 +0000 (13:49 +0100)]
http_send.c: Kill HTTP_SENT_OK_MSG.

We might as well go directly to the HTTP_STREAMING state.

12 years ago{http,dccp}_send.c: Kill unused variable "self".
Andre Noll [Sat, 2 Feb 2008 11:44:59 +0000 (12:44 +0100)]
{http,dccp}_send.c: Kill unused variable "self".

12 years agohttp_send.c: Get rid of write_ok().
Andre Noll [Sat, 2 Feb 2008 11:27:11 +0000 (12:27 +0100)]
http_send.c: Get rid of write_ok().

Just use http_write() instead of write().

12 years agodccp_send.c: Fix a header sending bug.
Andre Noll [Sat, 2 Feb 2008 11:20:22 +0000 (12:20 +0100)]
dccp_send.c: Fix a header sending bug.

If the dccp sender is asked to send out an empty chunk, it
returns immediately without doing anything. However, we
might want to send the audio file header or the queued chunks
in this case. So always loop over all connected clients to see
if we can send something.

Moreover, if we are not listending on the dccp port, there can
not be any dccp clients, so the loop over all clients will be
an empty loop. Thus we may skip the initial check for an early
return completely.

12 years agohttp_send.c: Get rid of HTTP_READY_TO_STREAM.
Andre Noll [Sat, 2 Feb 2008 10:50:42 +0000 (11:50 +0100)]
http_send.c: Get rid of HTTP_READY_TO_STREAM.

The only reason for this state was to know whether we
already sent the audio file header. Store this info in
the new header_sent member of struct http_client.

This simplifies the code a bit and makes it more similar
to the dccp sending code.

12 years ago[TRIVIAL] dccp_send.c: Decrease scope of header_len.
Andre Noll [Sat, 2 Feb 2008 10:47:23 +0000 (11:47 +0100)]
[TRIVIAL] dccp_send.c: Decrease scope of header_len.

12 years agohttp_send.c: Introduce http_write.
Andre Noll [Sat, 2 Feb 2008 10:25:43 +0000 (11:25 +0100)]
http_send.c: Introduce http_write.

This allows to get rid of write_ok() and makes
send_queued_chunks() identical to its counterpart
in the dccp sender.

12 years agosendall(): Replace send() by write().
Andre Noll [Fri, 1 Feb 2008 23:02:33 +0000 (00:02 +0100)]
sendall(): Replace send() by write().

With zero flags parameter, send() is  equivalent  to  write(2).

12 years agodccp_senc.c: Kill E_DCCP_WRITE.
Andre Noll [Fri, 1 Feb 2008 22:40:24 +0000 (23:40 +0100)]
dccp_senc.c: Kill E_DCCP_WRITE.

Use ERRNO_TO_PARA_ERROR() instead.

12 years ago[DCCP]: Use 8000 as port.
Andre Noll [Mon, 21 Jan 2008 12:36:41 +0000 (13:36 +0100)]
[DCCP]: Use 8000 as port.

From: Gerrit Renker

As TCP and DCCP are different transport protocols, it is possible
to let both the dccp and the http sender listen on port 8000.

12 years agoBe more careful on command exit.
Andre Noll [Mon, 21 Jan 2008 08:24:16 +0000 (09:24 +0100)]
Be more careful on command exit.

If the callback returned zero, there's nothing to do.
If it returned positive, we have to send out the result
buffer and must free it afterwards. Sending the buffer may
well lead to an error condition, so always check the return
value of the corresponding call to send_buffer(). Finally,
it the command handler returned a negative value, we have
to send an error message to the client which might give rise
to another error (if sending the errror message failed). In this
case, ignore the send errror and return the previous error value.

12 years agocom_sender(): Check return value of send_buffer().
Andre Noll [Sun, 20 Jan 2008 13:47:00 +0000 (14:47 +0100)]
com_sender(): Check return value of send_buffer().

12 years agoKill two unnecessary return statements.
Andre Noll [Sun, 20 Jan 2008 13:45:33 +0000 (14:45 +0100)]
Kill two unnecessary return statements.