sip-router
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).

11 years agodispatcher(k): safety checks for duri
Daniel-Constantin Mierla [Sun, 19 Jul 2009 15:37:22 +0000 (17:37 +0200)]
dispatcher(k): safety checks for duri

- due to usage of SR append_branch() instead of km_append_branch(), duri
  has to be checked before giving inner fields as parameters

11 years agodialog(k): fixed db initialization
Daniel-Constantin Mierla [Sun, 19 Jul 2009 15:19:25 +0000 (17:19 +0200)]
dialog(k): fixed db initialization

- child init DB initialization condition properly tests the db mode
- reported by Juha Heinanen

11 years agomakefile: don't install tls certs & cfg by default
Andrei Pelinescu-Onciul [Sat, 18 Jul 2009 09:24:19 +0000 (11:24 +0200)]
makefile: don't install tls certs & cfg by default

Install tls certs & cfg only if the tls module is installed (moved
certs & cfg installation from the main Makefile to the tls module
Makefile).

11 years agocore: script engine cleanups
Andrei Pelinescu-Onciul [Sat, 18 Jul 2009 09:05:05 +0000 (11:05 +0200)]
core: script engine cleanups

Use named enums for action types, expression types, expressions
left operands, expression right operands and action parameter
types. This should avoid future type mismatching bugs (like trying
 to compare a left expr. operand type with a type that can exist
 only on the right part) by triggering compile time warnings.
For extra protection the expression left operands and right
operands possible value do not overlap anymore.

11 years agocore: expr string length fixup fix
Andrei Pelinescu-Onciul [Sat, 18 Jul 2009 08:05:16 +0000 (10:05 +0200)]
core: expr string length fixup fix

- moved the string length fixup before the rve/rval optimisations:
  the string length fixup was executed after the rve/rval
  optimisations and would try to re-calculate the length of the
  string (which was already filled in by the optimizer). However
  the rval optimizer did not 0-terminate strings => this second
  re-calculation was wrong.

- the rve/rval optimiser 0 terminates strings (although not
  strictly needed it's better for debugging and would avoid
  problems similar to the above one).

- don't try to fix a string in the left side of an expression,
  there can be no strings there (and by chance
  METHOD_O==STRING_ST).

Reported-by: Juha Heinanen jh at tutpro com
11 years agocore: config parser minor fix
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 16:15:44 +0000 (18:15 +0200)]
core: config parser minor fix

- use a pkg_malloc'ed copy of yy_number_str for host_if_id
- always free ID/NUM_ID/host_if_id after copying them (bug
  introduced in the last merge)

11 years agoMerge commit 'origin/ser_core_cvs'
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 16:09:01 +0000 (18:09 +0200)]
Merge commit 'origin/ser_core_cvs'

* commit 'origin/ser_core_cvs':
  core: config parser listen if names fix
  core: config parser listen fix
  core: interface names in socket list port fix
  core: startup socket list fix
  core: parse_headers flags fix
  tm: fifo access From fix
  cfg framework: fix the group handles in the main process

Conflicts:
cfg.lex
cfg.y

11 years agoMerge commit 'origin/ser_modules'
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 15:45:40 +0000 (17:45 +0200)]
Merge commit 'origin/ser_modules'

* commit 'origin/ser_modules':
  - socket support
  - more -h messages
  - minor ERR message improvment
  presence_b2b: fix from & to header access
  rr: fix from header access

11 years agoMerge branch 'cvs-head' of ssh://git.sip-router.org/ser_modules into ser_modules
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 15:37:32 +0000 (17:37 +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:
  - socket support
  - more -h messages
  - minor ERR message improvment
  presence_b2b: fix from & to header access
  rr: fix from header access

11 years agocore: expr =~ fixup order fix
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 15:10:07 +0000 (17:10 +0200)]
core: expr =~  fixup order fix

The fixup for built-in expressions were in the wrong order: first
RE and then RVE/RVALs, but a RVE/RVALs could be optimized away to
a string => because of the wrong order at runtime the match
operator might end up being used with a normal string instead of a
RE.
Now the order is RVE/RVALs fixup & optimisations, string fixups
(len) and then RE fixups (so that by the time the RE fixup is run
 we know the final type of its operand).

Reported-by: Nils Ohlmeier nils at iptel org
11 years agocore: config parser listen if names fix
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 13:37:11 +0000 (13:37 +0000)]
core: config parser listen if names fix

If no quotes were used in listen=x, it was assumed that x was an
ip or a valid hostname (each domain part starts with a letter,
numbers and '_' are not allowed as first chars). However this
assumption failed when interface names were used, e.g. eth0.1 is a
valid interface name, but listen=eth0.1 resulted in error (it
worked only if quotes were used, e.g. listen="eth0.1").

11 years agocore: config parser listen fix
Andrei Pelinescu-Onciul [Fri, 17 Jul 2009 13:37:01 +0000 (13:37 +0000)]
core: config parser listen fix

- do not crash when the listen=host line contains an invalid host (e.g. foo.1)
- more null checks

Reported-by: Cristian Constantin cristian.constantin at iptel org
11 years agodomain: Documentation of internal API
Jan Janak [Fri, 17 Jul 2009 09:34:24 +0000 (11:34 +0200)]
domain: Documentation of internal API

Add docbook documentation for the internal API of domain module.

11 years agodomain: Add internal function is_domain_local
Jan Janak [Fri, 17 Jul 2009 09:10:51 +0000 (11:10 +0200)]
domain: Add internal function is_domain_local

Add internal function is_domain_local that can be used to determine if
the domain name given in parameter is on the list of local domains. The
comparison of the domain name is always case insensitive.

There already is is_local function that does something similar, so we
can reuse the code from that function. is_domain_local takes a pointer
to str as parameter and this function is then called by is_local which
takes all the usual parameters that function which can be called from
the script take.

Finally, is_domain_local is exported through the internal API of the
domain module.

Function is_domain_local is now located in file domain.c and because of
db_get_did was also moved to file domain.c

11 years agodomain: API framework to be used by other modules
Jan Janak [Thu, 16 Jul 2009 22:15:39 +0000 (00:15 +0200)]
domain: API framework to be used by other modules

Add a new data structure and function bind_domain that can be used by
other modules to gain access to internal functions of domain module.

Implement inline function load_domain_api that does everything that
is necessary to make the API of the domain module available to the
caller.

11 years agodomain: Source cleanup
Jan Janak [Thu, 16 Jul 2009 21:46:27 +0000 (23:46 +0200)]
domain: Source cleanup

Cleanup of source files:
 * Wrap long lines
 * Fix wrong indentations
 * Update logging macros to the current calling convention

11 years agodomain: Boilerplace cleanup
Jan Janak [Wed, 15 Jul 2009 13:44:56 +0000 (15:44 +0200)]
domain: Boilerplace cleanup

Remove the reference to proprietary license from iptel.org, rename ser
to sip-router, remove cvs $Id$ tag, wrap the license text to 78
characters wide lines.

11 years agocore: futexlock include hack for older futex.h
Andrei Pelinescu-Onciul [Thu, 16 Jul 2009 12:05:50 +0000 (14:05 +0200)]
core: futexlock include hack for older futex.h

Older non-fixed linux/futex.h version (<2.6.20) cannot be included from
userspace without additional type declarations (which otherwise
are included only if __KERNEL__ is defined).
Note that most distribution fix this problem by distributing a
modified /usr/include/linux/futex.h and not the default kernel
one. However there are other distributions (like CentOS 5) for
which this hack is needed.

11 years agoctl(s) doc: added the autoconversion parameter
Andrei Pelinescu-Onciul [Thu, 16 Jul 2009 08:45:41 +0000 (10:45 +0200)]
ctl(s) doc: added the autoconversion parameter

- info about the new autoconversion parameter
- README re-generated

11 years agoxmlrpc(s): removed the introspection parameter
Andrei Pelinescu-Onciul [Thu, 16 Jul 2009 08:43:40 +0000 (10:43 +0200)]
xmlrpc(s): removed the introspection parameter

Removed the enable_introspection parameter. It's hard-wired to on
and cannot be changed (the methods needed are always exported by
the core).

11 years agoxmlrpc(s) doc: note about xmlrpclib bug
Andrei Pelinescu-Onciul [Thu, 16 Jul 2009 08:39:36 +0000 (10:39 +0200)]
xmlrpc(s) doc: note about xmlrpclib bug

- added note about xmlrpclib bug (waiting for connection closing)
  and workarounds (use a different transport class or make ser
  close the tcp connection after each answer).
- list examples/xmlrpc_test.{pl,py} among the client examples
- updated & fixed some links
- README re-generated

11 years agoxmlrpc(s) doc: added the autoconversion parameter
Andrei Pelinescu-Onciul [Thu, 16 Jul 2009 08:38:14 +0000 (10:38 +0200)]
xmlrpc(s) doc: added the autoconversion parameter

11 years agodoc: rpc api documentation updated: the '.' modifier
Andrei Pelinescu-Onciul [Thu, 16 Jul 2009 07:36:22 +0000 (09:36 +0200)]
doc: rpc api documentation updated: the '.' modifier

11 years ago- socket support
Tomas Mandys [Wed, 15 Jul 2009 23:02:15 +0000 (23:02 +0000)]
- socket support

11 years agomi_rpc: use autoconversion to string
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 20:55:28 +0000 (22:55 +0200)]
mi_rpc: use autoconversion to string

Because mi doesn't understand anything else besides strings, use
the new auto-convert modifier when reading the mi commands
parameters.

11 years agocore: rpc more verbose when duplicates found
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 20:49:23 +0000 (22:49 +0200)]
core: rpc more verbose when duplicates found

When duplicate rpc names are detected, print them (WARN(..)).

11 years agocore: new debug core rpcs
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 20:46:07 +0000 (22:46 +0200)]
core: new debug core rpcs

- added core.printi that expects integer parameters and prints
  them back in the reply (works with variable numbers of params.)
- added core.echo that echoes back its parameters (works with
  variable number of parameters and with any type, it
  auto-converts all of them to string).
- changed core.prints to work with variable number of parameters.

11 years agoctl(s): support for '.' and type autoconversion
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 20:39:20 +0000 (22:39 +0200)]
ctl(s): support for '.' and type autoconversion

- support for the new '.' rpc->scan modifier (when used it
  turns auto-conversion on for the next input parameter, e.g.:
   rpc->scan(".s", &str))

- new module "autoconversion" module parameter that enables
  auto-conversion globally

- fixed minor parameter number bug in binrpc faults, when the
 '*' modifier was used in rpc->scan()

- added binrpc context garbage collection supports (needed to
  track memory allocation used in type conversions)

11 years agoxmlrpc(s): type autoconversion support
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 18:32:53 +0000 (20:32 +0200)]
xmlrpc(s): type autoconversion support

- added a new module parameter ("autoconversion") that when enabled
  will try to autoconvert the xmlrpc  parameters types into what
  the rpc method expects (e.g. if the method expects a string, but
  receives an int, convert the int to string). By default it's
  off.

- support for a new modifier: '.' for rpc_scan. When used it turns
  auto-conversion on for the next input.
  E.g. rpc->scan(".s", &string) will work even if the next input
   is an int (it will convert it to string).
  More complex example:
   while((rpc->scan(c, "*.s", &p)>0)) rpc->add(c, "s", p);
  (work with any number of inputs/parameters, convert all of
   them to string and echo them back in the reply)

11 years agofix error in cr dump command, reported from Edson 4lists at gmail dot com
Henning Westerholt [Wed, 15 Jul 2009 13:06:25 +0000 (15:06 +0200)]
fix error in cr dump command, reported from Edson 4lists at gmail dot com

11 years agobugfix in cr and userblacklist modules (kamailio r5894)
Henning Westerholt [Wed, 15 Jul 2009 12:50:02 +0000 (14:50 +0200)]
bugfix in cr and userblacklist modules (kamailio r5894)
- fix error in module initialization which happened if a custom table name was
  configured in carrierroute and also userblacklist
- it was reported as table version mismatch, which was of course really misleading
- many thanks to Uriel Rozenbaum (uriel dot rozenbaum at gmail dot com) for his
  help in debugging this problem with a sample cfg and a binary build

11 years ago- more -h messages
Tomas Mandys [Wed, 15 Jul 2009 10:45:37 +0000 (10:45 +0000)]
- more -h messages

11 years agocore: interface names in socket list port fix
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 00:12:03 +0000 (00:12 +0000)]
core: interface names in socket list port fix

Due to an unfortunate typo, the port number was always set to 5060
for a listen address containing an interface name (e.g.
-l eth0:5070  or -l udp:eth1:5062).

11 years agocore: startup socket list fix
Andrei Pelinescu-Onciul [Wed, 15 Jul 2009 00:11:40 +0000 (00:11 +0000)]
core: startup socket list fix

Fix crash on startup when dealing with consecutive duplicate
socket  ("listen") addresses.

11 years ago- minor ERR message improvment
Tomas Mandys [Tue, 14 Jul 2009 16:56:23 +0000 (16:56 +0000)]
- minor ERR message improvment
- new clean_rtpproxy_attrs script

11 years agotmx(k): remove unnecessary reply locking
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 16:18:02 +0000 (18:18 +0200)]
tmx(k): remove unnecessary reply locking

- reply locking is not needed around prepare_to_cancel() (former
  which_cancel()).

11 years agotm: remove unnecessary locking around prepare_to_cancel()
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 16:13:26 +0000 (18:13 +0200)]
tm: remove unnecessary locking around prepare_to_cancel()

- prepare_to_cancel() is lockless, doesn't need the reply lock
  anymore (_reply_light() and rpc_cancel()).
- _reply_light() minor fix: don't run prepare_to_cancel() if
  the reply is not a final reply (might affect latter cancel
  generation)

11 years agotm: minor improvement
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 13:00:36 +0000 (15:00 +0200)]
tm: minor improvement

- killed an if in prepare_to_cancel

11 years agomodules_k/permissions: fixed child initialization
Juha Heinanen [Tue, 14 Jul 2009 14:48:14 +0000 (17:48 +0300)]
modules_k/permissions: fixed child initialization

- Database was not initialized for all necessary children, which caused
  trusted_reload and trusted_dump mi commands to fail.

11 years agotmx(k): updated to the which_cancel change
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 12:49:05 +0000 (14:49 +0200)]
tmx(k): updated to the which_cancel change

- updated to the which_cancel name change
- use the new prepare_to_cancel skip_branches parameter to skip
  the current branch when generating the CANCEL, instead of the
  previous unsafe way (in sr which_cancel/prepare_to_cancel is
  lockless and so it's not safe to directly manipulate the cancel
  buffers even if the reply lock is held).

11 years agotm: which_cancel renamed and takes more parameters
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 12:44:21 +0000 (14:44 +0200)]
tm: which_cancel renamed and takes more parameters

- which_cancel() renamed to prepare_to_cancel() to better reflect
  its real purpose.
- which_cancel_f renamed to prepare_to_cancel_f
- tm_binds which_cancel member renamed to prepare_to_cancel
- should_cancel_branch() renamed to prepare_cancel_branch().
- prepare_to_cancel() takes now an extra parameter (skip_branches)
  which contains a bitmap of the branches that should be skipped
  (not canceled).

11 years agocore: parse_headers flags fix
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 07:40:17 +0000 (07:40 +0000)]
core: parse_headers flags fix

Restore original flags after parse_headers was called with "next"
(without restoring them, if parse_headers doesn't find again all
the requested headers it will leave their flags cleared although
they might be present in the message).

11 years agotm: fifo access From fix
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 07:38:32 +0000 (07:38 +0000)]
tm: fifo access From fix

Access the From header contents only if non-null.

11 years agopresence_b2b: fix from & to header access
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 07:36:51 +0000 (07:36 +0000)]
presence_b2b: fix from & to header access

Access the parsed part of a From or To header only if non-zero
and/or parse_from_header() returned success.

11 years agorr: fix from header access
Andrei Pelinescu-Onciul [Tue, 14 Jul 2009 07:36:19 +0000 (07:36 +0000)]
rr: fix from header access

get_from() can be used _only_ if parse_from_header() returned
success or if msg->from!=0.

11 years agosercmd: updated to the new mi_rpc format
Andrei Pelinescu-Onciul [Mon, 13 Jul 2009 20:40:33 +0000 (22:40 +0200)]
sercmd: updated to the new mi_rpc format

- updated to the new mi output format
- support for tab completion for mi_dg, mi_fifo and mi_xmlrpc

11 years agomi_rpc: support for different "modes"
Andrei Pelinescu-Onciul [Mon, 13 Jul 2009 20:35:34 +0000 (22:35 +0200)]
mi_rpc: support for different "modes"

Added more rpc commands:
mi_fifo - output compatible with the k mi_fifo module, when using
          with sercmd (e.g. sercmd -f "%v" mi_fifo which)
mi_dg - output compatible with the k mi_datagram module, when
         using with sermcd (e.g. sercmd -f "%v" mi_dg which)
mi_xmlrpc - output compatible with the k mi_xmlrpc module
         (should be used with the xmlrpc module)

The "mi" command was changed too: it doesn't output a  leading '+'
anymore on each line and it doesn't print the result code (the
result code is embedded in the rpc reply, there no need to print
it).

11 years agoxmlrpc(s): added rpc client examples
Andrei Pelinescu-Onciul [Mon, 13 Jul 2009 17:04:52 +0000 (19:04 +0200)]
xmlrpc(s): added rpc client examples

Added rpc client examples/test scripts in perl and python. The
python script has 2 versions: one with re-defined transport (that
works properly without expecting the server side to immediately
close the connection after answering) and one using the default
xmlrpclib transport (which requires closing the connection from
the ser xmlrpc route).

11 years agomi_rpc: mi returns always an array
Andrei Pelinescu-Onciul [Mon, 13 Jul 2009 16:03:47 +0000 (18:03 +0200)]
mi_rpc: mi returns always an array

Try returning always an array: it makes no difference for sercmd,
but it helps for xmlrpc.

11 years agoxmlrpc(s): fix '*' rpc_scan handling
Andrei Pelinescu-Onciul [Mon, 13 Jul 2009 16:00:40 +0000 (18:00 +0200)]
xmlrpc(s): fix '*' rpc_scan  handling

The '*' modifier (marking the next parameters as optional) was not
properly handled (the current input parameter was "eaten").

Reported-by: Juha Heinanen jh at tutpro com
11 years agocfg framework: fix the group handles in the main process
Miklos Tirpak [Mon, 13 Jul 2009 15:13:12 +0000 (15:13 +0000)]
cfg framework: fix the group handles in the main process
(backport from GIT)

    The main process does not have a local configuration,
    it has access only to the config values that were set before
    forking. As a result, the group handles cannot ponint to
    the shared memory address because the shared memory block
    may be freed later by one of the child processes. This problem
    resulted sometimes in a core dump after the processes were killed
    when the main process tried to access a variable from shared mem
    which was no longer available.

11 years agocfg framework: readme correction
Miklos Tirpak [Mon, 13 Jul 2009 14:58:22 +0000 (16:58 +0200)]
cfg framework: readme correction

Documentation about how to read "foreign" config values is
corrected.

11 years agocfg framework: fix the group handles in the main process
Miklos Tirpak [Mon, 13 Jul 2009 14:36:36 +0000 (16:36 +0200)]
cfg framework: fix the group handles in the main process

The main process does not have a local configuration,
it has access only to the config values that were set before
forking. As a result, the group handles cannot ponint to
the shared memory address because the shared memory block
may be freed later by one of the child processes. This problem
resulted sometimes in a core dump after the processes were killed
when the main process tried to access a variable from shared mem
which was no longer available.

11 years agocore: deleted test.c.bak
Andrei Pelinescu-Onciul [Mon, 13 Jul 2009 13:29:55 +0000 (15:29 +0200)]
core: deleted test.c.bak

test.c.bak was one of the first files in the ser repository.
test.c was used to test the first version of the sip parser and
test.c.bak made it by mistake into the first cvs repository.

11 years agoseas: use TMCB_DESTROY tm callback
Daniel-Constantin Mierla [Mon, 13 Jul 2009 13:26:30 +0000 (15:26 +0200)]
seas: use TMCB_DESTROY tm callback

11 years agoMakefile: fix module names
darilion [Mon, 13 Jul 2009 11:39:47 +0000 (13:39 +0200)]
Makefile: fix module names

- radius_... --> misc_radius

11 years agodebian: fix rules file
darilion [Mon, 13 Jul 2009 11:36:53 +0000 (13:36 +0200)]
debian: fix rules file
- fix postgress typo
- remove non-existing modules
- fix list of broken modules, and activate it, so that beta-users can make debian packages without errors

11 years agomodules_s/domain: is_local can now be called from BRANCH_ROUTE
Juha Heinanen [Mon, 13 Jul 2009 12:28:59 +0000 (15:28 +0300)]
modules_s/domain: is_local can now be called from BRANCH_ROUTE

- Added BRANCH_ROUTE to list of routes for is_local function after
  no one answered to my question on if it would cause any trouble.

11 years agotm: reason phrase of 100 is corrected in t_suspend()
Miklos Tirpak [Fri, 10 Jul 2009 14:02:14 +0000 (16:02 +0200)]
tm: reason phrase of 100 is corrected in t_suspend()

- t_suspend() now uses the tm_auto_inv_100_r config option to
form the 100 reply message.

11 years agotm: check whether or not 100 response has already been sent
Miklos Tirpak [Fri, 10 Jul 2009 13:58:17 +0000 (15:58 +0200)]
tm: check whether or not 100 response has already been sent

- Do not send the 100 Trying response when it has already been sent
The script writer can do it for example before t_relay().

11 years agosiptrace: removed trailing whitespaces
Daniel-Constantin Mierla [Thu, 9 Jul 2009 22:23:58 +0000 (00:23 +0200)]
siptrace: removed trailing whitespaces

- makes git happy, avoiding warning messages

11 years agosiptrace: module facelift
Daniel-Constantin Mierla [Thu, 9 Jul 2009 22:18:42 +0000 (00:18 +0200)]
siptrace: module facelift

- better structured traced data
- more modularity to avoid duplicity

11 years agotm: enabbled TMCB_ONSEND
Daniel-Constantin Mierla [Thu, 9 Jul 2009 22:17:54 +0000 (00:17 +0200)]
tm: enabbled TMCB_ONSEND

- used by siptrace module

11 years agodebian: various fixes and cleanups
Andrei Pelinescu-Onciul [Thu, 9 Jul 2009 19:51:03 +0000 (21:51 +0200)]
debian: various fixes and cleanups

- fixed duplicate libraries
- fixed wrong config install path
- added a ser-db-modules package containing db dependent modules
- debian rules major cleanup

11 years agomakefile: fix group_include
Andrei Pelinescu-Onciul [Thu, 9 Jul 2009 19:47:26 +0000 (21:47 +0200)]
makefile: fix group_include

fix recently introduced group_include bug

11 years agosiptrace(k): some updates to work with sip-router core
Daniel-Constantin Mierla [Thu, 9 Jul 2009 17:05:16 +0000 (19:05 +0200)]
siptrace(k): some updates to work with sip-router core

- module not completely ready
- prepared to enable sip_trace() in onsend route to be able to store
  stateless forwarded messages

11 years agonat_traversal(k): module compiles with sip-router core
Daniel-Constantin Mierla [Thu, 9 Jul 2009 15:18:13 +0000 (17:18 +0200)]
nat_traversal(k): module compiles with sip-router core

11 years agocore: temporary sip_msg flags reserved for K moved to end of bitmask
Daniel-Constantin Mierla [Thu, 9 Jul 2009 14:47:49 +0000 (16:47 +0200)]
core: temporary sip_msg flags reserved for K moved to end of bitmask

- respective modules updated

11 years agomakefile: dbtext(s) removed from the db group
Andrei Pelinescu-Onciul [Thu, 9 Jul 2009 11:52:53 +0000 (13:52 +0200)]
makefile: dbtext(s) removed from the db group

dbtext(s) is not yet migrated to the current db interfaces.

11 years agocore: backup/restore script flags
Daniel-Constantin Mierla [Thu, 9 Jul 2009 10:35:13 +0000 (12:35 +0200)]
core: backup/restore script flags

- safe usage of script flags in nested top routes

11 years agotable: drop in event_route[htable:mod-init]
Daniel-Constantin Mierla [Thu, 9 Jul 2009 10:30:48 +0000 (12:30 +0200)]
table: drop in event_route[htable:mod-init]

- usage of drop in event_route[htable:mod-init] causes failure of
  child_init(), stopping the start process

11 years agotm: updated execution of event route
Daniel-Constantin Mierla [Thu, 9 Jul 2009 09:56:26 +0000 (11:56 +0200)]
tm: updated execution of event route

- use the new run_top_route() signature

11 years agoMerge branch 'master' of ssh://daniel@git.sip-router.org/sip-router
Daniel-Constantin Mierla [Thu, 9 Jul 2009 09:54:35 +0000 (11:54 +0200)]
Merge branch 'master' of ssh://daniel@git.sip-router.org/sip-router

* 'master' of ssh://daniel@git.sip-router.org/sip-router:
  core: run_top_route() can be give action context
  core: internal difference between cfg drop and exit
  kex: several K core stats implemented in callbacks
  makefile: more modules groups and make modules-all
  prefix_route(s): fix: the lock should be in shm
  prefix_route(s): fix mod_destroy/tree_close()
  debian: updated debian spec for sip-router
  makefile: fix make cfg when the cfg vars are already exported
  core: derive default config name from -DNAME

11 years agocore: run_top_route() can be give action context
Daniel-Constantin Mierla [Thu, 9 Jul 2009 09:23:14 +0000 (11:23 +0200)]
core: run_top_route() can be give action context

- functions calling run_top_route() can get access to context fields if
  they need
- modules updated to new function signature

11 years agocore: internal difference between cfg drop and exit
Daniel-Constantin Mierla [Wed, 8 Jul 2009 21:24:52 +0000 (23:24 +0200)]
core: internal difference between cfg drop and exit

- drop sets the flag for exit and one extra: EXIT_R_F and DROP_R_F
- no difference in processing right now (DROP_R_F not tested anywhere
  yet)

11 years agokex: several K core stats implemented in callbacks
Daniel-Constantin Mierla [Wed, 8 Jul 2009 20:55:14 +0000 (22:55 +0200)]
kex: several K core stats implemented in callbacks

11 years agomakefile: more modules groups and make modules-all
Andrei Pelinescu-Onciul [Wed, 8 Jul 2009 16:41:38 +0000 (18:41 +0200)]
makefile: more modules groups and make modules-all

- added more module groups (db, mysql_driver, postgres_driver)
- cleaned up module groups usage (replaced a lot of ifs with a
  foreach)
- modules-all is now a synonym for every-module

11 years agoprefix_route(s): fix: the lock should be in shm
Andrei Pelinescu-Onciul [Wed, 8 Jul 2009 16:03:40 +0000 (18:03 +0200)]
prefix_route(s): fix: the lock should be in shm

The shared_tree_lock was not in shared memory.