From 356789940b9494bac64d9324afd1d293aff6728d Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Mon, 11 Apr 2016 16:17:19 +0200 Subject: [PATCH] MT#19009 add upstream fixes from 4.4 branch Change-Id: Ief951f7b6b3c738477f2538a1e327ec2d77e82c2 --- debian/patches/series | 7 ++ ...ess-family-AF_PACKET-on-l-iface_name.patch | 29 +++++ ...AF_PACKET-is-defined-at-compile-time.patch | 39 +++++++ ...x-URL-to-library-home-page-in-README.patch | 102 ++++++++++++++++++ ...a_addr-field-is-set-while-trying-to-.patch | 29 +++++ ...ck-for-ifa-ifa_addr-in-add_intefaces.patch | 34 ++++++ ...efile.defs-re-enable-mem-join-define.patch | 28 +++++ ...g-fix-dlg-from_bindaddr-name-parsing.patch | 26 +++++ 8 files changed, 294 insertions(+) create mode 100644 debian/patches/upstream/0001-core-skip-address-family-AF_PACKET-on-l-iface_name.patch create mode 100644 debian/patches/upstream/0002-core-test-if-AF_PACKET-is-defined-at-compile-time.patch create mode 100644 debian/patches/upstream/0033-evapi-Fix-URL-to-library-home-page-in-README.patch create mode 100644 debian/patches/upstream/0034-core-check-if-ifa_addr-field-is-set-while-trying-to-.patch create mode 100644 debian/patches/upstream/0035-core-common-check-for-ifa-ifa_addr-in-add_intefaces.patch create mode 100644 debian/patches/upstream/0036-Makefile.defs-re-enable-mem-join-define.patch create mode 100644 debian/patches/upstream/0037-dialog-fix-dlg-from_bindaddr-name-parsing.patch diff --git a/debian/patches/series b/debian/patches/series index 0e59008bf..8908e722d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,6 +1,13 @@ ## # upstream fixes # 4.4 +upstream/0001-core-skip-address-family-AF_PACKET-on-l-iface_name.patch +upstream/0002-core-test-if-AF_PACKET-is-defined-at-compile-time.patch +upstream/0033-evapi-Fix-URL-to-library-home-page-in-README.patch +upstream/0034-core-check-if-ifa_addr-field-is-set-while-trying-to-.patch +upstream/0035-core-common-check-for-ifa-ifa_addr-in-add_intefaces.patch +upstream/0036-Makefile.defs-re-enable-mem-join-define.patch +upstream/0037-dialog-fix-dlg-from_bindaddr-name-parsing.patch # # upsream fixes from master # diff --git a/debian/patches/upstream/0001-core-skip-address-family-AF_PACKET-on-l-iface_name.patch b/debian/patches/upstream/0001-core-skip-address-family-AF_PACKET-on-l-iface_name.patch new file mode 100644 index 000000000..edea66602 --- /dev/null +++ b/debian/patches/upstream/0001-core-skip-address-family-AF_PACKET-on-l-iface_name.patch @@ -0,0 +1,29 @@ +From 4992dfbb9f15cfb8ade99be4e6d3087146cb8e22 Mon Sep 17 00:00:00 2001 +From: schoberw +Date: Fri, 1 Apr 2016 10:34:11 +0200 +Subject: [PATCH] core: skip address family AF_PACKET on -l iface_name + +- socket_info.c: getifaddrs() returns AF_PACKET, AF_INET and AF_INET6 addressed of an interface. + AF_PACKET are of no use and breaks startup with an -l eth0:5060 cmd line param +(cherry picked from commit d7fca53e8c5409849ec044098a143e7254129c00) +--- + socket_info.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/socket_info.c b/socket_info.c +index d06fdcf..1d28977 100644 +--- a/socket_info.c ++++ b/socket_info.c +@@ -1205,6 +1205,9 @@ int add_interfaces(char* if_name, int family, unsigned short port, + + for (ifa = ifap; ifa; ifa = ifa->ifa_next) + { ++ /* skip AF_PACKET addr family since it is of no use later on */ ++ if (ifa->ifa_addr->sa_family == AF_PACKET) ++ continue; + if (if_name && strcmp(if_name, ifa->ifa_name)) + continue; + if (family && family != ifa->ifa_addr->sa_family) +-- +2.8.0.rc3 + diff --git a/debian/patches/upstream/0002-core-test-if-AF_PACKET-is-defined-at-compile-time.patch b/debian/patches/upstream/0002-core-test-if-AF_PACKET-is-defined-at-compile-time.patch new file mode 100644 index 000000000..1d295b499 --- /dev/null +++ b/debian/patches/upstream/0002-core-test-if-AF_PACKET-is-defined-at-compile-time.patch @@ -0,0 +1,39 @@ +From e6dd2c172be3712e8c468cbe7e55ba94d81a7b62 Mon Sep 17 00:00:00 2001 +From: Daniel-Constantin Mierla +Date: Fri, 1 Apr 2016 11:10:46 +0200 +Subject: [PATCH] core: test if AF_PACKET is defined at compile time + +- mac os x (and perhaps *BSDs) doesn't have it + +(cherry picked from commit 8543993e1f702aef80887c0e72b9bf67c62c1617) +--- + socket_info.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/socket_info.c b/socket_info.c +index 1d28977..cecfef9 100644 +--- a/socket_info.c ++++ b/socket_info.c +@@ -1205,16 +1205,18 @@ int add_interfaces(char* if_name, int family, unsigned short port, + + for (ifa = ifap; ifa; ifa = ifa->ifa_next) + { ++#ifdef AF_PACKET + /* skip AF_PACKET addr family since it is of no use later on */ + if (ifa->ifa_addr->sa_family == AF_PACKET) + continue; ++#endif + if (if_name && strcmp(if_name, ifa->ifa_name)) + continue; + if (family && family != ifa->ifa_addr->sa_family) + continue; + sockaddr2ip_addr(&addr, (struct sockaddr*)ifa->ifa_addr); + tmp=ip_addr2a(&addr); +- if (ifa->ifa_flags & IFF_LOOPBACK) ++ if (ifa->ifa_flags & IFF_LOOPBACK) + flags = SI_IS_LO; + else + flags = SI_NONE; +-- +2.8.0.rc3 + diff --git a/debian/patches/upstream/0033-evapi-Fix-URL-to-library-home-page-in-README.patch b/debian/patches/upstream/0033-evapi-Fix-URL-to-library-home-page-in-README.patch new file mode 100644 index 000000000..e49a7752d --- /dev/null +++ b/debian/patches/upstream/0033-evapi-Fix-URL-to-library-home-page-in-README.patch @@ -0,0 +1,102 @@ +From 87af066010ca0b89a4752fe593c091253b842d6c Mon Sep 17 00:00:00 2001 +From: "Olle E. Johansson" +Date: Sun, 3 Apr 2016 21:45:37 +0200 +Subject: [PATCH] evapi Fix URL to library home page in README + +--- + modules/evapi/README | 16 ++++++++-------- + modules/evapi/doc/evapi_admin.xml | 2 +- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/modules/evapi/README b/modules/evapi/README +index a8465ce..59fe136 100644 +--- a/modules/evapi/README ++++ b/modules/evapi/README +@@ -10,7 +10,7 @@ Daniel-Constantin Mierla + + + +- Copyright © 2014 asipto.com ++ Copyright © 2014 asipto.com + __________________________________________________________________ + + Table of Contents +@@ -109,7 +109,7 @@ Chapter 1. Admin Guide + + The following libraries or applications must be installed before + running Kamailio with this module loaded: +- * libev - http://software.schmorp.de/pkg/libev ++ * libev - http://software.schmorp.de/pkg/libev.html + + 3. Parameters + +@@ -158,7 +158,7 @@ modparam("evapi", "netstring_format", 0) + 4.2. evapi_async_relay(evdata) + 4.3. evapi_close() + +-4.1. evapi_relay(evdata) ++4.1. evapi_relay(evdata) + + Relay the event data given as parameter to connected applications. + +@@ -188,7 +188,7 @@ evapi_relay("{ \"event\": \"test\",\n \"data\": { \"fU\": \"$fU\" }\n}"); + }, + ... + +-4.2. evapi_async_relay(evdata) ++4.2. evapi_async_relay(evdata) + + Relay the event data given as parameter to connected applications. + Before evaluating the parameter, the request processing is suspended +@@ -210,7 +210,7 @@ evapi_async_relay("{ \"event\": \"suspend\",\n \"data\":" + " { \"index\": \"$T(id_index)\", \"label\": \"$T(id_label)\" }\n}"); + ... + +-4.3. evapi_close() ++4.3. evapi_close() + + Close evapi current client connection. + +@@ -232,7 +232,7 @@ event_route[evapi:connection-new] { + 5.2. evapi:connection-closed + 5.3. evapi:message-received + +-5.1. evapi:connection-new ++5.1. evapi:connection-new + + If defined, the module calls event_route[evapi:connection-new] when a + new client is connected. +@@ -242,7 +242,7 @@ event_route[evapi:connection-new] { + } + ... + +-5.2. evapi:connection-closed ++5.2. evapi:connection-closed + + If defined, the module calls event_route[evapi:connection-closed] when + a client connection is closed. +@@ -252,7 +252,7 @@ event_route[evapi:connection-closed] { + } + ... + +-5.3. evapi:message-received ++5.3. evapi:message-received + + If defined, the module calls event_route[evapi:message-received] when a + message is received from a client. +diff --git a/modules/evapi/doc/evapi_admin.xml b/modules/evapi/doc/evapi_admin.xml +index 574adef..30fa61d 100644 +--- a/modules/evapi/doc/evapi_admin.xml ++++ b/modules/evapi/doc/evapi_admin.xml +@@ -54,7 +54,7 @@ + + + +- libev - http://software.schmorp.de/pkg/libev ++ libev - http://software.schmorp.de/pkg/libev.html + + + +-- +2.8.0.rc3 + diff --git a/debian/patches/upstream/0034-core-check-if-ifa_addr-field-is-set-while-trying-to-.patch b/debian/patches/upstream/0034-core-check-if-ifa_addr-field-is-set-while-trying-to-.patch new file mode 100644 index 000000000..cd10e17b0 --- /dev/null +++ b/debian/patches/upstream/0034-core-check-if-ifa_addr-field-is-set-while-trying-to-.patch @@ -0,0 +1,29 @@ +From 6684be6b4c405ab24dd6a5a19267ceef6aa95503 Mon Sep 17 00:00:00 2001 +From: Daniel-Constantin Mierla +Date: Wed, 6 Apr 2016 18:55:57 +0200 +Subject: [PATCH] core: check if ifa_addr field is set while trying to skip + AF_PACKET interfaces + +- reported by Juha Heinanen + +(cherry picked from commit 1545b8de396e8e5d0ef24c9102beff18b3cf36e5) +--- + socket_info.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/socket_info.c b/socket_info.c +index cecfef9..95c6ee6 100644 +--- a/socket_info.c ++++ b/socket_info.c +@@ -1207,7 +1207,7 @@ int add_interfaces(char* if_name, int family, unsigned short port, + { + #ifdef AF_PACKET + /* skip AF_PACKET addr family since it is of no use later on */ +- if (ifa->ifa_addr->sa_family == AF_PACKET) ++ if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_PACKET) + continue; + #endif + if (if_name && strcmp(if_name, ifa->ifa_name)) +-- +2.8.0.rc3 + diff --git a/debian/patches/upstream/0035-core-common-check-for-ifa-ifa_addr-in-add_intefaces.patch b/debian/patches/upstream/0035-core-common-check-for-ifa-ifa_addr-in-add_intefaces.patch new file mode 100644 index 000000000..2ca965f30 --- /dev/null +++ b/debian/patches/upstream/0035-core-common-check-for-ifa-ifa_addr-in-add_intefaces.patch @@ -0,0 +1,34 @@ +From 49ec5fa5d9bb939b80ef3994b5f0c04e7525ab9f Mon Sep 17 00:00:00 2001 +From: Daniel-Constantin Mierla +Date: Wed, 6 Apr 2016 19:22:58 +0200 +Subject: [PATCH] core: common check for ifa->ifa_addr in add_intefaces + +- if no ip address associated with the network interface, it is not + useful anyhow + +(cherry picked from commit c395ae00d7970be0a857265e9324a50bcb00f4d0) +--- + socket_info.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/socket_info.c b/socket_info.c +index 95c6ee6..aa8928a 100644 +--- a/socket_info.c ++++ b/socket_info.c +@@ -1205,9 +1205,12 @@ int add_interfaces(char* if_name, int family, unsigned short port, + + for (ifa = ifap; ifa; ifa = ifa->ifa_next) + { ++ /* skip if no IP addr associated with the interface */ ++ if (ifa->ifa_addr==0) ++ continue; + #ifdef AF_PACKET + /* skip AF_PACKET addr family since it is of no use later on */ +- if (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_PACKET) ++ if (ifa->ifa_addr->sa_family == AF_PACKET) + continue; + #endif + if (if_name && strcmp(if_name, ifa->ifa_name)) +-- +2.8.0.rc3 + diff --git a/debian/patches/upstream/0036-Makefile.defs-re-enable-mem-join-define.patch b/debian/patches/upstream/0036-Makefile.defs-re-enable-mem-join-define.patch new file mode 100644 index 000000000..5edd16552 --- /dev/null +++ b/debian/patches/upstream/0036-Makefile.defs-re-enable-mem-join-define.patch @@ -0,0 +1,28 @@ +From b21b9cd9cb6a08b9bfc9d025b4e6a64a12e50d65 Mon Sep 17 00:00:00 2001 +From: Daniel-Constantin Mierla +Date: Fri, 8 Apr 2016 15:10:55 +0200 +Subject: [PATCH] Makefile.defs: re-enable mem join define + +- lost when introduced the option to select the memory manager by + command line parameter -x + +(cherry picked from commit 33c6aafcd46269ce283908f49fbf70b9d73624b1) +--- + Makefile.defs | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile.defs b/Makefile.defs +index 26205e8..245f9b4 100644 +--- a/Makefile.defs ++++ b/Makefile.defs +@@ -664,6 +664,7 @@ C_DEFS= $(extra_defs) \ + # debugging symbols in all cases (-g). --andrei + + # memory managers and related debug mode ++C_DEFS+= -DMEM_JOIN_FREE + # enable f_malloc + C_DEFS+= -DF_MALLOC + # enable q_malloc +-- +2.8.0.rc3 + diff --git a/debian/patches/upstream/0037-dialog-fix-dlg-from_bindaddr-name-parsing.patch b/debian/patches/upstream/0037-dialog-fix-dlg-from_bindaddr-name-parsing.patch new file mode 100644 index 000000000..a4376de00 --- /dev/null +++ b/debian/patches/upstream/0037-dialog-fix-dlg-from_bindaddr-name-parsing.patch @@ -0,0 +1,26 @@ +From 1ec385ccd9054952b86cc976ae1debe70dc8d297 Mon Sep 17 00:00:00 2001 +From: Camille Oudot +Date: Mon, 11 Apr 2016 17:02:03 +0200 +Subject: [PATCH] dialog: fix $dlg(from_bindaddr) name parsing + +(cherry picked from commit f95789fd39fcce7b3aa3a0ab8665664afd8bc196) +--- + modules/dialog/dlg_var.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/dialog/dlg_var.c b/modules/dialog/dlg_var.c +index e8c84ed..450f8a5 100644 +--- a/modules/dialog/dlg_var.c ++++ b/modules/dialog/dlg_var.c +@@ -877,7 +877,7 @@ int pv_parse_dlg_name(pv_spec_p sp, str *in) + else goto error; + break; + case 13: +- if(strncmp(in->s, "from_bindaddr", 20)==0) ++ if(strncmp(in->s, "from_bindaddr", 13)==0) + sp->pvp.pvn.u.isname.name.n = 2; + else goto error; + break; +-- +2.8.0.rc3 +