Changeset 1465 in orxonox.OLD
- Timestamp:
- Feb 12, 2004, 4:22:27 AM (21 years ago)
- Author:
- amir
- Message:
-
12.02.2004 - Release of SRRD version 0.98-pre15
Merged branches/multi-threaded
Merged branches/cs-update
Merged branches/darix
Merged branches/freebsd
Added multi-threaded support. This is implemented by two global rwlocks, a
service semaphore per service in the config data structure and multilple single
local semaphores.
Added sem.[ch] implementing counting semaphors with pthread and rwlock.[ch]
which implements a fair solution to the reader/writer problem without starving
using two semaphores and some counters.
Replaced calls to gethostbyname() and gethostbyaddr() with thread-save versions
sys_gethostbyname() and sys_gethostbyaddr() which cache dns queries and replaced
addr_for_if() with tread-save sys_addr_for_if() implemented in sys.[ch].
Implemented http persistent connections & transfer encoding "chunked". Persistent
non-ssl connections work perfectly. Persistent ssl connections work too but have
very seldom the 'session id contect not initialized problem', when a client is
hitting SRRD mit multiple ssl accesses at the same time.
Added openssl callback functions for threads. this does not solve the above
mentioned probelem… ;-( we still get (very seldom after adding a semphore) this:
"SSL routines:SSL_GET_PREV_SESSION:session id context uninitialized:ssl_sess.c:288:"
Removed received http basic auth plaintext passwords in debug output. Added
debug output for requested http location.
Added password and role file caching. This is implemented in the two added files
dded auth_cache.[ch], which are needed only for srrd. srrpasswd needs only auth.[ch].
The emergency shutdown works now. We changed it to use "ip" instad of "ifconfig"
to get rid of still attached interface aliases.
Added —disable-pthread to compile SRRD without threads support.
Added —enable-debug-dns-caching to enable DNS cache debugging.
Updated copyright statement. We are now fully GPL complient.
Implemented router TTL and router count to death. Routers not updating their router
lsa in fixed intervalls will be count to death and then removed from the lsadb.
The new srrexecd will reload the service configuration file on SIGHUP or on request
of srrd over the unix domain socket. srrd automatically requests a config file
reload from srrexecd whenever the config file changes.
Added password authentication for communication between srrd and srrexecd. This will
allow us to run srrd under user srrd! From then on we only need to start srrexecd as
a root process.
Moved to automake-1.7. We need it for AM_CONDITIONAL(). Changed AM_CONFIG_HEADER()
to AC_CONFIG_HEADER().
Added Service Routing Redundancy execution daemon srrexecd as well as a small
command line test client to call service primitives, named srrexecc. Added the
flag —disable-srrexecd to disable the generation of the external execution daemon
and switches back to internal execution, which by itself is only possible when srrd
is compiled without threads support implying the —disable-pthread flag.
Added embedded perl support for srrexecd. Added —disabled-embedded-perl to compile
srrexecd without embedded perl support.
Added service configuration flag 'use embedded perl interpreter' which chooses if a
service primitive gets executed by srrexecd with a execve() call or with the linked
perl interpreter from libperl.
Added support for 'Accept-Encoding: deflate' and 'Accept-Encoding: gzip. If the
client supports it and libz can be found on the system SRRD's webserver will output
'deflate' or 'gzip', with preference on 'gzip', compressed webpages giving us a
60-70% bandwidth reduction when reloading pages a lot.
Added support for POST forms and ultra long cgi parameters. I want to thank Ueli, for
implementing this stuff!
Fixed a lot of configure.ac stuff. SRRD now compiles under SuSE. Added ports/SuSE
and ports/GenToo containing SuSE SRPM specification and GenToo Ebuilds for SRRD.
Fixed automatic ospfd reconnect should Quagga's ospfd crash or get restarted. SRRD
correctly detects this, does a emergency shutdown and starts trying to reconnect to
the unreachable ospfd. An emergency shutdown means shutting down of all services
without telling other neigbors anything about it. Then, having reached a stable
and acceptable state, SRRD tries to reconnect to ospfd. As soon as this succeeds
SRRD begins to re-activate all services. This allows us to simply restart ospfd
or zebra while SRRD will behave correctly.
Added better pid file handling including stale pid file detection and removal.
Added automatic removal of srrexecd's unix domain socket if a stale file is lying
around.
Replaced debug.[ch] with debug_ng.[ch] which uses the U*() debug api instad of
the old DLOG() api and supports logging levels as well as loggint to console, logfile
and syslog. Changed all files to use debug_ng.[ch].
Fixed srrexecd so that only the parent process reloads it's service configuration
when receiving a SIGHUP. srrexecd childs ignore the signal.
Added service primitive script for the newly supported service PureFTPD.
Added ports for the Linux distributions GenToo and SuSE, as well as for FreeBSD.
- (No files)
-