sip-router
10 years agoMerge remote branch 'origin/sr_3.0'
Andrei Pelinescu-Onciul [Wed, 28 Oct 2009 15:41:39 +0000 (16:41 +0100)]
Merge remote branch 'origin/sr_3.0'

* origin/sr_3.0:
  htable(k): fix non-init act. ctx in event route execution
  tm: fix/support changing r-uris and path in branch routes
  tm: support for changing dst_uri in branch routes
  registrar: Fix handling of cases where contacts > max_contacts
  domain: Do not report errors when domain cannot be extracted from URI.
  parse_sip_msg_uri: Log broken URIs only when debugging is enabled.
  modules/lcr: documentation improvement
  sctp: count rejects sent to the remote peer (stats)
  avp_db: Removes a spurious error message.
  ctl: missing ifdef (minor)
  event parser: Add missing string boundary checks to event_parser func.
  tm: Number of fixes in code and documentation for serial forking.
  Implements function reset_path_vector.

10 years agohtable(k): fix non-init act. ctx in event route execution
Andrei Pelinescu-Onciul [Wed, 28 Oct 2009 15:11:22 +0000 (16:11 +0100)]
htable(k): fix non-init act. ctx in event route execution

- the event route was executed with an uninitialized run_act_ctx.

10 years agotm: fix/support changing r-uris and path in branch routes
Andrei Pelinescu-Onciul [Wed, 28 Oct 2009 14:50:45 +0000 (15:50 +0100)]
tm: fix/support changing r-uris and path in branch routes

- changing the r-uri in a branch route is now safe and the change
  will propagate to branches created due to dns failover.
- changing path in a branch route is now allowed and it will
  propagate to possible dns failover branches.
- optimize the no branch route & no callback case.
- build the branch buffer directly into shm mem.
- s/prepare_uac_request/prepare_new_uac/
- prepare_new_uac() takes care now also of setting the branch
  retr. buffer, uri and path (functionality moved from add_uac())

10 years agotm: support for changing dst_uri in branch routes
Andrei Pelinescu-Onciul [Wed, 28 Oct 2009 07:36:47 +0000 (08:36 +0100)]
tm: support for changing dst_uri in branch routes

- dst_uri can now be changed in branch routes, if the branch
  route is not called during dns failover (which never happens,
  but might be enabled in the future).
- dst_uri can now be checked in branch routes. The
  dst_uri on branch route entry will be the branch next hop
  (initial next hop and not the dns resolved one) if a
  t_relay() based on uri was used, or empty if a destination was
  forced (e.g. t_relay_to_udp(127.0.0.1, 9)).
- s/print_uac_request/prepare_uac_request to better reflect what
  is actually doing
- prepare_uac_request() will now perform the DNS lookups and directly
  update the branch dst inside the transaction.
- add_uac() must now be called with a special flag during DNS
  failover (UAC_DNS_FAILOVER).

10 years agotest 5 work
Marius Zbihlei [Tue, 27 Oct 2009 11:35:01 +0000 (13:35 +0200)]
test 5 work

10 years ago43.sh test changes ... Still some problems
Marius Zbihlei [Tue, 27 Oct 2009 11:27:37 +0000 (13:27 +0200)]
43.sh test changes ... Still some problems

10 years agoRewritten this small helper function
Marius Zbihlei [Tue, 27 Oct 2009 11:26:55 +0000 (13:26 +0200)]
Rewritten this small helper function

10 years agoregistrar: Fix handling of cases where contacts > max_contacts
Jan Janak [Mon, 26 Oct 2009 15:25:02 +0000 (16:25 +0100)]
registrar: Fix handling of cases where contacts > max_contacts

Registrar should not report an error to syslog if a user exceeds the
maximum number of allowed contacts per user. The registrar module sends
a reply back with a description of what happened so there is no reason
to write this to syslog, max_contacts > 0 is a configuration choice
rather than an error.

This patch also changes all affected functions in registrar module to
indicate that the maximum number of allowed contacts was exceeded by
returning a positive number, instead of a negative number to indicate
that an error occurred.

10 years agoregistrar: Fix handling of cases where contacts > max_contacts
Jan Janak [Mon, 26 Oct 2009 15:25:02 +0000 (16:25 +0100)]
registrar: Fix handling of cases where contacts > max_contacts

Registrar should not report an error to syslog if a user exceeds the
maximum number of allowed contacts per user. The registrar module sends
a reply back with a description of what happened so there is no reason
to write this to syslog, max_contacts > 0 is a configuration choice
rather than an error.

This patch also changes all affected functions in registrar module to
indicate that the maximum number of allowed contacts was exceeded by
returning a positive number, instead of a negative number to indicate
that an error occurred.

10 years agoWhen string was in the form of 0=on\n\0 this function caused a segmentation fault...
Marius Zbihlei [Mon, 26 Oct 2009 15:16:37 +0000 (17:16 +0200)]
When string was in the form of 0=on\n\0 this function caused a segmentation fault(canaries where overwritten).

10 years agodomain: Do not report errors when domain cannot be extracted from URI.
Jan Janak [Mon, 26 Oct 2009 13:37:22 +0000 (14:37 +0100)]
domain: Do not report errors when domain cannot be extracted from URI.

We should not report an error to syslog when lookup_domain fails to
parse the URI it was given as argument. That URI usually comes from
SIP messages we received from another implementation and we cannot
guarantee that they will always be well-formed. Generating an error
each time we receive a malformed SIP message can easily result in
denial of service.

10 years agodomain: Do not report errors when domain cannot be extracted from URI.
Jan Janak [Mon, 26 Oct 2009 13:37:22 +0000 (14:37 +0100)]
domain: Do not report errors when domain cannot be extracted from URI.

We should not report an error to syslog when lookup_domain fails to
parse the URI it was given as argument. That URI usually comes from
SIP messages we received from another implementation and we cannot
guarantee that they will always be well-formed. Generating an error
each time we receive a malformed SIP message can easily result in
denial of service.

10 years agoparse_sip_msg_uri: Log broken URIs only when debugging is enabled.
Jan Janak [Mon, 26 Oct 2009 13:15:53 +0000 (14:15 +0100)]
parse_sip_msg_uri: Log broken URIs only when debugging is enabled.

Logging broken Request-URIs with LOG(L_ERR) generates too much traffic
in syslog by default. Broken Request-URIs are beyond our control and
we should not generate an error message each time we receive and parse
one. We log them only when debugging is enabled.

10 years agoparse_sip_msg_uri: Log broken URIs only when debugging is enabled.
Jan Janak [Mon, 26 Oct 2009 13:15:53 +0000 (14:15 +0100)]
parse_sip_msg_uri: Log broken URIs only when debugging is enabled.

Logging broken Request-URIs with LOG(L_ERR) generates too much traffic
in syslog by default. Broken Request-URIs are beyond our control and
we should not generate an error message each time we receive and parse
one. We log them only when debugging is enabled.

10 years agoFixed 42.sh
Marius Zbihlei [Mon, 26 Oct 2009 13:07:30 +0000 (15:07 +0200)]
Fixed 42.sh

10 years agoFixed 41.sh test
Marius Zbihlei [Mon, 26 Oct 2009 12:25:29 +0000 (14:25 +0200)]
Fixed 41.sh test

10 years agoRemoved unused var (added last commit)
Marius Zbihlei [Mon, 26 Oct 2009 12:23:25 +0000 (14:23 +0200)]
Removed unused var (added last commit)

10 years agoFixed avpops avp_db_store as before no state was used and it caused to loop endessly.
Marius Zbihlei [Mon, 26 Oct 2009 11:37:43 +0000 (13:37 +0200)]
Fixed avpops avp_db_store as before no state was used and it caused to loop endessly.

10 years agoLast doxygen updates of today.
oej [Sun, 25 Oct 2009 20:30:00 +0000 (21:30 +0100)]
Last doxygen updates of today.

10 years agoUpdates (doxygen documentation) to message waiting indication module
oej [Sun, 25 Oct 2009 20:03:57 +0000 (21:03 +0100)]
Updates (doxygen documentation) to message waiting indication module

10 years agoUpdates to the pua-usrloc documentation
oej [Sun, 25 Oct 2009 19:57:27 +0000 (20:57 +0100)]
Updates to the pua-usrloc documentation

10 years agoDocumentation and doxygen updates
oej [Sun, 25 Oct 2009 19:49:25 +0000 (20:49 +0100)]
Documentation and doxygen updates

10 years agoDoxygen updates
oej [Sun, 25 Oct 2009 19:11:28 +0000 (20:11 +0100)]
Doxygen updates

10 years agoFix bad doxygen formatting of groups
oej [Sun, 25 Oct 2009 18:31:44 +0000 (19:31 +0100)]
Fix bad doxygen formatting of groups

10 years agoDoxygen changes
oej [Sun, 25 Oct 2009 18:30:31 +0000 (19:30 +0100)]
Doxygen changes

10 years agoMore parser/ doxygen changes
oej [Sun, 25 Oct 2009 17:26:46 +0000 (18:26 +0100)]
More parser/ doxygen changes

10 years agoDoxygen for the parser directory
oej [Sun, 25 Oct 2009 15:58:41 +0000 (16:58 +0100)]
Doxygen for the parser directory

There's still a lot of files untouched. Feel free to jump in and help!

10 years agoAdding README that needs some information.
oej [Sun, 25 Oct 2009 14:53:07 +0000 (15:53 +0100)]
Adding README that needs some information.

Which of the files in utils/ are old stuff, or should be deprecated, renamed or ....

Add to the README-UTILS

10 years agoObsoleting the unixsock module
oej [Sun, 25 Oct 2009 14:30:56 +0000 (15:30 +0100)]
Obsoleting the unixsock module

10 years agoAdding notes to mark "fifo" as obsolete.
oej [Sun, 25 Oct 2009 14:27:30 +0000 (15:27 +0100)]
Adding notes to mark "fifo" as obsolete.

As noted by Jan Janak on SR-DEV 2009-10-23

10 years agoUpdating the MODULES list based on feedback from Klaus
oej [Sun, 25 Oct 2009 14:22:27 +0000 (15:22 +0100)]
Updating the MODULES list based on feedback from Klaus

10 years agoAdding note about the domainpolicy module being obsolete
oej [Sun, 25 Oct 2009 14:15:18 +0000 (15:15 +0100)]
Adding note about the domainpolicy module being obsolete

According to mail by Klaus Darillion to the sr-dev mailing list 2009-10-23

10 years agoMaking a note that the modules_s/tls module is replaced by modules/tls.
oej [Sun, 25 Oct 2009 14:10:36 +0000 (15:10 +0100)]
Making a note that the modules_s/tls module is replaced by modules/tls.

(As noted by Jan Janak on the sr-dev mailing list 2009-10-23)

10 years agomodules/lcr: documentation improvement
Juha Heinanen [Fri, 23 Oct 2009 16:45:54 +0000 (19:45 +0300)]
modules/lcr: documentation improvement

- Added note to README about maximum number of gateways.

10 years agodb scheme(k): update schemes after version increment in trusted table from Juha
Henning Westerholt [Fri, 23 Oct 2009 16:23:38 +0000 (18:23 +0200)]
db scheme(k): update schemes after version increment in trusted table from Juha

10 years agocore: Correct an error in doxygen comments.
Jan Janak [Fri, 23 Oct 2009 15:31:50 +0000 (17:31 +0200)]
core: Correct an error in doxygen comments.

One of previous commits added an extra comment-closing sequence
which caused a compilation error. This patch fixes that.

10 years agoFixed test 40.sh
Marius Zbihlei [Fri, 23 Oct 2009 14:57:32 +0000 (17:57 +0300)]
Fixed test 40.sh

10 years agoFixed test 36.sh
Marius Zbihlei [Fri, 23 Oct 2009 14:31:18 +0000 (17:31 +0300)]
Fixed test 36.sh
Grepped into location after specific string (___test___)
Better formating

10 years agoFixed 11.sh test
Marius Zbihlei [Fri, 23 Oct 2009 13:36:36 +0000 (16:36 +0300)]
Fixed 11.sh test

10 years agoUpdating SER to SIP-router, spelling fixes
oej [Thu, 22 Oct 2009 20:15:28 +0000 (22:15 +0200)]
Updating SER to SIP-router, spelling fixes

10 years agoUpdating this list - please review, comment and help me update it.
oej [Thu, 22 Oct 2009 20:04:06 +0000 (22:04 +0200)]
Updating this list - please review, comment and help me update it.

10 years agoDocumentation updates
oej [Thu, 22 Oct 2009 19:11:09 +0000 (21:11 +0200)]
Documentation updates

These documentation files contains a lot of promises about future
development. I think that belongs to todo's, maybe not to the documentation.

10 years agoUpdates to presence documentation
oej [Thu, 22 Oct 2009 18:44:46 +0000 (20:44 +0200)]
Updates to presence documentation

10 years agoDoxygen updates
oej [Thu, 22 Oct 2009 17:59:29 +0000 (19:59 +0200)]
Doxygen updates

10 years agoDoxygen updates on timer modules
oej [Thu, 22 Oct 2009 17:56:48 +0000 (19:56 +0200)]
Doxygen updates on timer modules

- changing from \ and ! to javadoc format
- adding new  doxygen file headers

10 years agoAdding record for 'gattr_timestamp' attribute into attr_types table.
Karel Kozlik [Thu, 22 Oct 2009 15:09:58 +0000 (17:09 +0200)]
Adding record for 'gattr_timestamp' attribute into attr_types table.

10 years agoFixed test 34
Marius Zbihlei [Thu, 22 Oct 2009 13:33:29 +0000 (16:33 +0300)]
Fixed test 34

10 years agoDeclared pua_send_publish ,as it was only defined (extern)
Marius Zbihlei [Thu, 22 Oct 2009 13:32:43 +0000 (16:32 +0300)]
Declared pua_send_publish ,as it was only defined (extern)

10 years agoFixed tm_load import (It would be advisable to use tm_load_api instead )
Marius Zbihlei [Thu, 22 Oct 2009 13:31:35 +0000 (16:31 +0300)]
Fixed tm_load import (It would be advisable to use tm_load_api instead )

10 years agoFixed include guard
Marius Zbihlei [Thu, 22 Oct 2009 13:14:06 +0000 (16:14 +0300)]
Fixed include guard
Defined pua_send_* symbols as they where not defined when module was loaded

10 years agoAdded kmi module to linkage (because of ../../modules_k/xcap_client/xcap_client...
Marius Zbihlei [Thu, 22 Oct 2009 12:20:46 +0000 (15:20 +0300)]
Added kmi module to linkage (because of  ../../modules_k/xcap_client/xcap_client.so: undefined symbol: register_mi_mod  )

10 years agoFixed test 33
Marius Zbihlei [Thu, 22 Oct 2009 12:13:03 +0000 (15:13 +0300)]
Fixed test 33

10 years agocore: fix commit error introduced in 5a03489e539be9a42994
Henning Westerholt [Wed, 21 Oct 2009 15:06:48 +0000 (17:06 +0200)]
core: fix commit error introduced in 5a03489e539be9a42994

10 years agocr: fix bug in recently introduced nofallback function, also remove wrong check
Henning Westerholt [Wed, 21 Oct 2009 12:16:38 +0000 (14:16 +0200)]
cr: fix bug in recently introduced nofallback function, also remove wrong check

10 years agoFormatting and doxygen documentation updates
oej [Wed, 21 Oct 2009 08:21:47 +0000 (10:21 +0200)]
Formatting and doxygen documentation updates

10 years agosctp: count rejects sent to the remote peer (stats)
Libor Chocholaty [Wed, 21 Oct 2009 08:09:01 +0000 (10:09 +0200)]
sctp: count rejects sent to the remote peer (stats)

It adds into sctp_handle_assoc_change() a call to
SCTP_STATS_LOCAL_REJECT() if the SCTP_ABORT is successfully sent.

Signed-off-by: Andrei Pelinescu-Onciul <andrei@iptel.org>
10 years agoDocumentation updates
oej [Wed, 21 Oct 2009 08:09:03 +0000 (10:09 +0200)]
Documentation updates

- Including locking.txt in doxygen
- Updating other files (ser -> sip-router)

10 years agoIncluding configuration documentation from doc/cfg.txt in doxygen.
oej [Wed, 21 Oct 2009 07:56:25 +0000 (09:56 +0200)]
Including configuration documentation from doc/cfg.txt in doxygen.

Note: This implements a change in the doxygen configuration file that needs to be implementted
      on the web server too.

10 years agoRenaming ser-coding-style.txt to sr-coding-style.txt and adds "SIP-router" in the...
oej [Wed, 21 Oct 2009 07:45:15 +0000 (09:45 +0200)]
Renaming ser-coding-style.txt to sr-coding-style.txt and adds "SIP-router" in the heading

...to make it known that this is not an old expired document...

10 years agodb_flatstore: Rename main docbook file and fix documentation.
Jan Janak [Tue, 20 Oct 2009 22:12:49 +0000 (00:12 +0200)]
db_flatstore: Rename main docbook file and fix documentation.

Rename the main docbook file to db_flatstore.xml to match the
name of the module and the filename in the Makefile.

Also change the docbook document to include required docbook
entities and change the name of the module across the document.

Reported by Olle E. Johansson

10 years agoDoxygen updates (not done with this directory)
oej [Tue, 20 Oct 2009 20:20:22 +0000 (22:20 +0200)]
Doxygen updates (not done with this directory)

10 years agoDocumentation updates
oej [Tue, 20 Oct 2009 20:03:16 +0000 (22:03 +0200)]
Documentation updates

10 years agoDocumentation update
oej [Tue, 20 Oct 2009 19:26:46 +0000 (21:26 +0200)]
Documentation update

10 years agoDocumentation updates
oej [Tue, 20 Oct 2009 19:11:51 +0000 (21:11 +0200)]
Documentation updates

10 years agosr-oob.cfg: Automatic reload of global attributes.
Jan Janak [Tue, 20 Oct 2009 19:45:04 +0000 (21:45 +0200)]
sr-oob.cfg: Automatic reload of global attributes.

This patch creates a new attribute called gattr_timestamp. The
attribute is stored in global_attrs table and contains the timestamp
of the last modification of the contents of the table. It can be
updated by applications like serweb whenever they update any of the
attributes in that table.

In the configuration file sr-oob.cfg we check the value stored in that
attribute and if its value indicates that it has been modified within
last two minutes, the script initiates a reload of the global_attr
memory cache.

The mechanism is the same as for the domain_attrs table reload that
is present in the same route section.

This patch also contains an unrelated small fix that correct the path
to the root directory in lib/srdb2/schema/Makefile. The root path
there was incorrect as result of the merge.

10 years agoExplaining why we have two modules with the same name. Please review.
oej [Tue, 20 Oct 2009 19:04:34 +0000 (21:04 +0200)]
Explaining why we have two modules with the same name. Please review.

10 years agoMerge branch 'master' of ssh://oej@git.sip-router.org/sip-router
oej [Tue, 20 Oct 2009 19:00:03 +0000 (21:00 +0200)]
Merge branch 'master' of ssh://oej@git.sip-router.org/sip-router

* 'master' of ssh://oej@git.sip-router.org/sip-router:
  avp_db: Removes a spurious error message.

10 years ago- Adding another example for db URLs
oej [Tue, 20 Oct 2009 18:58:50 +0000 (20:58 +0200)]
- Adding another example for db URLs
- README doc updates, spelling errors
- Changing serctl fifo command to sercmd rpc command in db_flatstore docs
- doxygen updates

10 years agoavp_db: Removes a spurious error message.
Jan Janak [Mon, 19 Oct 2009 23:20:23 +0000 (01:20 +0200)]
avp_db: Removes a spurious error message.

10 years agoavp_db: Removes a spurious error message.
Jan Janak [Mon, 19 Oct 2009 23:20:23 +0000 (01:20 +0200)]
avp_db: Removes a spurious error message.

10 years agoDoxygen fix for XMPP page
oej [Mon, 19 Oct 2009 20:40:12 +0000 (22:40 +0200)]
Doxygen fix for XMPP page

Starting to pick out documentation hidden deep in the source code and adding them as
"related pages" in the doxygen. Please check.

10 years ago- Doxygen updates on core files
oej [Mon, 19 Oct 2009 20:35:43 +0000 (22:35 +0200)]
- Doxygen updates on core files
- Add project name to doxygen in Makefile

10 years agosr-oob.cfg: Updated for latest sip-router code.
Jan Janak [Mon, 19 Oct 2009 18:19:44 +0000 (20:19 +0200)]
sr-oob.cfg: Updated for latest sip-router code.

Updates the all-inclusiv ser-oob configuration file to work with the
latest sip-router code. Changes include:
  * Load enum module which is used by one of the route sections.
  * Replace expressions like if (@hf.value["contact"]) with
    if (@hf.value["contact"] != "")
  * When testing for an avp value, test that the avp is defined first
    with "defined".

10 years agoctl: missing ifdef (minor)
Andrei Pelinescu-Onciul [Mon, 19 Oct 2009 16:01:51 +0000 (18:01 +0200)]
ctl: missing ifdef (minor)

- missing ifdef USE_FIFO prevented compilation without fifo
  support.

10 years agoMerge branch 'master' of ssh://oej@git.sip-router.org/sip-router
oej [Mon, 19 Oct 2009 12:42:44 +0000 (14:42 +0200)]
Merge branch 'master' of ssh://oej@git.sip-router.org/sip-router

* 'master' of ssh://oej@git.sip-router.org/sip-router:
  Fixed carrierroute module exports.
  Test 26.sh (uncomment)
  Fixed userblacklist exported function
  Fixed test 25.
  event parser: Add missing string boundary checks to event_parser func.
  tm: Number of fixes in code and documentation for serial forking.
  Implements function reset_path_vector.

10 years agoFixed carrierroute module exports.
Marius Zbihlei [Mon, 19 Oct 2009 09:46:17 +0000 (12:46 +0300)]
Fixed carrierroute module exports.
See http://lists.sip-router.org/pipermail/sr-dev/2009-October/004393.html thread for a complete description

10 years agoTest 26.sh (uncomment)
Marius Zbihlei [Mon, 19 Oct 2009 09:40:29 +0000 (12:40 +0300)]
Test 26.sh (uncomment)

10 years agoFixed userblacklist exported function
Marius Zbihlei [Mon, 19 Oct 2009 08:27:25 +0000 (11:27 +0300)]
Fixed userblacklist exported function
See http://lists.sip-router.org/pipermail/sr-dev/2009-October/004393.html thread for a complete description

10 years agoFixed test 25.
Marius Zbihlei [Mon, 19 Oct 2009 08:18:39 +0000 (11:18 +0300)]
Fixed test 25.

10 years agoMassively changing "Kamailio" to &kamailio;
oej [Sun, 18 Oct 2009 23:34:00 +0000 (01:34 +0200)]
Massively changing "Kamailio" to &kamailio;

10 years agoChanging "kamailio.cfg" to &kamailioconfig;
oej [Sun, 18 Oct 2009 22:43:17 +0000 (00:43 +0200)]
Changing "kamailio.cfg" to &kamailioconfig;

10 years agoChanging product name
oej [Sun, 18 Oct 2009 22:41:13 +0000 (00:41 +0200)]
Changing product name

10 years agoFixing documentation
oej [Sun, 18 Oct 2009 22:39:51 +0000 (00:39 +0200)]
Fixing documentation

10 years agoDoxygen fix
oej [Sun, 18 Oct 2009 22:19:56 +0000 (00:19 +0200)]
Doxygen fix

10 years agoDoxygen updates
oej [Sun, 18 Oct 2009 22:15:27 +0000 (00:15 +0200)]
Doxygen updates

10 years ago- Doxygen updates
oej [Sun, 18 Oct 2009 20:49:36 +0000 (22:49 +0200)]
- Doxygen updates
- Replace Kamailio with "&kamailio;" in xml files
- Update README's because of this

10 years agoTypo fix in doxygen
oej [Sun, 18 Oct 2009 20:41:15 +0000 (22:41 +0200)]
Typo fix in doxygen

10 years agoDoxygen updates
oej [Sun, 18 Oct 2009 20:40:35 +0000 (22:40 +0200)]
Doxygen updates

10 years agoDoxygen updates
oej [Sun, 18 Oct 2009 20:28:11 +0000 (22:28 +0200)]
Doxygen updates

10 years ago- Documentation updates
oej [Sun, 18 Oct 2009 20:19:34 +0000 (22:19 +0200)]
- Documentation updates
- Doxygen for lcr

10 years agoevent parser: Add missing string boundary checks to event_parser func.
Jan Janak [Sun, 18 Oct 2009 18:49:39 +0000 (20:49 +0200)]
event parser: Add missing string boundary checks to event_parser func.

The function event_parser needs to check that there is still some text
left in the input string before it attempts to read the text.

In addition to that the function also needs to skip any possible
leading whitespace before it calls parse_params, because parse_params
expects that there is no leading whitespace at the beginning of the
input string.

Reported by Juha Heinanen

10 years agoevent parser: Add missing string boundary checks to event_parser func.
Jan Janak [Sun, 18 Oct 2009 18:49:39 +0000 (20:49 +0200)]
event parser: Add missing string boundary checks to event_parser func.

The function event_parser needs to check that there is still some text
left in the input string before it attempts to read the text.

In addition to that the function also needs to skip any possible
leading whitespace before it calls parse_params, because parse_params
expects that there is no leading whitespace at the beginning of the
input string.

Reported by Juha Heinanen

10 years agotm: Number of fixes in code and documentation for serial forking.
Jan Janak [Sat, 17 Oct 2009 22:39:31 +0000 (00:39 +0200)]
tm: Number of fixes in code and documentation for serial forking.

This patch improves the serial forking related code and documentation.
The original code suffers from shortcommits, some of which were result
of the migration to the new core.

The function that decodes destination sets encoded in AVPs has been
improved, because the original version did not handle properly strings
with missing elements. In such case the original implementation was
likely to overwrite memory, because it did not check the return value
of strchr properly. The new implementation tries to handle this
situation. It continues parsing as long as it can, it only requires
that the request-uri string is present, all other fields are made
optional and their variables are properly initialized if their values
cannot be found in the AVP.

There was a bug in the implementation of fr_inv_timer_next modparam in
the original version, changes to the parameter value were ignored by
the serial forking code. This was reported by Andrei and is now fixed
by this commit. The parameter fr_inv_timer_next can now be configured
at runtime with the configuration framework. Its value is in
milliseconds and unlike fr_inv_timer, this timer cannot be configured
separately for individual branches.

Obsolete definition of INV_FR_TIME_OUT_FIRST has been removed. That
macro is not used anywhere in the code, thus it is not needed.

There were several places where LM_DBG printed a string and relied on
the string being zero terminated, this may or may not be true in the
future and this patch uses the macro STR_FMT where appropriate, which
is safer.

Function t_next_contacts now checks if the function decode_branch_info
really returned values for the dst_uri and the path vector. If not then
it calls reset_dst_uri and reset_path_vector. Previous version of the
code crashed sip-router, this is likely due to the merge and updates in
the sip-router core.

We now use t_set_fr in t_next_contacts for setting the fr_inv_timer
value to fr_inv_timer_next. This is much more efficient than creating
AVPs with new timer values. Also the new value of the timer is now
taken from a variable in the configuration framework, instead of just a
regular global variable configured through modparam. This way we can
adjust the value of the timer on the fly. Configuring it through
modparam is, of course, possible too.

The value of of fr_inv_timer_next is now in milliseconds, instead of
seconds. That's the only possibly incompatible change. However, this is
consistent with all other timers in tm module, it is more efficient and
it offers better granularity.

A missing call to destroy_avp has been added to t_next_contacts, in the
code which is executed when no transaction exists. There, the avp
should also be destroyed if all values have been exhausted and none of
them had Q_FLAG set. This is a corner case which should not happen
under normal circumstances, because that situation only happens if all
branches have the same q value. Such AVP would not have been created by
t_load_contacts and therefore t_next_contacts should not be called, but
this bug may be triggered if someone uses t_next_contacts in an
unexpected way and it is probably better to have it fixed.

Also the code which restores the value of fr_inv_timer at the end of
t_next_contacts did not work properly. This patch fixes that. It first
tries to retrieve a value configured with t_set_fr, but that is not
guaranteed to succeed. After that it also tries the timer AVP and
finally the configuration framework. The configuration framework always
yields a value, so we can always restore the timer value, but we may
fail to restore individual transaction timer values set by t_set_fr. If
that fails then the global value from the configuration framework is
used. This is documented as a shortcomming in the README and in the
code.

In addition to code changes this patch also expands documentation on
functions t_load_contacts and t_next_contacts, describing their
operation in more detail. Also the format of the contacts AVP is now
documented.

Finally, there is a whole new section in the README which describes
how serial/parallel forking can be achieved with t_load_contacts and
t_next_contacts and provides a number of examples.

10 years agoImplements function reset_path_vector.
Jan Janak [Sat, 17 Oct 2009 17:36:20 +0000 (19:36 +0200)]
Implements function reset_path_vector.

This function can be used to reset the path_vec variable that stores
the path vector for a SIP message. It can be used just like
reset_dst_uri.

10 years agotm: Number of fixes in code and documentation for serial forking.
Jan Janak [Sat, 17 Oct 2009 22:39:31 +0000 (00:39 +0200)]
tm: Number of fixes in code and documentation for serial forking.

This patch improves the serial forking related code and documentation.
The original code suffers from shortcommits, some of which were result
of the migration to the new core.

The function that decodes destination sets encoded in AVPs has been
improved, because the original version did not handle properly strings
with missing elements. In such case the original implementation was
likely to overwrite memory, because it did not check the return value
of strchr properly. The new implementation tries to handle this
situation. It continues parsing as long as it can, it only requires
that the request-uri string is present, all other fields are made
optional and their variables are properly initialized if their values
cannot be found in the AVP.

There was a bug in the implementation of fr_inv_timer_next modparam in
the original version, changes to the parameter value were ignored by
the serial forking code. This was reported by Andrei and is now fixed
by this commit. The parameter fr_inv_timer_next can now be configured
at runtime with the configuration framework. Its value is in
milliseconds and unlike fr_inv_timer, this timer cannot be configured
separately for individual branches.

Obsolete definition of INV_FR_TIME_OUT_FIRST has been removed. That
macro is not used anywhere in the code, thus it is not needed.

There were several places where LM_DBG printed a string and relied on
the string being zero terminated, this may or may not be true in the
future and this patch uses the macro STR_FMT where appropriate, which
is safer.

Function t_next_contacts now checks if the function decode_branch_info
really returned values for the dst_uri and the path vector. If not then
it calls reset_dst_uri and reset_path_vector. Previous version of the
code crashed sip-router, this is likely due to the merge and updates in
the sip-router core.

We now use t_set_fr in t_next_contacts for setting the fr_inv_timer
value to fr_inv_timer_next. This is much more efficient than creating
AVPs with new timer values. Also the new value of the timer is now
taken from a variable in the configuration framework, instead of just a
regular global variable configured through modparam. This way we can
adjust the value of the timer on the fly. Configuring it through
modparam is, of course, possible too.

The value of of fr_inv_timer_next is now in milliseconds, instead of
seconds. That's the only possibly incompatible change. However, this is
consistent with all other timers in tm module, it is more efficient and
it offers better granularity.

A missing call to destroy_avp has been added to t_next_contacts, in the
code which is executed when no transaction exists. There, the avp
should also be destroyed if all values have been exhausted and none of
them had Q_FLAG set. This is a corner case which should not happen
under normal circumstances, because that situation only happens if all
branches have the same q value. Such AVP would not have been created by
t_load_contacts and therefore t_next_contacts should not be called, but
this bug may be triggered if someone uses t_next_contacts in an
unexpected way and it is probably better to have it fixed.

Also the code which restores the value of fr_inv_timer at the end of
t_next_contacts did not work properly. This patch fixes that. It first
tries to retrieve a value configured with t_set_fr, but that is not
guaranteed to succeed. After that it also tries the timer AVP and
finally the configuration framework. The configuration framework always
yields a value, so we can always restore the timer value, but we may
fail to restore individual transaction timer values set by t_set_fr. If
that fails then the global value from the configuration framework is
used. This is documented as a shortcomming in the README and in the
code.

In addition to code changes this patch also expands documentation on
functions t_load_contacts and t_next_contacts, describing their
operation in more detail. Also the format of the contacts AVP is now
documented.

Finally, there is a whole new section in the README which describes
how serial/parallel forking can be achieved with t_load_contacts and
t_next_contacts and provides a number of examples.

10 years agoImplements function reset_path_vector.
Jan Janak [Sat, 17 Oct 2009 17:36:20 +0000 (19:36 +0200)]
Implements function reset_path_vector.

This function can be used to reset the path_vec variable that stores
the path vector for a SIP message. It can be used just like
reset_dst_uri.

10 years ago- Reinstating empty README files made by mistake
oej [Sat, 17 Oct 2009 15:25:04 +0000 (17:25 +0200)]
- Reinstating empty README files made by mistake
- Updating XML docs for CTL module (please review)
- Adding two new entities to our master catalog

And yes, changing catalog.xml will create a commit...

10 years agotwo debian packaging changes to fix package building
Henning Westerholt [Fri, 16 Oct 2009 15:20:31 +0000 (17:20 +0200)]
two debian packaging changes to fix package building

- add missing libpcre3-dev package for lcr module
- comment not working sed replacement out for now, was this script moved?

10 years agomi_rpc: Revert Changing mi_rpc licence
Andrei Pelinescu-Onciul [Thu, 15 Oct 2009 18:06:29 +0000 (20:06 +0200)]
mi_rpc: Revert Changing mi_rpc licence

Revert commit cbfe9a14fdb05e8212ba4a0b24472f5239850a77
 (changing mi_rpc_mod.c licence), at Daniel's request.

10 years agoMerge remote branch 'origin/sr_3.0'
Andrei Pelinescu-Onciul [Thu, 15 Oct 2009 18:01:11 +0000 (20:01 +0200)]
Merge remote branch 'origin/sr_3.0'

Weekly update with the latest sr_3.0 fixes.

* origin/sr_3.0:
  core: fix fixup_spve_* reuse after free
  Remove obsolete gen_ha1.
  modules_k/permissions: Increased version number of 'trusted' table
  lib/srdb1/schema/trusted.xml: forgot to increase version number
  lib/srdb1/schema/trusted.xml: increased tag length from 32 to 64 chars
  makefile: support self-installing utils, extra cfgs a.s.o.
  core: fix memleak in fixup_free*
  core: fix cfg_update() on config error 2nd try
  userblacklist(k): gcc 2.95 compile fixes
  statistics(k): minor warning in printf fmt
  siputils(k): gcc 2.95 compile fixes
  registrar(k): gcc 2.95 compile fixes
  pua_mi: gcc 2.95 compile fixes
  cfgutils(k): gcc 2.95 compile fixes
  lcr: compile & warning fixes for gcc 2.95
  db_postgres: compile fixes for gcc 2.95
  db_mysql: compile fix for gcc 2.95
  compile: don't warn on old gcc versions
  utils/sercmd: Fixed include paths also in sr_3.0 branch.

Conflicts:
Makefile