[Pkg-voip-commits] [kamailio] 01/04: add upstream fixes from 4.3 branch (Closes: #804422 #804276)
Victor Seva Lopez
maniac-guest at moszumanska.debian.org
Tue Nov 10 13:52:53 UTC 2015
This is an automated email from the git hooks/post-receive script.
maniac-guest pushed a commit to branch master
in repository kamailio.
commit dd21fe357a9b816c6ecc3674444a16f73a7eaeb7
Author: Victor Seva <linuxmaniac at torreviejawireless.org>
Date: Mon Nov 9 10:27:29 2015 +0100
add upstream fixes from 4.3 branch (Closes: #804422 #804276)
---
debian/patches/series | 23 ++
...ls-hooks-to-0-avoiding-fields-enumeration.patch | 29 +++
...d-number-of-columns-when-loading-urecord-.patch | 38 +++
...fixed-handling-of-dmq_ul.get_urecord_by_r.patch | 38 +++
.../upstream/0010-dialog-Sanity-checks.patch | 50 ++++
.../patches/upstream/0011-uac-Sanity-checks.patch | 43 ++++
...se-advertised-address-if-send-socket-has-.patch | 59 +++++
...to-add-text-in-Reason-header-for-local-ge.patch | 65 +++++
...sence-use-advertised-ip-for-local-contact.patch | 43 ++++
...auth-Minor-update-to-docs-spelling-errors.patch | 282 +++++++++++++++++++++
...mmary-taken-in-consideration-for-runtime-.patch | 36 +++
...al-Add-comment-about-lacking-IPv6-support.patch | 121 +++++++++
...-some-minor-typos-in-debug-error-messages.patch | 50 ++++
...0019-corex-detect-ipv6-for-send-functions.patch | 37 +++
...-don-t-free-pg-query-structure-in-store-r.patch | 28 ++
...-safety-check-to-see-if-hasing-is-over-no.patch | 37 +++
...xed-passed-buffer-size-in-suip2a-for-ipv6.patch | 39 +++
...aces-around-initializer-of-cancel-reason-.patch | 30 +++
...ed-default-buffers-size-for-rpc-responses.patch | 99 ++++++++
...ivert-stderr-when-searching-for-greadlink.patch | 32 +++
...core-parser-remove-inline-for-parse_param.patch | 43 ++++
...onsider-IPv6-brackets-when-checking-size-.patch | 36 +++
...src-and-dst-addresses-in-tcp-error-log-me.patch | 155 +++++++++++
...029-tls-check-for-support-of-SSLv3-method.patch | 32 +++
...fs-removed-option-minline-all-stringops-f.patch | 38 +++
25 files changed, 1483 insertions(+)
diff --git a/debian/patches/series b/debian/patches/series
index 8e467d2..93e372f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -4,6 +4,29 @@ upstream/0003-tm-fake-msg-and-environment-to-append-new-branches.patch
upstream/0004-tsilo-unref-the-transaction-after-appending-new-bran.patch
upstream/0005-textops-fix-leak-when-subst_hf-with-flag-f-is-used.patch
upstream/0006-uac-uac.reg_dump-returns-an-array-rpc-result.patch
+upstream/0008-usrloc-fixed-number-of-columns-when-loading-urecord-.patch
+upstream/0009-dmq_usrloc-fixed-handling-of-dmq_ul.get_urecord_by_r.patch
+upstream/0010-dialog-Sanity-checks.patch
+upstream/0011-uac-Sanity-checks.patch
+upstream/0012-nathelper-use-advertised-address-if-send-socket-has-.patch
+upstream/0013-tm-support-to-add-text-in-Reason-header-for-local-ge.patch
+upstream/0014-presence-use-advertised-ip-for-local-contact.patch
+upstream/0015-auth-Minor-update-to-docs-spelling-errors.patch
+upstream/0016-core-mem_summary-taken-in-consideration-for-runtime-.patch
+upstream/0017-nat_traversal-Add-comment-about-lacking-IPv6-support.patch
+upstream/0018-evapi-fix-some-minor-typos-in-debug-error-messages.patch
+upstream/0019-corex-detect-ipv6-for-send-functions.patch
+upstream/0020-db_postgres-don-t-free-pg-query-structure-in-store-r.patch
+upstream/0021-db_postgres-safety-check-to-see-if-hasing-is-over-no.patch
+upstream/0022-core-fixed-passed-buffer-size-in-suip2a-for-ipv6.patch
+upstream/0023-tm-added-braces-around-initializer-of-cancel-reason-.patch
+upstream/0024-ctl-increased-default-buffers-size-for-rpc-responses.patch
+upstream/0025-kamdbctl-divert-stderr-when-searching-for-greadlink.patch
+upstream/0026-core-parser-remove-inline-for-parse_param.patch
+upstream/0027-nathelper-consider-IPv6-brackets-when-checking-size-.patch
+upstream/0028-core-print-src-and-dst-addresses-in-tcp-error-log-me.patch
+upstream/0029-tls-check-for-support-of-SSLv3-method.patch
+upstream/0030-Makefile.defs-removed-option-minline-all-stringops-f.patch
no_lib64_on_64_bits.patch
no_INSTALL_file.patch
fix_export.patch
diff --git a/debian/patches/upstream/0007-tls-init-tls-hooks-to-0-avoiding-fields-enumeration.patch b/debian/patches/upstream/0007-tls-init-tls-hooks-to-0-avoiding-fields-enumeration.patch
new file mode 100644
index 0000000..01e959f
--- /dev/null
+++ b/debian/patches/upstream/0007-tls-init-tls-hooks-to-0-avoiding-fields-enumeration.patch
@@ -0,0 +1,29 @@
+From f699719fed8b1fffc653c272c01941730dab6d3e Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Tue, 20 Oct 2015 19:44:47 +0200
+Subject: [PATCH] tls: init tls hooks to {0}, avoiding fields enumeration
+
+- if a new field is added, then should be no longer needed to update
+ initialization
+
+(cherry picked from commit 92c7656a37549de0eed3621ec243022400f6c6c4)
+---
+ tls_hooks.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tls_hooks.c b/tls_hooks.c
+index 92e709f..b46a429 100644
+--- a/tls_hooks.c
++++ b/tls_hooks.c
+@@ -28,7 +28,7 @@
+
+ #ifdef TLS_HOOKS
+
+-struct tls_hooks tls_hook= {0,0,0,0,0,0,0,0};
++struct tls_hooks tls_hook= {0};
+
+ static int tls_hooks_loaded=0;
+
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0008-usrloc-fixed-number-of-columns-when-loading-urecord-.patch b/debian/patches/upstream/0008-usrloc-fixed-number-of-columns-when-loading-urecord-.patch
new file mode 100644
index 0000000..67746a4
--- /dev/null
+++ b/debian/patches/upstream/0008-usrloc-fixed-number-of-columns-when-loading-urecord-.patch
@@ -0,0 +1,38 @@
+From 60985a13878b9ec3b84b565c02be14927ba6357a Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Fri, 23 Oct 2015 14:15:54 +0200
+Subject: [PATCH] usrloc: fixed number of columns when loading urecord in db
+ mode 3
+
+- reported by GH#373
+
+(cherry picked from commit 922e5818b02b6d5e1f082e861f97bc8868f5ae57)
+---
+ modules/usrloc/udomain.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/usrloc/udomain.c b/modules/usrloc/udomain.c
+index 2bb1707..63db924 100644
+--- a/modules/usrloc/udomain.c
++++ b/modules/usrloc/udomain.c
+@@ -609,7 +609,7 @@ urecord_t* db_load_urecord(db1_con_t* _c, udomain_t* _d, str *_aor)
+ return 0;
+ }
+
+- if (ul_dbf.query(_c, keys, 0, vals, columns, (use_domain)?2:1, 16, order,
++ if (ul_dbf.query(_c, keys, 0, vals, columns, (use_domain)?2:1, 19, order,
+ &res) < 0) {
+ LM_ERR("db_query failed\n");
+ return 0;
+@@ -793,7 +793,7 @@ urecord_t* db_load_urecord_by_ruid(db1_con_t* _c, udomain_t* _d, str *_ruid)
+ return 0;
+ }
+
+- if (ul_dbf.query(_c, keys, 0, vals, columns, 1, 18, order,
++ if (ul_dbf.query(_c, keys, 0, vals, columns, 1, 21, order,
+ &res) < 0) {
+ LM_ERR("db_query failed\n");
+ return 0;
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0009-dmq_usrloc-fixed-handling-of-dmq_ul.get_urecord_by_r.patch b/debian/patches/upstream/0009-dmq_usrloc-fixed-handling-of-dmq_ul.get_urecord_by_r.patch
new file mode 100644
index 0000000..19c5bf8
--- /dev/null
+++ b/debian/patches/upstream/0009-dmq_usrloc-fixed-handling-of-dmq_ul.get_urecord_by_r.patch
@@ -0,0 +1,38 @@
+From 801d9cc900a7cdd954733012540299c7ca288007 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Tue, 27 Oct 2015 11:44:06 +0100
+Subject: [PATCH] dmq_usrloc: fixed handling of dmq_ul.get_urecord_by_ruid()
+ response
+
+- manual backport of master branch commits: 13cde2b and eeb3c16 (GH#373)
+---
+ modules/dmq_usrloc/usrloc_sync.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/modules/dmq_usrloc/usrloc_sync.c b/modules/dmq_usrloc/usrloc_sync.c
+index 40e89d3..c3c7e89 100644
+--- a/modules/dmq_usrloc/usrloc_sync.c
++++ b/modules/dmq_usrloc/usrloc_sync.c
+@@ -197,14 +197,14 @@ void usrloc_get_all_ucontact(dmq_node_t* node)
+ memcpy( &aorhash, cp, sizeof(aorhash));
+ cp = (char*)cp + sizeof(aorhash);
+
++ r = 0;
++ ptr = 0;
+ res = dmq_ul.get_urecord_by_ruid(_d, aorhash, &ruid, &r, &ptr);
+- aor = r->aor;
+- if (res > 0) {
+- LM_DBG("'%.*s' Not found in usrloc\n", aor.len, ZSW(aor.s));
+- dmq_ul.release_urecord(r);
+- dmq_ul.unlock_udomain(_d, &aor);
++ if (res < 0) {
++ LM_DBG("'%.*s' Not found in usrloc\n", ruid.len, ZSW(ruid.s));
+ continue;
+ }
++ aor = r->aor;
+ LM_DBG("- AoR: %.*s AoRhash=%d Flags=%d\n", aor.len, aor.s, aorhash, flags);
+
+ while (ptr) {
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0010-dialog-Sanity-checks.patch b/debian/patches/upstream/0010-dialog-Sanity-checks.patch
new file mode 100644
index 0000000..27d126d
--- /dev/null
+++ b/debian/patches/upstream/0010-dialog-Sanity-checks.patch
@@ -0,0 +1,50 @@
+From 83938d2153d0d33f1e3248a9ae280dae38440855 Mon Sep 17 00:00:00 2001
+From: Stefan Mititelu <stefan.mititelu at 1and1.ro>
+Date: Tue, 3 Nov 2015 15:58:02 +0200
+Subject: [PATCH] dialog: Sanity checks
+
+Add NULL checks for the parse_dlg_rr_param().
+Segfault when 'did' parameter was empty in the Route header (e.g. 'did=').
+
+(cherry picked from commit 876787d977c46ffcb1288f5eb66e91145cba1061)
+---
+ modules/dialog/dlg_handlers.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/modules/dialog/dlg_handlers.c b/modules/dialog/dlg_handlers.c
+index 75dc86f..b20f795 100644
+--- a/modules/dialog/dlg_handlers.c
++++ b/modules/dialog/dlg_handlers.c
+@@ -970,7 +970,29 @@ static inline int parse_dlg_rr_param(char *p, char *end, int *h_entry, int *h_id
+ {
+ char *s;
+
++ /* sanity checks */
++ if (!p) {
++ LM_ERR("NULL start of parameter string");
++ return -1;
++ }
++
++ if (!end) {
++ LM_ERR("NULL end of parameter string");
++ return -1;
++ }
++
++ if (!h_entry) {
++ LM_ERR("NULL h_entry");
++ return -1;
++ }
++
++ if (!h_id) {
++ LM_ERR("NULL h_id");
++ return -1;
++ }
++
+ for ( s=p ; p<end && *p!=DLG_SEPARATOR ; p++ );
++
+ if (*p!=DLG_SEPARATOR) {
+ LM_ERR("malformed rr param '%.*s'\n", (int)(long)(end-s), s);
+ return -1;
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0011-uac-Sanity-checks.patch b/debian/patches/upstream/0011-uac-Sanity-checks.patch
new file mode 100644
index 0000000..86c0874
--- /dev/null
+++ b/debian/patches/upstream/0011-uac-Sanity-checks.patch
@@ -0,0 +1,43 @@
+From a56e5980e572357f9d3c0152623850c34ddb8963 Mon Sep 17 00:00:00 2001
+From: Stefan Mititelu <stefan.mititelu at 1and1.ro>
+Date: Tue, 3 Nov 2015 13:08:47 +0200
+Subject: [PATCH] uac: Sanity checks
+
+Sanity checks for decode_uri(). Add NULL and len > 0 checks.
+Segfault when vsf parameter was empty in the Route: header (e.g 'vsf=').
+
+(cherry picked from commit d956f397c8cea4774e5941bdad8f76ecc44acdd5)
+---
+ modules/uac/replace.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/modules/uac/replace.c b/modules/uac/replace.c
+index 1c30fe2..354b2f9 100644
+--- a/modules/uac/replace.c
++++ b/modules/uac/replace.c
+@@ -128,6 +128,22 @@ static inline int decode_uri( str *src , str *dst)
+ int i,j;
+ signed char c;
+
++ /* sanity checks */
++ if (!src) {
++ LM_ERR("NULL src\n");
++ return -1;
++ }
++
++ if (!dst) {
++ LM_ERR("NULL dst\n");
++ return -1;
++ }
++
++ if (!src->s || src->len == 0) {
++ LM_ERR("empty src\n");
++ return -1;
++ }
++
+ /* Count '-' at end and disregard them */
+ for( n=0,i=src->len-1; src->s[i]=='-'; i--)
+ n++;
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0012-nathelper-use-advertised-address-if-send-socket-has-.patch b/debian/patches/upstream/0012-nathelper-use-advertised-address-if-send-socket-has-.patch
new file mode 100644
index 0000000..afbf627
--- /dev/null
+++ b/debian/patches/upstream/0012-nathelper-use-advertised-address-if-send-socket-has-.patch
@@ -0,0 +1,59 @@
+From c5a53e0f12430653f890534a1c140b84545f1ac0 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Sun, 4 Oct 2015 06:28:39 +0200
+Subject: [PATCH] nathelper: use advertised address if send socket has one
+
+- reported by emanuel Buu, GH#352
+
+(cherry picked from commit 4da31d56f4b1e18fc4232c5174637c858c75e9db)
+---
+ modules/nathelper/sip_pinger.h | 20 ++++++++++++++++----
+ 1 file changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/modules/nathelper/sip_pinger.h b/modules/nathelper/sip_pinger.h
+index 295fb68..0ff60b1 100644
+--- a/modules/nathelper/sip_pinger.h
++++ b/modules/nathelper/sip_pinger.h
+@@ -123,10 +123,22 @@ static inline char* build_sipping(str *curi, struct socket_info* s, str *path,
+ static char buf[MAX_SIPPING_SIZE];
+ char *p;
+ int len;
++ str vaddr;
++ str vport;
++
++ if(s->useinfo.name.len>0)
++ vaddr = s->useinfo.name;
++ else
++ vaddr = s->address_str;
++
++ if(s->useinfo.port_no>0)
++ vport = s->useinfo.port_no_str;
++ else
++ vport = s->port_no_str;
+
+ if ( sipping_method.len + 1 + curi->len + s_len(" SIP/2.0"CRLF) +
+- s_len("Via: SIP/2.0/UDP ") + s->address_str.len +
+- 1 + s->port_no_str.len + s_len(";branch=0") +
++ s_len("Via: SIP/2.0/UDP ") + vaddr.len +
++ 1 + vport.len + s_len(";branch=0") +
+ (path->len ? (s_len(CRLF"Route: ") + path->len) : 0) +
+ s_len(CRLF"From: ") + sipping_from.len + s_len(";tag=") +
+ ruid->len + 1 + 8 + 1 + 8 +
+@@ -149,12 +161,12 @@ static inline char* build_sipping(str *curi, struct socket_info* s, str *path,
+ if (s->address.af == AF_INET6) { /* Via header IP is a IPv6 reference */
+ append_fix( p, "[");
+ }
+- append_str( p, s->address_str.s, s->address_str.len);
++ append_str( p, vaddr.s, vaddr.len);
+ if (s->address.af == AF_INET6) {
+ append_fix( p, "]");
+ }
+ *(p++) = ':';
+- append_str( p, s->port_no_str.s, s->port_no_str.len);
++ append_str( p, vport.s, vport.len);
+ if (path->len) {
+ append_fix( p, ";branch=0"CRLF"Route: ");
+ append_str( p, path->s, path->len);
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0013-tm-support-to-add-text-in-Reason-header-for-local-ge.patch b/debian/patches/upstream/0013-tm-support-to-add-text-in-Reason-header-for-local-ge.patch
new file mode 100644
index 0000000..ffb01d5
--- /dev/null
+++ b/debian/patches/upstream/0013-tm-support-to-add-text-in-Reason-header-for-local-ge.patch
@@ -0,0 +1,65 @@
+From 6d3db65279e1e6bd7d45fe6ff4169e556883e21d Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Tue, 6 Oct 2015 17:53:15 +0200
+Subject: [PATCH] tm: support to add text in Reason header for local generated
+ CANCEL
+
+(cherry picked from commit 743fee551c833bd31f1bfdf1a4b422886243f8b6)
+---
+ modules/tm/t_cancel.c | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/modules/tm/t_cancel.c b/modules/tm/t_cancel.c
+index 69c5525..ce18354 100644
+--- a/modules/tm/t_cancel.c
++++ b/modules/tm/t_cancel.c
+@@ -37,6 +37,36 @@
+ #include "t_hooks.h"
+
+
++typedef struct cancel_reason_map {
++ int code;
++ str text;
++} cancel_reason_map_t;
++
++static cancel_reason_map_t _cancel_reason_map[] = {
++ 200, str_init("Answered elsewhere"),
++ 0, {0, 0}
++};
++
++/**
++ *
++ */
++void cancel_reason_text(struct cancel_info* cancel_data)
++{
++ int i;
++
++ if(cancel_data->reason.cause<=0
++ || cancel_data->reason.u.text.s!=NULL) return;
++
++ for(i=0; _cancel_reason_map[i].text.s!=0; i++) {
++ if(_cancel_reason_map[i].code==cancel_data->reason.cause) {
++ cancel_data->reason.u.text = _cancel_reason_map[i].text;
++ return;
++ }
++ }
++
++ return;
++}
++
+ /** Prepare to cancel a transaction.
+ * Determine which branches should be canceled and prepare them (internally
+ * mark them as "cancel in progress", see prepare_cancel_branch()).
+@@ -87,6 +117,9 @@ int cancel_uacs( struct cell *t, struct cancel_info* cancel_data, int flags)
+ int r;
+
+ ret=0;
++
++ cancel_reason_text(cancel_data);
++
+ /* cancel pending client transactions, if any */
+ for( i=0 ; i<t->nr_of_outgoings ; i++ )
+ if (cancel_data->cancel_bitmap & (1<<i)){
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0014-presence-use-advertised-ip-for-local-contact.patch b/debian/patches/upstream/0014-presence-use-advertised-ip-for-local-contact.patch
new file mode 100644
index 0000000..cbf214f
--- /dev/null
+++ b/debian/patches/upstream/0014-presence-use-advertised-ip-for-local-contact.patch
@@ -0,0 +1,43 @@
+From eef390eaefd9286feaae1505d566e4e41fb61e30 Mon Sep 17 00:00:00 2001
+From: lazedo <luis.azedo at factorlusitano.com>
+Date: Wed, 7 Oct 2015 11:39:37 -0700
+Subject: [PATCH] presence: use advertised ip for local contact (cherry picked
+ from commit 6a498f713a2522e18bed96dc4d1f361008a95502)
+
+---
+ modules/presence/utils_func.h | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/modules/presence/utils_func.h b/modules/presence/utils_func.h
+index 866df1b..6592375 100644
+--- a/modules/presence/utils_func.h
++++ b/modules/presence/utils_func.h
+@@ -124,15 +124,18 @@ static inline int ps_fill_local_contact(struct sip_msg* msg, str *contact)
+ goto error;
+ }
+
+- ip.s= ip_addr2a(&msg->rcv.dst_ip);
+- if(ip.s== NULL)
+- {
+- LM_ERR("transforming ip_addr to ascii\n");
+- goto error;
++ if(msg->rcv.bind_address->useinfo.name.len>0) {
++ ip = msg->rcv.bind_address->useinfo.name;
++ } else {
++ ip = msg->rcv.bind_address->address_str;
+ }
+- ip.len= strlen(ip.s);
+- port = msg->rcv.dst_port;
+
++ if(msg->rcv.bind_address->useinfo.port_no>0) {
++ port = msg->rcv.bind_address->useinfo.port_no;
++ } else {
++ port = msg->rcv.bind_address->port_no;
++ }
++
+ if(strncmp(ip.s, "sip:", 4)!=0)
+ {
+ strncpy(contact->s, "sip:", 4);
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0015-auth-Minor-update-to-docs-spelling-errors.patch b/debian/patches/upstream/0015-auth-Minor-update-to-docs-spelling-errors.patch
new file mode 100644
index 0000000..c137b79
--- /dev/null
+++ b/debian/patches/upstream/0015-auth-Minor-update-to-docs-spelling-errors.patch
@@ -0,0 +1,282 @@
+From ca09891f79facdc7f557ecacb31e7346e545e4a4 Mon Sep 17 00:00:00 2001
+From: "Olle E. Johansson" <oej at edvina.net>
+Date: Sun, 11 Oct 2015 19:26:46 +0200
+Subject: [PATCH] auth Minor update to docs, spelling errors
+
+(cherry picked from commit a0f82365012a7980c77b076d2e48f8a38cb63742)
+---
+ modules/auth/README | 56 +++++++++++++-------------
+ modules/auth/doc/auth_params.xml | 85 ++++++++++++++++++++--------------------
+ 2 files changed, 70 insertions(+), 71 deletions(-)
+
+diff --git a/modules/auth/README b/modules/auth/README
+index 71b990a..3dc6361 100644
+--- a/modules/auth/README
++++ b/modules/auth/README
+@@ -171,17 +171,17 @@ Chapter 1. Admin Guide
+
+ These three module parameters control which optional integrity checks
+ will be performed on the SIP message carrying digest response during
+- digest authentication. auth_check_register controls integrity checks to
+- be performed on REGISTER messages, auth_checks_no_dlg controls which
+- optional integrity checks will be performed on SIP requests that have
+- no To header field or no To tag (in other words the requests either
+- establishing or outside dialogs). auth_checks_in_dlg controls which
+- integrity checks will be performed on SIP requests within dialogs, such
+- as BYE or re-INVITE. The default value for all three parameters is 0
+- (old behaviour, no extra checks). The set of integrity checks that can
+- be performed on REGISTERs is typically different from sets of integrity
+- checks that can be performed for other SIP request types, hence we have
+- three independent module parameters.
++ SIP MD5 digest authentication. auth_check_register controls integrity
++ checks to be performed on REGISTER messages, auth_checks_no_dlg
++ controls which optional integrity checks will be performed on SIP
++ requests that have no To header field or no To tag (in other words the
++ requests either establishing or outside dialogs). auth_checks_in_dlg
++ controls which integrity checks will be performed on SIP requests
++ within dialogs, such as BYE or re-INVITE. The default value for all
++ three parameters is 0 (old behaviour, no extra checks). The set of
++ integrity checks that can be performed on REGISTERs is typically
++ different from sets of integrity checks that can be performed for other
++ SIP request types, hence we have three independent module parameters.
+
+ Without the extra checks the nonce will protect only against expired
+ values. Some reply attacks are still possible in the expire "window". A
+@@ -194,24 +194,24 @@ Chapter 1. Admin Guide
+ (see nonce_expire) and an MD5 over it and some secret (the MD5 is used
+ to make sure that nobody tampers with the nonce expire time).
+
+- When the extra checks are enabled, the nonce will include and extra MD5
++ When the extra checks are enabled, the nonce will include an extra MD5
+ over the selected part/parts of the message (see below) and some other
+ secret. This will be used to check if the selected part of the message
+ is the same when an UA tries to reuse the nonce, thus protecting or
+ severely limiting reply attacks.
+
+ The possible flag values for all three parameters are:
+- * 1 for checking if the message uri changed (uses the whole uri)
++ * 1 for checking if the message URI changed (uses the whole URI)
+ * 2 for checking the callid
+- * 4 for checking the from tag
+- * 8 for checking the source ip (see nonce.h).
++ * 4 for checking the From tag
++ * 8 for checking the source IP address (see nonce.h).
+
+- For example setting auth_checks_register to 3 would check if the callid
+- or the request uri changed from the REGISTER message for which the
+- original nonce was generated (this would allow nonce reuse only within
+- the same UA and for the expire time). Note that enabling the extra
+- checks will limit nonce caching by UAs, requiring extra challenges and
+- roundtrips, but will provide much better protection.
++ As an example setting auth_checks_register to 3 would check if the
++ callid or the request uri changed from the REGISTER message for which
++ the original nonce was generated (this would allow nonce reuse only
++ within the same UA and for the expire time). Note that enabling the
++ extra checks will limit nonce caching by UAs, requiring extra
++ challenges and roundtrips, but will provide much better protection.
+
+ Warning
+
+@@ -599,7 +599,7 @@ modparam("auth", "nonce_auth_max_drift", 1) # set max drift to 1 s
+ If set to 1, www_challenge() and proxy_challenge() functions send reply
+ statelessly no matter if transaction exists or not. If set to 0
+ (default), reply is sent statefully if transaction exists and
+- stelelessly otherwise.
++ statelessly otherwise.
+
+ Example 1.13. force_stateless_reply example
+ ...
+@@ -608,12 +608,12 @@ modparam("auth", "force_stateless_reply", 1)
+
+ 3.16. realm_prefix (string)
+
+- Prefix to be automatically strip from realm. As an alternative to SRV
+- records (not all SIP clients support SRV lookup), a subdomain of the
+- master domain can be defined for SIP purposes (like sip.mydomain.net
+- pointing to same IP address as the SRV record for mydomain.net). By
+- ignoring the realm_prefix "sip.", at authentication, sip.mydomain.net
+- will be equivalent to mydomain.net .
++ Prefix to be automatically stripped from the realm. As an alternative
++ to SRV records (not all SIP clients support SRV lookup), a subdomain of
++ the master domain can be defined for SIP purposes (like
++ sip.mydomain.net pointing to same IP address as the SRV record for
++ mydomain.net). By ignoring the realm_prefix "sip.", at authentication,
++ sip.example.com will be equivalent to example.com .
+
+ Default value is empty string.
+
+diff --git a/modules/auth/doc/auth_params.xml b/modules/auth/doc/auth_params.xml
+index 3450ec1..19ae0c2 100644
+--- a/modules/auth/doc/auth_params.xml
++++ b/modules/auth/doc/auth_params.xml
+@@ -24,28 +24,28 @@
+ <title><varname>auth_checks_in_dlg</varname> (flags)</title>
+ <para>
+ These three module parameters control which optional integrity
+- checks will be performed on the SIP message carrying digest response
+- during digest authentication. <varname>auth_check_register</varname>
+- controls integrity checks to be performed on REGISTER messages,
+- <varname>auth_checks_no_dlg</varname> controls which optional
+- integrity checks will be performed on SIP requests that have no To
+- header field or no To tag (in other words the requests either
+- establishing or outside
+- dialogs). <varname>auth_checks_in_dlg</varname> controls which
+- integrity checks will be performed on SIP requests within dialogs,
+- such as BYE or re-INVITE. The default value for all three parameters
+- is 0 (old behaviour, no extra checks). The set of integrity checks
+- that can be performed on REGISTERs is typically different from sets of
+- integrity checks that can be performed for other SIP request types,
+- hence we have three independent module parameters.
++ checks will be performed on the SIP message carrying digest response
++ during SIP MD5 digest authentication. <varname>auth_check_register</varname>
++ controls integrity checks to be performed on REGISTER messages,
++ <varname>auth_checks_no_dlg</varname> controls which optional
++ integrity checks will be performed on SIP requests that have no To
++ header field or no To tag (in other words the requests either
++ establishing or outside dialogs).
++ <varname>auth_checks_in_dlg</varname> controls which
++ integrity checks will be performed on SIP requests within dialogs,
++ such as BYE or re-INVITE. The default value for all three parameters
++ is 0 (old behaviour, no extra checks). The set of integrity checks
++ that can be performed on REGISTERs is typically different from sets of
++ integrity checks that can be performed for other SIP request types,
++ hence we have three independent module parameters.
+ </para>
+ <para>
+ Without the extra checks the nonce will protect only against expired
+ values. Some reply attacks are still possible in the expire "window".
+- A possible workaround is to always force qop
+- authentication and always check the uri from the authorization
+- header, but this would not work if an upstream proxy rewrites the uri
+- and it will also not work with a lot of UA implementations.
++ A possible workaround is to always force qop authentication and
++ always check the uri from the authorization header, but this would
++ not work if an upstream proxy rewrites the uri
++ and it will also not work with a lot of UA implementations.
+ </para>
+ <para>
+ In this case the nonce value will be used only to hold
+@@ -54,7 +54,7 @@
+ tampers with the nonce expire time).
+ </para>
+ <para>
+- When the extra checks are enabled, the nonce will include and extra
++ When the extra checks are enabled, the nonce will include an extra
+ MD5 over the selected part/parts of the message (see below) and some
+ other secret. This will be used to check if the selected part of
+ the message is the same when an UA tries to reuse the nonce, thus
+@@ -65,28 +65,27 @@
+ <itemizedlist>
+ <listitem><para>
+ <emphasis>1</emphasis> for checking if the message
+- uri changed (uses the whole uri)
++ URI changed (uses the whole URI)
+ </para></listitem>
+ <listitem><para>
+ <emphasis>2</emphasis> for checking the callid
+ </para></listitem>
+ <listitem><para>
+- <emphasis>4</emphasis> for checking the from tag
++ <emphasis>4</emphasis> for checking the From tag
+ </para></listitem>
+ <listitem><para>
+- <emphasis>8</emphasis> for checking the source ip
++ <emphasis>8</emphasis> for checking the source IP address
+ (see nonce.h).
+ </para></listitem>
+ </itemizedlist>
+ </para>
+ <para>
+- For example setting
+- <varname>auth_checks_register</varname> to 3 would check if the
+- callid or the request uri changed from the REGISTER message for which
+- the original nonce was generated (this would allow nonce reuse only
+- within the same UA and for the expire time). Note that enabling
+- the extra checks will limit nonce caching by UAs, requiring extra
+- challenges and roundtrips, but will provide much better protection.
++ As an example setting <varname>auth_checks_register</varname> to 3
++ would check if the callid or the request uri changed from the REGISTER
++ message for which the original nonce was generated (this would allow nonce reuse only
++ within the same UA and for the expire time). Note that enabling
++ the extra checks will limit nonce caching by UAs, requiring extra
++ challenges and roundtrips, but will provide much better protection.
+ </para>
+ <warning><para>
+ Do not enable the from tag check (4) for REGISTERs
+@@ -155,7 +154,7 @@ modparam("auth", "auth_checks_in_dlg", 15)
+ The possible values are: "auth", "auth-int" and "" (unset).
+ </para>
+ <para>
+- The default value is not-set ("").
++ The default value is not-set ("").
+ </para>
+ <para>
+ See also:
+@@ -231,12 +230,12 @@ modparam("auth", "qop", "auth") # set qop=auth
+ </para>
+ <para>
+ See also:
+- <varname>qop</varname>,
+- <varname>nc_array_size</varname>,
+- <varname>nc_array_order</varname>,
+- <varname>nid_pool_no</varname>,
+- <varname>nonce_expire</varname>.
+- <varname>one_time_nonce</varname>.
++ <varname>qop</varname>,
++ <varname>nc_array_size</varname>,
++ <varname>nc_array_order</varname>,
++ <varname>nid_pool_no</varname>,
++ <varname>nonce_expire</varname>.
++ <varname>one_time_nonce</varname>.
+ </para>
+ <example>
+ <title>nonce_count example</title>
+@@ -302,8 +301,8 @@ route{
+ in the first reponse to a challenge. All the messages will be
+ challenged, even retransmissions. Stateful mode should be used, to
+ catch retransmissions before the authentication checks (using
+- <function>t_newtran()</function> before the authentication checks
+- and sending all the replies with <function>t_reply()</function>).
++ <function>t_newtran()</function> before the authentication checks
++ and sending all the replies with <function>t_reply()</function>).
+ </para>
+ <para>
+ <varname>one_time_nonce</varname> provides enhanced replay protections
+@@ -342,7 +341,7 @@ route{
+ <varname>one_time_nonce</varname> checks should work flawlessly.
+ </para>
+ <para>
+- The default value is 0 (off).
++ The default value is 0 (off).
+ </para>
+ <para>
+ See also:
+@@ -645,7 +644,7 @@ modparam("auth", "nonce_auth_max_drift", 1) # set max drift to 1 s
+ <function>proxy_challenge()</function>
+ functions send reply statelessly no matter if transaction
+ exists or not. If set to 0 (default), reply is sent statefully
+- if transaction exists and stelelessly otherwise.
++ if transaction exists and statelessly otherwise.
+ </para>
+ <example>
+ <title>force_stateless_reply example</title>
+@@ -660,13 +659,13 @@ modparam("auth", "force_stateless_reply", 1)
+ <section id="auth.p.realm_prefix">
+ <title><varname>realm_prefix</varname> (string)</title>
+ <para>
+- Prefix to be automatically strip from realm. As an alternative to
++ Prefix to be automatically stripped from the realm. As an alternative to
+ SRV records (not all SIP clients support SRV lookup), a subdomain
+ of the master domain can be defined for SIP purposes (like
+ sip.mydomain.net pointing to same IP address as the SRV
+ record for mydomain.net). By ignoring the realm_prefix
+- <quote>sip.</quote>, at authentication, sip.mydomain.net will be
+- equivalent to mydomain.net .
++ <quote>sip.</quote>, at authentication, sip.example.com will be
++ equivalent to example.com .
+ </para>
+ <para>
+ Default value is empty string.
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0016-core-mem_summary-taken-in-consideration-for-runtime-.patch b/debian/patches/upstream/0016-core-mem_summary-taken-in-consideration-for-runtime-.patch
new file mode 100644
index 0000000..685dfed
--- /dev/null
+++ b/debian/patches/upstream/0016-core-mem_summary-taken-in-consideration-for-runtime-.patch
@@ -0,0 +1,36 @@
+From bf236d1892abdc3e27dc01d84eca67cd1b858156 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Sun, 11 Oct 2015 19:37:54 +0200
+Subject: [PATCH] core: mem_summary taken in consideration for runtime pkg dump
+ callback
+
+(cherry picked from commit 02dc876cc6d8e78bfc26c4c2318814aec22c4498)
+---
+ pt.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/pt.c b/pt.c
+index 2c65250..348a74d 100644
+--- a/pt.c
++++ b/pt.c
+@@ -528,8 +528,15 @@ void mem_dump_pkg_cb(str *gname, str *name)
+ possible race with a parallel cfg_set */
+ ((struct cfg_group_core*)core_cfg)->memlog=memlog;
+
+- LOG(memlog, "Memory status (pkg) of process %d:\n", my_pid());
+- pkg_status();
++ if (cfg_get(core, core_cfg, mem_summary) & 1) {
++ LOG(memlog, "Memory status (pkg) of process %d:\n", my_pid());
++ pkg_status();
++ }
++ if (cfg_get(core, core_cfg, mem_summary) & 4) {
++ LOG(memlog, "Memory still-in-use summary (pkg) of process %d:\n",
++ my_pid());
++ pkg_sums();
++ }
+
+ ((struct cfg_group_core*)core_cfg)->memlog=old_memlog;
+ }
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0017-nat_traversal-Add-comment-about-lacking-IPv6-support.patch b/debian/patches/upstream/0017-nat_traversal-Add-comment-about-lacking-IPv6-support.patch
new file mode 100644
index 0000000..ab1b452
--- /dev/null
+++ b/debian/patches/upstream/0017-nat_traversal-Add-comment-about-lacking-IPv6-support.patch
@@ -0,0 +1,121 @@
+From 67885bd0e5fd56b5dd7d4bb6f8bb7113bc1ea559 Mon Sep 17 00:00:00 2001
+From: "Olle E. Johansson" <oej at edvina.net>
+Date: Mon, 19 Oct 2015 09:11:20 +0200
+Subject: [PATCH] nat_traversal Add comment about lacking IPv6 support
+
+(cherry picked from commit cc8ff059d362e0c805de2067d73f64cbd12acdb8)
+---
+ modules/nat_traversal/README | 20 +++++++++++---------
+ modules/nat_traversal/doc/nat_traversal_admin.xml | 2 ++
+ 2 files changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/modules/nat_traversal/README b/modules/nat_traversal/README
+index 93ee58b..63a0a51 100644
+--- a/modules/nat_traversal/README
++++ b/modules/nat_traversal/README
+@@ -10,7 +10,7 @@ Dan Pascu
+
+ <dan at ag-projects.com>
+
+- Copyright © 2008 Dan Pascu
++ Copyright � 2008 Dan Pascu
+ __________________________________________________________________
+
+ Table of Contents
+@@ -139,6 +139,8 @@ Chapter 1. Admin Guide
+ SIP proxies may be involved in handling registration and routing and
+ where the incoming and outgoing paths may not necessarily be the same,
+ or where the routing path may even change between consecutive dialogs.
++ The nat_traversal functionality is built primarily for IPv4 NAT
++ handling and hasn't been adapted to support IPv6 session keepalives.
+
+ 2. Keepalive functionality
+
+@@ -405,7 +407,7 @@ Chapter 1. Admin Guide
+ each endpoint will receive exactly one keepalive message. A negative
+ value or zero will disable the keepalive functionality.
+
+- Default value is “60”.
++ Default value is "60".
+
+ Example 1.1. Setting the keepalive_interval parameter
+ ...
+@@ -418,7 +420,7 @@ modparam("nat_traversal", "keepalive_interval", 90)
+ for this purpose are NOTIFY and OPTIONS. NOTIFY generates smaller
+ replies from user agents, but they are almost entirely negative
+ replies. Apparently almost none of the user agents understand that the
+- purpose of the NOTIFY with a “keep-alive” event is to keep NAT open,
++ purpose of the NOTIFY with a "keep-alive" event is to keep NAT open,
+ even though many user agents send such NOTIFY requests themselves.
+ However this does not affect the result at all, since the purpose is to
+ trigger a response from the user agent behind NAT, positive or negative
+@@ -433,7 +435,7 @@ modparam("nat_traversal", "keepalive_interval", 90)
+ times bigger than negative replies or replies to NOTIFY requests. For
+ this reason the default value for the used method is NOTIFY.
+
+- Default value is “NOTIFY”.
++ Default value is "NOTIFY".
+
+ Example 1.2. Setting the keepalive_method parameter
+ ...
+@@ -448,7 +450,7 @@ modparam("nat_traversal", "keepalive_method", "OPTIONS")
+ keepalive message, which is the same interface on which the request
+ that triggered keepalive functionality arrived.
+
+- Default value is “sip:keepalive at proxy_ip” with proxy_ip being the
++ Default value is "sip:keepalive at proxy_ip" with proxy_ip being the
+ actual IP of the outgoing interface.
+
+ Example 1.3. Setting the keepalive_from parameter
+@@ -487,7 +489,7 @@ MyHeader: some_value\r\n")
+ case it will store it in the Kamailio working directory, or an absolute
+ path.
+
+- Default value is undefined “keepalive_state”.
++ Default value is undefined "keepalive_state".
+
+ Example 1.5. Setting the keepalive_state_file parameter
+ ...
+@@ -501,7 +503,7 @@ tate")
+ 5.2. fix_contact()
+ 5.3. nat_keepalive()
+
+-5.1. client_nat_test(type)
++5.1. client_nat_test(type)
+
+ Check if the client is behind NAT. What tests are performed is
+ specified by the type parameter which is an integer given by the sum of
+@@ -531,7 +533,7 @@ if (client_nat_test("3")) {
+ }
+ ...
+
+-5.2. fix_contact()
++5.2. fix_contact()
+
+ Will replace the IP and port in the Contact header with the IP and port
+ the SIP message was received from. Usually called after a succesful
+@@ -547,7 +549,7 @@ if (client_nat_test("3")) {
+ }
+ ...
+
+-5.3. nat_keepalive()
++5.3. nat_keepalive()
+
+ Trigger keepalive functionality for the source address of the request.
+ When called it only sets some internal flags, which will trigger later
+diff --git a/modules/nat_traversal/doc/nat_traversal_admin.xml b/modules/nat_traversal/doc/nat_traversal_admin.xml
+index d796d6c..a5c61bf 100644
+--- a/modules/nat_traversal/doc/nat_traversal_admin.xml
++++ b/modules/nat_traversal/doc/nat_traversal_admin.xml
+@@ -29,6 +29,8 @@
+ SIP proxies may be involved in handling registration and routing and
+ where the incoming and outgoing paths may not necessarily be the same,
+ or where the routing path may even change between consecutive dialogs.
++ The nat_traversal functionality is built primarily for IPv4 NAT handling
++ and hasn't been adapted to support IPv6 session keepalives.
+ </para>
+ </section>
+
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0018-evapi-fix-some-minor-typos-in-debug-error-messages.patch b/debian/patches/upstream/0018-evapi-fix-some-minor-typos-in-debug-error-messages.patch
new file mode 100644
index 0000000..f6af87f
--- /dev/null
+++ b/debian/patches/upstream/0018-evapi-fix-some-minor-typos-in-debug-error-messages.patch
@@ -0,0 +1,50 @@
+From 3dc9dd21708d3abe9db888dd0ae2ab49270a82d8 Mon Sep 17 00:00:00 2001
+From: "Olle E. Johansson" <oej at edvina.net>
+Date: Tue, 20 Oct 2015 20:52:10 +0200
+Subject: [PATCH] evapi fix some minor typos in debug/error messages
+
+(cherry picked from commit 84d75d43c17b4773bb15a80c1a1f33a47424d858)
+---
+ modules/evapi/evapi_mod.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/modules/evapi/evapi_mod.c b/modules/evapi/evapi_mod.c
+index eeafc21..146c9d2 100644
+--- a/modules/evapi/evapi_mod.c
++++ b/modules/evapi/evapi_mod.c
+@@ -114,12 +114,12 @@ static int mod_init(void)
+
+ /* init faked sip msg */
+ if(faked_msg_init()<0) {
+- LM_ERR("failed to init faked sip msg\n");
++ LM_ERR("failed to init faked sip message\n");
+ return -1;
+ }
+
+ if(load_tm_api( &tmb ) < 0) {
+- LM_INFO("cannot load the TM-functions - async relay disabled\n");
++ LM_INFO("cannot load the TM module functions - async relay disabled\n");
+ memset(&tmb, 0, sizeof(tm_api_t));
+ }
+
+@@ -180,7 +180,7 @@ static int child_init(int rank)
+ /* main function for dispatcher */
+ evapi_close_notify_sockets_child();
+ if(evapi_run_dispatcher(_evapi_bind_addr, _evapi_bind_port)<0) {
+- LM_ERR("failed to initialize disptacher process\n");
++ LM_ERR("failed to initialize evapi dispatcher process\n");
+ return -1;
+ }
+ }
+@@ -276,7 +276,7 @@ static int w_evapi_async_relay(sip_msg_t *msg, char *evdata, char *p2)
+ }
+ if(tmb.t_suspend(msg, &tindex, &tlabel)<0)
+ {
+- LM_ERR("failed to suppend request processing\n");
++ LM_ERR("failed to suspend request processing\n");
+ return -1;
+ }
+
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0019-corex-detect-ipv6-for-send-functions.patch b/debian/patches/upstream/0019-corex-detect-ipv6-for-send-functions.patch
new file mode 100644
index 0000000..18b6934
--- /dev/null
+++ b/debian/patches/upstream/0019-corex-detect-ipv6-for-send-functions.patch
@@ -0,0 +1,37 @@
+From 4fdd11699c83f2e4c787d210ca08eb3ec2fb559a Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Wed, 21 Oct 2015 09:49:38 +0200
+Subject: [PATCH] corex: detect ipv6 for send*() functions
+
+(cherry picked from commit 027495fb6ac7c8f50ff9945c209bc9f7ac98d991)
+---
+ modules/corex/corex_lib.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/modules/corex/corex_lib.c b/modules/corex/corex_lib.c
+index dcbe550..21593f5 100644
+--- a/modules/corex/corex_lib.c
++++ b/modules/corex/corex_lib.c
+@@ -254,13 +254,15 @@ int corex_send(sip_msg_t *msg, gparam_t *pu, enum sip_protos proto)
+ ret=E_BUG;
+ goto error;
+ }
+- }
+- else
+- {
++ } else {
+ u = &next_hop;
+ u->port_no = 5060;
+ u->host = dest;
+- p = memchr(dest.s, ':', dest.len);
++ p = dest.s;
++ /* detect ipv6 */
++ p = memchr(p, ']', dest.len);
++ if (p) p++;
++ p = memchr(p, ':', dest.len);
+ if (p)
+ {
+ u->host.len = p - dest.s;
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0020-db_postgres-don-t-free-pg-query-structure-in-store-r.patch b/debian/patches/upstream/0020-db_postgres-don-t-free-pg-query-structure-in-store-r.patch
new file mode 100644
index 0000000..23c2722
--- /dev/null
+++ b/debian/patches/upstream/0020-db_postgres-don-t-free-pg-query-structure-in-store-r.patch
@@ -0,0 +1,28 @@
+From 4dc766a2083391b1870d34f8ee9575088b9e8e69 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Thu, 22 Oct 2015 23:08:44 +0200
+Subject: [PATCH] db_postgres: don't free pg query structure in store result
+ function
+
+- it is done when freeing the result
+
+(cherry picked from commit 56cd7a0d38c8bbee6cc3e981b7a2b78b6d47257d)
+---
+ modules/db_postgres/km_dbase.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/modules/db_postgres/km_dbase.c b/modules/db_postgres/km_dbase.c
+index 50ffd7f..816a512 100644
+--- a/modules/db_postgres/km_dbase.c
++++ b/modules/db_postgres/km_dbase.c
+@@ -602,7 +602,6 @@ int db_postgres_store_result(const db1_con_t* _con, db1_res_t** _r)
+ }
+
+ done:
+- db_postgres_free_query(_con);
+ return (rc);
+ }
+
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0021-db_postgres-safety-check-to-see-if-hasing-is-over-no.patch b/debian/patches/upstream/0021-db_postgres-safety-check-to-see-if-hasing-is-over-no.patch
new file mode 100644
index 0000000..a62086c
--- /dev/null
+++ b/debian/patches/upstream/0021-db_postgres-safety-check-to-see-if-hasing-is-over-no.patch
@@ -0,0 +1,37 @@
+From 5d8315268e19538023d4127e74e166925ea216b8 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Fri, 23 Oct 2015 18:56:45 +0200
+Subject: [PATCH] db_postgres: safety check to see if hasing is over non-null
+ pointer
+
+- inside implementation of replace command
+
+(cherry picked from commit 9cd4aef84d8e7a079486ff73285a9bd6a15e8db3)
+---
+ modules/db_postgres/km_dbase.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/modules/db_postgres/km_dbase.c b/modules/db_postgres/km_dbase.c
+index 816a512..7c9a1bb 100644
+--- a/modules/db_postgres/km_dbase.c
++++ b/modules/db_postgres/km_dbase.c
+@@ -905,12 +905,12 @@ int db_postgres_replace(const db1_con_t* _h, const db_key_t* _k,
+ pos += VAL_UINT(&_v[i]);
+ break;
+ case DB1_STR:
+- pos += get_hash1_raw((VAL_STR(&_v[i])).s,
+- (VAL_STR(&_v[i])).len);
++ pos += ((VAL_STR(&_v[i])).s)?get_hash1_raw((VAL_STR(&_v[i])).s,
++ (VAL_STR(&_v[i])).len):0;
+ break;
+ case DB1_STRING:
+- pos += get_hash1_raw(VAL_STRING(&_v[i]),
+- strlen(VAL_STRING(&_v[i])));
++ pos += (VAL_STRING(&_v[i]))?get_hash1_raw(VAL_STRING(&_v[i]),
++ strlen(VAL_STRING(&_v[i]))):0;
+ break;
+ default:
+ break;
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0022-core-fixed-passed-buffer-size-in-suip2a-for-ipv6.patch b/debian/patches/upstream/0022-core-fixed-passed-buffer-size-in-suip2a-for-ipv6.patch
new file mode 100644
index 0000000..a5d0198
--- /dev/null
+++ b/debian/patches/upstream/0022-core-fixed-passed-buffer-size-in-suip2a-for-ipv6.patch
@@ -0,0 +1,39 @@
+From e1b60b857f78ec459ae31a4cf6475643ec102f40 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Mon, 26 Oct 2015 21:31:59 +0100
+Subject: [PATCH] core: fixed passed buffer size in suip2a() for ipv6
+
+- buffer size set to IP6_MAX_STR_SIZE, it was too short and returned
+ value was empty addres "[]"
+- the function is used only by siptrace
+- patch from github pull request #381
+
+(cherry picked from commit d6f313e61b3318924e6653c8ca1184b2016f701d)
+---
+ ip_addr.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ip_addr.h b/ip_addr.h
+index bce06fa..20176b0 100644
+--- a/ip_addr.h
++++ b/ip_addr.h
+@@ -741,14 +741,14 @@ static inline char* suip2a(union sockaddr_union* su, int su_len)
+ return "<addr. error>";
+ buf[0]='[';
+ offs=1+ip6tosbuf((unsigned char*)su->sin6.sin6_addr.s6_addr, &buf[1],
+- sizeof(buf)-4);
++ IP6_MAX_STR_SIZE);
+ buf[offs]=']';
+ offs++;
+ }else
+ if (unlikely(su_len<sizeof(su->sin)))
+ return "<addr. error>";
+ else
+- offs=ip4tosbuf((unsigned char*)&su->sin.sin_addr, buf, sizeof(buf)-2);
++ offs=ip4tosbuf((unsigned char*)&su->sin.sin_addr, buf, IP4_MAX_STR_SIZE);
+ buf[offs]=0;
+ return buf;
+ }
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0023-tm-added-braces-around-initializer-of-cancel-reason-.patch b/debian/patches/upstream/0023-tm-added-braces-around-initializer-of-cancel-reason-.patch
new file mode 100644
index 0000000..fba5c7c
--- /dev/null
+++ b/debian/patches/upstream/0023-tm-added-braces-around-initializer-of-cancel-reason-.patch
@@ -0,0 +1,30 @@
+From cc236c6720c3c4d91d6cf69134bb6c290d530900 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Tue, 27 Oct 2015 11:26:23 +0100
+Subject: [PATCH] tm: added braces around initializer of cancel reason map
+
+- reported by Yacin Caner
+
+(cherry picked from commit fc0e6275fa61f72c1fed0f69393f609cc682888c)
+---
+ modules/tm/t_cancel.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/tm/t_cancel.c b/modules/tm/t_cancel.c
+index ce18354..9db7abe 100644
+--- a/modules/tm/t_cancel.c
++++ b/modules/tm/t_cancel.c
+@@ -43,8 +43,8 @@ typedef struct cancel_reason_map {
+ } cancel_reason_map_t;
+
+ static cancel_reason_map_t _cancel_reason_map[] = {
+- 200, str_init("Answered elsewhere"),
+- 0, {0, 0}
++ { 200, str_init("Answered elsewhere") },
++ { 0, {0, 0} }
+ };
+
+ /**
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0024-ctl-increased-default-buffers-size-for-rpc-responses.patch b/debian/patches/upstream/0024-ctl-increased-default-buffers-size-for-rpc-responses.patch
new file mode 100644
index 0000000..88d9dc3
--- /dev/null
+++ b/debian/patches/upstream/0024-ctl-increased-default-buffers-size-for-rpc-responses.patch
@@ -0,0 +1,99 @@
+From bc00c004f5c8214f814369e01f8ec78ca780cbb5 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Mon, 2 Nov 2015 13:30:32 +0100
+Subject: [PATCH] ctl: increased default buffers size for rpc responses
+
+ - binrpc_max_body_size = 32
+ - binrpc_struct_max_body_size = 8
+
+(cherry picked from commit 19756eecb2048320182667cc440cfa7d275304c9)
+---
+ modules/ctl/README | 8 ++++----
+ modules/ctl/binrpc_run.c | 5 +++--
+ modules/ctl/doc/ctl_params.xml | 8 ++++----
+ 3 files changed, 11 insertions(+), 10 deletions(-)
+
+diff --git a/modules/ctl/README b/modules/ctl/README
+index 09f35d4..2de6fcb 100644
+--- a/modules/ctl/README
++++ b/modules/ctl/README
+@@ -235,20 +235,20 @@ modparam("ctl", "autoconversion", 1)
+ Set the size of binrpc buffer for RPC reply. Value represents
+ kilobytes.
+
+- Default: 4 (meaning 4KB);
++ Default: 32 (meaning 32KB);
+
+ Example 1.8. Set the binrpc_max_body_size parameter
+-modparam("ctl", "binrpc_max_body_size", 10)
++modparam("ctl", "binrpc_max_body_size", 16)
+
+ 3.8. binrpc_struct_max_body_size (integer)
+
+ Set the size of binrpc structure buffer for RPC reply. Value represents
+ kilobytes.
+
+- Default: 1 (meaning 1KB);
++ Default: 8 (meaning 8KB);
+
+ Example 1.9. Set the binrpc_struct_max_body_size parameter
+-modparam("ctl", "binrpc_struct_max_body_size", 3)
++modparam("ctl", "binrpc_struct_max_body_size", 4)
+
+ 4. SIP-router RPC Functions
+
+diff --git a/modules/ctl/binrpc_run.c b/modules/ctl/binrpc_run.c
+index c4b7297..2355a50 100644
+--- a/modules/ctl/binrpc_run.c
++++ b/modules/ctl/binrpc_run.c
+@@ -36,8 +36,9 @@
+ rpc->scan (default: not set) */
+ int autoconvert=0;
+
+-int binrpc_max_body_size = 4; /* multiplied by 1024 in mod init */
+-int binrpc_struct_max_body_size = 1; /* multiplied by 1024 in mod init */
++int binrpc_max_body_size = 32; /* multiplied by 1024 in mod init */
++int binrpc_struct_max_body_size = 8; /* multiplied by 1024 in mod init */
++
+ #define BINRPC_MAX_BODY binrpc_max_body_size /* maximum body for send */
+ #define STRUCT_MAX_BODY binrpc_struct_max_body_size
+ #define MAX_MSG_CHUNKS 96
+diff --git a/modules/ctl/doc/ctl_params.xml b/modules/ctl/doc/ctl_params.xml
+index 3bd2553..09041bd 100644
+--- a/modules/ctl/doc/ctl_params.xml
++++ b/modules/ctl/doc/ctl_params.xml
+@@ -200,13 +200,13 @@ modparam("ctl", "autoconversion", 1)
+ kilobytes.
+ </para>
+ <para>
+- Default: 4 (meaning 4KB);
++ Default: 32 (meaning 32KB);
+ </para>
+ <example>
+ <title>Set the <varname>binrpc_max_body_size</varname> parameter
+ </title>
+ <programlisting>
+-modparam("ctl", "binrpc_max_body_size", 10)
++modparam("ctl", "binrpc_max_body_size", 16)
+ </programlisting>
+ </example>
+ </section>
+@@ -218,13 +218,13 @@ modparam("ctl", "binrpc_max_body_size", 10)
+ kilobytes.
+ </para>
+ <para>
+- Default: 1 (meaning 1KB);
++ Default: 8 (meaning 8KB);
+ </para>
+ <example>
+ <title>Set the <varname>binrpc_struct_max_body_size</varname> parameter
+ </title>
+ <programlisting>
+-modparam("ctl", "binrpc_struct_max_body_size", 3)
++modparam("ctl", "binrpc_struct_max_body_size", 4)
+ </programlisting>
+ </example>
+ </section>
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0025-kamdbctl-divert-stderr-when-searching-for-greadlink.patch b/debian/patches/upstream/0025-kamdbctl-divert-stderr-when-searching-for-greadlink.patch
new file mode 100644
index 0000000..757f6e7
--- /dev/null
+++ b/debian/patches/upstream/0025-kamdbctl-divert-stderr-when-searching-for-greadlink.patch
@@ -0,0 +1,32 @@
+From 5c9ef6ca51d51232a0e3ab4e57915a7674e876a1 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Mon, 2 Nov 2015 15:23:31 +0100
+Subject: [PATCH] kamdbctl: divert stderr when searching for greadlink
+
+(cherry picked from commit 2bd19e232ece9bf0a090ba34d505d9ed6c9753a5)
+---
+ utils/kamctl/kamdbctl | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/utils/kamctl/kamdbctl b/utils/kamctl/kamdbctl
+index 13f227e..e8915d1 100755
+--- a/utils/kamctl/kamdbctl
++++ b/utils/kamctl/kamdbctl
+@@ -16,12 +16,12 @@ TEST="false"
+ ### include resource files, if any
+
+ # check for rc file at same location with kamdbctl
+-which greadlink > /dev/null
++which greadlink > /dev/null 2>&1
+ ret=$?
+ if [ $ret -eq 0 ] ; then
+ KAMCTLFULLPATH=$(greadlink -f "$0")
+ else
+- which readlink > /dev/null
++ which readlink > /dev/null 2>&1
+ ret=$?
+ if [ $ret -eq 0 ] ; then
+ KAMCTLFULLPATH=$(readlink -f "$0")
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0026-core-parser-remove-inline-for-parse_param.patch b/debian/patches/upstream/0026-core-parser-remove-inline-for-parse_param.patch
new file mode 100644
index 0000000..a4f6e7e
--- /dev/null
+++ b/debian/patches/upstream/0026-core-parser-remove-inline-for-parse_param.patch
@@ -0,0 +1,43 @@
+From 3edb10ad073c383dab8a2819d759fcc9e3bd9986 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Mon, 2 Nov 2015 16:19:44 +0100
+Subject: [PATCH] core: parser - remove inline for parse_param()
+
+- it gets recent compiler warnings when is an extern object
+- reported by Victor Seva, GH#286
+
+(cherry picked from commit e3a8e5772445d28a0fc6db2e432d750dbb8062da)
+---
+ parser/parse_param.c | 2 +-
+ parser/parse_param.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/parser/parse_param.c b/parser/parse_param.c
+index 79e65e9..b9e0fbc 100644
+--- a/parser/parse_param.c
++++ b/parser/parse_param.c
+@@ -534,7 +534,7 @@ error:
+ * 0: success, but expect a next paramter
+ * 1: success and exepect no more parameters
+ */
+-inline int parse_param(str *_s, pclass_t _c, param_hooks_t *_h, param_t *t)
++int parse_param(str *_s, pclass_t _c, param_hooks_t *_h, param_t *t)
+ {
+ return parse_param2(_s, _c, _h, t, ';');
+ }
+diff --git a/parser/parse_param.h b/parser/parse_param.h
+index 98a1bd1..5622df9 100644
+--- a/parser/parse_param.h
++++ b/parser/parse_param.h
+@@ -143,7 +143,7 @@ typedef union param_hooks {
+ * 0: success, but expect a next paramter
+ * 1: success and exepect no more parameters
+ */
+-extern inline int parse_param(str *_s, pclass_t _c, param_hooks_t *_h, param_t *t);
++extern int parse_param(str *_s, pclass_t _c, param_hooks_t *_h, param_t *t);
+
+
+ /*! \brief
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0027-nathelper-consider-IPv6-brackets-when-checking-size-.patch b/debian/patches/upstream/0027-nathelper-consider-IPv6-brackets-when-checking-size-.patch
new file mode 100644
index 0000000..ec8fbc2
--- /dev/null
+++ b/debian/patches/upstream/0027-nathelper-consider-IPv6-brackets-when-checking-size-.patch
@@ -0,0 +1,36 @@
+From 8d82eb9a43885a1c524c5a53155f3299ce55fbb7 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Wed, 4 Nov 2015 15:43:12 +0100
+Subject: [PATCH] nathelper: consider IPv6 brackets when checking size for
+ keepalive request
+
+(cherry picked from commit 27f19950f107a943c3bf9db1fddb1e4912136181)
+---
+ modules/nathelper/sip_pinger.h | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/modules/nathelper/sip_pinger.h b/modules/nathelper/sip_pinger.h
+index 0ff60b1..368961f 100644
+--- a/modules/nathelper/sip_pinger.h
++++ b/modules/nathelper/sip_pinger.h
+@@ -18,9 +18,6 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+- * History:
+- * ---------
+- * 2005-07-11 created (bogdan)
+ */
+
+
+@@ -138,6 +135,7 @@ static inline char* build_sipping(str *curi, struct socket_info* s, str *path,
+
+ if ( sipping_method.len + 1 + curi->len + s_len(" SIP/2.0"CRLF) +
+ s_len("Via: SIP/2.0/UDP ") + vaddr.len +
++ ((s->address.af==AF_INET6)?2:0) +
+ 1 + vport.len + s_len(";branch=0") +
+ (path->len ? (s_len(CRLF"Route: ") + path->len) : 0) +
+ s_len(CRLF"From: ") + sipping_from.len + s_len(";tag=") +
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0028-core-print-src-and-dst-addresses-in-tcp-error-log-me.patch b/debian/patches/upstream/0028-core-print-src-and-dst-addresses-in-tcp-error-log-me.patch
new file mode 100644
index 0000000..c213903
--- /dev/null
+++ b/debian/patches/upstream/0028-core-print-src-and-dst-addresses-in-tcp-error-log-me.patch
@@ -0,0 +1,155 @@
+From 16be09c270e5dafd5721129c68dde7e2ababed38 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Wed, 4 Nov 2015 10:08:02 +0100
+Subject: [PATCH] core: print src and dst addresses in tcp error log messages
+
+(cherry picked from commit 420a11873291cca93c8b43b5766f8661d46538c5)
+---
+ tcp_read.c | 53 +++++++++++++++++++++++++++++++++++++----------------
+ 1 file changed, 37 insertions(+), 16 deletions(-)
+
+diff --git a/tcp_read.c b/tcp_read.c
+index 2e1d3f2..bf07574 100644
+--- a/tcp_read.c
++++ b/tcp_read.c
+@@ -268,14 +268,19 @@ again:
+ }
+ }
+ LOG(cfg_get(core, core_cfg, corelog),
+- "error reading: %s (%d)\n", strerror(errno), errno);
++ "error reading: %s (%d) ([%s]:%u -> [%s]:%u)\n",
++ strerror(errno), errno,
++ ip_addr2a(&c->rcv.src_ip), c->rcv.src_port,
++ ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port);
+ return -1;
+ }
+ }else if (unlikely((bytes_read==0) ||
+ (*flags & RD_CONN_FORCE_EOF))){
+ c->state=S_CONN_EOF;
+ *flags|=RD_CONN_EOF;
+- LM_DBG("EOF on %p, FD %d\n", c, fd);
++ LM_DBG("EOF on %p, FD %d ([%s]:%u -> [%s]:%u)\n", c, fd,
++ ip_addr2a(&c->rcv.src_ip), c->rcv.src_port,
++ ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port);
+ }else{
+ if (unlikely(c->state==S_CONN_CONNECT || c->state==S_CONN_ACCEPT)){
+ TCP_STATS_ESTABLISHED(c->state);
+@@ -319,7 +324,9 @@ int tcp_read(struct tcp_connection *c, int* flags)
+ bytes_free=r->b_size- (int)(r->pos - r->buf);
+
+ if (unlikely(bytes_free==0)){
+- LM_ERR("buffer overrun, dropping\n");
++ LM_ERR("buffer overrun, dropping ([%s]:%u -> [%s]:%u)\n",
++ ip_addr2a(&c->rcv.src_ip), c->rcv.src_port,
++ ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port);
+ r->error=TCP_REQ_OVERRUN;
+ return -1;
+ }
+@@ -507,7 +514,7 @@ int tcp_read_headers(struct tcp_connection *c, int* read_flags)
+ p++;
+ goto skip;
+ } else {
+- LM_DBG("ERROR: no clen, p=%X\n", *p);
++ LM_DBG("no clen, p=%X\n", *p);
+ r->error=TCP_REQ_BAD_LEN;
+ }
+ }
+@@ -579,7 +586,7 @@ int tcp_read_headers(struct tcp_connection *c, int* read_flags)
+ p++;
+ goto skip;
+ } else {
+- LM_DBG("ERROR: no clen, p=%X\n", *p);
++ LM_DBG("no clen, p=%X\n", *p);
+ r->error=TCP_REQ_BAD_LEN;
+ }
+ }
+@@ -1367,7 +1374,9 @@ again:
+ init_dst_from_rcv(&dst, &con->rcv);
+
+ if (tcp_send(&dst, 0, CRLF, CRLF_LEN) < 0) {
+- LM_ERR("CRLF ping: tcp_send() failed\n");
++ LM_ERR("CRLF ping: tcp_send() failed ([%s]:%u -> [%s]:%u)\n",
++ ip_addr2a(&con->rcv.src_ip), con->rcv.src_port,
++ ip_addr2a(&con->rcv.dst_ip), con->rcv.dst_port);
+ }
+ ret = 0;
+ } else if (unlikely(req->state==H_STUN_END)) {
+@@ -1428,7 +1437,9 @@ again:
+ /*if we still have some unparsed bytes, try to parse them too*/
+ goto again;
+ } else if (unlikely(con->state==S_CONN_EOF)){
+- LM_DBG("EOF after reading complete request\n");
++ LM_DBG("EOF after reading complete request ([%s]:%u -> [%s]:%u)\n",
++ ip_addr2a(&con->rcv.src_ip), con->rcv.src_port,
++ ip_addr2a(&con->rcv.dst_ip), con->rcv.dst_port);
+ resp=CONN_EOF;
+ }
+ req->parsed=req->buf; /* fix req->parsed */
+@@ -1446,8 +1457,10 @@ void release_tcpconn(struct tcp_connection* c, long state, int unix_sock)
+ {
+ long response[2];
+
+- LM_DBG("releasing con %p, state %ld, fd=%d, id=%d\n",
+- c, state, c->fd, c->id);
++ LM_DBG("releasing con %p, state %ld, fd=%d, id=%d ([%s]:%u -> [%s]:%u)\n",
++ c, state, c->fd, c->id,
++ ip_addr2a(&c->rcv.src_ip), c->rcv.src_port,
++ ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port);
+ LM_DBG("extra_data %p\n", c->extra_data);
+ /* release req & signal the parent */
+ c->reader_pid=0; /* reset it */
+@@ -1479,8 +1492,11 @@ static ticks_t tcpconn_read_timeout(ticks_t t, struct timer_ln* tl, void* data)
+ /* if conn->state is ERROR or BAD => force timeout too */
+ if (unlikely(io_watch_del(&io_w, c->fd, -1, IO_FD_CLOSING)<0)){
+ LM_ERR("io_watch_del failed for %p"
+- " id %d fd %d, state %d, flags %x, main fd %d\n",
+- c, c->id, c->fd, c->state, c->flags, c->s);
++ " id %d fd %d, state %d, flags %x, main fd %d"
++ " ([%s]:%u -> [%s]:%u)\n",
++ c, c->id, c->fd, c->state, c->flags, c->s,
++ ip_addr2a(&c->rcv.src_ip), c->rcv.src_port,
++ ip_addr2a(&c->rcv.dst_ip), c->rcv.dst_port);
+ }
+ tcpconn_listrm(tcp_conn_lst, c, c_next, c_prev);
+ release_tcpconn(c, (c->state<0)?CONN_ERROR:CONN_RELEASE, tcpmain_sock);
+@@ -1594,9 +1610,11 @@ repeat_1st_read:
+ S_TO_TICKS(TCP_CHILD_TIMEOUT), t);
+ if (unlikely(io_watch_add(&io_w, s, POLLIN, F_TCPCONN, con)<0)){
+ LM_CRIT("io_watch_add failed for %p id %d fd %d, state %d, flags %x,"
+- " main fd %d, refcnt %d\n",
++ " main fd %d, refcnt %d ([%s]:%u -> [%s]:%u)\n",
+ con, con->id, con->fd, con->state, con->flags,
+- con->s, atomic_get(&con->refcnt));
++ con->s, atomic_get(&con->refcnt),
++ ip_addr2a(&con->rcv.src_ip), con->rcv.src_port,
++ ip_addr2a(&con->rcv.dst_ip), con->rcv.dst_port);
+ tcpconn_listrm(tcp_conn_lst, con, c_next, c_prev);
+ local_timer_del(&tcp_reader_ltimer, &con->timer);
+ goto con_error;
+@@ -1628,9 +1646,12 @@ read_error:
+ if (unlikely(io_watch_del(&io_w, con->fd, idx,
+ IO_FD_CLOSING) < 0)){
+ LM_CRIT("io_watch_del failed for %p id %d fd %d,"
+- " state %d, flags %x, main fd %d, refcnt %d\n",
++ " state %d, flags %x, main fd %d, refcnt %d"
++ " ([%s]:%u -> [%s]:%u)\n",
+ con, con->id, con->fd, con->state,
+- con->flags, con->s, atomic_get(&con->refcnt));
++ con->flags, con->s, atomic_get(&con->refcnt),
++ ip_addr2a(&con->rcv.src_ip), con->rcv.src_port,
++ ip_addr2a(&con->rcv.dst_ip), con->rcv.dst_port);
+ }
+ tcpconn_listrm(tcp_conn_lst, con, c_next, c_prev);
+ local_timer_del(&tcp_reader_ltimer, &con->timer);
+@@ -1696,7 +1717,7 @@ void tcp_receive_loop(int unix_sock)
+ goto error;
+ /* add the unix socket */
+ if (io_watch_add(&io_w, tcpmain_sock, POLLIN, F_TCPMAIN, 0)<0){
+- LM_CRIT("failed to add socket to the fd list\n");
++ LM_CRIT("failed to add tcp main socket to the fd list\n");
+ goto error;
+ }
+
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0029-tls-check-for-support-of-SSLv3-method.patch b/debian/patches/upstream/0029-tls-check-for-support-of-SSLv3-method.patch
new file mode 100644
index 0000000..43f729c
--- /dev/null
+++ b/debian/patches/upstream/0029-tls-check-for-support-of-SSLv3-method.patch
@@ -0,0 +1,32 @@
+From 946e996fed4bed9a62703cdd248777e2c7ab4a89 Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Mon, 9 Nov 2015 09:21:29 +0100
+Subject: [PATCH] tls: check for support of SSLv3 method
+
+- some versions of libssl removed support for SSLv3
+- reported by Victore Seva, FS#391
+
+(cherry picked from commit b1c6c2af7e96c0bcbdee4ff46f6faf19fdc75d9f)
+---
+ modules/tls/tls_init.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/tls/tls_init.c b/modules/tls/tls_init.c
+index bd14647..d7f3cef 100644
+--- a/modules/tls/tls_init.c
++++ b/modules/tls/tls_init.c
+@@ -344,9 +344,11 @@ static void init_ssl_methods(void)
+ ssl_methods[TLS_USE_SSLv2 - 1] = SSLv2_method();
+ #endif
+
++#ifndef OPENSSL_NO_SSL3_METHOD
+ ssl_methods[TLS_USE_SSLv3_cli - 1] = SSLv3_client_method();
+ ssl_methods[TLS_USE_SSLv3_srv - 1] = SSLv3_server_method();
+ ssl_methods[TLS_USE_SSLv3 - 1] = SSLv3_method();
++#endif
+
+ ssl_methods[TLS_USE_TLSv1_cli - 1] = TLSv1_client_method();
+ ssl_methods[TLS_USE_TLSv1_srv - 1] = TLSv1_server_method();
+--
+2.6.2
+
diff --git a/debian/patches/upstream/0030-Makefile.defs-removed-option-minline-all-stringops-f.patch b/debian/patches/upstream/0030-Makefile.defs-removed-option-minline-all-stringops-f.patch
new file mode 100644
index 0000000..62e2bb1
--- /dev/null
+++ b/debian/patches/upstream/0030-Makefile.defs-removed-option-minline-all-stringops-f.patch
@@ -0,0 +1,38 @@
+From b5d19f21718b94fb522db5b414d43e7fdb038ebf Mon Sep 17 00:00:00 2001
+From: Daniel-Constantin Mierla <miconda at gmail.com>
+Date: Mon, 9 Nov 2015 09:36:12 +0100
+Subject: [PATCH] Makefile.defs: removed option -minline-all-stringops for
+ compiler on mips
+
+- not supported, reported by Victor Seva, FS#392
+
+(cherry picked from commit 2718efddb8e87a269af012d8661d57887e7c4d86)
+---
+ Makefile.defs | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.defs b/Makefile.defs
+index f7bbc16..0b809a9 100644
+--- a/Makefile.defs
++++ b/Makefile.defs
+@@ -1272,13 +1272,15 @@ ifeq ($(CC_NAME), gcc)
+ CFLAGS=$(CC_OPT) -funroll-loops $(PROFILE)
+ #if gcc 5.0+, 4.5+ or 4.2+
+ ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+,$(CC_SHORTVER))))
+- CFLAGS+=-march=r3000 -minline-all-stringops \
++ CFLAGS+=-march=r3000 \
+ -ftree-vectorize -fno-strict-overflow
++ # not supported on mips: -minline-all-stringops
+ else
+ #if gcc 4.0+
+ ifeq ($(CC_SHORTVER), 4.x)
+- CFLAGS+=-march=r3000 -minline-all-stringops \
++ CFLAGS+=-march=r3000 \
+ -ftree-vectorize
++ # not supported on mips: -minline-all-stringops
+ else
+ #if gcc 3.4+
+ ifeq ($(CC_SHORTVER), 3.4)
+--
+2.6.2
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-voip/kamailio.git
More information about the Pkg-voip-commits
mailing list