sip-router
9 years agocfg framework: cfg_select() and cfg_reset() added
Miklos Tirpak [Mon, 4 Oct 2010 13:35:59 +0000 (15:35 +0200)]
cfg framework: cfg_select() and cfg_reset() added

cfg_select("group_name", "var_name") can be used to move a group
handle to a specifig group instance in the script. Evey variable
access within that group will be made from the new group instance
until the handle is reset, practically until the end of the script
unless cfg_reset("group_name") is explicitely called.
This is true both for custom, module, and core variables, i.e. every
configuration group can have multiple set of values.

9 years agocfg framework: group handle can be moved runtime
Miklos Tirpak [Mon, 4 Oct 2010 13:26:58 +0000 (15:26 +0200)]
cfg framework: group handle can be moved runtime

Added support for moving the group handles between the default
configuration and different group instances runtime. The handles are
reset when cfg_update() is called the next time, or it can be
reset explicitely.

9 years agocfg framework: group instance support in the script
Miklos Tirpak [Wed, 29 Sep 2010 14:40:30 +0000 (16:40 +0200)]
cfg framework: group instance support in the script

Variables within group instances can be set from the script,
for example:

tm[2].reparse_invite = 0;
tm[2].default_reason = "New reason";

Any assignmnet within a group instance creates the entire instance if
it does not exist yet.
Note: does not work with core variables yet.

9 years agocfg framework: apply the values in the order they are set
Miklos Tirpak [Wed, 29 Sep 2010 11:58:07 +0000 (13:58 +0200)]
cfg framework: apply the values in the order they are set

Add the value change to the end of the list (within the same group_id)
to make sure that the values are changed in the order they are set in the script.
This is important when the same variable is changed multiple times,
the latest value must be kept in this case.

9 years agocfg framework: translate_pointer bugfix
Miklos Tirpak [Tue, 28 Sep 2010 15:14:37 +0000 (17:14 +0200)]
cfg framework: translate_pointer bugfix

The parameters of translate_pointer() need to be casted to char*.
It would be much more convenient, and also safer, to do this
casting within the macro.

9 years agocfg framework: apply additional var list bugfix
Miklos Tirpak [Tue, 28 Sep 2010 15:13:28 +0000 (17:13 +0200)]
cfg framework: apply additional var list bugfix

The variable list needs to be applied for each group

9 years agocfg framework: apply the additional variable list
Miklos Tirpak [Tue, 28 Sep 2010 09:44:29 +0000 (11:44 +0200)]
cfg framework: apply the additional variable list

The additional variable list which is linked to the groups
is applied when the config is shmized. During this process,
the array of group instances is created, the values are fixed-up,
the changes are applied to each instance, and the list is freed.
Any change after the config is shmized is directly made in the
memory block as opposed to using the list.
(The list is necessary at the beginning because not even shm_malloc
is available, and the number of group instances is not known.)

9 years agocfg framework: group instance support before forking
Miklos Tirpak [Mon, 27 Sep 2010 14:03:13 +0000 (16:03 +0200)]
cfg framework: group instance support before forking

The new group instances, and their variables are stored
in a list which is linked to the group before the config is
shmized. After all the variables are known, this list can
be changed to memory blocks.

10 years agocfg framework: CFG_GROUP_UNKNOWN group type
Miklos Tirpak [Tue, 21 Sep 2010 12:42:55 +0000 (14:42 +0200)]
cfg framework: CFG_GROUP_UNKNOWN group type

group->dynamic can take 3 values from now:
- CFG_GROUP_STATIC: static group declared by a module or the core
- CFG_GROUP_DYNAMIC: dynamic group declared from the script
- CFG_GROUP_UNKNOWN: not yet known group type. Such group can exist if
additional group instances are set in the group, but the group
itself has not been declared yet. This is the case
for instance if the group instance is set from the script
but the group is declared from a mod_init function.

Variable name is added to struct _cfg_add_var. The variables may not be
known when additional group instances need to be added, hence, they
can be referred only by name.

10 years agocfg framework: cfg_commit() log message fixes
Miklos Tirpak [Wed, 15 Sep 2010 11:50:56 +0000 (13:50 +0200)]
cfg framework: cfg_commit() log message fixes

10 years agocfg_db: updated to the cfg framework changes
Miklos Tirpak [Tue, 14 Sep 2010 14:23:15 +0000 (16:23 +0200)]
cfg_db: updated to the cfg framework changes

10 years agocfg_db: updated to the cfg framework changes
Miklos Tirpak [Tue, 14 Sep 2010 14:16:50 +0000 (16:16 +0200)]
cfg_db: updated to the cfg framework changes

The module writes the default configuration only.

10 years agomodules_k/kex: updated to the cfg framework changes
Miklos Tirpak [Tue, 14 Sep 2010 14:12:55 +0000 (16:12 +0200)]
modules_k/kex: updated to the cfg framework changes

The debug value is set in the default "core" group.

10 years agocfg_rpc: Support for cfg group instances added.
Miklos Tirpak [Tue, 14 Sep 2010 13:53:06 +0000 (15:53 +0200)]
cfg_rpc: Support for cfg group instances added.

The RPC interface of the configuration framework is updated
to the latest core changes, i.e. the support for additional group
instances is introduced.

The syntax is backward compatible:
 - To set the default value:
     cfg.set_now_int/string group var value
     cfg.set_delayed_int/string group var value
 - To set a value within a specific instance:
     cfg.set_now_int/string group[id] var value
     cfg_set_delayed_int/string group[id] var value

"id" is the integer identifier of the group instance which needs to
be created with:
  cfg.add_group_inst group[id]

The instance can also be deleted with:
  cfg.del_group_inst group[id]

Note that the variables of a group instance take the default values
from the active configucation after the instance is created. When a
default value changes within a group, the group instance values are
also updated with the change unless the variable has been explicitly
set in the group instance.

10 years agocfg framework: error messages added
Miklos Tirpak [Tue, 14 Sep 2010 13:49:25 +0000 (15:49 +0200)]
cfg framework: error messages added

When a group instance is deleted while there are pending changes
to this instance which are not yet committed, the commit failed
without any error. An error message is added, and cfg_diff_next returns
also error in this case to let the drivers farther propagate the error.

10 years agocfg framework: support for group instances with delayed commits
Miklos Tirpak [Tue, 14 Sep 2010 13:33:29 +0000 (15:33 +0200)]
cfg framework: support for group instances with delayed commits

cfg_set_delayed() and the related functions, commit, diff,... support
the additinal group instances from now.
The group instance must exist before cfg_set_delayed() is called, i.e.
the function does not create new instances.

10 years agocfg framework: group instances can be deleted + bugfix
Miklos Tirpak [Thu, 9 Sep 2010 14:21:41 +0000 (16:21 +0200)]
cfg framework: group instances can be deleted + bugfix

- cfg_del_group_inst() is added which can be used to delete
the group instances apart from the default one.
- cfg_find_group_inst() used a wrong offset for shifting.
- The copies of the default variable needs to be updated even if the variable
is atomic.

10 years agocfg framework: group instance support in cfg_get_by_name() + bugfix
Miklos Tirpak [Thu, 9 Sep 2010 10:56:58 +0000 (12:56 +0200)]
cfg framework: group instance support in cfg_get_by_name() + bugfix

- cfg_get_by_name() can return the value from both the default or from
a specific group instance.
- bugfix: cfg_add_group_inst() overwrote a larger memory area then the group size.
- More verbose log messages when the group instance is not found.

10 years agocfg framework: group instance bug fixes
Miklos Tirpak [Thu, 9 Sep 2010 07:55:04 +0000 (09:55 +0200)]
cfg framework: group instance bug fixes

- Check whether the new config block is really created.
- Increase the number if items within the array when a new
instance is added

10 years agocfg framework: unlock on error
Miklos Tirpak [Wed, 8 Sep 2010 15:32:48 +0000 (17:32 +0200)]
cfg framework: unlock on error

release the global lock when the group instance is not found

10 years agocfg framework: log message added
Miklos Tirpak [Wed, 8 Sep 2010 14:58:18 +0000 (16:58 +0200)]
cfg framework: log message added

cfg_set_now() prints out the id of the group which is modified.

10 years agocfg framework: cfg_add_group_inst() added
Miklos Tirpak [Wed, 8 Sep 2010 13:26:59 +0000 (15:26 +0200)]
cfg framework: cfg_add_group_inst() added

The function can add a new group instance to an existing group.
The values of the new instance are identical to the default values
of the group. After the new group instance is added, the values can be
changed by cfg_set_now().

10 years agocfg framework: free the memory of the old group instance
Miklos Tirpak [Tue, 7 Sep 2010 15:37:20 +0000 (17:37 +0200)]
cfg framework: free the memory of the old group instance

The memory area of the old group instances is freed when the
additional array is replaced.

10 years agocfg framework: cfg_set_now() supports the group instances
Miklos Tirpak [Tue, 7 Sep 2010 15:09:07 +0000 (17:09 +0200)]
cfg framework: cfg_set_now() supports the group instances

cfg_set_now() can write the variables within both
the default and the additional group instances.
If the additional variable is not explicitely set, then
the default value overwrites it.

Note: the group instance must exist before cfg_set_now() is called,
it is not created dynamicaly.

The function does not work yet before the config is shmized.

10 years agocfg framework: group meta-data introduced
Miklos Tirpak [Fri, 3 Sep 2010 12:48:27 +0000 (14:48 +0200)]
cfg framework: group meta-data introduced

A new structure for meta-data is added to the variable block
before each group. This stucture will be a placeholder for the
multiple values of the same variable.
The meta-data indicates how many instances the group has excluding
the default instance, and will store the pointer to the array of
these instances.

10 years agodoc: cfg_list regenerated
Andrei Pelinescu-Onciul [Thu, 2 Sep 2010 16:22:06 +0000 (18:22 +0200)]
doc: cfg_list regenerated

10 years agodoc: rpc_list regenerated
Andrei Pelinescu-Onciul [Thu, 2 Sep 2010 16:21:05 +0000 (18:21 +0200)]
doc: rpc_list regenerated

10 years agodoc: rpc_list: updated list of files with rpc defs
Andrei Pelinescu-Onciul [Thu, 2 Sep 2010 16:07:40 +0000 (18:07 +0200)]
doc: rpc_list: updated list of files with rpc defs

Removed modules_s/sl, added counters, malloc_test, sl (merged
version), dialog and ratelimit(k) to the default list.

10 years agodoc: cfg_list: updated list of cfg defs files
Andrei Pelinescu-Onciul [Thu, 2 Sep 2010 15:51:04 +0000 (17:51 +0200)]
doc: cfg_list: updated list of cfg defs files

Removed ratelimit(k) (no longer contains runtime cfg vars) and
added carrierroute, malloc_test and tls to the default list.

10 years agoalso add pdb files to ignore list
Henning Westerholt [Thu, 2 Sep 2010 16:42:44 +0000 (18:42 +0200)]
also add pdb files to ignore list

10 years agoadd generated man pages to git ignore list, reported from Ovidiu
Henning Westerholt [Thu, 2 Sep 2010 16:40:20 +0000 (18:40 +0200)]
add generated man pages to git ignore list, reported from Ovidiu

10 years agodoc: generated counter lists
Andrei Pelinescu-Onciul [Wed, 1 Sep 2010 17:06:17 +0000 (19:06 +0200)]
doc: generated counter lists

10 years agodb_mysql: fixed driver error counter named
Andrei Pelinescu-Onciul [Wed, 1 Sep 2010 17:03:47 +0000 (19:03 +0200)]
db_mysql: fixed driver error counter named

Changed the name from "Mysql driver erros" to "driver_errors"
(spaces in the name, while legal, would make life harder).

10 years agodoc: *_list: minor sed script fix
Andrei Pelinescu-Onciul [Wed, 1 Sep 2010 11:01:34 +0000 (13:01 +0200)]
doc: *_list: minor sed script fix

Fix empty output for the  sed script for parsing/filtering makefiles
(in some cases the commands for the last line were not executed).

10 years agodoc: counter_list
Andrei Pelinescu-Onciul [Wed, 1 Sep 2010 09:36:50 +0000 (11:36 +0200)]
doc: counter_list

Added a new directory (doc/counter_list) complete with Makefiles
for auto-generating the lists with all the counters (stats)
implemented in the code.
Both .txt and docbook format are supported.

E.g.:
make -C doc/counter_list all  # generates the docbook and .txt
make -C doc/counter_list/docbook html # html from docbook

10 years agodoc: script to generate counter/stats list from C code
Andrei Pelinescu-Onciul [Wed, 1 Sep 2010 08:34:19 +0000 (10:34 +0200)]
doc: script to generate counter/stats list from C code

Added a perl script that generates counter documentation (name and
description) from a C file (based on the counter definition
array).
It can output txt or docbook.

10 years agoxcap_server: documentation updated
Daniel-Constantin Mierla [Wed, 1 Sep 2010 13:00:13 +0000 (15:00 +0200)]
xcap_server: documentation updated

10 years agocore: make READ_HTTP11 on if NO_READ_HTTP11 is defined
Daniel-Constantin Mierla [Wed, 1 Sep 2010 12:31:50 +0000 (14:31 +0200)]
core: make READ_HTTP11 on if NO_READ_HTTP11 is defined

- the code is anyhow enabled only when tcp_accept_no_cl is on
- suggested by Andrei

10 years agoxcap_server: components of xcap uri available in cfg
Daniel-Constantin Mierla [Wed, 1 Sep 2010 10:49:01 +0000 (12:49 +0200)]
xcap_server: components of xcap uri available in cfg

- the user id is embedded in xcap uri and is needed to decide what is
  the sip uri associated with it
- $xcapuri(name=>key) PV exported to config

10 years agocore: use req.start for http11 tcp read
Daniel-Constantin Mierla [Tue, 31 Aug 2010 21:24:04 +0000 (23:24 +0200)]
core: use req.start for http11 tcp read

- shifting back chunks is done with memmove - safer for overlapping
  buffers
- credits to Andrei Pelinescu-Onciul

10 years agoxcap_server: parser for xcap uri
Daniel-Constantin Mierla [Tue, 31 Aug 2010 21:20:00 +0000 (23:20 +0200)]
xcap_server: parser for xcap uri

- easier to get xcap uri attributes for doc and xpath selectors

10 years agoxcap_server: fixes to put and del ops
Daniel-Constantin Mierla [Tue, 31 Aug 2010 21:17:52 +0000 (23:17 +0200)]
xcap_server: fixes to put and del ops

- take in consideration xpath selectors

10 years agoMerge remote branch 'origin/carstenbock/dialog2'
Carsten Bock [Tue, 31 Aug 2010 14:47:14 +0000 (16:47 +0200)]
Merge remote branch 'origin/carstenbock/dialog2'

* origin/carstenbock/dialog2:
  - Updated docs
  - Use only call-id to get the h_id; otherwise dlg_list_dlg and dlg_terminate_dlg would require the from-tag, which is marked as optional in the docs
  - added support to terminate a single dialog by providing call-id and from-tag

10 years ago- Updated docs
Carsten Bock [Thu, 19 Aug 2010 17:46:37 +0000 (19:46 +0200)]
- Updated docs

10 years ago- Use only call-id to get the h_id; otherwise dlg_list_dlg and dlg_terminate_dlg...
Carsten Bock [Thu, 19 Aug 2010 17:38:55 +0000 (19:38 +0200)]
- Use only call-id to get the h_id; otherwise dlg_list_dlg and dlg_terminate_dlg would require the from-tag, which is marked as optional in the docs
- dlg_terminate_dlg does request the call-id to terminate a specific call (terminating all calls require a little more development)
- match_downstream_dialog does only match by call-id (see first point)

10 years agoMerge remote branch 'origin/carstenbock/rtpproxy2'
Carsten Bock [Tue, 31 Aug 2010 14:42:05 +0000 (16:42 +0200)]
Merge remote branch 'origin/carstenbock/rtpproxy2'

* origin/carstenbock/rtpproxy2:
  - Updated the patch to the latest changes (see previous commit)
  Add a parameter for the type of the RTP-Timeout-Socket (defaults to 1 for Kamailio-XMLRPC)
  Added the changes to the RTP-Proxy as a patch, for easier review.
  - fixed identation
  The Timeout socket must be sent with Update after session confirmation.
  Tiny typo.
  - added support for the retrieval of RTP-Statistics through $rtpstat

10 years ago- Updated the patch to the latest changes (see previous commit)
Carsten Bock [Mon, 30 Aug 2010 15:17:13 +0000 (17:17 +0200)]
- Updated the patch to the latest changes (see previous commit)
- removed pre-built rtpproxy

10 years agoAdd a parameter for the type of the RTP-Timeout-Socket (defaults to 1 for Kamailio...
Carsten Bock [Mon, 30 Aug 2010 14:48:49 +0000 (16:48 +0200)]
Add a parameter for the type of the RTP-Timeout-Socket (defaults to 1 for Kamailio-XMLRPC)

10 years agoAdded the changes to the RTP-Proxy as a patch, for easier review.
Carsten Bock [Tue, 24 Aug 2010 09:08:34 +0000 (11:08 +0200)]
Added the changes to the RTP-Proxy as a patch, for easier review.

10 years ago- fixed identation
Carsten Bock [Thu, 19 Aug 2010 17:55:01 +0000 (19:55 +0200)]
- fixed identation
- added modified RTP-Proxy (rtpproxy.tar.gz, based on latest git, needs some cleanup)
(please note, that you have to have libcurl-dev and libxmlrpc-client (same as for Kamailio-mi_xmlrpc) installed)
- some simple testing files (sample config, command line parameters for pjsua (used for testing) and rtpproxy)

10 years agoThe Timeout socket must be sent with Update after session confirmation.
Carsten Bock [Thu, 19 Aug 2010 13:33:30 +0000 (15:33 +0200)]
The Timeout socket must be sent with Update after session confirmation.

10 years agoTiny typo.
Carsten Bock [Wed, 18 Aug 2010 20:57:37 +0000 (22:57 +0200)]
Tiny typo.

10 years agodoc: rpc_list: improve DEFS parsing
Andrei Pelinescu-Onciul [Mon, 30 Aug 2010 21:02:48 +0000 (23:02 +0200)]
doc: rpc_list: improve DEFS parsing

When getting all the makefile variables from the Makefiles obey
also the conditionals (ifdef, ifndef) and make sure all the
makefiles rules are filtered out (to avoid miss-interpreting a
 shell variable assignment in a rule as a makefile variable).

10 years agodoc: select_list: parse DEFS from the modules Makefiles
Andrei Pelinescu-Onciul [Mon, 30 Aug 2010 11:32:18 +0000 (13:32 +0200)]
doc: select_list: parse DEFS from the modules Makefiles

Get all the variable definitions from each module Makefile and
evaluate them to get proper DEFS and INCLUDES (using sed to
extract the variable definitions, conditionals and filter-out
rules from the Makefiles, some hack to preserve the LFs and
$(eval) to evaluate the extracted stuff in the current context).
The DEFS and INCLUDES will be passed to the documentation
generating script (dump_selects.pl) as extra arguments for gcc.
This way the proper defines and includes will be used for each
module.
Fixes select list generation failure for modules with non-standard
include dirs.

10 years agodoc: cfg_list: parse DEFS from the modules Makefiles
Andrei Pelinescu-Onciul [Mon, 30 Aug 2010 11:32:18 +0000 (13:32 +0200)]
doc: cfg_list: parse DEFS from the modules Makefiles

Get all the variable definitions from each module Makefile and
evaluate them to get proper DEFS and INCLUDES (using sed to
extract the variable definitions, conditionals and filter-out
rules from the Makefiles, some hack to preserve the LFs and
$(eval) to evaluate the extracted stuff in the current context).
The DEFS and INCLUDES will be passed to the documentation
generating script (dump_cfg_defs.pl) as extra arguments for gcc. This
way the proper defines and includes will be used for each module.
Fixes cfg var. list generation failure for modules with kamailio module
interface or with non-standard include dirs.

10 years agodoc: rpc_list: parse DEFS from the modules Makefiles
Andrei Pelinescu-Onciul [Mon, 30 Aug 2010 11:46:33 +0000 (13:46 +0200)]
doc: rpc_list: parse DEFS from the modules Makefiles

Get all the variable definitions from each module Makefile and
evaluate them to get proper DEFS and INCLUDES (using sed to
extract the variable definitions from the Makefiles, some hack to
preserve the LFs and $(eval) to evaluate them in the current
context).
The DEFS and INCLUDES will be passed to the documentation
generating script (dump_rpcs.pl) as extra arguments for gcc. This
way the proper defines and includes will be used for each module.
Fixes rpc list generation failure for modules with kamailio module
interface or with non-standard include dirs.

10 years agodoc: dump_*.pl: support for gcc 4.5
Andrei Pelinescu-Onciul [Mon, 30 Aug 2010 11:28:17 +0000 (13:28 +0200)]
doc: dump_*.pl: support for gcc 4.5

- support for gcc 4.5 (gcc 4.5 will produce the translation unit
  dump file in the same directory as the output file, while older
  versions will always write it in the current directory).
- be more verbose on gcc error (display the complete gcc command line)
- cleanup temporary files even in the error case

10 years agodebian: added doc tools to build-depends
Andrei Pelinescu-Onciul [Mon, 30 Aug 2010 21:19:01 +0000 (23:19 +0200)]
debian: added  doc tools to build-depends

Added docbook2x, xsltproc and lynx to the debian package
Build-Depends. They are needed for building various parts of the
documentation: docbook2x for manual pages for some ser modules,
 xsltproc for pdf and html and lynx for txt/README.

Reported-by: Juha Heinanen jh tutpro com
10 years agocore: better condition for shifting back chunk payloads
Daniel-Constantin Mierla [Mon, 30 Aug 2010 17:15:52 +0000 (19:15 +0200)]
core: better condition for shifting back chunk payloads

10 years agomodules/db_berkeley Added a compatibility layer between libdb versions smaller than...
Marius Zbihlei [Mon, 30 Aug 2010 14:19:17 +0000 (17:19 +0300)]
modules/db_berkeley Added a compatibility layer between libdb versions smaller than 4.6 and libdb4.6

Cursor method close() is not present in versions smaller than 4.6 thus the module would not compile.
Also c_* methods are marked as deprecated so the compatibility layer should be extended as well.

10 years agoxhttp: don't set version to http/1.0
Daniel-Constantin Mierla [Mon, 30 Aug 2010 08:40:33 +0000 (10:40 +0200)]
xhttp: don't set version to http/1.0

- allow http/1.1 in replies

10 years agotcp: read http/1.1 chunked body
Daniel-Constantin Mierla [Mon, 30 Aug 2010 08:35:46 +0000 (10:35 +0200)]
tcp: read http/1.1 chunked body

- fix for xcap_server module that has to deal with PUT commands from
  xcap clients
- code withing READ_HTTP11 defines (for now off by default)
- conditioned by tcp_accept_no_cl=yes
- able to handle cases of "Expect: 100-continue" and "Transfer-Encoding:
  chunked"

10 years agoxcap_server: etag column is of type str
Daniel-Constantin Mierla [Mon, 30 Aug 2010 08:34:43 +0000 (10:34 +0200)]
xcap_server: etag column is of type str

10 years agopv(k): don't use CL for body PV
Daniel-Constantin Mierla [Mon, 30 Aug 2010 08:33:34 +0000 (10:33 +0200)]
pv(k): don't use CL for body PV

- size of body is computed from size of sip message

10 years agotextops(k): declare variables at function start
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:52:24 +0000 (21:52 +0200)]
textops(k): declare variables at function start

Fixes compilation with gcc < 3.0.

10 years agoregistrar(k): declare variables at function start
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:51:41 +0000 (21:51 +0200)]
registrar(k): declare variables at function start

Fixes compilation with gcc < 3.0.

10 years agodialog(k): declare variables at function start
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:50:59 +0000 (21:50 +0200)]
dialog(k): declare variables at function start

Fixes compilation for gcc < 3.0.

10 years agomediaproxy: declare variables at function start
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:49:58 +0000 (21:49 +0200)]
mediaproxy: declare variables at function start

Fixes compilation with gcc < 3.0.

10 years agomtree: declare variables at function start
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:47:56 +0000 (21:47 +0200)]
mtree: declare variables at function start

Fixes compilation for gcc < 3.0.

10 years agocore: don't use conditionals in macro arguments
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:46:19 +0000 (21:46 +0200)]
core: don't use conditionals in macro arguments

Older gccs (< 3.3) do not like #ifdefs inside macro calls.

10 years agocore: pointer aliasing warning fixes for fix_rval_expr
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:44:59 +0000 (21:44 +0200)]
core: pointer aliasing warning fixes for fix_rval_expr

10 years agocore: use const in some ip_addr functions
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:42:54 +0000 (21:42 +0200)]
core: use const in some ip_addr functions

Fixes various warnings (gcc-4.2) in other parts of the code.

10 years agocore: use const char*/str* for hash functions
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:40:45 +0000 (21:40 +0200)]
core: use const char*/str* for hash functions

10 years agocore: typo fix in dns_cache_clone_entry()
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:39:33 +0000 (21:39 +0200)]
core: typo fix in dns_cache_clone_entry()

10 years agotm: warnings and avp param init. fixes
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:33:45 +0000 (21:33 +0200)]
tm: warnings and avp param init. fixes

- wrong pointer was passed to pv_get_avp_name(): int instead of
  unsigned short ( => not the whole int was set and problems on
  big endian archs).
- unneeded pointer casts removed
- variables declared at the function start (otherwise older
  compilers won't work)

10 years agonat_traversal(k): register stats only ifdef STATISTICS
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:30:44 +0000 (21:30 +0200)]
nat_traversal(k): register stats only ifdef STATISTICS

10 years agosst(k): don't register statistics twice
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:29:28 +0000 (21:29 +0200)]
sst(k): don't register statistics twice

Include kstats_wraper.h and don't register statistics twice (both
form mod_init() and via the module exports structure).

10 years agonathelper(k): add missing mi.h include
Andrei Pelinescu-Onciul [Thu, 26 Aug 2010 19:22:50 +0000 (21:22 +0200)]
nathelper(k): add missing mi.h include

10 years agomodules_k/nathelper: better add_contact_alias/handle_ruri_alias fix
Juha Heinanen [Thu, 26 Aug 2010 16:54:49 +0000 (19:54 +0300)]
modules_k/nathelper: better add_contact_alias/handle_ruri_alias fix
- In add_contact_alias/handle_ruri_alias functions, use ~ char both
  as port and transport protocol separator in

10 years agomodules_k/nathelper: replaced offending contact alias character
Juha Heinanen [Wed, 25 Aug 2010 19:30:00 +0000 (22:30 +0300)]
modules_k/nathelper: replaced offending contact alias character
- Changed character ':' in contact alias paramater value to '~',
  because ':' is not allowed in value field of generic contact
  parameter.

10 years agolcr: fix load_gws() 2nd param
Andrei Pelinescu-Onciul [Wed, 25 Aug 2010 16:59:21 +0000 (18:59 +0200)]
lcr: fix load_gws() 2nd param

load_gws() 2nd optional parameter was treated like a fparam
instead of a pv_spec_t (the fixup_igp_pvar function converts the
first parameter to a fparam and the second one to a pv_spec).

10 years agotextopsx: changed fixup to use fixup_var_pve_str_12()
Daniel-Constantin Mierla [Wed, 25 Aug 2010 13:10:14 +0000 (15:10 +0200)]
textopsx: changed fixup to use fixup_var_pve_str_12()

- accept PVs inside str params

10 years agoauth: changed fixup to use fixup_var_pve_str_12()
Daniel-Constantin Mierla [Wed, 25 Aug 2010 13:09:26 +0000 (15:09 +0200)]
auth: changed fixup to use fixup_var_pve_str_12()

- accept PVs inside str params

10 years agosl: changed fixup to use fixup_var_pve_str_12()
Daniel-Constantin Mierla [Wed, 25 Aug 2010 11:33:20 +0000 (13:33 +0200)]
sl: changed fixup to use fixup_var_pve_str_12()

- accept PV inside reason phrase param

10 years agoModules_k:pv No warning message for branch(count) if no branches
Marius Zbihlei [Wed, 25 Aug 2010 11:08:35 +0000 (14:08 +0300)]
Modules_k:pv  No warning message for branch(count) if no branches

Patch by Carsten Gross (carsten.gross at 1und1 dot de)

10 years agocore: counters can be used before forking
Andrei Pelinescu-Onciul [Tue, 24 Aug 2010 19:14:50 +0000 (21:14 +0200)]
core: counters can be used before forking

Counters can now be incremented (not only registered) before
counters_prefork_init(). This enables using them also from
mod_init() or the fixup functions (not recommended but needed for
"indirect" calls).
Fixes crashes when modules call a counter using function from
mod_init() or a fixup.
E.g.: xlog(s) does a dns lookup from mod_init. If the lookup fails
the dns code will try to increment the new dns.failed_dns_request
counter.

Reported-by: Michal Matyska michal.matyska iptel org
10 years agocore: don't try to fixup to PVE in fixup_var_str*
Andrei Pelinescu-Onciul [Tue, 24 Aug 2010 10:27:08 +0000 (12:27 +0200)]
core: don't try to fixup to PVE in fixup_var_str*

Moved PVE (PV based format string) fixing attempts from
fixup_var_str* into new fixup functions: fixup_var_pve_str*.
If the argument is a constant string, fixup_var_pve_str*() will
try first "fixing" it to a PVAR, then (if it fails) to an AVP,
SELECT, PVE and finally normal string. If the PVE fixup returned a
"static" PVE, the result will be discarded and a normal string
fparam will be created (a little bit faster at runtime).
The only difference between fixup_var_str*() and
fixup_var_pve_str*() is that fixup_var_str*() will not attempt
fixing to PVE (does not support PV style format strings).

10 years agocore: fix mod_register & dlflags
Andrei Pelinescu-Onciul [Tue, 24 Aug 2010 09:43:36 +0000 (11:43 +0200)]
core: fix mod_register & dlflags

dlflags changes in mod_register() functions were discarded
resulting in modules failing to load.

10 years agocore: daemon status/pipe fixes & interface changes
Andrei Pelinescu-Onciul [Thu, 19 Aug 2010 18:03:54 +0000 (20:03 +0200)]
core: daemon status/pipe fixes & interface changes

- moved most of the daemon status stuff to daemonize.[ch].
- nicer interface (e.g. daemon_status_send(code))
- send/read only 1 byte which will be used as exit code
- send an error status on error (fixes
  "Main process exited before writing to pipe" error message)
- disabled the timeout.  Not needed (now a status is sent always
  and even an unlikely process crash before sending it is detected via
  the read() failure) and very hard to find a good value (some
  setups start very slow).
- close the pipe "send" fd in processes not needing it
- attempt to send back status only if dont_daemonize is not set
  (not only if dont_fork==0, it is possible to have forking
  enabled, but daemonize disabled: ser -DD)
- BSDed daemonize.[ch] and pt.[ch]

10 years ago- added support to terminate a single dialog by providing call-id and from-tag
Carsten Bock [Wed, 18 Aug 2010 20:35:01 +0000 (22:35 +0200)]
- added support to terminate a single dialog by providing call-id and from-tag
- can also be used to terminate all dialogs on proxy (e.g. before shutdown)

Missing: Provide optional headers for the BYE-Message.

10 years ago- added support for the retrieval of RTP-Statistics through $rtpstat
Carsten Bock [Wed, 18 Aug 2010 19:27:30 +0000 (21:27 +0200)]
- added support for the retrieval of RTP-Statistics through $rtpstat
- added support for sending a timeout socket towards the RTP-Proxy (for timeout notifications)

10 years agomodules*: add k stats. includes where needed
Andrei Pelinescu-Onciul [Wed, 18 Aug 2010 18:06:25 +0000 (20:06 +0200)]
modules*: add k stats. includes where needed

Add k statistics includes (../../lib/kcore/kstats_wrapper.h) for
modules using k statistics and missing them (needed after no
longer automatically including k stats via sr_module.h)

10 years agokstats: cleanup - move type defs. to separate file
Andrei Pelinescu-Onciul [Wed, 18 Aug 2010 18:01:31 +0000 (20:01 +0200)]
kstats: cleanup - move type defs. to separate file

- moved kamailio statistics type defs to kstats_types.h (from
  lib/kcore/kstats_wrapper.h). This removes core dependency on
  lib/kcore include files (the statistics types are needed for the
  kamailio module interface defs).
- removed statistics.h (it is obsolete, counters.h should be used
  instead and if somebody really needs it, it should include
  lib/kcore/kstats_wrapper.h or lib/kcore/statistics.h).

10 years agomodules_k/*: add missing lib/kmi/mi.h include
Andrei Pelinescu-Onciul [Wed, 18 Aug 2010 17:58:44 +0000 (19:58 +0200)]
modules_k/*: add missing lib/kmi/mi.h include

10 years agomi: cleanup - move type defs. to separate file
Andrei Pelinescu-Onciul [Wed, 18 Aug 2010 17:54:09 +0000 (19:54 +0200)]
mi: cleanup - move type defs. to separate file

Moved MI types defs to mi/mi_types.h (from lib/kmi/mi.h).
This removes core dependency on lib/mi include files
(mi types are needed for kamailio module interface defs).

10 years agotm: don't reply if the reply dest. is not yet set
Andrei Pelinescu-Onciul [Wed, 18 Aug 2010 16:39:43 +0000 (18:39 +0200)]
tm: don't reply if the reply dest. is not yet set

- relay_reply() doesn't attempt to send the reply if the reply
 destination is not yet fully set. This can happen for example
 if reply_to_via is set, Via contains a host name (and not an ip)
 and before having a chance to resolve the name a reply must be
 sent (reply for a message that hasn't been sent yet: very
 unlikely, but possible).

- use a membar_write() in init_rb(), before setting the reply send
  socket (the reply send socket is also used as a flag for a fully
  initialized reply destination and the membar_write() makes sure
  that everything else was written before the send socket and no
  re-ordering will take place).

10 years agotcp: fix double increment for the established stats
Andrei Pelinescu-Onciul [Wed, 18 Aug 2010 16:36:14 +0000 (18:36 +0200)]
tcp: fix double increment for the established stats

The counter/stats for established TCP connections were incremented
twice in the case of accept()-ed connections: once immediately
after the accept() and another time after the first packet
received or sent on the connection.
Now they are incremented only after the first successful send or
receive.

10 years agopua: updated devel API documentation
Daniel-Constantin Mierla [Wed, 18 Aug 2010 15:21:14 +0000 (17:21 +0200)]
pua: updated devel API documentation

- updated documentation to reflect latest source code
- patch by Nikita Kozlov

10 years agodns cache: fix manually inserted SRV record order
Miklos Tirpak [Wed, 18 Aug 2010 13:32:36 +0000 (15:32 +0200)]
dns cache: fix manually inserted SRV record order

The manually inserted SRV records thought the RPC interface
were not ordered by their priority and weight which resulted in
wrong SRV look-ups, i.e. not the highest priority record
was chosen first.

10 years agopdbt: fix two bugs in debian packaging
Henning Westerholt [Wed, 18 Aug 2010 11:45:37 +0000 (13:45 +0200)]
pdbt: fix two bugs in debian packaging