sip-router
10 years agoMerge branch 'rpc_async'
Andrei Pelinescu-Onciul [Fri, 18 Sep 2009 11:16:26 +0000 (13:16 +0200)]
Merge branch 'rpc_async'

* rpc_async:
  tm: async t_uac (t_uac_wait) support
  xmlrpc(s): basic support for delayed replies
  core: rpc capabilities and delayed reply api
  core+tm: moved sip msg clone functions to the core

10 years agoMerge commit 'origin/andrei/send_flags'
Andrei Pelinescu-Onciul [Fri, 18 Sep 2009 10:57:42 +0000 (12:57 +0200)]
Merge commit 'origin/andrei/send_flags'

* commit 'origin/andrei/send_flags':
  NEWS: update
  core: new close after send and reuse only script functions
  tcp: send_flags support
  sl: use the msg reply send_flags
  tm: support for send_flags
  core: send flags support

10 years agoMerge commit 'origin/andrei/to_parser_fix'
Andrei Pelinescu-Onciul [Fri, 18 Sep 2009 10:54:50 +0000 (12:54 +0200)]
Merge commit 'origin/andrei/to_parser_fix'

* commit 'origin/andrei/to_parser_fix':
  core: to parser fix

10 years agoiptrtpproxy doc: regenerated README 3.0_pre1
Andrei Pelinescu-Onciul [Thu, 17 Sep 2009 19:10:26 +0000 (21:10 +0200)]
iptrtpproxy doc: regenerated README

10 years agoMerge commit 'origin/ser_modules'
Andrei Pelinescu-Onciul [Thu, 17 Sep 2009 19:07:54 +0000 (21:07 +0200)]
Merge commit 'origin/ser_modules'

* commit 'origin/ser_modules':
  cfg framework: fix the initialization of child processes
  - iptrtpproxy.cfg support (share config data between iptables and ser module)

10 years agoMerge branch 'cvs-head' of ssh://git.sip-router.org/ser_modules into ser_modules
Andrei Pelinescu-Onciul [Thu, 17 Sep 2009 19:05:45 +0000 (21:05 +0200)]
Merge branch 'cvs-head' of ssh://git.sip-router.org/ser_modules into ser_modules

* 'cvs-head' of ssh://git.sip-router.org/ser_modules:
  cfg framework: fix the initialization of child processes
  - iptrtpproxy.cfg support (share config data between iptables and ser module)

10 years agoNEWS: update
Andrei Pelinescu-Onciul [Tue, 15 Sep 2009 15:51:40 +0000 (17:51 +0200)]
NEWS: update

10 years agocore: new close after send and reuse only script functions
Andrei Pelinescu-Onciul [Tue, 15 Sep 2009 15:47:33 +0000 (17:47 +0200)]
core: new close after send and reuse only script functions

Added new script functions for setting send options for the
current message or its replies:

- set_forward_no_connect() - the message will be forwarded only if
  there is already an open connection to the destination.
- set_reply_no_connect() - like above but for replies to the
  current message.
- set_forward_close() - hint that after forwarding the current
  message the connection should be closed.
- set reply_close() - like above but for replies.

10 years agotcp: send_flags support
Andrei Pelinescu-Onciul [Tue, 15 Sep 2009 15:45:41 +0000 (17:45 +0200)]
tcp: send_flags support

Support for SND_F_FORCE_CON_REUSE and SND_F_CON_CLOSE added to the
tcp code.

10 years agosl: use the msg reply send_flags
Andrei Pelinescu-Onciul [Tue, 15 Sep 2009 15:44:50 +0000 (17:44 +0200)]
sl: use the msg reply send_flags

10 years agotm: support for send_flags
Andrei Pelinescu-Onciul [Tue, 15 Sep 2009 15:43:24 +0000 (17:43 +0200)]
tm: support for send_flags

The send_flags are taken from the current message and added to the
retr_bufs (for branch uacs and replies).

10 years agocore: send flags support
Andrei Pelinescu-Onciul [Tue, 15 Sep 2009 15:38:06 +0000 (17:38 +0200)]
core: send flags support

Added support for send flags and per message send flags.
Right now there are 2 flags defined:
 - SND_F_FORCE_CON_REUSE (forces connection reuse, send will fail if
   a connection does not already exist to the destination)
 - SND_F_CON_CLOSE (hint that after the send completes the
   connection should be closed).
The send flags can be passed directly to msg_send() via
dest_info.send_flags or they can be set for each sip_msg, in which
case forward_request() and forward_reply() will obey them.
The sip_msg flags can be set for replies or for forwarding.

10 years agotm: callback param free functions can use shm_free()
Miklos Tirpak [Mon, 14 Sep 2009 15:57:40 +0000 (17:57 +0200)]
tm: callback param free functions can use shm_free()

The release function of the callback parameters is
called outside of the shared memory lock to make the
implementation of such functions easier.

10 years agoimc(k): fix copy&paste error in example
Daniel-Constantin Mierla [Mon, 14 Sep 2009 08:16:24 +0000 (10:16 +0200)]
imc(k): fix copy&paste error in example

10 years agocfg framework: CFG_CB_ONLY_ONCE documented
Miklos Tirpak [Fri, 11 Sep 2009 10:54:19 +0000 (12:54 +0200)]
cfg framework: CFG_CB_ONLY_ONCE documented

CFG_CB_ONLY_ONCE has been documented

10 years agocfg framework: CFG_CB_ONLY_ONCE flag
Miklos Tirpak [Fri, 11 Sep 2009 10:08:13 +0000 (12:08 +0200)]
cfg framework: CFG_CB_ONLY_ONCE flag

CFG_CB_ONLY_ONCE flag indicates that the per-child
process callback is called only once after the changes
to the global config have been committed.
(The first child process that updates its local
config calls the callback, and no other child
process does so.)
The per-child process cb is intended to be used to
update the config variables that are stored outside
of the cfg framework. By default this callback is called
by all the child processes separately, this can be change
with this flag.

10 years agopdbt: add one helper script, protocol and input data documentation
Henning Westerholt [Thu, 10 Sep 2009 17:32:41 +0000 (19:32 +0200)]
pdbt: add one helper script, protocol and input data documentation

10 years agopdb: add daemon 'pdb_server' and optimising data compiler 'pdbt'
Henning Westerholt [Thu, 10 Sep 2009 16:35:05 +0000 (18:35 +0200)]
pdb: add daemon 'pdb_server' and optimising data compiler 'pdbt'

- add number portability database daemon and optimizing data compiler
- add debian packaging scripts for tool and daemon as well
- TODO:
  - add documentation (run binaries with '-h' for now to get help)
  - fix this redundant declaration of trie (dt* files) and logging (log*).
    There exists already an implementation that uses the sr core parts for
    this, but we import the proven implementation for now.
  - add data helper scripts as well, they need some cleanup first
- initial implementation was done from Hardy Kahl @ 1&1 Internet Ag
- further bug fixes from Timo Reimann, timo dot reimann at 1und1 dot de

10 years agotest: fix path in test 2, add pdb module
Henning Westerholt [Thu, 10 Sep 2009 16:23:21 +0000 (18:23 +0200)]
test: fix path in test 2, add pdb module

10 years agoadd pdb module to the 'stable, but for special use' group in Makefile
Henning Westerholt [Thu, 10 Sep 2009 16:22:07 +0000 (18:22 +0200)]
add pdb module to the 'stable, but for special use' group in Makefile

10 years agotm: mem leak correction #2
Miklos Tirpak [Thu, 10 Sep 2009 16:11:56 +0000 (18:11 +0200)]
tm: mem leak correction #2

- shm_free() needs to be used instead of shm_free_unsafe()
- The callback params may have a release function

10 years agotm: minor mem leak corrected
Miklos Tirpak [Thu, 10 Sep 2009 15:50:57 +0000 (17:50 +0200)]
tm: minor mem leak corrected

After the memory of a cell is allocated other modules
immediately have a chance to register transaction callbacks,
and they may also allocate additional memory for
the callback parameters. When sip_msg_cloner()
failed, the memory allocated for the callback
list was not freed. This happend only when the available
shm memory was already very low which caused sip_msg_cloner()
to fail.

10 years agotextops(k): new function - msg_apply_changes()
Daniel-Constantin Mierla [Thu, 10 Sep 2009 14:22:08 +0000 (16:22 +0200)]
textops(k): new function - msg_apply_changes()

- apply changes done to SIP request content (e.g., via subst(),
  append_hf(), remove_hf(), etc.)
- after using this function, the content of SIP message buffer is
  updated and the initially recevied content is lost
- function can be used in request route blocks
- be careful when used since:
- it changes the way you're used so far
- not much tested with various modules

10 years agoimc(k): return code classes per command
Daniel-Constantin Mierla [Thu, 10 Sep 2009 12:51:08 +0000 (14:51 +0200)]
imc(k): return code classes per command

- for each imc command a range of negative numbers is reserved to signal
  errors to config file
- example enhanced to replect the need of sending replies from config
  file

10 years agomodules_k/imc: fixed typo in #help reply
Juha Heinanen [Wed, 9 Sep 2009 09:12:58 +0000 (12:12 +0300)]
modules_k/imc: fixed typo in #help reply

10 years agomodules_k/imc: added "extra_hdrs" module variable
Juha Heinanen [Wed, 9 Sep 2009 06:54:38 +0000 (09:54 +0300)]
modules_k/imc: added "extra_hdrs" module variable

Added "extra_hdrs" module variable that can be used to inject extra
headers to messages send out from IMC server.

10 years agonew module: connector to Portability number DataBase daemon
Henning Westerholt [Tue, 8 Sep 2009 17:14:01 +0000 (19:14 +0200)]
new module: connector to Portability number DataBase daemon

- new module, connector to portable number database daemon, pdbd
- the daemon implements a custom UDP protocol that allows the query of a custom
  number portability database optimized for speed and memory efficieny based
  on the 'cr' trie datastructure
- the daemon allows the storage of a number to carrier mapping for e.g. whole
  germany in a few hundred megabytes of RAM, and their efficient retrival
- the connector module supports aggressive time outs to keep the post dial
  delay low, it will return then a failure and default routing is possible
- TODO: port daemon and optimizing compiler as well, extend README
- this daemon (in its OpenSER version) has been used in production, but some
  bugs could be slipped in the porting process
- credits for implementation: Hardy Kahl @ 1&1 Internet AG

10 years agocr: bug fix in new introduced function, cr_nofallback_routing
Henning Westerholt [Tue, 8 Sep 2009 16:03:50 +0000 (18:03 +0200)]
cr: bug fix in new introduced function, cr_nofallback_routing

10 years agocr: protect against user error when backup is the same as initial host, port from...
Henning Westerholt [Tue, 8 Sep 2009 15:42:14 +0000 (17:42 +0200)]
cr: protect against user error when backup is the same as initial host, port from r5924

10 years agomodules_k/imc: degraded log message
Juha Heinanen [Mon, 7 Sep 2009 10:15:44 +0000 (13:15 +0300)]
modules_k/imc: degraded log message

* Degraded log message from info to dbg in imc_parse_cmd function.

10 years agocr: new function 'cr_nofallback_route'
Henning Westerholt [Mon, 7 Sep 2009 08:34:58 +0000 (10:34 +0200)]
cr: new function 'cr_nofallback_route'

- add new function 'cr_nofallback_route' which behaves exactly like
  the existing 'cr_prime_route' function but uses the standard CRC32
  hash instead of this prime function to provide an path away from
  this function
- mark 'cr_prime_route' function as obselete in docs
- patch from Carsten Gross, carsten dot gross at 1und1 dot de

10 years agocr: add random distribution function
Henning Westerholt [Mon, 7 Sep 2009 08:19:38 +0000 (10:19 +0200)]
cr: add random distribution function

- add a random distribution function to cr
- patch from Marius Zbihlei, marius dot zbihlei at 1and1 dot ro

10 years agoregistrar(k): port from r5923: information leak bug in registrar
Henning Westerholt [Fri, 4 Sep 2009 16:14:11 +0000 (18:14 +0200)]
registrar(k): port from r5923: information leak bug in registrar

10 years agouserblacklist(k): fix error in check_user_blacklist DB code
Henning Westerholt [Fri, 4 Sep 2009 15:56:31 +0000 (17:56 +0200)]
userblacklist(k): fix error in check_user_blacklist DB code

- fix an error in the check_user_blacklist DB code, we need to return
  the WHITELIST node when we found a value != zero
- reported from Alexandr Dubovikov, Alexandr dot Dubovikov at qsc dot de

10 years agouserblacklist(k): add new function 'check_user_whitelist'
Henning Westerholt [Fri, 4 Sep 2009 15:44:43 +0000 (17:44 +0200)]
userblacklist(k): add new function 'check_user_whitelist'

- add new function 'check_user whitelist'
- patch from Alexandr Dubovikov, Alexandr dot Dubovikov at qsc dot de
- works like the existing check_user_blacklist, but return -1 when not
  the user is not found

10 years agooob cfg: merged changes from last SIPit
Nils Ohlmeier [Thu, 3 Sep 2009 14:22:48 +0000 (16:22 +0200)]
oob cfg: merged changes from last SIPit

This version of sip-router-oob.cfg was successfully tested at
SIPit 24. The changes are:
- re-organzied the NAT detection
- added lots of comments about NAT detection
- renamed the record- and loose-routes
- added an inactive ENUM route
- activated DNS NAPTR and SRV options
- disabled TCP async to allow usage of TLS
- disabled the files limit as this prevents the usage of the config as non-root
user on most systems

10 years agodomain(k): regenerated readme
Daniel-Constantin Mierla [Thu, 3 Sep 2009 12:43:29 +0000 (14:43 +0200)]
domain(k): regenerated readme

- include new parameter 'register_myself'

10 years agocore: include replaced with include_file
Daniel-Constantin Mierla [Thu, 3 Sep 2009 10:18:31 +0000 (13:18 +0300)]
core: include replaced with include_file

- due to opinions expressed on mailing list suggesting it reflects
  better the meaning

10 years agodomain(k): new module parameter - register_myself
Daniel-Constantin Mierla [Thu, 3 Sep 2009 10:16:27 +0000 (13:16 +0300)]
domain(k): new module parameter - register_myself

- cotrol registration of domain list to 'myself' check callbacks
- disabled by default (requested by Juha Heinanen for backward
  compatibility)

10 years agocfg framework: fix the initialization of child processes
Miklos Tirpak [Thu, 3 Sep 2009 09:56:18 +0000 (09:56 +0000)]
cfg framework: fix the initialization of child processes
(backport from sip-router)

The number of child processes that keep updating their
local configuration needs to be known before any child
process is forked.
Before this the child processes increased the reference
counter of the callback function list items after forking.
If a child process was forked "too fast" then it freed the list
before the other processes had a chance to refer to the list
item. The result was that some child processes missed
the initial configuration changes. (Those changes that
had per-child process callback defined.)

10 years agotm: async t_uac (t_uac_wait) support
Andrei Pelinescu-Onciul [Tue, 1 Sep 2009 16:44:36 +0000 (18:44 +0200)]
tm: async t_uac (t_uac_wait) support

t_uac_wait implemented using the new rpc "wait" support.
For now the implementation is just the fifo uac updated to use
rpcs.
The result of the rpc call is the reply code (int) followed by a
list of strings:
reason phrase,
request uri,
next hop uri,
dialog routes list (one string with all of them),
rest of the reply (everything except the first line in one
string).

Missing parts are represented by empty strings.
The current format is not yet final. It might make sense to switch
to a structure if there is no backwards compatibility problem.

10 years agoxmlrpc(s): basic support for delayed replies
Andrei Pelinescu-Onciul [Thu, 30 Jul 2009 13:45:11 +0000 (15:45 +0200)]
xmlrpc(s): basic support for delayed replies

Support for delaying replies with a few caveats:
- a special delayed reply context must be created first (via the
  new rpc hooks).
- a function using this context does not have any access to the
  original rpc message (so if it needs any parameters from the
  original rpc request it must pass them somehow to the function
  that will use the delayed reply context).
- a delayed reply context can  be used _only_ from one process (is
  not possible to add part of the reply from one process and
  another part from another process).
- when finished the delayed reply context _must_ be closed (using
  the new rpc hook). This must be done from the same process in
  which the delayed reply context was used.

10 years agocore: rpc capabilities and delayed reply api
Andrei Pelinescu-Onciul [Thu, 30 Jul 2009 13:40:42 +0000 (15:40 +0200)]
core: rpc capabilities and delayed reply api

- added a new rpc function for interrogating the current rpc
  transport capabilities (for now the only extra capability is
  RPC_DELAYED_REPLY).
- added a new special delayed reply rpc context and  rpc functions hooks for
  creating and closing it.

10 years agocore+tm: moved sip msg clone functions to the core
Andrei Pelinescu-Onciul [Thu, 30 Jul 2009 13:35:37 +0000 (15:35 +0200)]
core+tm: moved sip msg clone functions to the core

- moved all sip msg clone related functions to the core, since the
xmlrpc modules will need them too.
- renamed sip_msg_cloner() to sip_msg_shm_clone().
- msg_lump_cloner() is no longer static and returns 1 for no
  change, 0 for successful cloning and -1 on error.

10 years agocfg framework: fix the initialization of child processes
Miklos Tirpak [Wed, 2 Sep 2009 15:03:57 +0000 (17:03 +0200)]
cfg framework: fix the initialization of child processes

The number of child processes that keep updating their
local configuration needs to be known before any child
process is forked.
Before this the child processes increased the reference
counter of the callback function list items after forking.
If a child process was forked "too fast" then it freed the list
before the other processes had a chance to refer to the list
item. The result was that some child processes missed
the initial configuration changes. (Those changes that
had per-child process callback defined.)

10 years agomodules_k/htable - documentation clarification
Juha Heinanen [Wed, 2 Sep 2009 15:02:20 +0000 (18:02 +0300)]
modules_k/htable - documentation clarification

* Clarified meaning of "size" parameter in htable definition.

10 years agocore & avpops: fix overlapping avp flag
Daniel-Constantin Mierla [Mon, 31 Aug 2009 10:01:46 +0000 (13:01 +0300)]
core & avpops: fix overlapping avp flag

- k avpops uses a flag to mark whether a loaded avp from db has changed,
  in order to decide if worth to update db
- the value was overlapping with flags defined in sr core
- reported by Juha Heinanen

10 years agomodules/lcr: added checks on validity of lcr_id parameter.
Juha Heinanen [Fri, 28 Aug 2009 17:40:05 +0000 (20:40 +0300)]
modules/lcr: added checks on validity of lcr_id parameter.

10 years agomodules_s: include sr_module.h
Daniel-Constantin Mierla [Fri, 28 Aug 2009 08:46:31 +0000 (11:46 +0300)]
modules_s: include sr_module.h

- some modules updated to include sr_module.h as they need access to
  fparam_t
- previously that was inherited from modules_s/sl/sl_funcs.h which was
  included by modules_s/sl/sl.h
- modules_s/sl/sl.h became simple API definition being included by
  modules_k/sl/sl.h in order to export same API in K version

10 years agoxmlrpc(s): remove the K sl define
Daniel-Constantin Mierla [Fri, 28 Aug 2009 08:44:37 +0000 (11:44 +0300)]
xmlrpc(s): remove the K sl define

- no more needed - the modules should work the same with any version
  of sl module

10 years agosl(k): implement ser-like SL api
Daniel-Constantin Mierla [Fri, 28 Aug 2009 08:40:35 +0000 (11:40 +0300)]
sl(k): implement ser-like SL api

- SER modules dependent of sl module can work now with k-sl
- exported sl_send_reply() ser function takes the reason as charz while k version is str
- conflict was resolved since SER does the export via sl_api_t structure
  and bind_sl() function, kamailio does via sl_binds structure and
  load_sl() function - both are now included in k-sl module

10 years agosl(s): move typedef of sl_send_reply_f in sl.h
Daniel-Constantin Mierla [Fri, 28 Aug 2009 08:38:14 +0000 (11:38 +0300)]
sl(s): move typedef of sl_send_reply_f in sl.h

- modules_s/sl/sl.h is included by modules_k/sl/sl.h to export ser-like
  SL API in kamailio sl module
- allow using ser modules dependent of sl with k-sl module

10 years agocore: use count() for 'include' directive
Daniel-Constantin Mierla [Thu, 27 Aug 2009 08:28:33 +0000 (11:28 +0300)]
core: use count() for 'include' directive

10 years agocore: callback function support for myself check
Daniel-Constantin Mierla [Thu, 27 Aug 2009 08:22:10 +0000 (11:22 +0300)]
core: callback function support for myself check

- modules can register callback functions for myself check condition
- domain module is one candidate, resulting in coherent handling of
  local domains via check myself operation
- callback functions must have same prototype and return codes as
  check_self(...) function from core

10 years agodomain(k): register check self function
Daniel-Constantin Mierla [Thu, 27 Aug 2009 08:20:29 +0000 (11:20 +0300)]
domain(k): register check self function

- list of domains handled by module match now the 'myself' condition
- the module register a callback function for 'myself' checks
- port and proto are ignored since it has only domain names

10 years agoperl: use C append_branch() in Perl function
Daniel-Constantin Mierla [Wed, 26 Aug 2009 18:23:03 +0000 (20:23 +0200)]
perl: use C append_branch() in Perl function

- perviously mk_action() was used resulting in lot of pkg operations at
  runtime
- fixes the memory leak reported by James Pucket

10 years agocore: included file name must be between double quotes
Daniel-Constantin Mierla [Wed, 26 Aug 2009 10:19:36 +0000 (13:19 +0300)]
core: included file name must be between double quotes

- better suggestion that is a static string value (Jan Janak)
- new syntax:
include "file_name"
- inside double quotes, following escape are allowed for now
- \t - tab
- \w - white space
- \r - CR
- \n - LF

10 years agocore: action struct holds cfg file name and line
Daniel-Constantin Mierla [Wed, 26 Aug 2009 08:51:51 +0000 (11:51 +0300)]
core: action struct holds cfg file name and line

- useful to print cfg file position for runtime action errors

10 years agocore: print cfg position for action's runtime error
Daniel-Constantin Mierla [Wed, 26 Aug 2009 08:50:25 +0000 (11:50 +0300)]
core: print cfg position for action's runtime error

10 years ago- iptrtpproxy.cfg support (share config data between iptables and ser module)
Tomas Mandys [Tue, 25 Aug 2009 19:30:14 +0000 (19:30 +0000)]
- iptrtpproxy.cfg support (share config data between iptables and ser module)

10 years agocore: support for include file in cfg
Daniel-Constantin Mierla [Tue, 25 Aug 2009 16:27:01 +0000 (19:27 +0300)]
core: support for include file in cfg

- syntax:
include path/to/file
- example:
include checks.cfg
- path can be absolute or relative
- if path is relative:
- first attempt is to open the file relative to current directory
- second attempt is to open the file relative to the directory
of the file including it
- if include file fails, then print error and exit
- cfg syntax error messages print file name
- there is no restriction where 'include' can be used, can have
global parameters, module configs or entire/parts of route blocks

10 years agorls: memory leak fix
Elena-Ramona Modroiu [Tue, 25 Aug 2009 08:36:59 +0000 (11:36 +0300)]
rls: memory leak fix

- port of K #5909

10 years agorls: fixed supported header name
Elena-Ramona Modroiu [Tue, 25 Aug 2009 08:16:53 +0000 (11:16 +0300)]
rls: fixed supported header name

- port of K #5908

10 years agopv: new pv class $sel(name)
Daniel-Constantin Mierla [Thu, 20 Aug 2009 13:12:35 +0000 (16:12 +0300)]
pv: new pv class $sel(name)

- access select (ser cfg variables) values via PV framework
- read-only PV
- examples: $sel(@ruri), $sel(@via[2].host)

10 years agocore: support to add rport parameter to local via hdr
Daniel-Constantin Mierla [Thu, 20 Aug 2009 09:57:01 +0000 (12:57 +0300)]
core: support to add rport parameter to local via hdr

- new cfg function - add_local_rport() - to add rport parameter to local
  via header (rfc3581)

10 years agocore: server signature value can be set via param
Daniel-Constantin Mierla [Thu, 20 Aug 2009 08:49:14 +0000 (11:49 +0300)]
core: server signature value can be set via param

- server and user agent signature were only defines so far
- two new parameters server_header and user_agent_header allow
to define them via cfg parameters
- default values are the same so far

10 years agotm: use server signature from config var
Daniel-Constantin Mierla [Thu, 20 Aug 2009 08:48:35 +0000 (11:48 +0300)]
tm: use server signature from config var

10 years agocore: added log_name config parameter
Daniel-Constantin Mierla [Thu, 20 Aug 2009 07:41:02 +0000 (10:41 +0300)]
core: added log_name config parameter

- log_name allows to set app name to be used when printing to syslog
- useful to filter log messages when running many instance on same server

10 years agoauth(k): fix proxy/ www_challenge function, extends docs a bit (port r5874)
Henning Westerholt [Wed, 19 Aug 2009 14:54:53 +0000 (16:54 +0200)]
auth(k): fix proxy/ www_challenge function, extends docs a bit (port r5874)

 - proxy_challenge / www_challenge was not sending any reply, in case
    the nonce could not be created (with nonce_reuse = 0, default since 1.4)
 - added a note to the docs about return-values from the auth-module
 - regenerate README file

10 years agolib kmi: fix double allocation length calculation in mi_add_attr function
Henning Westerholt [Wed, 19 Aug 2009 14:51:44 +0000 (16:51 +0200)]
lib kmi: fix double allocation length calculation in mi_add_attr function

- patch from marius zbihlei, marius dot zbihlei at 1and1 dot ro, port from r5882

10 years agocr: small fix in doxygen, fix obselete function description (port from r5897)
Henning Westerholt [Wed, 19 Aug 2009 14:44:48 +0000 (16:44 +0200)]
cr: small fix in doxygen, fix obselete function description (port from r5897)

10 years agocr: documentation extension related to the prime route behaviour (port r5898)
Henning Westerholt [Wed, 19 Aug 2009 14:40:04 +0000 (16:40 +0200)]
cr: documentation extension related to the prime route behaviour (port r5898)

10 years agoauth_db(k): fix error in auth_db documentation for calc_ha1 (port from r5910)
Henning Westerholt [Wed, 19 Aug 2009 14:37:10 +0000 (16:37 +0200)]
auth_db(k): fix error in auth_db documentation for calc_ha1 (port from r5910)

10 years agocr: fix stupid bug related to the (legacy..) prime_route function (port from r5911)
Henning Westerholt [Wed, 19 Aug 2009 14:35:06 +0000 (16:35 +0200)]
cr: fix stupid bug related to the (legacy..) prime_route function (port from r5911)

11 years agoauth_identity: Add -lrt and -ldap to the list of libraries
Jan Janak [Fri, 7 Aug 2009 12:19:36 +0000 (14:19 +0200)]
auth_identity: Add -lrt and -ldap to the list of libraries

Two more libraries are needed when compiling auth_identity module
statically, -lrt and -lldap.

Reported by MÉSZÁROS Mihály <misi@niif.hu>

11 years agotls: Set internal module name to "tls".
Jan Janak [Fri, 7 Aug 2009 11:35:39 +0000 (13:35 +0200)]
tls: Set internal module name to "tls".

Set module name to "tls", not "tlsops".
Reported by MÉSZÁROS Mihály <misi@niif.hu>

11 years agopresence_xml: define _DARWIN_C_SOURCE 1
Daniel-Constantin Mierla [Mon, 3 Aug 2009 13:54:54 +0000 (15:54 +0200)]
presence_xml: define _DARWIN_C_SOURCE 1

- compile the module on darwin, workaround for strptime

11 years agocore: script parsing avp flags fix
Andrei Pelinescu-Onciul [Thu, 30 Jul 2009 13:57:27 +0000 (15:57 +0200)]
core: script parsing avp flags fix

Fix bug when parsing attr_id_any_str used by the avp flags
script functions (setavpflag(), resetavpflag(), isavpflagset()).

Closes: SR #11.
Reported-by: Greger Viken Teigre gregert at teigre com.
11 years agoignore auto-generated files on mac os x
Daniel-Constantin Mierla [Wed, 29 Jul 2009 14:39:07 +0000 (16:39 +0200)]
ignore auto-generated files on mac os x

11 years agoregistrar(k): local send_reply() renamed
Daniel-Constantin Mierla [Wed, 29 Jul 2009 09:20:59 +0000 (11:20 +0200)]
registrar(k): local send_reply() renamed

- new name reg_send_reply()
- symbol conflict with sl module version on darwinos

11 years agorls(k): include lib/kcore/hash_func.h
Daniel-Constantin Mierla [Wed, 29 Jul 2009 09:13:05 +0000 (11:13 +0200)]
rls(k): include lib/kcore/hash_func.h

- fix warning for using core_hash() function

11 years agomodules_s: destroy() function set to static
Daniel-Constantin Mierla [Wed, 29 Jul 2009 09:08:39 +0000 (11:08 +0200)]
modules_s: destroy() function set to static

- fix namespace conflicts on darwinos

11 years agomodules_k: destroy() functions set to static
Daniel-Constantin Mierla [Wed, 29 Jul 2009 08:41:25 +0000 (10:41 +0200)]
modules_k: destroy() functions set to static

- fix namespacing conflicts in darwinos

11 years agomodules/utils: added check on size of http_query reply
Juha Heinanen [Fri, 24 Jul 2009 16:10:23 +0000 (19:10 +0300)]
modules/utils: added check on size of http_query reply

- Added check on actual size of http_query reply body that fixes possible
  crash if body does not contain a linefeed.
- If body does not contain a linefeed, return whole body as result.

11 years agotm: dialog send_socket support
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 23:18:38 +0000 (01:18 +0200)]
tm: dialog send_socket support

t_uac()/t_uac_prepare() use now the dialog->send_sock if set
(fixes rpc t_uac_* and mi_t_uac_dlg not obeying the send socket
parameter).

11 years agotm: new uri2dst() version
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 23:15:02 +0000 (01:15 +0200)]
tm: new uri2dst() version

- new uri2dst2() function which can have the send_socket passed
directly to it.
- uri2dst() is now a wrapper over uri2dst2().

11 years agocore: get_send_socket fix for tcp or tls forced socket
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 23:10:05 +0000 (01:10 +0200)]
core: get_send_socket fix for tcp or tls forced socket

One of the get_send_socket() sanity tests, checks if ser really
listens on the forced socket. For tcp and tls this test should not
be performed (the sockets are closed for the processes that do not
need them => cannot test by looking at the fd).

11 years agocore: enhanced get_send_socket() version
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 21:51:27 +0000 (23:51 +0200)]
core: enhanced get_send_socket() version

get_send_socket2() added.

11 years agoMerge commit 'origin/tmp/build_local'
Andrei Pelinescu-Onciul [Tue, 21 Jul 2009 12:53:26 +0000 (14:53 +0200)]
Merge commit 'origin/tmp/build_local'

* commit 'origin/tmp/build_local':
  core: init via_len to cope with no via update flag
  tm: local req. route: do not save/restore the avps
  tm: local req. route: cache route id
  tm: local req. route: always free the tmp sip msg
  tm: local req. route rcv init fix
  tm: updated execution of event route
  core: build_req_buf_from_sip_req() has a new parameter
  tm: update to new signature of build_req_buf_from_sip_req()
  tm: execute event_route[tm:local-request] if defined

11 years agocore: init via_len to cope with no via update flag
Daniel-Constantin Mierla [Tue, 21 Jul 2009 11:49:36 +0000 (13:49 +0200)]
core: init via_len to cope with no via update flag

11 years agotm: local req. route: do not save/restore the avps
Andrei Pelinescu-Onciul [Tue, 21 Jul 2009 10:20:16 +0000 (12:20 +0200)]
tm: local req. route: do not save/restore the avps

- reset_avps() moved after running the local req. route so at
  least there is a chance that some avps could be used (although
   it's unclear what non-global  avps could have made it so far
   so it's probably safer to say that in general no defined avps
   should be expected).
- no need to save or restore the avps after running the local req.
  route (they are reset anyway).

11 years agotm: local req. route: cache route id
Andrei Pelinescu-Onciul [Tue, 21 Jul 2009 09:58:51 +0000 (11:58 +0200)]
tm: local req. route: cache route id

- resolve the route name only once, at startup (mod_init since
  this route name is fixed) and cache it.
- more likely()/unlikely() added to the ifs (optimizing for no
  local req. route and local req. route not changing the message).

11 years agotm: local req. route: always free the tmp sip msg
Andrei Pelinescu-Onciul [Tue, 21 Jul 2009 09:25:39 +0000 (11:25 +0200)]
tm: local req. route: always free the tmp sip msg

11 years agotm: local req. route rcv init fix
Andrei Pelinescu-Onciul [Tue, 21 Jul 2009 09:10:48 +0000 (11:10 +0200)]
tm: local req. route rcv init fix

- dialog->send_sock can be null and should not be used (switched
  to dst.send_sock which is guaranteed to be non-null at that
  point)

- initialize also the other members of the msg rcv structure:
  dst_ip, dst_port, src_su, bind_address and dst.comp.
  Note: the rcv structure is initialized as if the message
  originated from the dst.send_sock, so in the script src_ip &
  friends will be the send ip. This is different from on_send
  route, were src_ip is the original forwarded message source and
  snd_ip is the send ip.

11 years agotmx(k): mi_tm_uac_dlg uris fix
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 16:28:03 +0000 (18:28 +0200)]
tmx(k): mi_tm_uac_dlg  uris fix

Replaced dlg.hooks.request_uri  with dlg.rem_uri and
dlg.hooks.next_hop with dlg.rem_target.
[ In sr tm the dialog hooks should not be changed, they are only
used for internal caching. Any change to the hooks will be lost
immediately after t_uac() is called (t_uac() re-calculates the
hooks each time it is called). One should use instead the
correspondent dlg structure members. ]

11 years agotm: rpc_uac* support
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 15:21:25 +0000 (17:21 +0200)]
tm: rpc_uac*  support

fifo/unixsock uac revived in rpc form and updated to the latest
tm:
 - tm.t_uac_start  - fifo_uac rpc equivalent with the following
   differences:
    * extra send_socket parameter for kamailio compatibility.
    * empty parameters can be specified either by '.' (backwards
       compatibility) or by "" (empty string).
    * it doesn't wait for the final reply and it doesn't include
      the sip reply in the rpc reply (it sends immediately an
      empty reply indicating only success or failure)
 - tm.t_uac_wait - like above, but it's supposed to wait and
   return the final reply. However right now it will only return
   an error (it's not yet fully implemented).

11 years agocore: parse_phostport split for k compatibility
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 11:00:37 +0000 (13:00 +0200)]
core: parse_phostport split for k compatibility

parse_phostport in sr and ser returned a list of pkg_malloc'ed
addresses belonging to the same multi-homed "group". For example
sctp:(1.2.3.4, 5.6.7.8):5080 is a valid address and it means
that this sctp listening socket must use multi-homing on the 2
IPs. However several kamailio modules use parse_phostport and
expect the old integer returning version. In this case it was
easier to split the function in the core into parse_phostport()
(old behaviour) and  parse_phostport_mh() (returns list of MH
addresses) and make the core command line parser use the MH
supporting version.

11 years agotmx(k): missing type for mi_tm_uac_dlg callback
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 08:21:36 +0000 (10:21 +0200)]
tmx(k): missing type for mi_tm_uac_dlg callback

sr tm t_uac() does not automatically register any transaction
callback (unlike old ser or kamailio versions). If a callback is
desired, besides the callback pointer, the callback type mask must
also be specified (in this case TMCB_LOCAL_COMPLETED).

11 years agotm: AS added needed membar
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 08:16:10 +0000 (10:16 +0200)]
tm: AS added needed membar

When compiled with -DWITH_AS_SUPPORT build_local_ack() needed
a membar_write_atomic_op() before setting the new local ack retr.
buf pointer (this will force the local_ack content to be fully
written before replacing the pointer and it's need on some non-x86
archs.).

11 years agotm: AS - fixed onsend callbacks invocation
Andrei Pelinescu-Onciul [Mon, 20 Jul 2009 08:13:47 +0000 (10:13 +0200)]
tm: AS - fixed onsend callbacks invocation

When compiled with WITH_AS_SUPPORT and TMCB_ONSEND,
ack_local_uac() used a wrong way for calling the onsend callbacks
(compile error).