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
Jan Janak [Wed, 31 Oct 2007 16:10:11 +0000 (16:10 +0000)]
- support for db_getopt
Andrei Pelinescu-Onciul [Thu, 18 Oct 2007 21:14:43 +0000 (21:14 +0000)]
- avoid using multicast sockets as send defaults
Ondrej Martinek [Thu, 18 Oct 2007 16:42:54 +0000 (16:42 +0000)]
* fixed memory leak in fix_param()
Vladimir Marek [Thu, 18 Oct 2007 12:43:03 +0000 (12:43 +0000)]
- removed bkl_hit_cnt stat from dst_blacklist_add_to function
Gergely Kovacs [Mon, 15 Oct 2007 14:32:19 +0000 (14:32 +0000)]
Identity-info and Identity header parser does not insist on BNF specified
in RFC.
Memory allocator part of Identity-info, Identity and Date header moved out
from get_hdr_field()@parser/msg_parser.c
Gergely Kovacs [Mon, 15 Oct 2007 14:21:01 +0000 (14:21 +0000)]
Identity, Identity-info, Date headers would be parsed only if they were
required
Miklos Tirpak [Mon, 15 Oct 2007 07:55:41 +0000 (07:55 +0000)]
fixes SER-322:
- parser sticks in an endless loop when the terminating
quote mark is missing in a substring: @hf_value["Contact].uri
- quote mark can be escaped: @hf_value[\"Contact\"].uri
Michal Matyska [Fri, 12 Oct 2007 22:25:40 +0000 (22:25 +0000)]
fixes SER-321 patch reflecting comments applied
Change to DNS subsystem: if search list used (not recomended) and name
was resolved using the search list, the link between the short name (query)
and the long name (answer) is stored in DNS cache as fake CNAME record.
New config script setting available (dns_search_full_match) which controls,
whether SER will check if the extension of the name is present in search list
(defualt) or blindly accepted (faster, but little bit risky for spoofed
DNS replies)
Vladimir Marek [Thu, 11 Oct 2007 06:07:02 +0000 (06:07 +0000)]
- don't include expired entries in DNS cache view output
Jan Janak [Wed, 10 Oct 2007 13:25:52 +0000 (13:25 +0000)]
- support for db_setopt
- fixed minor problems in memory deallocation on error
Vladimir Marek [Wed, 10 Oct 2007 10:56:41 +0000 (10:56 +0000)]
- don't include expired entries in IP blacklist view command
Karel Kozlik [Wed, 10 Oct 2007 09:31:37 +0000 (09:31 +0000)]
adding indexes to table credentials and domain
Andrei Pelinescu-Onciul [Tue, 9 Oct 2007 20:35:50 +0000 (20:35 +0000)]
- fix: when dns or blacklist are disabled, reply with an error from
the corresponding rpc function (way better then crashing)
- un-nested the stat_sum function
Andrei Pelinescu-Onciul [Tue, 9 Oct 2007 19:56:08 +0000 (19:56 +0000)]
- coding style (mainly identations) & some comments / spelling
Andrei Pelinescu-Onciul [Mon, 8 Oct 2007 13:29:41 +0000 (13:29 +0000)]
- mcast fixes: avoid trying to send from multicast listening sockets
(the kernel will fix it, but in a non-ser deterministic way, e.g. the
sent packet might have as source ip and address on which we don't listen):
- get_send_socket() will ignore a forced mcast socket
- msg_send() will ignore a mcast source socket and it will
automatically choose another one
Andrei Pelinescu-Onciul [Fri, 5 Oct 2007 08:27:13 +0000 (08:27 +0000)]
- fix: get_send_socket bug in some unlikely circumstances$
(a socket of a diff. proto is forced and find_si cannot fix it to$
a corresp. socket of the correct proto
Karel Kozlik [Thu, 4 Oct 2007 20:30:33 +0000 (20:30 +0000)]
new attribute type introduced 'sw_highest_alias_number'
Ondrej Martinek [Thu, 4 Oct 2007 18:09:24 +0000 (18:09 +0000)]
Makefile.defs:
* added MODS_DIR macro
globals.h:
* added mods_dir variable
main.c:
* added `-L dir' option
* fixed Usage message which referred to the non-existent
`-p port' option
* fixed parsing of command-line options - options with missing
arguments were incorrectly reported as unknown options
sr_module.c:
* load_module() - added possibilty to load modules by name,
the path to the module file is <mods_dir>/<name>.so
(if EXTRA_DEBUG macro is defined <mods_dir>/<name>/<name>.so
is tried too) where <mods_dir> can be specified using `-L dir'
option on the command-line, otherwise the default value MODS_DIR
is used
Miklos Tirpak [Wed, 3 Oct 2007 14:56:32 +0000 (14:56 +0000)]
Level of the select call is moved to a global variable form the structure
in order to make the select calls shared memory-safe.
Fixes SER-318
Miklos Tirpak [Wed, 3 Oct 2007 08:11:35 +0000 (08:11 +0000)]
Fixes SER-317:
Under heavy load some transactions time out after
fr_timer expires even though 180 response
was received and forwarded to the caller.
Andrei Pelinescu-Onciul [Tue, 2 Oct 2007 20:49:27 +0000 (20:49 +0000)]
- fix: build_uac_req() now will add a Content-Length header even if the$
request has no body. This fixes tcp problems with t_uac() constructed$
requests with no body (e.g. via fifo or nathelper stateful natpings)$
Andrei Pelinescu-Onciul [Mon, 1 Oct 2007 12:42:54 +0000 (12:42 +0000)]
- fix: ser generated ACKs and CANCELs via is built in the same way as the$
INVITE via (when forwarding on tcp, the ACK/CANCEL Via did miss the i=$
param which is added to the INVITE via)
Note that by default 2.1 reparses the sent INVITE so this fix is needed only
in a non-default config.
Karel Kozlik [Wed, 26 Sep 2007 12:52:56 +0000 (12:52 +0000)]
new attr_types introduced:
* fwd_busy_target
* fwd_noanswer_target
* fwd_always_target
* domain_data_version
Karel Kozlik [Fri, 21 Sep 2007 14:10:04 +0000 (14:10 +0000)]
introduced new attr type 'sw_uname_assign_mode' required by serweb
Miklos Tirpak [Fri, 14 Sep 2007 14:50:41 +0000 (14:50 +0000)]
expires value is missing in the output of dst blacklist view rpc command
Michal Matyska [Tue, 11 Sep 2007 15:20:02 +0000 (15:20 +0000)]
- warning fix
Michal Matyska [Mon, 10 Sep 2007 22:26:59 +0000 (22:26 +0000)]
on behalf of Jiri, patch adopted from 2.0 branch
* 2007-09-10 introduced phone2uri option which allows NOT to consider
* user=phone URIs as TEL URIs
Andrei Pelinescu-Onciul [Mon, 10 Sep 2007 19:55:39 +0000 (19:55 +0000)]
- case insensitive for GMT (although rfc3261 explicitely specifies that the
date is canse sensitive in practice there are some UAs that use lower case
GMT, e.g.: "MSSGW(B)" )
Michal Matyska [Mon, 10 Sep 2007 19:29:44 +0000 (19:29 +0000)]
Allow to compare the snd_ip and to_ip with the AVP value. (Was allowed for ports, not ips.)
For performance purist: I did not measure which code is faster; whether finding the AVP in the list or using DNS name resolution. Using AVP (track and) domain prefix makes the search faster, when AVP is in fallback domains, e.g. for global AVP.
Following code now allowed:
onsend_route{
if (isflagset(GATEWAY)) {
if (to_ip!=$g.gw_ip) {
log(1,"Bad gateway IP");
drop;
}
}
}
Tomas Mandys [Mon, 10 Sep 2007 19:02:58 +0000 (19:02 +0000)]
eval module:
- removing dependency on uuid lib
- removing from excluded modules
- fixing SER-298, SER-293 reported by Enrico
Andrei Pelinescu-Onciul [Fri, 7 Sep 2007 14:39:07 +0000 (14:39 +0000)]
- fix recently introduced bug
Vladimir Marek [Thu, 6 Sep 2007 15:11:09 +0000 (15:11 +0000)]
Replaced rpc->struct_add by rpc->printf for view functions.
If the cache/blacklist contained many entries then SER had problem with
number of chunks. The solution with printf is working for 8000 entries in
the blacklist without any problem.
Michal Matyska [Thu, 6 Sep 2007 12:46:21 +0000 (12:46 +0000)]
fixes SER-304
allow use AVPs and SELECTs as the parameter for realm, e.g.
@authorization["$fd.digest_realm"].uri or
@proxy_authorization["@ruri.domain"].user
Andrei Pelinescu-Onciul [Wed, 5 Sep 2007 17:20:35 +0000 (17:20 +0000)]
- tcp add alias policy changes (experimental): now new aliases are added even
if matching aliases for different connections exists. Until now an existing
alias pointing to some other connection would trigger an error, the reason
being that someone could try to "steal" a connection. However this turned out
to affect also normal usage, like UAs behind nats that change the ip, or
rebooted UAs (that didn't have a chance to close the tcp connection).
Andrei Pelinescu-Onciul [Tue, 4 Sep 2007 10:01:27 +0000 (10:01 +0000)]
- fixed bug in list handling (del)
Tomas Mandys [Fri, 31 Aug 2007 08:18:36 +0000 (08:18 +0000)]
- fixing bug when writing zero terminator at len+1 instead to len
Miklos Tirpak [Fri, 31 Aug 2007 08:12:08 +0000 (08:12 +0000)]
- duplicate definition of USE_DST_BLACKLIST is removed
- typos in USE_DST_BLACKLIST_STATS are corrected
Miklos Tirpak [Fri, 31 Aug 2007 08:07:40 +0000 (08:07 +0000)]
integers values were fixed-up as short by mistake
Andrei Pelinescu-Onciul [Mon, 27 Aug 2007 23:05:59 +0000 (23:05 +0000)]
- disable by default path MTU discovery on linux (unfortunately on linux path
MTU discovery is enabled by default even for udp, which produces packets
with the DF flag set). It can be re-enabled using the new pmtu_discovery
config option.
Patch from Hendrik Scholz (hscholz).
Closes SER-275.
Andrei Pelinescu-Onciul [Mon, 27 Aug 2007 21:48:56 +0000 (21:48 +0000)]
- split init_sock_opt into init_sock_opt, called for new sockets
(e.g. on connect) and init_sock_opt_accept() called only for sockets
created as a result of an accept and which inherit the options from
the "parent" listening socket (which the O_NONBLOCK exception for
which no behaviour is specified and which is seems to be inherithed on
BSDs and solaris, but not on linux).
- init_sock_opt sets also SO_REUSEADDR
Jiri Kuthan [Mon, 27 Aug 2007 17:30:46 +0000 (17:30 +0000)]
added index to make usrloc expires fast
Jiri Kuthan [Sun, 26 Aug 2007 08:19:54 +0000 (08:19 +0000)]
put ifdef reports unreported before
Vaclav Kubart [Fri, 24 Aug 2007 08:29:04 +0000 (08:29 +0000)]
is_2rr moved into rr parser to allow its usage from other modules
Andrei Pelinescu-Onciul [Thu, 23 Aug 2007 20:43:58 +0000 (20:43 +0000)]
- detect INADDR_ANY (0.0.0.0 or ::) listen addresses
- basic tcp support for INADDR_ANY
Miklos Tirpak [Wed, 22 Aug 2007 15:10:13 +0000 (15:10 +0000)]
dns_get_server_state() implemented which returns the state of the DNS servers
Miklos Tirpak [Tue, 21 Aug 2007 11:08:15 +0000 (11:08 +0000)]
dns_cache_del_nonexp configuration option is introduced: it allows deletion of non-expired records from the DNS cache
when the cache becomes full. Disabled by default.
Andrei Pelinescu-Onciul [Mon, 20 Aug 2007 11:09:13 +0000 (11:09 +0000)]
- improved chances to catch doubles frees on joined fragments
(QM_JOIN_FREE and QM_DEBUG have to be defined).
Patch from Michal Matyska <michal@iptel.org>.
Closes SER-296.
Andrei Pelinescu-Onciul [Mon, 20 Aug 2007 10:36:37 +0000 (10:36 +0000)]
- applied Michal Matyska <michal@iptel.org> patch: fixes sercmd/libbinrpc
getting stuck in infinite loop on EOF (ser shutdown).
Closes SER-295.
Vladimir Marek [Sat, 18 Aug 2007 19:40:59 +0000 (19:40 +0000)]
FIX - if hooks are defined then increment hit counter only when a destination is added into blacklist
Jan Janak [Tue, 14 Aug 2007 12:24:10 +0000 (12:24 +0000)]
- write detailed description before lists of all functions and structures
Miklos Tirpak [Mon, 13 Aug 2007 14:33:57 +0000 (14:33 +0000)]
memset() was sometimes bypassed for some reason in dns_cache_clone_entry()
Jan Janak [Mon, 13 Aug 2007 12:57:40 +0000 (12:57 +0000)]
- sip_msg_t and hdr_field_t types defined
Jan Janak [Mon, 13 Aug 2007 12:37:39 +0000 (12:37 +0000)]
- doxygen configuration updated to the latest doxygen version
Jan Janak [Mon, 13 Aug 2007 12:37:02 +0000 (12:37 +0000)]
- make doxygen and clean_doxygen targets available in module Makefiles
Andrei Pelinescu-Onciul [Wed, 1 Aug 2007 00:05:40 +0000 (00:05 +0000)]
- support for setting the source address in tcp_send() and tcpconn_get()
(should allow for a better tcp force_send_socket() in the future)
- add multiple aliases for each connection, to cover all the search
possiblities: (dst_ip, dst_port), (local_ip, dst_ip, dst_port),
(local_ip, local_port, dst_ip, dst_port).
- improved connection hash function
Gergely Kovacs [Tue, 31 Jul 2007 13:27:55 +0000 (13:27 +0000)]
- dst blacklist measurements added
Gergely Kovacs [Tue, 31 Jul 2007 13:27:09 +0000 (13:27 +0000)]
- DNS cache measurements added