Miklos Tirpak [Thu, 31 Jan 2008 16:22:09 +0000 (16:22 +0000)]
correcting wrong goto label
Miklos Tirpak [Thu, 31 Jan 2008 16:16:54 +0000 (16:16 +0000)]
- check the integer range even if a fixup function is defined
- min and max values can be the same
Miklos Tirpak [Wed, 30 Jan 2008 11:48:39 +0000 (11:48 +0000)]
testing and fixing str and string configuration variables with NULL values
Miklos Tirpak [Wed, 30 Jan 2008 09:46:04 +0000 (09:46 +0000)]
str2sint() function is moved to ut.h
Jan Janak [Tue, 29 Jan 2008 08:14:27 +0000 (08:14 +0000)]
- added macro STR_EQ
- doxygen documentation added
Jan Janak [Mon, 28 Jan 2008 16:42:44 +0000 (16:42 +0000)]
- enable java autobrief and other configuration changes
Miklos Tirpak [Mon, 28 Jan 2008 15:35:56 +0000 (15:35 +0000)]
- rejecting config declarations with conflicting group name
- cfg_declare_int() is extended with min/max support
Miklos Tirpak [Mon, 28 Jan 2008 12:54:58 +0000 (12:54 +0000)]
changing the syntax of cfg_register_ctx() function
(The context handle must be ready when the on_declare()
callbacks are called, and it may happen that the callback
is executed before cfg_register_ctx() returns.)
Miklos Tirpak [Mon, 28 Jan 2008 12:23:11 +0000 (12:23 +0000)]
- #define CFG_INPUT_SHIFT is used instead of a hardwired value
(patch from Tomas Mandys)
- convert_val() can convert between all the supported types:
string, str, int (slightly modified patch from Tomas Mandys)
- two new wrappers, cfg_set_now_str() and cfg_set_delayed_str()
- signed integer values in select calls are fixed
- bug fiexed in cfg_lookup_var()
Miklos Tirpak [Thu, 24 Jan 2008 15:57:31 +0000 (15:57 +0000)]
- documenting the script syntax of the variable declaration
- printing an error message if the variable cannot be declared
Miklos Tirpak [Thu, 24 Jan 2008 15:36:56 +0000 (15:36 +0000)]
- configuration variables can be declared in the script:
<group_name>.<var_name> = <value> [descr <description>]
- free the list of cfg groups during exit
It is possible to declare new config variables in the script,
and retrieve them via select calls. The variables behave the same
way as the core or module variables, they are constant during
message processing, and they can be modified by the cfg drivers,
for example via RPC calls.
gateway.destination = "127.0.0.1" descr "IP addr of the gateway"
gateway.enabled = 1 descr "enable/disable the gateway"
route[0] {
...
if (@cfg_get.gateway.enabled == 1) {
xlset_destination("<sip:%@cfg_get.gateway.destination>");
}
...
}
Jiri Kuthan [Wed, 23 Jan 2008 21:02:06 +0000 (21:02 +0000)]
SER-324 fix: dont throw away terminating zero from payload
Jan Janak [Mon, 21 Jan 2008 13:07:24 +0000 (13:07 +0000)]
- error messages that generate too much noise turned
into debugging messages
Andrei Pelinescu-Onciul [Mon, 21 Jan 2008 13:00:35 +0000 (13:00 +0000)]
- fix: io_wait* :- safe delete for select, poll & sigiort (sigiort was
affected only if it did fallback to poll)
- select fd array size
Jan Janak [Wed, 16 Jan 2008 14:13:54 +0000 (14:13 +0000)]
- reordered included header files for better detection of missing headers
Michal Matyska [Tue, 15 Jan 2008 15:14:53 +0000 (15:14 +0000)]
When searching list of records from dns cache entry which has already expired, use the last valid timestamp when checking expiration time of the records.
It can happen when the entry was retrieved just before it expires. It can also expire before the next round of server lookup with SRV failover.
Nils Ohlmeier [Mon, 14 Jan 2008 12:48:00 +0000 (12:48 +0000)]
sorry forgot the definition of the new DB_NE operator
Andrei Pelinescu-Onciul [Sat, 12 Jan 2008 15:17:40 +0000 (15:17 +0000)]
- tcp optimization: in tcp_reader try reading from a fd immediately after
receiving it (since it receives it only if there's data waiting on it =>
avoids a few sys calls before starting readingi or for a bad connect attempt)
Miklos Tirpak [Fri, 11 Jan 2008 16:41:51 +0000 (16:41 +0000)]
@cfg_get.<group_name>.<var_name> is documented
Miklos Tirpak [Fri, 11 Jan 2008 16:38:52 +0000 (16:38 +0000)]
configuration values can be retrieved in the script via selects:
@cfg_get.<group_name>.<var_name>
Miklos Tirpak [Fri, 11 Jan 2008 16:30:30 +0000 (16:30 +0000)]
Introducing CONSUME_ALL flag: all the subsequent parameters are
accepted without resolving or checking them
Can be used to implement selects with more than one parameter
Miklos Tirpak [Fri, 11 Jan 2008 15:15:19 +0000 (15:15 +0000)]
cfg_get_by_name() returns an error instead of the incorrect value
if a fix-up function is defined
Andrei Pelinescu-Onciul [Thu, 10 Jan 2008 15:18:45 +0000 (15:18 +0000)]
- fix: io_watch_add moved to the end of CONN_QUEUED_WRITE
(so that if sigio_rt is used and the io_watch_add call ends up in
the connection destruction via handle_io() the code is still safe)
Andrei Pelinescu-Onciul [Thu, 10 Jan 2008 15:16:34 +0000 (15:16 +0000)]
- EPOLLET doesn't need checking for previous IO events
(this also fixes io_watch_chg possible invocation of handle_io which would
lead to ugly problems inside tcp handle_tcpconn_ev)
Pavel Kasparek [Tue, 8 Jan 2008 16:35:13 +0000 (16:35 +0000)]
added dependency to bison and flex to build dependencies
Andrei Pelinescu-Onciul [Tue, 8 Jan 2008 13:11:30 +0000 (13:11 +0000)]
- tcp: fix local timer intialization (proper prev_ticks init.)
Michal Matyska [Mon, 7 Jan 2008 12:45:30 +0000 (12:45 +0000)]
fixes SER-345 - patch accepted
Michal Matyska [Mon, 7 Jan 2008 12:33:52 +0000 (12:33 +0000)]
- if select is unfixable print just the part of text which was parsed
Michal Matyska [Mon, 7 Jan 2008 12:14:11 +0000 (12:14 +0000)]
- fix (redesign) how credentials realm is extracted from msg / fixed at startup
reported by Alfred E. Heggestad
When compiling with gcc-3.4.3 on solaris/sparc I get some warnings:
select_core.c: In function `get_credentials':
select_core.c:896: warning: cast to pointer from integer of different size
select_core.c: In function `select_auth':
select_core.c:950: warning: cast from pointer to integer of different size
select_core.c: In function `select_auth_param':
select_core.c:963: warning: cast from pointer to integer of different size
- when select is unresolvable during fixing print its name in the error message to easily correct script
Miklos Tirpak [Thu, 3 Jan 2008 10:30:55 +0000 (10:30 +0000)]
Restoring the original core configuration during exiting that
makes the config variables available for farther function calls.
Closes SER-349
Andrei Pelinescu-Onciul [Fri, 28 Dec 2007 20:43:32 +0000 (20:43 +0000)]
- tcp alias replace improvement/fix
- more debugging fixes
Andrei Pelinescu-Onciul [Fri, 28 Dec 2007 10:06:23 +0000 (10:06 +0000)]
- tcp fix: flags changed & membars() before derefs, more sanity checks and
alias debugging
Andrei Pelinescu-Onciul [Sat, 22 Dec 2007 18:13:29 +0000 (18:13 +0000)]
- fix: signed/unsigned comparisons (tcp_send)
Andrei Pelinescu-Onciul [Sat, 22 Dec 2007 17:49:03 +0000 (17:49 +0000)]
- fix: partial writes were not taken into account
Andrei Pelinescu-Onciul [Sat, 22 Dec 2007 08:11:14 +0000 (08:11 +0000)]
- fix: tcp fd cache: don't cache own fd in a tcp_reader
- various cleanups/better error messages
Jiri Kuthan [Sat, 22 Dec 2007 00:56:30 +0000 (00:56 +0000)]
included some extra comments about usrloc/db_mode
Andrei Pelinescu-Onciul [Fri, 21 Dec 2007 23:27:13 +0000 (23:27 +0000)]
- fixes:
- on io_watch_add overwrite error don't delete the previous fd hash
entry + more error debugging info
- return proper len on pending connect (instead of -1)
- tcp_reader: always check if a connection was marked as bad and if
so release it immediately + error checks for io_watch_*
Andrei Pelinescu-Onciul [Fri, 21 Dec 2007 17:58:07 +0000 (17:58 +0000)]
- tcp: support for pending connects: add a connection immediately to the
connection hash (before even attempting the connect sys call) and just queue
possible writes. When the connection completes update the connection info &
aliases and send the queued data. This avoids parallel connects when the
intial connect takes too long (highly experimental, on by default)
Pavel Kasparek [Thu, 20 Dec 2007 14:49:39 +0000 (14:49 +0000)]
changed default rtp proxy control socket port to 22222 in Debian package spec, for ser-oob package
Pavel Kasparek [Thu, 20 Dec 2007 14:21:19 +0000 (14:21 +0000)]
added fixation of path to *.sql files in ser_mysql.sh to Debian package spec rules
Pavel Kasparek [Thu, 20 Dec 2007 12:35:46 +0000 (12:35 +0000)]
typos fixed in Debian package spec
Pavel Kasparek [Thu, 20 Dec 2007 12:09:37 +0000 (12:09 +0000)]
added a meta-package ser-ai1 to Debian package spec
Jiri Kuthan [Tue, 18 Dec 2007 10:56:03 +0000 (10:56 +0000)]
isplit DOMAIN so that option processing works even for requests with
IP address in request URI (otherwise such requests would be discarded
by anti-relay policy before they made it to OPTIONS)
Andrei Pelinescu-Onciul [Mon, 17 Dec 2007 17:51:04 +0000 (17:51 +0000)]
- fix: do not perform rev dns. when comparing an ip with a string or avp
(in the script), if rev_dns is not set
Andrei Pelinescu-Onciul [Fri, 14 Dec 2007 01:50:39 +0000 (01:50 +0000)]
- tcp: - try to destroy a conenction on error asap, even if it's referenced
(in this case destroy it partially - close fds a.s.o)
- changed refcnt usage
Andrei Pelinescu-Onciul [Fri, 14 Dec 2007 01:40:12 +0000 (01:40 +0000)]
- tcp: - try to close connections faster even if still referenced
- changed refcnt usage (on 0 refcnt free, experimental)
Andrei Pelinescu-Onciul [Thu, 13 Dec 2007 18:05:39 +0000 (18:05 +0000)]
- io_watch_chg fix for EPOLL_ET: handle possible pre-existing IO events
Miklos Tirpak [Thu, 13 Dec 2007 15:29:55 +0000 (15:29 +0000)]
Destination blacklist parameters have been updated to the config
framework, the following variables are changeable runtime:
- use_dst_blacklist
- dst_blacklist_expire
- dst_blacklist_mem
Karel Kozlik [Thu, 13 Dec 2007 15:08:18 +0000 (15:08 +0000)]
index added to missed_calls table
Karel Kozlik [Thu, 13 Dec 2007 13:13:25 +0000 (13:13 +0000)]
adding two more indexes to acc table
Miklos Tirpak [Thu, 13 Dec 2007 11:21:05 +0000 (11:21 +0000)]
The help function returns also the type of the parameter.
Andrei Pelinescu-Onciul [Wed, 12 Dec 2007 19:11:25 +0000 (19:11 +0000)]
- tcp: close connection immediately if the write buf. timeouts (timeout fixes)
+ some cleanups
Miklos Tirpak [Wed, 12 Dec 2007 16:41:51 +0000 (16:41 +0000)]
cfg_get_group_*() is introduced:
returns the list of declared groups
cfg_diff_*() is introduced:
returns the pending configuration changes
Karel Kozlik [Wed, 12 Dec 2007 14:27:26 +0000 (14:27 +0000)]
Attribute "datetime_created" made visible in serweb as read-only
Miklos Tirpak [Wed, 12 Dec 2007 10:12:55 +0000 (10:12 +0000)]
New section is added to the documentation of the configuration framework:
Modules that fork a new process running in an endless loop are
supposed to periodicaly refresh their own local configuration.
Andrei Pelinescu-Onciul [Tue, 11 Dec 2007 20:11:01 +0000 (20:11 +0000)]
- local_timer cleanup (always use local_timer*, don't mix them with timer_*)
- tcp fix: clear the write watch flag after empting the write buffers
Andrei Pelinescu-Onciul [Tue, 11 Dec 2007 18:19:58 +0000 (18:19 +0000)]
- io_wait fixes:
- use the correct flags fo sigio_rt's sigio_band
- call handle_io for POLLERR & POLLHUP even if not specified among
the watched events
- tcp: - handle POLLERR & POLLHUP (same way as POLLIN)
Miklos Tirpak [Tue, 11 Dec 2007 16:15:55 +0000 (16:15 +0000)]
- Updating the local configuration in the child processes that are
forked by modules.
- Per-child process config destroy function is introduced:
should be called when a child process exists, but SER continues
running, not needed to be called otherwise.
Pavel Kasparek [Mon, 10 Dec 2007 13:20:58 +0000 (13:20 +0000)]
added installation of *.sql files for ser_mysql.sh script to Debian package
Andrei Pelinescu-Onciul [Sun, 9 Dec 2007 13:15:24 +0000 (13:15 +0000)]
- fix for script numeric compares on 64 bit big endian systems
Miklos Tirpak [Fri, 7 Dec 2007 16:32:57 +0000 (16:32 +0000)]
documenting the configuration framework
Andrei Pelinescu-Onciul [Thu, 6 Dec 2007 12:22:28 +0000 (12:22 +0000)]
- solaris: - use isainfo -n for arch. detection (compile time)
- detect/support sun4v
- compile by default on 64 bits on sparc64
Andrei Pelinescu-Onciul [Thu, 6 Dec 2007 12:14:47 +0000 (12:14 +0000)]
- freebsd accept filter fix (it works now)
Andrei Pelinescu-Onciul [Thu, 6 Dec 2007 00:07:56 +0000 (00:07 +0000)]
- freebsd compile fixes (use struct __res_state* instead of res_state + some
typos)
Nils Ohlmeier [Wed, 5 Dec 2007 23:13:03 +0000 (23:13 +0000)]
fixes to compile on Mac OS X
Nils Ohlmeier [Wed, 5 Dec 2007 22:04:41 +0000 (22:04 +0000)]
fixed typo to fix compilation on OS X
Andrei Pelinescu-Onciul [Wed, 5 Dec 2007 20:26:58 +0000 (20:26 +0000)]
- close all the unneeded fds in child processes (=> significantly less fds
used)
Miklos Tirpak [Wed, 5 Dec 2007 16:30:57 +0000 (16:30 +0000)]
Modifying the return value of cfg_set* functions, in order to make
a difference between variable not found and error cases.
Miklos Tirpak [Wed, 5 Dec 2007 16:21:36 +0000 (16:21 +0000)]
- cfg_core.c and cfg_core.h are added to the repository as a placeholder
of the core configuration.
- debug level is switched to the new config variable type. From now,
it is changeble runtime.
Miklos Tirpak [Wed, 5 Dec 2007 15:51:24 +0000 (15:51 +0000)]
Initialize and destory the configuration framework in main.c,
and update the local config within the child processes at the
beginning of each loop.
TODO: The local config must be updated in all the modules that
fork a new process implementing an endless loop.
Miklos Tirpak [Wed, 5 Dec 2007 15:32:55 +0000 (15:32 +0000)]
Let the config framework compiled together with SER core
Miklos Tirpak [Wed, 5 Dec 2007 15:22:01 +0000 (15:22 +0000)]
Implementing a configuration framework, that can be used by SER core,
and by the modules, to get and set internal variables on-the-fly, and
eliminate SER restarts whenever it is possible.
The core and the modules can declare configuration variables, and can
retrieve the value of the variables at any time without performance
overhead. The framework makes sure that the variables do not change
during the SIP message processing, the child processes see a snapshot
of the variables with constant values. The variable, that is changed by
a cfg driver module, will be automatically replaced by the framework
the next time a SIP message is started to be processed.
The drivers can change the value of all the variables by names with or
without the need of commit. That means a kind of transaction support,
the framework can keep track of the changes (per driver) until they
are committed or rolled-back.
Andrei Pelinescu-Onciul [Tue, 4 Dec 2007 20:25:29 +0000 (20:25 +0000)]
- tcp support for queueing writes: if some data cannot be written immediately
on the socket (socket buffers full or still connecting), the data will be
queued and written at a latter time (max. queue size per socket is controlled
by tcp_conn_wq_max, timeout by tcp_send_timeout and total queued bytes / max.
mem. used by tcp_wq_max). By default disabled (experimental), to enable it
use tcp_buf_write=yes in ser.cfg. To compile without queueing support
use -DNO_TCP_BUF_WRITE.
Andrei Pelinescu-Onciul [Thu, 29 Nov 2007 21:01:45 +0000 (21:01 +0000)]
- io_wait support for write
- io_wait: added io_watch_chg(..)
- updated tcp code to the io_wait api changes
Andrei Pelinescu-Onciul [Wed, 28 Nov 2007 21:24:32 +0000 (21:24 +0000)]
- set default tcp options
Andrei Pelinescu-Onciul [Wed, 28 Nov 2007 19:20:47 +0000 (19:20 +0000)]
- advanced tcp options support:
- support for defering tcp accepts until some data is received
(linux & freebsd), default off. See NEWS: tcp_defer_accept.
- support for delaying the final ACK from the 3-way handshake until some
data is sent (the ACK will come with the 1st data segment). Default on
when supported (linux only). See NEWS: tcp_delayed_ack.
- support for limiting the number of retransmitted SYNs (linux only,
see NEW: tcp_syncnt)
- support for limiting the lifetime of orphaned sockets in FIN_WAIT2
(linux only, see NEWS: tcp_linger2)
- keepalive support, see NEWS: tcp_keepalive (default on), tcp_keepidle,
tcp_keepintvl and tcp_keepcnt
- the FD cache can now be turned off from ser.cfg (see NEW: tcp_fd_cache)
Andrei Pelinescu-Onciul [Wed, 28 Nov 2007 13:39:55 +0000 (13:39 +0000)]
- fix: don't extend the timeout on tcp_send() if the connection is handled
by a tcp_reader process
Andrei Pelinescu-Onciul [Tue, 27 Nov 2007 21:05:32 +0000 (21:05 +0000)]
- for tcp read processes, reuse the read fd for sending
- keep a tcp send fd cache (experimental)
(performance improvement)
Andrei Pelinescu-Onciul [Tue, 27 Nov 2007 07:23:27 +0000 (07:23 +0000)]
- switched to much better tcp timers (performance increase especially
with tesn of thousands of active tcp connections)
Michal Matyska [Mon, 26 Nov 2007 17:28:54 +0000 (17:28 +0000)]
- indentation changed only
Pavel Kasparek [Mon, 26 Nov 2007 14:24:15 +0000 (14:24 +0000)]
adding db_ops module to db url modparam line in debian package postinstall script
Pavel Kasparek [Mon, 26 Nov 2007 13:23:33 +0000 (13:23 +0000)]
added starting of ser in default runlevels to debian package post-install script
Pavel Kasparek [Mon, 26 Nov 2007 09:17:47 +0000 (09:17 +0000)]
adding ntp to Suggests: dependencies of ser-oob package
Pavel Kasparek [Fri, 23 Nov 2007 14:08:50 +0000 (14:08 +0000)]
adding forgotten templates file for ser-oob package
Andrei Pelinescu-Onciul [Thu, 22 Nov 2007 19:32:35 +0000 (19:32 +0000)]
- io_wait.h: when calling handle_io() in a loop (e.g. io_watch_add() &
SIGIO_RT or EPOLL_ET or io_wait_loop_* and repeat mode) always check & stop if
the fd was removed inside the handle_io() call
- tcp_main.c: always add the connection & clear the coresponding flags before
io_watch_add-ing its fd, to avoid the possibility of the handle_* being
called without fully init. parameters
Andrei Pelinescu-Onciul [Thu, 22 Nov 2007 13:43:09 +0000 (13:43 +0000)]
- local per process timer support (optimized "main" timer version that works
only inside one process). Several independent timers can be run in the
same time (if intialized with different handles). They'll be used for the
tcp connection timeout handling (near future).
Jiri Kuthan [Wed, 21 Nov 2007 17:46:58 +0000 (17:46 +0000)]
log level increased for other messages on server failure
Jiri Kuthan [Tue, 20 Nov 2007 00:11:19 +0000 (00:11 +0000)]
estehtic change: put applicability check in front of a route block to
avoid one level of if-nesting
Ondrej Martinek [Mon, 19 Nov 2007 17:31:24 +0000 (17:31 +0000)]
added `-L' option
Pavel Kasparek [Fri, 16 Nov 2007 12:57:47 +0000 (12:57 +0000)]
enabling db_ops module packaging
Jan Janak [Thu, 15 Nov 2007 17:45:02 +0000 (17:45 +0000)]
- proper query declaration for db_ops
- uncomented options for 2.1
Pavel Kasparek [Thu, 15 Nov 2007 12:59:57 +0000 (12:59 +0000)]
adding speeddial module to deb package again
Miklos Tirpak [Wed, 14 Nov 2007 15:30:21 +0000 (15:30 +0000)]
Fixing improper blacklisting of destinations because of non-INVITE timeouts.
Two new module parameters are introduced:
- blst_methods_add:
bitmap of method types that can trigger blacklisting
(only INVITE by default)
- blst_methods_lookup:
bitmap of method types that are looked up in the blacklist
(everything except BYE by default)
closes SER-331
Miklos Tirpak [Wed, 14 Nov 2007 09:08:53 +0000 (09:08 +0000)]
timer modparam must be named
Jiri Kuthan [Tue, 13 Nov 2007 16:01:38 +0000 (16:01 +0000)]
typo fixed, courtesy of Aldred E. H.
Jiri Kuthan [Tue, 13 Nov 2007 15:56:31 +0000 (15:56 +0000)]
core dump reported on lowr log level, small warning buffer size on
higher
Andrei Pelinescu-Onciul [Mon, 12 Nov 2007 15:58:49 +0000 (15:58 +0000)]
- expreimental e2eack retransmission callback (called each time a retrans.
of an ACK to a 2xx is received, however like TMCB_E2EACK_IN it will work
only as long as the transaction still exists)
Pavel Kasparek [Mon, 5 Nov 2007 15:33:12 +0000 (15:33 +0000)]
updating Debian specification - adding debconf configuration for ser package, adding ser-nth package, adding more options to default/ser file and init script
Miklos Tirpak [Mon, 5 Nov 2007 10:11:50 +0000 (10:11 +0000)]
correcting syntax error
Pavel Kasparek [Fri, 2 Nov 2007 16:43:28 +0000 (16:43 +0000)]
updating Debian specification and adding oob cfg file