11 years agoperl(k): use sr31_cmd_export_t
Andrei Pelinescu-Onciul [Wed, 4 Aug 2010 13:50:30 +0000 (15:50 +0200)]
perl(k): use sr31_cmd_export_t

Use the new cmd export interface when calling other modules

11 years agoapp_python: use sr31_cmd_export_t
Andrei Pelinescu-Onciul [Wed, 4 Aug 2010 13:49:14 +0000 (15:49 +0200)]
app_python: use sr31_cmd_export_t

Use the new command export interface when trying to call other
modules functions.

11 years agocore: internal module interface changes
Andrei Pelinescu-Onciul [Wed, 4 Aug 2010 13:38:58 +0000 (15:38 +0200)]
core: internal module interface changes

Use a new internal representation for the module interface, that
combines the ser & kamailio module interfaces plus some extra
internal stuff.
This allows using extra flags (e.g. the new internal fixup_flags)
and also simplifies all the functions dealing with the module
interface or cmd_exports (since now there is a single internal
interface there's no need to check its version and access it
differently depending on it).
The ser or kamailio module interfaces are converted to the new
sr31 mod interface when the modules are loaded

11 years agoprint(s): fparam fixup example
Andrei Pelinescu-Onciul [Fri, 4 Jun 2010 10:40:09 +0000 (12:40 +0200)]
print(s): fparam fixup example

print2 uses now fixup_var_str_12() and get_str_fparam().
Good for testing and as example.

11 years agocore: support for RVEs in fparam fixups
Andrei Pelinescu-Onciul [Wed, 2 Jun 2010 16:24:05 +0000 (18:24 +0200)]
core: support for RVEs in fparam fixups

Hack to allow using RVEs in "safe" fparam fixups. This way all the
module functions using them will automatically have var support
(most ser modules that already supported variables as quoted
 parameter, support now any variable expression, without quotes
The cleanup is done by the core (this is the "hack" part).

t_set_fr($v + 2 + $x)  should work now
(it uses fixup_var_int_1 which is RVE-safe).

t_set_fr("$v") is now equivalent with t_set_fr($v).

11 years agocore: rval - don't use static buffer for int conversions
Andrei Pelinescu-Onciul [Wed, 17 Mar 2010 19:09:29 +0000 (20:09 +0100)]
core: rval - don't use static buffer for int conversions

- don't use static buffers for string conversions
- extended rval_cache with enough space to store an int converted
  to string
- switched to signed ints (until now all ints where treated as

11 years agocore: ut.* - BSD licence
Andrei Pelinescu-Onciul [Tue, 16 Mar 2010 18:33:44 +0000 (19:33 +0100)]
core: ut.* - BSD licence

11 years agocore: ut.h: added sint2strbuf()
Andrei Pelinescu-Onciul [Tue, 16 Mar 2010 18:28:36 +0000 (19:28 +0100)]
core: ut.h: added sint2strbuf()

- added sint2strbuf() that works like sint2str(), but isntead of
  using a static buffer, requires a buffer to be provided by the
  called (hence being much safer).
- increased INST2STR_MAX_LEN to accommodate for sign.

11 years agoperl(k): update api calls: s/MODULE_T/MODULE2_T/
Andrei Pelinescu-Onciul [Mon, 15 Mar 2010 19:18:40 +0000 (20:18 +0100)]
perl(k): update api calls:  s/MODULE_T/MODULE2_T/

MODULE_T was obsoleted by recent changes. It was replaced by

11 years agoapp_python: update api calls: s/MODULE_T/MODULE2_T
Andrei Pelinescu-Onciul [Mon, 15 Mar 2010 19:16:01 +0000 (20:16 +0100)]
app_python: update api calls:  s/MODULE_T/MODULE2_T

MODULE_T was obsoleted by recent core changes. It was replaced by

11 years agoprint(s): more module function examples
Andrei Pelinescu-Onciul [Mon, 15 Mar 2010 19:14:40 +0000 (20:14 +0100)]
print(s): more module function examples

Added example functions with no fixups, with 1, 2, 3 or variable
number of parameters (VAR_PARAM_NO).

11 years agocore: support for expressions/variables in function parameters
Andrei Pelinescu-Onciul [Mon, 15 Mar 2010 19:05:49 +0000 (20:05 +0100)]
core: support for expressions/variables in function parameters

- all module functions that do not have fixups can now be called
  with variables, avps or expressions. They will be converted to
  string, either on startup (if the expression is constant, e.g.
  "a"+"b") or at runtime (if the expression is not constant, .e.g.
   $a, $b+$var(foo)+"test").
   E.g.: f("1+1=" + 1 + 1, "v=" + $v).
- slightly faster module function calls (eliminated some
  never-triggered sanity tests).

11 years agomtree: fixed attr size in mt_list command
Daniel-Constantin Mierla [Mon, 15 Mar 2010 12:15:09 +0000 (13:15 +0100)]
mtree: fixed attr size in mt_list command

11 years agomtree: mt_reload updated
Daniel-Constantin Mierla [Mon, 15 Mar 2010 11:16:58 +0000 (12:16 +0100)]
mtree: mt_reload updated

- reload function takes in consideration the operation mode

11 years agomtree: documented new parameters
Daniel-Constantin Mierla [Mon, 15 Mar 2010 11:07:01 +0000 (12:07 +0100)]
mtree: documented new parameters

- new parameters: db_table, tname_column and mt_tree_type

11 years agomtree: fixet mt_tree_type param name
Daniel-Constantin Mierla [Mon, 15 Mar 2010 11:04:04 +0000 (12:04 +0100)]
mtree: fixet mt_tree_type param name

11 years agomtree: load many trees from same table
Daniel-Constantin Mierla [Mon, 15 Mar 2010 10:55:44 +0000 (11:55 +0100)]
mtree: load many trees from same table

- support to load data for different trees from same table
- this is a different operating mode, where tree names are dynamic, it
  is no need to define them via parameters
- static tree definition takes priority (if a static tree is defined,
  the table with dynamic trees name is not loaded)

11 years agoapp_python: fix mk_action() call
Andrei Pelinescu-Onciul [Sun, 14 Mar 2010 16:15:32 +0000 (17:15 +0100)]
app_python: fix mk_action() call

The mk_action() call used the old openser format instead of the
sip_router one.

11 years agoperl(k): fix mk_action call
Andrei Pelinescu-Onciul [Sun, 14 Mar 2010 16:13:40 +0000 (17:13 +0100)]
perl(k): fix mk_action call

The mk_action() call used the old openser format, instead of the
sip_router one.

11 years agomalloc_test: realloc testing support
Andrei Pelinescu-Onciul [Fri, 12 Mar 2010 18:38:42 +0000 (19:38 +0100)]
malloc_test: realloc testing support

Support for stress testing realloc:
 - new config variable realloc_p for enabling realloc() usage
   instead of malloc() for mem tests and mem_rnd_alloc. Its value
   is the percent of realloc()s from the total calls to alloc
   functions (0-90%).
 - new RPC: mt.mem_realloc size [unit]  for manually triggering
   a  realloc.

11 years agomem: fix real_used stats for realloc
Andrei Pelinescu-Onciul [Fri, 12 Mar 2010 11:16:16 +0000 (12:16 +0100)]
mem: fix real_used stats for realloc

A realloc that shrank an allocation accounted twice for the
fragment overhead. Basically each shrinking realloc would
introduce an error in the real_used mem stats, between 8 bytes
(f_malloc, no debugging, 32 bits) and up to 96 bytes (q_malloc
with debugging, 64 bits).
This bug concerns only the accounting part. It does not cause any
memory leak or any real runtime problem. It was introduced
in commit fb9d6e50 (2005).

11 years agotest/unit Added support for running the tests if kamailio was built instead of ser
Marius Zbihlei [Fri, 12 Mar 2010 09:54:25 +0000 (11:54 +0200)]
test/unit Added support for running the tests if kamailio was built instead of ser

Support was added by checking what executable exists in the $SR_DIR path

11 years agoregistrar Removed unnecessary child_fixup for min_expires parameter
Marius Zbihlei [Fri, 12 Mar 2010 09:36:10 +0000 (11:36 +0200)]
registrar Removed unnecessary child_fixup for min_expires parameter

The param was not exported to the stats framework.

11 years agoregistrar Fixed typo in original commit that caused an invalid reference when linking
Marius Zbihlei [Fri, 12 Mar 2010 09:29:47 +0000 (11:29 +0200)]
registrar Fixed typo in original commit that caused an invalid reference when linking

11 years agomem: fix f_malloc big fragments bug
Andrei Pelinescu-Onciul [Thu, 11 Mar 2010 20:08:20 +0000 (21:08 +0100)]
mem: fix f_malloc big fragments bug

In some situation, when dealing with several big free fragments
(>16k) f_malloc would wrongly choose a fragment with a smaller
size then requested. This would create the impression that someone
arbitrarily overwrites the memory.

First symptoms were some tls crashes reported by
Klaus Darilion
Reproduced using the malloc_test module.

11 years agomalloc_test: doc updates & generated README
Andrei Pelinescu-Onciul [Thu, 11 Mar 2010 20:06:17 +0000 (21:06 +0100)]
malloc_test: doc updates & generated README

11 years agomalloc_test: new module for testing/debugging memory problems
Andrei Pelinescu-Onciul [Thu, 11 Mar 2010 18:38:04 +0000 (19:38 +0100)]
malloc_test: new module for testing/debugging memory problems

malloc_test is a new module for stressing the memory allocators
and easily simulating out-of-memory conditions or memory leaks.

Implemented RPCs:
mt.mem_alloc size - allocates size bytes
mt.mem_free [size]  - frees at least size bytes. If size is missing
  frees everything allocated by any malloc_test test function.
mt.mem_used  - amount of currently allocated mem. by malloc_test.
mt.mem_rnd_alloc min max total [unit] - allocates total
  <unit> bytes in chunks with the size randomly chosen between min
  and max.  <unit> is optional and can be one of b-bytes, k - kb,
  m - mb, g -gb.
mt.mem_test_start min max total min_int max_int total_time [unit]
  starts a malloc test that will take total_time to execute.
  Memory allocations will be performed at intervals randomly
  chosen between min_int and max_int (in ms). Each allocation will
  have a randomly chosen size between min and max <unit> bytes.
  After total <unit> bytes are allocated, everything is
  released/freed again and the allocations are restarted. The
  total_time is expressed in milliseconds.
  Several tests can be run in the same time.
mt.mem_test_stop id - stops the test identified by id.
mt.mem_test_destroy id - destroys the test identified by id
   (besides stopping it, it also frees all the data, including the
mt.mem_test_destroy_all - destroys all the running or stopped
mt.mem_test_list [id] - Prints data about test id (running time,
  total allocations, errors a.s.o.). If id is missing, it will lists
  all the tests.

Script functions:
mt_mem_alloc(size) - equivalent to the mt.mem_alloc RPC.
mt_mem_free(size) - equivalent to the mt.mem_free RPC.

11 years agomodules/mediaproxy: Added support for ICE negotiation.
Juha Heinanen [Thu, 11 Mar 2010 02:03:41 +0000 (04:03 +0200)]
modules/mediaproxy: Added support for ICE negotiation.

Patch provided by Sal Ibarra Corretg.

11 years agomake: fix CPU reset in some conditions
Andrei Pelinescu-Onciul [Wed, 10 Mar 2010 16:30:39 +0000 (17:30 +0100)]
make: fix CPU reset in some conditions

In some cases like trying to build a package with debug config
(e.g. make cfg mode=debug; .... ; make deb), the CPU make variable
was reset resulting in a build failure. This happens because in
the debug config CPU is not set and hence is  saved as empty.
Trying to build a package will start a sub-make which will try to
re-do the config without debugging (make cfg), but the CPU
variable with and empty value will be inherited from the
environment and thus the CPU?=something lines won't have any
The fix replaces CPU?=something with
$(call set_if_empty,CPU,something)
This works around having an empty CPU in the environment.

Reported-by: Jan Janak <>
11 years agodocbook: fix rm'ed files mentioned in .d build error
Andrei Pelinescu-Onciul [Wed, 10 Mar 2010 09:42:15 +0000 (10:42 +0100)]
docbook: fix rm'ed files mentioned in .d build error

When some .xml include file is deleted or removed, but the .d
already exists, the build will fail trying to build the apparently
missing file, requiring a make proper.
This fix enclosed the prerequisites in $(wildcard ...), when
generating the .d file.

11 years agocfg. parser: fix warnings
Andrei Pelinescu-Onciul [Wed, 10 Mar 2010 08:45:28 +0000 (09:45 +0100)]
cfg. parser: fix warnings

- removed flex input warnings
- workaround for bison conflicts warnings (%expect ...)

11 years agomake: on-the-fly dependency generation
Andrei Pelinescu-Onciul [Wed, 10 Mar 2010 08:25:13 +0000 (09:25 +0100)]
make: on-the-fly dependency generation

- support on-the-fly dependency file generation with gcc >=3.0
 (the dependency files are generated while compiling the object
 file, eliminating another gcc+sed invocation)

- support for using makedepend -f-  for generating dependencies
 E.g.: make cfg MKDEP="makedepend -f-". In general gcc should be
 preferred if available (use this if you don't have gcc and your
 compiler doesn't generate good deps).

11 years agomake: depends move/rm file fix & optimization
Andrei Pelinescu-Onciul [Tue, 9 Mar 2010 20:57:25 +0000 (21:57 +0100)]
make: depends move/rm file fix & optimization

- fix for make failing if the depends were made and a *.h is moved
  or deleted
- avoid restarting make when depends change (make the depends at
  the same moment when the .o are generated)

11 years agomodules/carrierroute Ser cfg framework for some carrierroute parameters (fetch_rows...
Marius Zbihlei [Tue, 9 Mar 2010 12:54:49 +0000 (14:54 +0200)]
modules/carrierroute Ser cfg framework for some carrierroute parameters (fetch_rows, use_domain and fallback_default)

Added support for cfg framework for some parameters
Updated documentation to reflect the changes

11 years agomodules_k/registrar Updated documentation to reflect ser cfg framework integration
Marius Zbihlei [Mon, 8 Mar 2010 14:11:05 +0000 (16:11 +0200)]
modules_k/registrar Updated documentation to reflect ser cfg framework integration

11 years agodoc: select_list regenerated
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:58:06 +0000 (12:58 +0100)]
doc: select_list regenerated

11 years agodoc: cfg_list regenerated
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:57:08 +0000 (12:57 +0100)]
doc: cfg_list regenerated

11 years agodoc: rpc_lists regenerated
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:56:02 +0000 (12:56 +0100)]
doc: rpc_lists regenerated

11 years agotm: rpc doc strings moved to tm.c
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:52:27 +0000 (12:52 +0100)]
tm: rpc doc strings moved to tm.c

Moved all the rpc doc strings into tm.c, close to the rpc exports
declaration. This will also allow automatic documentation
generation for the rpcs (the script that generates the rpc docs,
parses C code and cannot "resolve" symbols defined in other

11 years agodoc rpc: fix xmllint errors
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:31:59 +0000 (12:31 +0100)]
doc rpc: fix xmllint errors

Fix unsupported xmlns:xi attrib., missing example titles and
text or examples outside sections.

11 years agodoc: fix bare <listitem> in generated xmls
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:28:04 +0000 (12:28 +0100)]
doc: fix bare <listitem> in generated xmls

- <listitem></listitem> cannot contain bare text => switched to
  using <simpara></simpara> inside

11 years agodoc: *_list: fix xmllint errors and TOC
Andrei Pelinescu-Onciul [Sun, 7 Mar 2010 11:24:02 +0000 (12:24 +0100)]
doc: *_list: fix xmllint errors and TOC

- fix xmllint erros
- use a 0-level TOC (such that the main TOC will list only the
  chapters and not also the sections)

11 years agodoc: *_list makefiles and files lists updates
Andrei Pelinescu-Onciul [Sat, 6 Mar 2010 12:57:46 +0000 (13:57 +0100)]
doc: *_list makefiles and files lists updates

- added new makefile targets: gen-files-list (generate the file
  lists in a makefile-ready-to-paste format), diff-list
   (searches for files and prints the one which are not listed
   in the makefile).
- updated make autogen to obey the excluded file and group lists
- updated the files lists for cfg_list, rpc_list and select_list.
  Now they are in alphabetical order, with core groups first, as
  generated by make gen-files-list.
- fixed title for the config var list

11 years agodoc: cfg_list regenerated
Andrei Pelinescu-Onciul [Fri, 5 Mar 2010 18:17:06 +0000 (19:17 +0100)]
doc: cfg_list regenerated

11 years agodoc: cfg_list: updated module list
Andrei Pelinescu-Onciul [Fri, 5 Mar 2010 18:14:27 +0000 (19:14 +0100)]
doc: cfg_list: updated module list

Added siputils, registrar(k) and ratelimit.

11 years agodoc: rpc_list regenerated
Andrei Pelinescu-Onciul [Fri, 5 Mar 2010 18:10:22 +0000 (19:10 +0100)]
doc: rpc_list regenerated

11 years agodoc: rpc_list: updated the module list
Andrei Pelinescu-Onciul [Fri, 5 Mar 2010 18:04:25 +0000 (19:04 +0100)]
doc: rpc_list: updated the module list

Removed rls(s), pike(s) and pa(s) (obsolete) and add
debugger htable, usrloc(k) and uac(k).
Changed the name for usrloc(s) and usrloc(k) so that there won't
be name conflicts.

11 years agodoc: select_list regenerated
Andrei Pelinescu-Onciul [Fri, 5 Mar 2010 17:43:44 +0000 (18:43 +0100)]
doc: select_list regenerated

11 years agoMerge remote branch 'origin/andrei/cdefs2doc'
Andrei Pelinescu-Onciul [Fri, 5 Mar 2010 17:33:44 +0000 (18:33 +0100)]
Merge remote branch 'origin/andrei/cdefs2doc'

* origin/andrei/cdefs2doc: (23 commits)
  doc: select_list: added intro & notations sections
  doc: select_list: generated docbook and txt lists
  doc: select_list: added makefiles for auto-gen.
  doc: {rpc,cfg}_list: fix makefile exclude list
  doc: fix for incomplete initializers
  doc: support for docbook output
  doc: cfg_list: generated docbook cfg vars lists
  doc: cfg_list: docbook output directory
  doc: cfg_list: support for generating docbook output
  doc: support for docbook output
  doc: rpc_list: generated docbook rpc lists
  doc: rpc_list: docbook output directory
  doc: rpc_list: support for generating docbook output
  doc: support for docbook output
  doc: select doc generator: more fixes & core selects support
  doc: select doc generator fix flags processing
  doc: generated rpc lists
  doc: generated cfg vars lists
  doc: added makefiles for auto-gen. rpc and cfg vars lists
  doc: script to generate select lists from C code

11 years agomodules_k/permisssions Fixed a bug that caused a segmentation fault if the mi_fifo...
Marius Zbihlei [Fri, 5 Mar 2010 14:54:58 +0000 (16:54 +0200)]
modules_k/permisssions Fixed a bug that caused a segmentation fault if the mi_fifo subnet_dump was issued
but the permissions module was not fully configured (no db url given)

11 years agomodules_k/userblacklist : check_blacklist function uses globalblacklist_table as...
Marius Zbihlei [Fri, 5 Mar 2010 14:32:49 +0000 (16:32 +0200)]
modules_k/userblacklist : check_blacklist function uses globalblacklist_table as data source if no parameter is given.

Globalblacklist_table parameter was not used at all in the userblacklist module, the check_blacklist funtion always needing
one parameters and the db table. This is not mandatory anymore, as the check_blacklist function with no parameters will use
the globalblacklist_table

11 years agomodules/lcr: improved documentation related to defunct_gw function
Juha Heinanen [Fri, 5 Mar 2010 04:44:03 +0000 (06:44 +0200)]
modules/lcr: improved documentation related to defunct_gw function
(cherry picked from commit 98607744d233e03ba6e71f076ee4dd5e68d4407b)

11 years agodoc: select_list: added intro & notations sections
Andrei Pelinescu-Onciul [Thu, 4 Mar 2010 18:27:33 +0000 (19:27 +0100)]
doc: select_list: added intro & notations sections

11 years agopipelimit: module for pipe traffic limit
Daniel-Constantin Mierla [Sun, 24 Jan 2010 21:25:03 +0000 (22:25 +0100)]
pipelimit: module for pipe traffic limit

- based on ratelimit
- has only pipe functionality so far
- pipe definitions loaded from database
- pipe id is name
- dynamic management of piples
(cherry picked from commit 163cd084ab97d8938dd014867f70811f0cffa54f)

11 years agomakefile: fix modules config overwrite
Andrei Pelinescu-Onciul [Thu, 4 Mar 2010 12:16:06 +0000 (13:16 +0100)]
makefile: fix modules config overwrite

A config file provided by a module was installed even if a
previous version was already installed, overwriting the old
version. Now if a file with the same name already exists, the
module config file will be installed with a .sample extension
added (so only .sample will be overwritten, never an active .cfg).

Reported-by: Klaus Darilion klaus.mailinglists pernau at
Closes FlySpray#38 .

11 years agodoc: fix links & path for ctl & xmlrpc
Andrei Pelinescu-Onciul [Thu, 4 Mar 2010 09:52:50 +0000 (10:52 +0100)]
doc: fix links & path for ctl & xmlrpc

ctl & xmlrpc were moved from modules_s/ to modules/, but the
links to them in the docs were not updated.

11 years agoremoved duplicate modules_s/tls
Andrei Pelinescu-Onciul [Thu, 4 Mar 2010 09:07:48 +0000 (10:07 +0100)]
removed duplicate modules_s/tls

The up-to-date tls module is modules/tls.

11 years ago* modules_k/permissions: subnet matching fix (credits to anonymous)
Juha Heinanen [Thu, 4 Mar 2010 07:09:22 +0000 (09:09 +0200)]
* modules_k/permissions: subnet matching fix (credits to anonymous)

11 years agotest: added parse to body test program
Andrei Pelinescu-Onciul [Wed, 3 Mar 2010 18:30:04 +0000 (19:30 +0100)]
test: added parse to body test program

- added parse to body test program that uses the same code as
  sip-router. E.g. test/parse_to_body "Foo <foo@bar>CR".
- update p_uri (parse uri test) to compile with sip-router.

11 years agocore: define shm_str_dup() only ifdef SHM_MEM
Andrei Pelinescu-Onciul [Wed, 3 Mar 2010 18:29:04 +0000 (19:29 +0100)]
core: define shm_str_dup() only ifdef SHM_MEM

11 years agocore: parse_to display name multi-token no-quotes fix
Andrei Pelinescu-Onciul [Wed, 3 Mar 2010 18:24:08 +0000 (19:24 +0100)]
core: parse_to display name multi-token no-quotes fix

Fix for properly returning a non-quoted display name that is
composed of several tokens (contains spaces). The previous version
would set the display name to the first token, in this case
(e.g. Foo Bar <sip:foo@bar> resulted in display_name="Foo" instead
 of "Foo Bar").

Reported-by: Ronald Voermans ronald voermans nu
Closes FlySpray#39 .

11 years agoparse_param: Let the body point behind '=' when body is missing.
Jan Janak [Tue, 2 Mar 2010 21:03:42 +0000 (16:03 -0500)]
parse_param: Let the body point behind '=' when body is missing.

This fixes potential issues with functions that copy parameters
structures from private to shared memory because such functions
usually translate string pointers using a base pointing at the
first character of the parameter list.

Reported by Daniel.

11 years agoparam_parser: Accept parameters with missing bodies.
Jan Janak [Tue, 23 Feb 2010 19:38:31 +0000 (14:38 -0500)]
param_parser: Accept parameters with missing bodies.

This change makes the parameter parser more forgiving. It accepts
parameters with missing bodies (foo=), such parameters will have
the body set to an empty string. Observed on

11 years agocore: added missing parsed flags & minor get_hdr optimization
Andrei Pelinescu-Onciul [Tue, 2 Mar 2010 16:41:37 +0000 (17:41 +0100)]
core: added missing parsed flags & minor get_hdr optimization

- parsed flags were not set for some headers (ACCEPTCONTACT,

- get_hdr() now checks first if the required header type was
  parsed using the parsed flags. If it was not, it exists
  immediately (it does not try to search through all the headers

11 years agocore: msg_parse minor 64bit warning fix
Andrei Pelinescu-Onciul [Fri, 26 Feb 2010 14:21:50 +0000 (15:21 +0100)]
core: msg_parse minor 64bit warning fix

11 years agotm: experimental tm onreply_route final reply DROP support
Andrei Pelinescu-Onciul [Fri, 26 Feb 2010 14:10:49 +0000 (15:10 +0100)]
tm: experimental tm onreply_route final reply DROP support

Experimental support for dropping final replies from tm
onreply_route[]s. It's disabled by default (causes a small
performance hit and it's not needed in most cases).
To enable re-compile tm with -DTM_ONREPLY_FINAL_DROP_OK
(e.g. make cfg extra_defs=-DTM_ONREPLY_FINAL_DROP_OK; make all
 or make -C modules/tm extra_defs=-DTM_ONREPLY_FINAL_DROP_OK)

11 years agotls: TLS_MALLOC_DBG can now be set on make cfg
Andrei Pelinescu-Onciul [Fri, 26 Feb 2010 12:39:55 +0000 (13:39 +0100)]
tls: TLS_MALLOC_DBG can now be set on make cfg

Enabling tls extra malloc debugging info, does not require anymore
editing tls_init.c. It can be enabled at cfg time
(make cfg extra_defs=-DTLS_MALLOC_DBG) or at compile/re-compile
time ( make -C modules/tls clean;
       make -C modules/tls extra_defs=-DTLS_MALLOC_DBG).
When TLS_MALLOC_DBG is enabled, an extra warning will be printed
at compile time. NO_TLS_MALLOC_DBG takes precedence over

11 years agouserblacklist(k): short term fix in the docs for redundant table definition
Henning Westerholt [Wed, 24 Feb 2010 16:04:54 +0000 (17:04 +0100)]
userblacklist(k): short term fix in the docs for redundant table definition

11 years agocfg parser: segfault on case RE parse error fix
Andrei Pelinescu-Onciul [Wed, 24 Feb 2010 14:13:12 +0000 (15:13 +0100)]
cfg parser: segfault on case RE parse error fix

Reported-by: Klaus Feichtinger klaus.feichtinger gmx net
11 years agoreg(k): fix compilation for kamailio flavour, reported from Daniel
Henning Westerholt [Wed, 24 Feb 2010 14:07:38 +0000 (15:07 +0100)]
reg(k): fix compilation for kamailio flavour, reported from Daniel

11 years agotls: disable kerberos more thoroughly [fix]
Andrei Pelinescu-Onciul [Tue, 23 Feb 2010 15:10:21 +0000 (16:10 +0100)]
tls: disable kerberos more thoroughly [fix]

Older openssl versions (< 0.9.8e release) have a bug in the
kerberos code (it uses the wrong malloc, for more details see
openssl bug # 1467). While there is already a workaround for this
openssl bug in the sr code (see commits 36cb8f & 560a42), in some
situations this workaround causes another bug (crash on connection
opening when openssl is compiled with kerberos support and
kerberos is enabled for key exchange).
The current fix will disable automatically all the ciphers containing
KRB5 if the openssl version is < 0.9.8e beta1 or it is between
0.9.9-dev and 0.9.9-beta1.
It iss equivalent to setting cipher_list to "<prev. value>:!KRB5".

Impact: this fix is needed only if openssl is compiled with
kerberos support and the version is < 0.9.8e. It also affects at
least CentOS users with openssl-0.9.8e-12.el5_4.1 (in the centos
openssl package they play some strange games with the version and
report 0.9.8b via SSLeay).

Tested-by: Klaus Darilion klaus.mailinglists at
Reported-by: Klaus Darilion klaus.mailinglists at
Reported-by: Andreas Rehbein rehbein at
Reported-by: Martin Koenig koenig
11 years agovarious modules: don't access route_type directly
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 18:45:14 +0000 (19:45 +0100)]
various modules: don't access route_type directly

route_type should be accessed only through get_route_type() or
Replaced all the route_type==FOO_ROUTE with

11 years agotmx(k): core & tm onreply route support
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 18:41:33 +0000 (19:41 +0100)]
tmx(k): core & tm onreply route support

- support for core onreply route (like for tm onreply route, but
  with extra t_unref).
- use get_route_type() instead of directly accessing route_type.

11 years agotm: t_check_status & t_reply main onreply_route fix
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 18:38:40 +0000 (19:38 +0100)]
tm: t_check_status & t_reply main onreply_route fix

- t_check_status: in some situations t_check_status left the
  transaction referenced when called from main onreply_route (e.g.
  t_check_status(); drop )
- t_reply: unref the transaction only when called from the main
  onreply_route and not from tm onreply route

11 years agotm: onreply_route: fix cleanup after DROP
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 17:01:26 +0000 (18:01 +0100)]
tm: onreply_route: fix cleanup after DROP

After a DROP in the onreply_route the avp lists where not restored
to their original values and the possible msg flags changes in the
script were dropped.

11 years agoNEWS: note about onreply_route changes & tm
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 17:00:30 +0000 (18:00 +0100)]
NEWS: note about onreply_route changes & tm

11 years agotm: t_reply can now be used from onreply_routes
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 16:50:40 +0000 (17:50 +0100)]
tm: t_reply can now be used from onreply_routes

t_reply can now be used both from the main onreply_route
(onreply_route{}) or from tm onreply_routes (onreply_route[x]{},
where x!=0).
In general it should be followed by a DROP. If not you might get
some log warning messages (but besides that nothing bad will

11 years agotm: _reply cleans up after itself
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 16:48:45 +0000 (17:48 +0100)]
tm: _reply cleans up after itself

The _reply() function now cleans possible added reply_lumps before
exiting. This allows using it not only from request or failure

11 years agotm: restrict tm onreply_route commands to tm reply routes only
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 15:41:59 +0000 (16:41 +0100)]
tm: restrict tm onreply_route commands to tm reply routes only

- most tm onreply functions restricted to tm onreply routes only.
  They cannot be executed anymore from the  main/core
  onreply_route (some of them won't work and others would leave the
  transaction referenced).
- don't access route_type directly, but via get_route_type()

11 years agotm: tm onreply route has now TM_ONREPLY_ROUTE type
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 13:53:42 +0000 (14:53 +0100)]
tm: tm onreply route has now TM_ONREPLY_ROUTE type

11 years agocore: distinct core and tm onreply route tests
Andrei Pelinescu-Onciul [Mon, 22 Feb 2010 13:49:37 +0000 (14:49 +0100)]
core: distinct core and tm onreply route tests

- added TM_ONREPLY_ROUTE and CORE_ONREPLY_ROUTE to the possible
route types. This allows to distinguish between the main reply
route (executed by the core) and onreply routes executed by tm.
so that is_route_type(ONREPLY_ROUTE) will return true both for

- onreply_route[0] {} is equivalent with onreply_route{}.

- use different route types when parsing the script for
 onreply_route{} (CORE_ONREPLY_ROUTE) and onreply_route[x]{},
  where x!=0 (TM_ONREPLY_ROUTE).

11 years agoMerge remote branch 'origin/andrei/blst_send_flags'
Andrei Pelinescu-Onciul [Fri, 19 Feb 2010 15:37:51 +0000 (16:37 +0100)]
Merge remote branch 'origin/andrei/blst_send_flags'

Support for blacklist ignore flags, both global and on a per
message basis.
per message:
if (method=~"MESSAGE")

sercmd cfg.set_now_int core dst_blacklist_tcp_imask 16

* origin/andrei/blst_send_flags:
  NEWS: minor blacklist flag number correction
  tm: blacklist on 503 reply fixed for send flags
  NEWS: mentioned blacklist ignore masks
  core: cfg script support for blacklist ignore masks
  blst: global config variables for ignoring blacklist events
  blst: docs for blst_{set,clear}_ignore script functions
  blst: functions for ignoring blacklist events
  blst: use dst_blacklist_force_add
  tm: simplified blacklist add code
  blacklist: ignore mask support
  tm: updated to the new snd_flags_t structure
  core: send_flags preliminary blacklist support


11 years agoNEWS: minor blacklist flag number correction
Andrei Pelinescu-Onciul [Fri, 19 Feb 2010 15:26:44 +0000 (16:26 +0100)]
NEWS: minor blacklist flag number correction

11 years agotm: blacklist on 503 reply fixed for send flags
Andrei Pelinescu-Onciul [Fri, 19 Feb 2010 14:35:57 +0000 (15:35 +0100)]
tm: blacklist on 503 reply fixed for send flags

Blacklisting the source of a 503 reply now obeys also the
blacklist ignore masks (both global and per message).
The ignore 503 blacklist flag can be set (and it will be obeyed)
in any route (be it main route, on branch, on send or the on_reply
route). E.g.: using blst_set_ignore(32) in the onsend_route for a
specific destination would cause the ignore 503 flag to be
inherited by the 503 reply (this is the only blacklist flag that
it's inherited this way).

11 years agoMerge remote branch 'origin/sr_3.0'
Andrei Pelinescu-Onciul [Fri, 19 Feb 2010 11:05:41 +0000 (12:05 +0100)]
Merge remote branch 'origin/sr_3.0'

The dst_uri fix (see FlySpray#37) and kamctl.

* origin/sr_3.0:
  core: avoid non-null 0-length dst_uri,  ruris and path
  tm: fake_req dst_uri and ruri copy fix
  utils/kamctl: removed unsupported commands to manage lcr gateways and routes

11 years agocore: PAI & PPI header names parser fixes
Andrei Pelinescu-Onciul [Fri, 19 Feb 2010 10:55:44 +0000 (11:55 +0100)]
core: PAI & PPI header names parser fixes

Changed to the usual "case" construct. This also fixes the case
when spaces were present between the header name and ':'
(e.g. "P-Preferred-Identity : ..." was not recognized).

11 years agocore: support for parsing the Reason header
Andrei Pelinescu-Onciul [Thu, 18 Feb 2010 20:20:07 +0000 (21:20 +0100)]
core: support for parsing the Reason header

11 years agodoc: select_list: generated docbook and txt lists
Andrei Pelinescu-Onciul [Thu, 18 Feb 2010 14:19:53 +0000 (15:19 +0100)]
doc: select_list: generated docbook and txt lists

11 years agodoc: select_list: added makefiles for auto-gen.
Andrei Pelinescu-Onciul [Thu, 18 Feb 2010 13:15:31 +0000 (14:15 +0100)]
doc: select_list: added makefiles for auto-gen.

Added a new directory (doc/select_list) complete with a makefile for
auto-generating lists with all the select implemented in the code.
make -C doc/select_list all will generate both .txt and .xml
files. The .xml are in docbook format and are written to
 doc/select_list/docbook, complete with a file that includes them
 all (select_list.xml).

E.g.: to generate a .html file with all the selects:
 make -C doc/select_list all  # generates the docbook
 make -C doc/select_list/docbook html

11 years agodoc: {rpc,cfg}_list: fix makefile exclude list
Andrei Pelinescu-Onciul [Thu, 18 Feb 2010 13:10:08 +0000 (14:10 +0100)]
doc: {rpc,cfg}_list: fix makefile exclude list

- fix makefile exclude groups and files (didn't work for more then
 one entry)
- added default list for make all

11 years agodoc: fix for incomplete initializers
Andrei Pelinescu-Onciul [Thu, 18 Feb 2010 12:41:10 +0000 (13:41 +0100)]
doc: fix for incomplete initializers

Some of the modules (e.g db_ops) omit the last members (flags) in
the select_row_t initializer. The script did not take into account
this possibility when it did parse the C code.

11 years agodoc: support for docbook output
Andrei Pelinescu-Onciul [Thu, 18 Feb 2010 11:31:59 +0000 (12:31 +0100)]
doc: support for docbook output

Added support for generating docbook output (by using the
 --docbook option).

11 years agodoc: cfg_list: generated docbook cfg vars lists
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 21:39:30 +0000 (22:39 +0100)]
doc: cfg_list: generated docbook cfg vars lists

11 years agodoc: cfg_list: docbook output directory
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 21:35:09 +0000 (22:35 +0100)]
doc: cfg_list: docbook output directory

Added directory for docbook output, complete with standard doc
makefile (for generating html, pdf, txt a.s.o from docbook

11 years agodoc: cfg_list: support for generating docbook output
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 21:31:43 +0000 (22:31 +0100)]
doc: cfg_list: support for generating docbook output

- make docbook will generate the cfg lists in docbook format
- make all will generate both txt and docbook
- generate docbook index file (cfg_var_list.xml)
- configurable output directories (txt_output_dir and

11 years agodoc: support for docbook output
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 21:27:01 +0000 (22:27 +0100)]
doc: support for docbook output

Added support for generating docbook output (by using the
--docbook option).

11 years agocore: avoid non-null 0-length dst_uri, ruris and path
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 19:46:47 +0000 (20:46 +0100)]
core: avoid non-null 0-length dst_uri,  ruris and path

- a dst_uri or ruri that has 0 length should be equivalent to also
having a null corresponding char* pointer.  sip_msg_shm_clone()
will now clone this type of uris to (0,0).
- set_dst_uri() called with "" (a 0-length non-zero string) is now
  equivalent to reset_dst_uri().
- set_path_vector() called with "" is now equivalent with

11 years agotm: fake_req dst_uri and ruri copy fix
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 19:40:46 +0000 (20:40 +0100)]
tm: fake_req dst_uri and ruri copy fix

If the uris have 0 len but no 0 value (possible at least for a
manually set dst_uri), set the corresponding fake_req uri to 0,
thus avoiding a potentially disastrous free in free_faked_req().

Should close FS#37.

11 years agodoc: rpc_list: generated docbook rpc lists
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 16:38:05 +0000 (17:38 +0100)]
doc: rpc_list: generated docbook rpc lists

11 years agodoc: rpc_list: docbook output directory
Andrei Pelinescu-Onciul [Wed, 17 Feb 2010 16:24:46 +0000 (17:24 +0100)]
doc: rpc_list: docbook output directory

Added directory for docbook output, complete with standard doc
makefile (for generating html, pdf, txt a.s.o from docbook