paraslash.git
12 years agoRename acl functions.
Andre Noll [Sun, 13 Jan 2008 15:46:28 +0000 (16:46 +0100)]
Rename acl functions.

Prefix public functions with acl.

12 years agoMove acl functions to separate file acl.c.
Andre Noll [Sun, 13 Jan 2008 15:41:36 +0000 (16:41 +0100)]
Move acl functions to separate file acl.c.

12 years agohttp_send: Make add_perm_list_entry() and del_perm_list_entry() generic.
Andre Noll [Sun, 13 Jan 2008 15:26:17 +0000 (16:26 +0100)]
http_send: Make add_perm_list_entry() and del_perm_list_entry() generic.

12 years agohttp_send.c: Add get_acl_contents() helper.
Andre Noll [Sun, 13 Jan 2008 15:13:27 +0000 (16:13 +0100)]
http_send.c: Add get_acl_contents() helper.

12 years agohttp_send.c: Make host_in_acl() generic.
Andre Noll [Sun, 13 Jan 2008 15:04:54 +0000 (16:04 +0100)]
http_send.c: Make host_in_acl() generic.

Add an additional parameter for the list head that defines the acl.

12 years agohttp_send.c: Only pass the fd to host_in_access_perm_list().
Andre Noll [Sun, 13 Jan 2008 15:02:39 +0000 (16:02 +0100)]
http_send.c: Only pass the fd to host_in_access_perm_list().

No need to pass a pointer to struct http_client as only its ->fd member
is used. Rename this function to host_in_acl while we're at it.

12 years agohttp_send.c: Make init_access_control_list() generic.
Andre Noll [Sun, 13 Jan 2008 14:58:20 +0000 (15:58 +0100)]
http_send.c: Make init_access_control_list() generic.

12 years agohttp_send: Rename access_perm_list to http_acl.
Andre Noll [Sun, 13 Jan 2008 14:49:51 +0000 (15:49 +0100)]
http_send: Rename access_perm_list to http_acl.

12 years agoINSTALL: Replace "para" by "para_client".
Andre Noll [Fri, 11 Jan 2008 16:06:58 +0000 (17:06 +0100)]
INSTALL: Replace "para" by "para_client".

The para alias is only introduced in README.afs. Reported by
Johannes Wörner.

12 years agoRemove man pages from tarball.
Andre Noll [Fri, 11 Jan 2008 13:15:41 +0000 (14:15 +0100)]
Remove man pages from tarball.

Since they are re-created at make install time anyway and help2man
is now considered a required tool for building paraslash, there is
no reason to ship the pre-generated man pages with the tarball. This
reduces the size of the tarball by about 2k.

Thanks to Johannes Wörner for pointing out this inconsistency.

12 years agoREQUIREMENTS: Move help2man to the list of required software.
Andre Noll [Fri, 11 Jan 2008 13:03:49 +0000 (14:03 +0100)]
REQUIREMENTS: Move help2man to the list of required software.

The man pages depend on the executables, i.e. make rebuilds a man page
whenever the corresponding executable changes. Therefore help2man is
required even when installing from tarballs.

12 years agoREQUIREMENTS: Link to the english version of the linphone pages.
Andre Noll [Fri, 11 Jan 2008 13:01:57 +0000 (14:01 +0100)]
REQUIREMENTS: Link to the english version of the linphone pages.

12 years agofade.c: Don't include curses.h.
Andre Noll [Thu, 10 Jan 2008 09:48:44 +0000 (10:48 +0100)]
fade.c: Don't include curses.h.

para_fade does not depend on curses. Including curses.h leads to an
error at compile time on linux if the curses headers are not installed.

Thanks to Johannes Wörner for reporting.

12 years agoNEWS: Fix a typo.
Andre Noll [Wed, 9 Jan 2008 08:10:35 +0000 (09:10 +0100)]
NEWS: Fix a typo.

12 years agoChange year in Copyright comment from 2007 to 2008.
Andre Noll [Tue, 8 Jan 2008 19:47:06 +0000 (20:47 +0100)]
Change year in Copyright comment from 2007 to 2008.

12 years agoconfigure.ac: Improve alsa checks.
Andre Noll [Mon, 7 Jan 2008 16:50:15 +0000 (17:50 +0100)]
configure.ac: Improve alsa checks.

On non-Linux systems, do not check for alsa, and do not print the
warning message stating that alsa could not be found.

Also, skip further alsa-checks on the first failure.

12 years agoMerge commit 'remotes/yangtse/master'
Andre Noll [Mon, 7 Jan 2008 16:21:21 +0000 (17:21 +0100)]
Merge commit 'remotes/yangtse/master'

12 years agoFix gcc-warning on Solaris.
Andre Noll [Mon, 7 Jan 2008 16:20:49 +0000 (17:20 +0100)]
Fix gcc-warning on Solaris.

net.c:334: warning: missing braces around initializer

12 years agoMerge commit 'remotes/yangtse/master'
Andre Noll [Mon, 7 Jan 2008 15:32:02 +0000 (16:32 +0100)]
Merge commit 'remotes/yangtse/master'

12 years agoFix configure on Solaris.
Andre Noll [Mon, 7 Jan 2008 15:27:31 +0000 (16:27 +0100)]
Fix configure on Solaris.

Without this patch, configure fails on Solaris because it doesn't find
inet_ntoa() and socket(). These are in libnsl and libsocket
respectively, but AC_CHECK_FUNCS() doesn't know this.

12 years agogui.c: Change para command to "para_client --".
Andre Noll [Sun, 6 Jan 2008 13:13:09 +0000 (14:13 +0100)]
gui.c: Change para command to "para_client --".

12 years agoReformat gui.ggo.
Andre Noll [Sun, 6 Jan 2008 13:12:34 +0000 (14:12 +0100)]
Reformat gui.ggo.

12 years agogui.ggo: Kill --auto_decode.
Andre Noll [Sun, 6 Jan 2008 00:47:23 +0000 (01:47 +0100)]
gui.ggo: Kill --auto_decode.

This option is unused for ages..

12 years agocom_ls(): Always print the basename as the subject if -lv was given.
Andre Noll [Sat, 29 Dec 2007 20:44:28 +0000 (21:44 +0100)]
com_ls(): Always print the basename as the subject if -lv was given.

12 years agoFix a doxygen warning.
Andre Noll [Sat, 29 Dec 2007 20:43:50 +0000 (21:43 +0100)]
Fix a doxygen warning.

12 years agoCosmetics.
Andre Noll [Sat, 29 Dec 2007 20:43:36 +0000 (21:43 +0100)]
Cosmetics.

12 years agoSimplify para_basename().
Andre Noll [Sat, 29 Dec 2007 20:43:13 +0000 (21:43 +0100)]
Simplify para_basename().

No need to allocate additional memory. This saves a malloc/free
in the hot path of com_ls(), the only caller. Also take care for
the case basename == NULL.

12 years agoUpdate bash_completion to v0.3 commands.
Andre Noll [Fri, 28 Dec 2007 16:03:02 +0000 (17:03 +0100)]
Update bash_completion to v0.3 commands.

It doesn't care about options, and it's slow.  But it's better than
what was there before.

12 years agoTurn PARA_STRERROR into an inline function.
Andre Noll [Fri, 28 Dec 2007 13:36:10 +0000 (14:36 +0100)]
Turn PARA_STRERROR into an inline function.

Add documentation and an assertion for (num > 0).

12 years agoFix typo in the help text of the ls command.
Andre Noll [Fri, 28 Dec 2007 13:07:04 +0000 (14:07 +0100)]
Fix typo in the help text of the ls command.

12 years agocom_lsatt(): Fix error message.
Andre Noll [Fri, 28 Dec 2007 13:05:53 +0000 (14:05 +0100)]
com_lsatt(): Fix error message.

We must not use PARA_STRERROR(-ret) if ret is zero.

12 years agoMakefile.in: Fix OS detection.
Andre Noll [Fri, 28 Dec 2007 13:02:55 +0000 (14:02 +0100)]
Makefile.in: Fix OS detection.

The uname_s variable was never defined. Define it and rename SYSTEM
to UNAME_RS while we are at it.

12 years agomood.c: Only print log message if we are actually reloading a mood.
Andre Noll [Fri, 28 Dec 2007 12:59:46 +0000 (13:59 +0100)]
mood.c: Only print log message if we are actually reloading a mood.

12 years agoROUND_UP: Add missing parentheses().
Andre Noll [Fri, 28 Dec 2007 12:54:53 +0000 (13:54 +0100)]
ROUND_UP: Add missing parentheses().

12 years agochunk_queue.c: Fix some typos.
Andre Noll [Thu, 27 Dec 2007 22:36:46 +0000 (23:36 +0100)]
chunk_queue.c: Fix some typos.

12 years agoaft.c: Rename save_audio_file_info() and enum aft_row_offsets.
Andre Noll [Thu, 27 Dec 2007 22:15:19 +0000 (23:15 +0100)]
aft.c: Rename save_audio_file_info() and enum aft_row_offsets.

12 years agoaft.c: Improve documentation of the add command.
Andre Noll [Thu, 27 Dec 2007 22:13:23 +0000 (23:13 +0100)]
aft.c: Improve documentation of the add command.

12 years agoserver.ggo: Remove unused selector option.
Andre Noll [Thu, 27 Dec 2007 14:13:40 +0000 (15:13 +0100)]
server.ggo: Remove unused selector option.

12 years agoChange syntax for selecting moods or playlists.
Andre Noll [Thu, 27 Dec 2007 14:13:12 +0000 (15:13 +0100)]
Change syntax for selecting moods or playlists.

Use m/foo, p/bar instead of m:foo and p:bar. This is much friendlier
to bash completion.

12 years agoCosmetics.
Andre Noll [Thu, 27 Dec 2007 14:11:41 +0000 (15:11 +0100)]
Cosmetics.

12 years agoMakefile.in: Change type of variables to simply expanded type.
Andre Noll [Thu, 27 Dec 2007 14:10:58 +0000 (15:10 +0100)]
Makefile.in: Change type of variables to simply expanded type.

12 years agoconfigure.ac: Add some missing checks.
Andre Noll [Sat, 22 Dec 2007 13:55:21 +0000 (14:55 +0100)]
configure.ac: Add some missing checks.

Noted by autoscan.

12 years agoMake client_pre_select() and client_post_select() static.
Andre Noll [Sat, 22 Dec 2007 13:29:02 +0000 (14:29 +0100)]
Make client_pre_select() and client_post_select() static.

Move functions around a bit to avoid forward-declarations.

12 years agoclient_common.c: Trivial cosmetic cleanups.
Andre Noll [Sat, 22 Dec 2007 13:21:43 +0000 (14:21 +0100)]
client_common.c: Trivial cosmetic cleanups.

12 years agoChange default loglevel for para_fsck from 4 to 3.
Andre Noll [Sat, 22 Dec 2007 13:01:16 +0000 (14:01 +0100)]
Change default loglevel for para_fsck from 4 to 3.

12 years agofsck.c: Improve log messages.
Andre Noll [Sat, 22 Dec 2007 13:00:12 +0000 (14:00 +0100)]
fsck.c: Improve log messages.

12 years agofsck.c: Fix NULL-pointer dereference.
Andre Noll [Sat, 22 Dec 2007 12:58:01 +0000 (13:58 +0100)]
fsck.c: Fix NULL-pointer dereference.

fsck_cleanup() might be called with t == NULL.

12 years agofsck.c: Loglevel adjustments.
Andre Noll [Sat, 22 Dec 2007 12:56:43 +0000 (13:56 +0100)]
fsck.c: Loglevel adjustments.

12 years agoclient_common.c: Kill invalid FIXME.
Andre Noll [Sat, 22 Dec 2007 12:54:58 +0000 (13:54 +0100)]
client_common.c: Kill invalid FIXME.

Short writes can not happen here.

12 years agoclient_common.c: Add a comment to client_connect().
Andre Noll [Sat, 22 Dec 2007 12:54:24 +0000 (13:54 +0100)]
client_common.c: Add a comment to client_connect().

12 years agoREADME.afs: Add some information on para_fsck.
Andre Noll [Sat, 22 Dec 2007 12:53:30 +0000 (13:53 +0100)]
README.afs: Add some information on para_fsck.

12 years agoFix para_client hangs.
Andre Noll [Sat, 22 Dec 2007 12:52:51 +0000 (13:52 +0100)]
Fix para_client hangs.

In the client event handler we have to set the eof variable
to a negative value in order to shut down the stdout task.

Rename eof to error while at it.

12 years agoReplace funny statement in para_next_signal() by readable code.
Andre Noll [Tue, 18 Dec 2007 07:19:29 +0000 (08:19 +0100)]
Replace funny statement in para_next_signal() by readable code.

This happened to be correct only by coincidence. Quoting Linus:

Assignments inside tests should probably be relegated entirely
to loop constructs, where doing them outside the test changes
semantics.

12 years ago03_STAT_no-clients.diff
Gerrit Renker [Mon, 17 Dec 2007 12:12:25 +0000 (13:12 +0100)]
03_STAT_no-clients.diff

Avoids messages like
Dec 15 20:01:25 _tiptop 1 stat_client_write: 0 client(s)
which would otherwise flood the debug log.

12 years ago02_HTTP_access-list.diff
Gerrit Renker [Mon, 17 Dec 2007 12:12:25 +0000 (13:12 +0100)]
02_HTTP_access-list.diff

After adding IPv6 support the access list matching routine was left in
a broken state. This patch fixes the problem by continuing the support
for IPv4 address/netmask access lists.
The following problems are fixed:
 * support for a server listening to both IPv6 (AF_INET6) and IPv4 (AF_INET)
   address (since one can not assume that the server's address has AF_INET);
 * explicit support for addresses in network-byte-order (without having to reverse
   the netmask);
 * a routine to extract v6-mapped IPv4 addresses ("::FFFF:x.x.x.x") for IPv4
   clients connecting to a (dual-stack) IPv6 server.

When the access list is in use, the connection mode is automatically switched to
IPv4, i.e. IPv6 clients connecting to the server will be treated as if they were
in the deny-list.

12 years ago01_DCCP_shutdown-unnecessary.diff
Gerrit Renker [Mon, 17 Dec 2007 12:12:25 +0000 (13:12 +0100)]
01_DCCP_shutdown-unnecessary.diff

This calls shutdown(2) for unused communication paths in the DCCP sender/receiver:
 * the sender does not read data from the client and so calls shutdown(SHUT_RD);
 * the client does not send data to the server and so calls shutdown(SHUT_WR).
The advantage that this buys is a performance optimisation: using shutdown(2) in
DCCP means disabling the corresponding CCID kernel modules, which reduces the
processing costs, i.e.
 * when using SHUT_RD, the receiver congestion-control module is de-activated;
 * when using SHUT_WR, the sender congestion-control module is de-activated.

More information can be found on
http://www.erg.abdn.ac.uk/users/gerrit/dccp/notes/shutdown/

12 years agoa/command_util.sh: Convert template members also in the short description.
Andre Noll [Sun, 16 Dec 2007 18:34:56 +0000 (19:34 +0100)]
a/command_util.sh: Convert template members also in the short description.

12 years agoMinor documentation improvements.
Andre Noll [Sun, 16 Dec 2007 18:34:10 +0000 (19:34 +0100)]
Minor documentation improvements.

12 years agofilter.h: Trivial documentation cleanups.
Andre Noll [Sat, 15 Dec 2007 17:06:46 +0000 (18:06 +0100)]
filter.h: Trivial documentation cleanups.

12 years agoMore error cleanups.
Andre Noll [Sat, 15 Dec 2007 16:45:01 +0000 (17:45 +0100)]
More error cleanups.

12 years agoerror.h: Remove unused E_CHDIR.
Andre Noll [Sat, 15 Dec 2007 16:31:29 +0000 (17:31 +0100)]
error.h: Remove unused E_CHDIR.

12 years agoerror.h: Remove some unused errors.
Andre Noll [Sat, 15 Dec 2007 16:23:24 +0000 (17:23 +0100)]
error.h: Remove some unused errors.

12 years agoKill unused E_FSTAT.
Andre Noll [Sat, 15 Dec 2007 16:14:17 +0000 (17:14 +0100)]
Kill unused E_FSTAT.

12 years agoerror.h: Kill unused DCCP_ERRORS.
Andre Noll [Sat, 15 Dec 2007 16:11:48 +0000 (17:11 +0100)]
error.h: Kill unused DCCP_ERRORS.

12 years agoReplace eof by error in receivers/filters/writers.
Andre Noll [Sat, 15 Dec 2007 16:01:47 +0000 (17:01 +0100)]
Replace eof by error in receivers/filters/writers.

This way it's possible to tell at a later time why
the receiver/filter/writer terminated.

This allows to increase the delay for reconnecting in case
the receiver failed to connect to para_server: Let the receivers
set the error value to -E_RECV_EOF in case a normal end of file
event occurred and check this value when calculating the restart
barrier.

12 years agoFix some typos.
Andre Noll [Sat, 15 Dec 2007 15:49:47 +0000 (16:49 +0100)]
Fix some typos.

12 years agoMerge commit 'remotes/fml/master'
Andre Noll [Tue, 11 Dec 2007 20:17:01 +0000 (21:17 +0100)]
Merge commit 'remotes/fml/master'

12 years agoFix a gcc warning on MacOS.
Andre Noll [Tue, 11 Dec 2007 16:48:36 +0000 (17:48 +0100)]
Fix a gcc warning on MacOS.

12 years agoMakefile.in: Avoid gcc warnings on non-linux systems.
Andre Noll [Tue, 11 Dec 2007 16:48:11 +0000 (17:48 +0100)]
Makefile.in: Avoid gcc warnings on non-linux systems.

-fdata-sections, -ffunction-sections, -Wl,--gc-sections, -Wstrict-prototypes
and -Wshadow produce quite a lot of warnings on at least NetBSD and MacOS. So
use these flags only on Linux.

12 years agoFix SIGUSR1 handling on Solaris.
Andre Noll [Tue, 11 Dec 2007 16:42:24 +0000 (17:42 +0100)]
Fix SIGUSR1 handling on Solaris.

para_client dies the second time it receives SIGUSR1, because the signal action
is restored to the default state once the signal handler has been called.

12 years agoMerge commit 'remotes/fml/master'
Andre Noll [Tue, 11 Dec 2007 16:40:50 +0000 (17:40 +0100)]
Merge commit 'remotes/fml/master'

12 years agoserver.c: Check return value of signal().
Andre Noll [Tue, 11 Dec 2007 16:37:16 +0000 (17:37 +0100)]
server.c: Check return value of signal().

And replace the ugly code that counted the number of calls to
para_install_sighandler() by equivalent, but less ugly code.

12 years agoSimplify SIGUR1 handling.
Andre Noll [Tue, 11 Dec 2007 16:31:24 +0000 (17:31 +0100)]
Simplify SIGUR1 handling.

There's no need to catch this signal in server.c as it is unly used to notify
its children. So just ignore it.

12 years agostat.c: Simplify stat_client_write().
Andre Noll [Tue, 11 Dec 2007 12:08:04 +0000 (13:08 +0100)]
stat.c: Simplify stat_client_write().

Use write_ok() instead of open coding.

12 years agoMerge commit 'remotes/yangtse/master'
Andre Noll [Sun, 9 Dec 2007 21:02:06 +0000 (22:02 +0100)]
Merge commit 'remotes/yangtse/master'

12 years agoMerge commit 'remotes/fml/master'
Andre Noll [Sun, 9 Dec 2007 21:01:52 +0000 (22:01 +0100)]
Merge commit 'remotes/fml/master'

12 years agoafs.h: Doxify comment for struct audio_file_data.
Andre Noll [Sat, 8 Dec 2007 19:47:39 +0000 (20:47 +0100)]
afs.h: Doxify comment for struct audio_file_data.

12 years agoafs.h: Kill unused function declaration close_audio_file().
Andre Noll [Sat, 8 Dec 2007 19:46:44 +0000 (20:46 +0100)]
afs.h: Kill unused function declaration close_audio_file().

12 years agoAdd new "screenshots".
Andre Noll [Sat, 8 Dec 2007 18:47:54 +0000 (19:47 +0100)]
Add new "screenshots".

12 years agoAdd new status items num_chunks and chunk_time.
Andre Noll [Sat, 8 Dec 2007 18:14:50 +0000 (19:14 +0100)]
Add new status items num_chunks and chunk_time.

12 years agoMerge commit 'remotes/fml/master'
Andre Noll [Fri, 7 Dec 2007 16:34:38 +0000 (17:34 +0100)]
Merge commit 'remotes/fml/master'

12 years agoalsa_write.c: Don't abort on EAGAIN.
Andre Noll [Thu, 6 Dec 2007 21:12:03 +0000 (22:12 +0100)]
alsa_write.c: Don't abort on EAGAIN.

Just retry a bit later.

12 years agocommand_util.sh: Add missing newline.
Andre Noll [Wed, 5 Dec 2007 16:38:01 +0000 (17:38 +0100)]
command_util.sh: Add missing newline.

12 years agoFix some gcc warnings on Solaris:
Andre Noll [Tue, 4 Dec 2007 13:11:10 +0000 (14:11 +0100)]
Fix some gcc warnings on Solaris:

warning: int format, pid_t arg
warning: int format, long int arg
int format, uid_t arg
int format, gid_t arg

12 years agoCREDITS update.
Andre Noll [Mon, 3 Dec 2007 20:39:33 +0000 (21:39 +0100)]
CREDITS update.

12 years agonet.c: Make host_and_port() static.
Andre Noll [Mon, 3 Dec 2007 19:42:09 +0000 (20:42 +0100)]
net.c: Make host_and_port() static.

It's only used in net.c. Some more trivial cleanups also.

12 years agohttp_send.c: Fix another doxygen warning.
Andre Noll [Mon, 3 Dec 2007 19:40:22 +0000 (20:40 +0100)]
http_send.c: Fix another doxygen warning.

Found \endcond command without matching \cond

12 years agonet.c: Fix a doxygen warning and trivial coding style cleanups.
Andre Noll [Mon, 3 Dec 2007 19:33:14 +0000 (20:33 +0100)]
net.c: Fix a doxygen warning and trivial coding style cleanups.

No functional changes. Fixes the following doxygen warning:

Warning: documented function `getsockname for local or fn getpeername' was not declared or defined.

Cosmetic cleanups include:

- Reduce line width to 80 chars in most cases.
- Replace @param by \param.
- Replace tabs by spaces.

12 years agoTrivial whitespace cleanups.
Andre Noll [Mon, 3 Dec 2007 18:46:25 +0000 (19:46 +0100)]
Trivial whitespace cleanups.

12 years agoMerge commit 'remotes/fml/master'
Andre Noll [Mon, 3 Dec 2007 18:39:06 +0000 (19:39 +0100)]
Merge commit 'remotes/fml/master'

12 years agoFix gcc warning on FreeBSD.
Andre Noll [Mon, 3 Dec 2007 17:12:52 +0000 (18:12 +0100)]
Fix gcc warning on FreeBSD.

daemon.c:184: warning: long int format, int arg (arg 2)

12 years agoMention IPv6 support in NEWS and FEATURES.
Andre Noll [Mon, 3 Dec 2007 16:40:26 +0000 (17:40 +0100)]
Mention IPv6 support in NEWS and FEATURES.

12 years agoFix compilation on NetBSD.
Andre Noll [Mon, 3 Dec 2007 16:25:30 +0000 (17:25 +0100)]
Fix compilation on NetBSD.

At least on NetBSD-3.1, AI_V4MAPPED, AI_ALL, and AI_ADDRCONFIG
are all undefined. The fix is to #define these to zero if they
are not defined in netdb.h. This means that no hints will be
given in this case which is the best we can do.

12 years agoalsa_write: Print more detailed error message.
Andre Noll [Fri, 30 Nov 2007 21:45:19 +0000 (22:45 +0100)]
alsa_write: Print more detailed error message.

12 years ago06_Unix-Domain-Sockets.diff
Gerrit Renker [Fri, 30 Nov 2007 09:23:51 +0000 (10:23 +0100)]
06_Unix-Domain-Sockets.diff

[LOCAL SOCKETS]: Tidy up and share common code

This patch just suggested itself - after all the other changes have been made,
the only remaining customers of PARA_CONNECT were the Unix domain sockets.

The patch generates a counterpart to create_local_socket(), for the peer talking
over a Unix domain socket.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
12 years ago05_DCCP-Remove-Unused.diff
Gerrit Renker [Fri, 30 Nov 2007 09:23:51 +0000 (10:23 +0100)]
05_DCCP-Remove-Unused.diff

Since DCCP now also uses the makesock function from net.c, it does no longer
need the functions from dccp.c -- the file is thus removed by this patch.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
12 years ago04_DCCP-socket-functions.diff
Gerrit Renker [Fri, 30 Nov 2007 09:23:51 +0000 (10:23 +0100)]
04_DCCP-socket-functions.diff

This converts the DCCP streaming unit to use the makesock interface.

As much as possible, the format of the system calls was modelled after /
adapted to that of the HTTP sender/receiver.

This includes the use of a `name' field for the remote socket name of
the connecting client.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
12 years ago03_TCP-socket-functions.diff
Gerrit Renker [Fri, 30 Nov 2007 09:23:51 +0000 (10:23 +0100)]
03_TCP-socket-functions.diff

This converts the control connection and the HTTP streaming module to use the makesock() interface.

The specific changes are:
 * replace tcp_connect() directly with makesock();
 * replace tcp_listen() with para_listen() (in turn a wrapper around makesock());
 * init_sockaddr() becomes obsolete;
 * replaced use of sockaddr_in in para_accept() with NULL sockaddr argument
  -- the `remote' name of the socket is always available via getpeername(2),
-- this is exploited by replacing the reverse-name lookup with remote_name();
 * the sockaddr_in field `addr' of `struct http_client' has been replaced with `name' string
  -- name is filled in as in para_accept() above, using remote_name(),
-- unlike above, the remote_fd() call can later not be done, due to close_listed_fds().

The one thing I am really not sure about is host_in_access_perm_list():
 * It needed to be converted to allow address-independent HTTP streaming.
 * The conversion represents the obvious choice for doing this.
 * However, I have not (yet) tested it.
 * A problem that may arise is that when listening using AF_UNSPEC then _all_ addresses appear
   as IPv6 addresses (i.e. the test "family == AF_INET" would never hold true). In this case,
   a possible solution is to switch between AF_UNSPEC and AF_INET dependint on whether the
   configurable access-list is empty or non-empty, respectively.
 * A possible place for this chance would be http_send_init() or any other function calling
   open_tcp_port().

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
12 years ago02_Reverse-lookup-support.diff
Gerrit Renker [Fri, 30 Nov 2007 09:23:51 +0000 (10:23 +0100)]
02_Reverse-lookup-support.diff

In some parts of the code a reverse-lookup (e.g. "connection from xxx") is used.
An address-family independent reverse-lookup function is provided by this patch,
exploiting that a socket is described by {src addr, src port, dst addr, dst port}:
 * host_and_port(): prints host and port number of given socket,
 * local_name():    pretty-prints src-addr/src-port,
 * remote_name():   pretty-prints dst-addr/dst-port;

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
12 years ago01_IPv6-Basic-Support.diff
Gerrit Renker [Fri, 30 Nov 2007 09:23:51 +0000 (10:23 +0100)]
01_IPv6-Basic-Support.diff

This patch provides an algorithm which, given a hostname and a numeric port identifier,
will look up all matching IPv4/IPv6 addresses and either bind it (for passive sockets)
or connect to it (for active sockets).

Certain socket options need to be set before a connection is established. Since in
paraslash the demand for such options is not very big at this time, the only present
case (setting SO_REUSEADDR on passive sockets) has been integrated into the main loop.

A more sophisticated variant for setting pre-connection socket options exists and is
available as part of the DCCP library. The current solution is extensible, i.e. if one
wants to later add more options, the alternative (more sophisticated approach) can be
used. But for now, that would just have meant code bloat.

The subsequent patches in this set will step by step replace the old infrastructure
with the use of this algorithm.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>