Miklos Tirpak [Mon, 10 Mar 2008 10:37:24 +0000 (10:37 +0000)]
log message is changed to debug level in cfg_lookup_var(),
the message does not indicate an error in the framework
Pavel Kasparek [Mon, 10 Mar 2008 10:12:28 +0000 (10:12 +0000)]
debian debconf - forgotten +++ removed
Andrei Pelinescu-Onciul [Mon, 10 Mar 2008 09:58:15 +0000 (09:58 +0000)]
- missing docs for the cancel_b_method tm parameter
Pavel Kasparek [Mon, 10 Mar 2008 09:54:34 +0000 (09:54 +0000)]
debian debconf configuration - new separate question for ip address used for sending REGISTER replication
Andrei Pelinescu-Onciul [Sat, 8 Mar 2008 00:20:36 +0000 (00:20 +0000)]
- added a new tm parameter (cancel_b_method) that selects between 3 different
behaviours when attempting to cancel a branch where no reply was received:
0 (default) - stop request retransmission and send back a fake 487 (old ser
behaviour) ;
1 - keep retransmitting the request until a reply is received or the final
reply timeout kicks in ;
2 - stop request retransmission and send and retransmit a cancel on the
branch (this is not rfc conformant, but IMHO it wouldn't hurt) .
Greger V. Teigre [Fri, 7 Mar 2008 08:54:18 +0000 (08:54 +0000)]
added improved and modified onsip.org make_and_install wrapper script to simplify compile and installation. Run ./make_and_install to see docs. NOTE! Currently only tested for bash, patches to improve compatibility are welcome!
Jan Janak [Thu, 6 Mar 2008 12:14:10 +0000 (12:14 +0000)]
- base64 functions from rr module moved to libcds to make them accessible from
other modules.
Jiri Kuthan [Wed, 5 Mar 2008 05:17:20 +0000 (05:17 +0000)]
various patches from Alfred, anti-relay-to-private-address-space
protection added
Andrei Pelinescu-Onciul [Mon, 3 Mar 2008 19:01:18 +0000 (19:01 +0000)]
- fixed latest changes: restored @ (don't show .d creation commands), restored
set -e, replaced {} with () (more portable)
Ondrej Martinek [Mon, 3 Mar 2008 16:35:44 +0000 (16:35 +0000)]
Fixed %.d:%.c rule to fail if the target file was not created or is empty
Andrei Pelinescu-Onciul [Sun, 2 Mar 2008 15:30:52 +0000 (15:30 +0000)]
- warning fix
Andrei Pelinescu-Onciul [Sun, 2 Mar 2008 15:11:59 +0000 (15:11 +0000)]
- replaced strndup() in get_abs_pathname() since strndup is a GNU extensions
not present in non glibc based OSes
Andrei Pelinescu-Onciul [Sun, 2 Mar 2008 15:04:16 +0000 (15:04 +0000)]
- .d generation fix: sed with POSIX.1 re (e.g. Darwin, Solaris) does not
support '\?' (or '\+' or '\|')
Andrei Pelinescu-Onciul [Fri, 29 Feb 2008 20:21:58 +0000 (20:21 +0000)]
- store all the module response_f callbacks in an array (small performance
improvement when lots of modules are loaded)
Miklos Tirpak [Fri, 29 Feb 2008 10:04:49 +0000 (10:04 +0000)]
log_facility config parameter is declared in the cfg framework
Andrei Pelinescu-Onciul [Thu, 28 Feb 2008 23:32:10 +0000 (23:32 +0000)]
- new script function: t_grep_status("code") -- returns true if any branch received code as the final reply (or if no final reply was yet received, but a
"code" provisional reply). [old patch]
Andrei Pelinescu-Onciul [Thu, 28 Feb 2008 23:23:45 +0000 (23:23 +0000)]
- slight optimization of the pre-RFC3261 matching
Andrei Pelinescu-Onciul [Thu, 28 Feb 2008 23:12:53 +0000 (23:12 +0000)]
- try matching e2e acks in t_lookup() only for transactions which are
interested in them (have the TMCB_E2EACK_IN or TMCB_E2EACK_RETR_IN callbacks
registered). This should improve performance a little in the common case
when no E2EACK callbacks are registered.
- e2e ack fix: when matching e2e acks use the saved totag list => no more
problems with possible wrong transaction matching when a downstream forked
INVITE arrives and more then one branch is replied with 2xx.
Andrei Pelinescu-Onciul [Thu, 28 Feb 2008 23:07:00 +0000 (23:07 +0000)]
- e2e ack related fixes: - atomically mark seen e2e ack for a specific
branch/totag (the TMCB_E2EACK_IN callbacks should
now be called only once)
- for local transaction remember totags only if
the TMCB_LOCAL_COMPLETED callback is registered
(we use totags to avoid calling this callback
multiple times for the same retrans. final reply)
Andrei Pelinescu-Onciul [Thu, 28 Feb 2008 01:31:47 +0000 (01:31 +0000)]
- fix: try to match acks first to negative replied transaction and only if
this fails take into account possible e2e proxied transaction matching (
matching to transactions replied w/ 2xx). This bug will appear if we have
several forked invites arriving at the proxy and one of them gets a negative
reply while another one gets a 2xx => the 2xx replied one might steal the
negative ack. Note: this doesn't fix the same problem when all the invites are
replied with 2xx (in this case all the e2e acks will be matched to the last
invite, but this would be a problem only for properly accounting e2e acks).
Thanks to Bogdan Pintea for spotting it.
Related to SER-346.
Andrei Pelinescu-Onciul [Wed, 27 Feb 2008 22:21:25 +0000 (22:21 +0000)]
- cleanup: e2e_cancel() sets the cancel transaction label to be the same as the invite one only if E2E_CANCEL_HOP_BY_HOP is not defined. This is not a bugfix, because even if the labels are the same and the cancel is sent hop by hop there won't be any problem: the upstream cancel replies will match only the invite transaction and not the cancel, because the cancel transaction always has 0 branches in this case (it's used only for sending a reply back downstream).
Related to SER-346.
Andrei Pelinescu-Onciul [Tue, 26 Feb 2008 18:12:46 +0000 (18:12 +0000)]
- t_check_status() fix: in some error case a noninit pointer could be used
(patch from Bogdan Pintea <pintea@iptego.de>, part of SER-346)
Andrei Pelinescu-Onciul [Tue, 26 Feb 2008 17:37:59 +0000 (17:37 +0000)]
- stop retransmissions even if a final reply is received before we have
got a chance to start the retransmission timers.
Closes SER-362.
Miklos Tirpak [Tue, 26 Feb 2008 17:07:35 +0000 (17:07 +0000)]
Select fixup is postponed until the config is shmized, if the fixup
fails at parsing time. It can happen that the config group is not ready
at parsing time (dynamic group), but a module tries to parse a @cfg_get
select call in mod_init, or when the modparams are parsed.
Pavel Kasparek [Tue, 26 Feb 2008 15:34:54 +0000 (15:34 +0000)]
added depenedency to serweb to ser-ai1 meta-package
Miklos Tirpak [Tue, 26 Feb 2008 09:53:06 +0000 (09:53 +0000)]
Call set_final_timer() only if the reply is really going to be
sent out.
Closes SER-302
Miklos Tirpak [Tue, 26 Feb 2008 08:43:45 +0000 (08:43 +0000)]
Do not check uac->request.t_active when performing DNS failover
upon receiving a 503 response, t_active is always 0 in this case.
Closes SER-361
Miklos Tirpak [Mon, 25 Feb 2008 08:57:42 +0000 (08:57 +0000)]
t_reset_fr(), t_reset_retr(), and t_reset_max_lifetime() are added,
they can be used to reset the timer values to the default setting.
Closes SER-360
Andrei Pelinescu-Onciul [Sat, 23 Feb 2008 13:35:04 +0000 (13:35 +0000)]
- make config parse error stick out
Patch from Bogdan Pintea <pintea@iptego.de>.
Closes: SER-337
Andrei Pelinescu-Onciul [Sat, 23 Feb 2008 13:21:53 +0000 (13:21 +0000)]
- fix/improvement: the cmd line option '-c' returns -1, no matter if config is
OK or not, making it difficult to use from start scripts that want to check
the config first. Now it returns 0 if the config is ok.i
Patch from Bogdan Pintea <pintea@iptego.de>.
Closes SER-336.
Andrei Pelinescu-Onciul [Sat, 23 Feb 2008 13:10:19 +0000 (13:10 +0000)]
- fix: return status not checked when converting a string into a number in
comp_str(...) (used when comparing string to numbers in ser.cfg). Patch from
Bogdan Pintea <pintea@iptego.de>.
Closes SER-338.
Miklos Tirpak [Thu, 21 Feb 2008 11:09:23 +0000 (11:09 +0000)]
- CFG_ATOMIC flag is introduced: indicates that the variable can
be changed at any time, there is no need to wait for the SIP
message processing to finish
- debug config parameter is changed to CFG_ATOMIC type
Miklos Tirpak [Wed, 20 Feb 2008 14:52:23 +0000 (14:52 +0000)]
NULL child callback value was not checked, when a cfg driver called
cfg_set_now() before forking.
Andrei Pelinescu-Onciul [Wed, 20 Feb 2008 14:37:29 +0000 (14:37 +0000)]
- tcp flags cleanup (preparation for bigger tls related changes)
Miklos Tirpak [Wed, 20 Feb 2008 12:37:42 +0000 (12:37 +0000)]
cfg_get_handle() is introduced, the function can be used to get the handle
of a module config group. Modules can read each other's configuration
if neccessary this way.
Andrei Pelinescu-Onciul [Tue, 19 Feb 2008 15:42:17 +0000 (15:42 +0000)]
- fix: compile problems in io_watch_add if ser is compiled on linux with
NO_SIGIO=1 (patch from Ondrej Martinek <ondra@iptel.org>)
Miklos Tirpak [Mon, 18 Feb 2008 13:47:51 +0000 (13:47 +0000)]
fixing wrong placement of cfg_update() (thanks to Ondrej Martinek)
Miklos Tirpak [Mon, 18 Feb 2008 10:40:21 +0000 (10:40 +0000)]
minor simplification: some memcpy()s are replaced with assignment
Michal Matyska [Fri, 15 Feb 2008 17:37:24 +0000 (17:37 +0000)]
- adding any_uri.transport select
NOTE: if there is no transport parameter in the uri, it returns the default transport based on the uri type (sip/sips).
Michal Matyska [Fri, 15 Feb 2008 13:58:30 +0000 (13:58 +0000)]
- fix e2e ACK with maddr in request-uri
Miklos Tirpak [Fri, 15 Feb 2008 12:11:46 +0000 (12:11 +0000)]
tm module parameters are changed to use the configuration framework,
that means the parameters are changeable on-the-fly.
("fr_timer_avp", "fr_inv_timer_avp", and "tw_append" are left untouched)
Miklos Tirpak [Fri, 15 Feb 2008 09:13:39 +0000 (09:13 +0000)]
CFG_UNREF is moved outside of the lock in cfg_install_global function
(shm_free()s might take longer)
Patch from Andrei
Miklos Tirpak [Wed, 13 Feb 2008 16:14:21 +0000 (16:14 +0000)]
fixing the parameter of the per-child process callback, it did not
alway contain the variable name properly
Miklos Tirpak [Wed, 13 Feb 2008 15:25:13 +0000 (15:25 +0000)]
do not allow dns_servers_no to be set higher than the number of
DNS servers defined in /etc/resolv.conf
Miklos Tirpak [Wed, 13 Feb 2008 15:17:39 +0000 (15:17 +0000)]
pass the name of the changed variable to the callback in resolv_reinit()
Jan Janak [Wed, 13 Feb 2008 13:30:37 +0000 (13:30 +0000)]
- Added DB_NO_TZ flag, when set on a timestamp fields then
timezone shifts/conversions will be inhibited. The flag
has no effect on other field types.
Miklos Tirpak [Tue, 12 Feb 2008 16:17:58 +0000 (16:17 +0000)]
fixing the construction of ACK and CANCEL: the requests may end with
CRLF CR CRLF by mistake (patch from Bogdan Pintea)
Miklos Tirpak [Mon, 11 Feb 2008 17:11:59 +0000 (17:11 +0000)]
- use_dns_cache can be enabled/disabled runtime
- dns_cache_init is introduced: if set to 0, the dns cache is not
initialized, and cannot be enabled later (default is 1)
- dst_blacklist_init is introduced: if set to 0, the dst blacklist is
not initialized (similar to dns_cache_init) (default is 1)
Andrei Pelinescu-Onciul [Mon, 11 Feb 2008 16:42:32 +0000 (16:42 +0000)]
- missing '(' in sed dep. rules fixed (thanks to Ondrej <ondra@iptel.org)
Closes: SER-354
Jan Janak [Mon, 11 Feb 2008 16:07:16 +0000 (16:07 +0000)]
- applied patch by Brocha Strous and Stefan Sayer
closes SER-247
Miklos Tirpak [Mon, 11 Feb 2008 10:11:00 +0000 (10:11 +0000)]
"#include <libgen.h>" is moved to ut.c because of dirname() function
Miklos Tirpak [Mon, 11 Feb 2008 09:58:29 +0000 (09:58 +0000)]
DNS resolver and cache parameters use the configuration framework
that makes the config variables changeable on-the-fly.
- The resolver is reinitialized by each child process separately
when dns_retr_time, dns_retr_no, dns_servers_no, or dns_use_search_list
is changed.
- dns_reinit is introduced: the resolver is reinitialized when the
variable is set to 1, and the variable is reseted to 0 again.
It can be set via RPC for example, when /etc/resolv.conf changes,
but none of the SER config parameters are affected.
- A callback function is called by each child process after the resolver
has been reinitialized, if DNS_WATCHDOG_SUPPORT is enabled.
- socket_types is changed to be a global variable, and set by
fix_all_socket_lists(), because we have to remember for
the socket types, and do not allow dns_try_ipv6 to be enabled if there
is no ipv6 interface.
- minor bug is corrected: the expiration check is removed from
dns_cache_clean() function, when non-expired entries are deleted.
Miklos Tirpak [Fri, 8 Feb 2008 17:09:45 +0000 (17:09 +0000)]
- Call the per-child process callback functions even if the
config variables are changed before forking, so the modules/core
will not miss the change.
- fixing a very unlikely bug: when a module kept forking and destroying
new processes runtime (only jabber module does so), and two variables
were changed after the forked process called called cfg_update()
and before exited, and both variables had per-child process callback,
and all the other child processes updated their own local config faster
then this one, the list of the callbacks was not released, thus the
memory was not freed.
Jan Janak [Fri, 8 Feb 2008 05:37:44 +0000 (05:37 +0000)]
- Make sure that the global cfg_file variable always contains
full absolute pathname.
- Added get_abs_pathname function that can be used to convert
relative pathnames to absolutes with using the location of
cfg_file (or another file) as reference.
Jan Janak [Fri, 8 Feb 2008 05:36:49 +0000 (05:36 +0000)]
- make default pathnames of certificate files relative to the main
SER config file
Andrei Pelinescu-Onciul [Tue, 5 Feb 2008 21:47:58 +0000 (21:47 +0000)]
- verno++ to reflect the tcp changes
Andrei Pelinescu-Onciul [Tue, 5 Feb 2008 21:47:29 +0000 (21:47 +0000)]
- avoid extra read syscalls (detect short reads) in poll_et or sigio_rt case
(should improve performace)
- if POLLRDHUP or EPOLLRDHUP are supported (linux >= 2.6.17) use them
and avoid an extra syscall on EOF
- on write error try to see if there's still some data in the socket read
buffer and try to process it first (if there's no more data do a quick
connection destroy)
Andrei Pelinescu-Onciul [Tue, 5 Feb 2008 21:37:28 +0000 (21:37 +0000)]
- automatically "listen" for POLLRDHUP or EPOLLRDHUP if supported (linux
only)
Jan Janak [Tue, 5 Feb 2008 06:46:44 +0000 (06:46 +0000)]
- uses spaces instead of tabs, otherwise gmake refuses to process it
Jan Janak [Mon, 4 Feb 2008 22:46:27 +0000 (22:46 +0000)]
- server-side database functions added
Miklos Tirpak [Mon, 4 Feb 2008 16:37:55 +0000 (16:37 +0000)]
Make a difference between non-existing variable, and not readable variable
when the value cannot be retrieved. (reported by Vladimir Marek)
Miklos Tirpak [Mon, 4 Feb 2008 16:07:44 +0000 (16:07 +0000)]
typo fixed
Jan Janak [Mon, 4 Feb 2008 14:11:37 +0000 (14:11 +0000)]
- fixed wrong request method check, discovered by Jan Andres
Jan Janak [Mon, 4 Feb 2008 13:54:47 +0000 (13:54 +0000)]
- fixed wrong variable used in get_to_uid, reported by
Jan Andres
Jan Janak [Mon, 4 Feb 2008 10:19:21 +0000 (10:19 +0000)]
- added misssing get_to_uid, reported by Jan Andres
Jan Janak [Sat, 2 Feb 2008 13:21:09 +0000 (13:21 +0000)]
- obsolete scripts and utilities removed
closes SER-308
Jan Janak [Sat, 2 Feb 2008 13:00:09 +0000 (13:00 +0000)]
- removed duplicated doxygen comment
Jan Janak [Sat, 2 Feb 2008 12:26:59 +0000 (12:26 +0000)]
- doxygen comment moved to the header file
Jan Janak [Sat, 2 Feb 2008 12:24:41 +0000 (12:24 +0000)]
- get_to_uid modified to retrieve the UID from the Request-URI for
non-REGISTER requests, and from the To header for REGISTER requests.
Closes SER-234
Jan Janak [Fri, 1 Feb 2008 18:42:58 +0000 (18:42 +0000)]
- fixed testing of return value of fix_param
closes SER-323
Pavel Kasparek [Fri, 1 Feb 2008 14:50:14 +0000 (14:50 +0000)]
cut'n'paste errors fixed
Pavel Kasparek [Fri, 1 Feb 2008 14:13:09 +0000 (14:13 +0000)]
added denconf option to set usrloc db_mode option
Pavel Kasparek [Fri, 1 Feb 2008 14:05:10 +0000 (14:05 +0000)]
added a note about running ser as root in case core dumps are needed
Pavel Kasparek [Fri, 1 Feb 2008 07:50:04 +0000 (07:50 +0000)]
- split of db url for accounting from provisoning data in ser-oob.cfg
- added debconf options to configure it
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.)