Fri Mar 6 13:01:47 2020 UTC ()
libexosip: Update to 5.1.0

eXosip2 (5.1.0) - 2020-01-16
	* new API:
	Generate random string: (low entropy, only hexa)
	int eXosip_hexa_generate_random(char *val, int val_size);
	Generate random string: (high entropy when compiled with openssl)
	int eXosip_byte_generate_random(char *val, int val_size)

	* provide more entropy with eXosip_byte_generate_random (with openssl when available).
	* fix TLS security issue reported by Alexander Traud regarding hostname validation when using NAPTR/SRV.
	* add support for epoll (detected by configured) // becomes the default on linux platforms with autotools
	* fix bug #56839: The cnonce should not be static -this is identified as replay attack by some services-.
	* fix tcp and tls connection failure detection (accelerate error detection and recovery)
	* fix: fixed a crash with DTLS

eXosip2 (5.1.0) - 2019-03-27
	* minor API update:
	  API parameter change: eXosip_call_build_ack/eXosip_call_send_ack API to use tid instead of did as parameter.

	* new API: add an API to insert one extra header in BYE:
	  int eXosip_call_terminate_with_header(struct eXosip_t *excontext, int cid, int did, const char *header_name, const char *header_value);
	  void eXosip_dnsutils_release(struct osip_naptr *naptr_record); required after usage of eXosip_dnsutils_naptr.

	* new OPTION:
	EXOSIP_OPT_SET_SESSIONTIMERS_FORCE option to force session timer to be used when remote side does not support it.

	* structure change:
	new param in eXosip_tls_credentials_t for pinning: "public_key_pinned". A file with the expected public key of server.
	If you use eXosip_tls_ctx_t/eXosip_tls_credentials_t/EXOSIP_OPT_SET_TLS_CERTIFICATES_INFO, you need to recompile.

	* fix processing response out of transaction. (avoid incorrect logs and extra work)
	* fix https://savannah.nongnu.org/bugs/?54628 where ACK was only retransmitted for initial outgoing INVITE.
	  fix: retransmit ACK for both initial INVITE and re-INVITE.
	  fix: retransmit ACK for 2xx from forking (with a BYE) even if call does not exist.
	  ACK for "old transaction" within the established dialog won't be retransmitted because the parameter only hold the latest ACK.
	* fix bug report: https://savannah.nongnu.org/bugs/index.php?54624
	  another patch to fix more issue related to cseq & PRACK.
	  The newer code better handle forking use-case with PRACK.
	  The newer code better handle several 1xx from same user.
	* fix bug report: https://savannah.nongnu.org/bugs/index.php?54624 cseq wasn't increasing after a PRACK.
	* improve portability code, detection of headers, windows compilation detection, sockaddr_storage was not correctly defined.
	* fix udp layer: set ipbuf before using it.
	* fix: allow socket descriptor to be 0 (posix requirement).
	* fix: compile with any openssl version.
	* allow compilation with OPENSSL_NO_DH, OPENSSL_NO_RSA, OPENSSL_NO_ECDH and/or OPENSSL_NO_DEPRECATED.
	* remove old windows specific RSA obsolete code.
	* add in eXtl_tls.c some explanations on usage of TLS with eXosip2. READ THEM.
	* improve reliability for naptr/srv lookup (but still a short time).
	* fix/improve _eXosip_mark_registration_expired: it was working correctly only if registration had previously failed.
	* fix: attach call/dialog to CANCEL transaction (so EXOSIP_CALL_MESSAGE_ANSWERED will be received instead of EXOSIP_MESSAGE_ANSWERED).
	* windows: fix DnsQuery to use UTF8 even if compiled without UNICODE (not applicable if you use c-ares).
	* windows: add ENUM capability and improve NAPTR/SRV record (not applicable if you use c-ares).
	* windows: you should use c-ares AND you should compile with UNICODE. (much better).
	* add ability to define a dnsserver when doing NAPTR and SRV record (c-ares only).
	* format of domain string for "eXosip_dnsutils_naptr" is "domain.com!+AUS|IP_DNSSERVER".
	* fix for on android, DNS are not available any more (restricted access) (c-ares only).
	* add support ENUM and regex for res_query API (not applicable if you use c-ares).
	* sync with newer osip: use newer osip_naptr & osip_srv_record structures to hold ENUM sip result and
	  improvements to retreive (and release) it via eXosip_dnsutils_naptr and eXosip_dnsutils_release APIs.
	* TLS improvments: simplify client and server config, add ECDH cipher suite if missing,
	  password for private key is optional, add support for public key pinning.
	* improve to report EXOSIP_CALL_NOANSWER upon transport error for INVITE for faster detection.
	* fix possible memory leak for X509 server certificate.
	* fix crash if dialog has been already closed between 200ok and a received BYE.
	* improve windows pipe replacement (use a free allocated port automatically).
	* fix to optimize detection of TCP or TLS establishement, fix to optimize sending REGISTER after establishement.
	* patch for call transfer to keep dialog after BYE, in order to be able to handle incoming/outgoing NOTIFY within calls after BYE.
	* handle incoming UPDATE from alternative dialogs in early dialog mode.
	* fix to reject any NOTIFY without established dialog coming later than 64 seconds after initial SUBSCRIBE.
	* After a NAPTR query, some DNS server returns SUCCESS without NAPTR answers. In such use-case, fallback to manual SRV records.
	* add SOCK_CLOEXEC option to sockets // add missing SO_KEEPALIVE options on TLS socket.
	* EXOSIP_OPT_ENABLE_IPV6 now support 0(ipv4 only), 1(ipv6 only) and 2(ipv4 OR ipv6).
	  With option 2, choice is made based on DNS and the stack can fallback between IPv4 and IPv6.
	* fix possible memory leak when using wrong tid for eXosip_insubscription_send_answer.
	* fix possible memory leak upon allocation error.
	* fix leak upon syntax error in parameters provided for PUBLISH.
	* fix leak upon syntax error in parameters provided for REGISTER.
	* increase size of proto_ifs for IPv6 local address.
	* RFC 2617 erratum: Errata ID: 1649 (minor issue).
	* _exosip_isipv4addr: fix checking IPv4 address (minor issue).
	* other minor updates.

eXosip2 (5.0.0)
	* major API update: add a new parameter to eXosip_call_build_prack in order to create the PRACK
	for this specific response and not for the latest.
	* major API update: removal of eX_refer.h API. REFER are now handled with subscriptions APIs.
	eXosip_refer_build_request removed
	eXosip_refer_send_request removed
	* major API update: subscription now handle both SUBSCRIBE and REFER with the same APIs:
	eXosip_subscription_build_initial_refer ADDED
	eXosip_subscribe_build_initial_request renamed eXosip_subscription_build_initial_subscribe
	eXosip_subscribe_send_initial_request renamed eXosip_subscription_send_initial_request
	eXosip_subscribe_build_refresh_request renamed eXosip_subscription_build_refresh_request
	eXosip_subscribe_send_refresh_request renamed eXosip_subscription_send_refresh_request
	eXosip_subscribe_remove renamed eXosip_subscription_remove
	EXOSIP_IN_SUBSCRIPTION_* and EXOSIP_SUBSCRIPTION_* events may now relate to REFER subscription.
	* major API change: eXosip_automatic_refresh is obsolete and has been removed.
	only use eXosip_automatic_action instead
	* API update:
	eXosip_options_send_request returns a positive transaction id (tid) on success.
	eXosip_publish returns a positive transaction id (tid) on success.
	note: eXosip_message_send_request was already returing the transaction id (tid) on success.
	* new API options:
	EXOSIP_OPT_REMOVE_PREROUTESET: to keep Route Set
	EXOSIP_OPT_SET_SIP_INSTANCE: define +sip.instance parameter in Contact headers
	EXOSIP_OPT_ENABLE_USE_EPHEMERAL_PORT: option to use/not use ephemeral port in Contact.
	EXOSIP_OPT_ENABLE_REUSE_TCP_PORT: option to reuse port.
	EXOSIP_OPT_AUTO_MASQUERADE_CONTACT: option to enable automatic masquerading for Contact headers.
	EXOSIP_OPT_UDP_LEARN_PORT: obsolete and will be removed in the future.
	EXOSIP_OPT_SET_DEFAULT_CONTACT_DISPLAYNAME: define a display name to be added in Contact headers
	* new API options: (high load traffic use-case: DO NOT USE FOR COMMON USAGE)
	EXOSIP_OPT_SET_MAX_MESSAGE_TO_READ: set the number of message to read at once for each network processing.
	EXOSIP_OPT_SET_MAX_READ_TIMEOUT: set the period in nano seconds during we read for sip message.
	EXOSIP_OPT_GET_STATISTICS: retreive numerous statistics.
	* rewrite/update autotools and ./configure options
	  --enable-pthread=[autodetect|force]
	    autodetect POSIX threads or force -DHAVE_PTHREAD [default=autodetect]
	  --enable-semaphore=[autodetect|semaphore|sysv]
	    select your prefered semaphore [default=autodetect].

	* fix selection of Contact header for 3xx (default to a tel/sip/sips one with any transport)
	* keep to call context enough time to handle redirection.
	* fix race condition for processing SRV results (not likely to happen)
	* fix bug when reading sip message longuer than 8000 over UDP and TLS.
	* improve eXosip_add_authentication_info to avoid duplicate credentials
	* if a SUBSCRIBE is rejected, the context will be released automatically
	* add failover after a DNS failure.
	* fallback to SRV even if we receive a NOTFOUND reply for NAPTR.
	* fix route set with strict router.
	* rename usage of -DHAVE_CARES_H into -DHAVE_ARES_H real name of header.
	* remove warnings mainly related to socket API (getnameinfo/bind/accept/recv/connect/sendto)
	* rewrite all loop using iterator to improve performance (useful for high load traffic)
	* rewrite Via and Contact management: both will now contains the IP of the real network interface
	  instead of the default one.
	* improve NAPTR failover, more reliable // add failover for 503 answer
	* improve interval to force REGISTER refresh upon network error and failover.
	* improve TCP socket management
	* add a callback to simplify/optimize/accelerate usage of wakelocks in android application using exosip2.
	* improve TLS, add TLSv1.1, TLSv1.2, disable weak cipher (FREAK) and enable ECDHE cipher.
	* add support for SNI tls extension (openssl 1.0.2)
	* add try/except on windows to catch possible missing qwave (windows server)
	* implement a timeout (32 seconds) for establishing a TCP and TLS connection.
	* if a connection is failing, report the failure asap.
	* fix memory leak in eXosip_call_get_referto
	* remove extra connect on socket for TCP and TLS (not allowed for tcp stream)
	* fix to correctly discard INVITE retransmission with same branch received after original INVITE was replied
	* add WSACleanup for each WSAStartup call (windows)
	* do not include contact in BYE and CANCEL
	* fix to use sips when appropriate (in Contact)
	* fix to avoid handling negative content-length
	* do not start naptr for incoming transactions.
	* fix bug when rseq is empty but exist
	* add support for QOS on windows.
	* improve connection handling/failure detection, keep alive options, in TLS, TCP, UDP.
	* update static IDs (cid/did/rid/pid) to use range from 0 to INT_MAX to avoid possible collision
	* other minor updates.


(nia)
diff -r1.6 -r1.7 pkgsrc/net/libexosip/Makefile
diff -r1.1 -r1.2 pkgsrc/net/libexosip/PLIST
diff -r1.5 -r1.6 pkgsrc/net/libexosip/buildlink3.mk
diff -r1.3 -r1.4 pkgsrc/net/libexosip/distinfo
diff -r1.2 -r0 pkgsrc/net/libexosip/patches/patch-aa
diff -r1.1 -r0 pkgsrc/net/libexosip/patches/patch-ab
diff -r0 -r1.1 pkgsrc/net/libexosip/patches/patch-src_eXutils.c
diff -r0 -r1.1 pkgsrc/net/libexosip/patches/patch-tools_sip__reg.c

cvs diff -r1.6 -r1.7 pkgsrc/net/libexosip/Makefile (expand / switch to unified diff)

--- pkgsrc/net/libexosip/Makefile 2020/01/18 23:33:17 1.6
+++ pkgsrc/net/libexosip/Makefile 2020/03/06 13:01:47 1.7
@@ -1,26 +1,25 @@ @@ -1,26 +1,25 @@
1# $NetBSD: Makefile,v 1.6 2020/01/18 23:33:17 rillig Exp $ 1# $NetBSD: Makefile,v 1.7 2020/03/06 13:01:47 nia Exp $
2 2
3DISTNAME= libeXosip2-4.1.0 3DISTNAME= libexosip2-5.1.1
4PKGREVISION= 2 4PKGNAME= ${DISTNAME:S/exosip/eXosip/1}
5CATEGORIES= devel net 5CATEGORIES= net devel
6MASTER_SITES= http://download.savannah.nongnu.org/releases/exosip/ 6MASTER_SITES= https://download.savannah.nongnu.org/releases/exosip/
7 7
8MAINTAINER= schwarz@NetBSD.org 8MAINTAINER= schwarz@NetBSD.org
9HOMEPAGE= https://savannah.nongnu.org/projects/exosip 9HOMEPAGE= https://savannah.nongnu.org/projects/exosip
10COMMENT= The Extended Open SIP library 10COMMENT= The Extended Open SIP library
11LICENSE= gnu-gpl-v2 11LICENSE= gnu-gpl-v2
12 12
13GNU_CONFIGURE= yes 13GNU_CONFIGURE= yes
14USE_LIBTOOL= yes 14USE_LIBTOOL= yes
15USE_TOOLS+= pkg-config 15USE_TOOLS+= pkg-config
16USE_FEATURES+= getopt_long 16USE_FEATURES+= getopt_long
17 17
18.include "options.mk" 
19 
20LIBS.SunOS+= -lsocket -lnsl 18LIBS.SunOS+= -lsocket -lnsl
21LIBS.Darwin+= -framework CoreServices -framework Security 19LIBS.Darwin+= -framework CoreServices -framework Security
22 20
 21.include "options.mk"
23.include "../../net/libcares/buildlink3.mk" 22.include "../../net/libcares/buildlink3.mk"
24.include "../../devel/libosip/buildlink3.mk" 23.include "../../devel/libosip/buildlink3.mk"
25.include "../../mk/pthread.buildlink3.mk" 24.include "../../mk/pthread.buildlink3.mk"
26.include "../../mk/bsd.pkg.mk" 25.include "../../mk/bsd.pkg.mk"

cvs diff -r1.1 -r1.2 pkgsrc/net/libexosip/PLIST (expand / switch to unified diff)

--- pkgsrc/net/libexosip/PLIST 2013/07/16 02:12:26 1.1
+++ pkgsrc/net/libexosip/PLIST 2020/03/06 13:01:47 1.2
@@ -1,12 +1,11 @@ @@ -1,12 +1,11 @@
1@comment $NetBSD: PLIST,v 1.1 2013/07/16 02:12:26 rodent Exp $ 1@comment $NetBSD: PLIST,v 1.2 2020/03/06 13:01:47 nia Exp $
2bin/sip_reg 2bin/sip_reg
3include/eXosip2/eX_call.h 3include/eXosip2/eX_call.h
4include/eXosip2/eX_message.h 4include/eXosip2/eX_message.h
5include/eXosip2/eX_options.h 5include/eXosip2/eX_options.h
6include/eXosip2/eX_publish.h 6include/eXosip2/eX_publish.h
7include/eXosip2/eX_refer.h 
8include/eXosip2/eX_register.h 7include/eXosip2/eX_register.h
9include/eXosip2/eX_setup.h 8include/eXosip2/eX_setup.h
10include/eXosip2/eX_subscribe.h 9include/eXosip2/eX_subscribe.h
11include/eXosip2/eXosip.h 10include/eXosip2/eXosip.h
12lib/libeXosip2.la 11lib/libeXosip2.la

cvs diff -r1.5 -r1.6 pkgsrc/net/libexosip/buildlink3.mk (expand / switch to unified diff)

--- pkgsrc/net/libexosip/buildlink3.mk 2020/01/18 21:48:19 1.5
+++ pkgsrc/net/libexosip/buildlink3.mk 2020/03/06 13:01:47 1.6
@@ -1,22 +1,22 @@ @@ -1,22 +1,22 @@
1# $NetBSD: buildlink3.mk,v 1.5 2020/01/18 21:48:19 jperkin Exp $ 1# $NetBSD: buildlink3.mk,v 1.6 2020/03/06 13:01:47 nia Exp $
2 2
3BUILDLINK_TREE+= libeXosip2 3BUILDLINK_TREE+= libeXosip2
4 4
5.if !defined(LIBEXOSIP2_BUILDLINK3_MK) 5.if !defined(LIBEXOSIP2_BUILDLINK3_MK)
6LIBEXOSIP2_BUILDLINK3_MK:= 6LIBEXOSIP2_BUILDLINK3_MK:=
7 7
8BUILDLINK_API_DEPENDS.libeXosip2+= libeXosip2>=3.5.0 8BUILDLINK_API_DEPENDS.libeXosip2+= libeXosip2>=3.5.0
9BUILDLINK_ABI_DEPENDS.libeXosip2?= libeXosip2>=4.1.0nb2 9BUILDLINK_ABI_DEPENDS.libeXosip2+= libeXosip2>=4.1.0nb2
10BUILDLINK_PKGSRCDIR.libeXosip2?= ../../net/libexosip 10BUILDLINK_PKGSRCDIR.libeXosip2?= ../../net/libexosip
11 11
12pkgbase := libeXosip2 12pkgbase := libeXosip2
13.include "../../mk/pkg-build-options.mk" 13.include "../../mk/pkg-build-options.mk"
14 14
15.if !empty(PKG_BUILD_OPTIONS.libeXosip2:Mopenssl) 15.if !empty(PKG_BUILD_OPTIONS.libeXosip2:Mopenssl)
16.include "../../security/openssl/buildlink3.mk" 16.include "../../security/openssl/buildlink3.mk"
17.endif 17.endif
18 18
19.include "../../net/libcares/buildlink3.mk" 19.include "../../net/libcares/buildlink3.mk"
20.include "../../devel/libosip/buildlink3.mk" 20.include "../../devel/libosip/buildlink3.mk"
21.include "../../mk/pthread.buildlink3.mk" 21.include "../../mk/pthread.buildlink3.mk"
22.endif # LIBEXOSIP2_BUILDLINK3_MK 22.endif # LIBEXOSIP2_BUILDLINK3_MK

cvs diff -r1.3 -r1.4 pkgsrc/net/libexosip/distinfo (expand / switch to unified diff)

--- pkgsrc/net/libexosip/distinfo 2015/11/04 00:35:09 1.3
+++ pkgsrc/net/libexosip/distinfo 2020/03/06 13:01:47 1.4
@@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
1$NetBSD: distinfo,v 1.3 2015/11/04 00:35:09 agc Exp $ 1$NetBSD: distinfo,v 1.4 2020/03/06 13:01:47 nia Exp $
2 2
3SHA1 (libeXosip2-4.1.0.tar.gz) = f85e93227f772acac1b3e17b69c6b8a708336ba8 3SHA1 (libexosip2-5.1.1.tar.gz) = df8f43e138d1e1c6e7574fe97243318c2fdfb446
4RMD160 (libeXosip2-4.1.0.tar.gz) = 816ef497a6ddaf3953a2b6fd490ad8061151fbfe 4RMD160 (libexosip2-5.1.1.tar.gz) = 5a4e28f9e4ce321d223747f92ff878dd6997efd5
5SHA512 (libeXosip2-4.1.0.tar.gz) = a7f9584a391b652371319329c0f5064b290e6ea04a75dc1cb9c28da3c17542b1364acfe1c74261fa6d3243d23554dcf3a2eabec388100a85bbfa261bb30a478d 5SHA512 (libexosip2-5.1.1.tar.gz) = cec5931484aa1a5e4a0679cc715da163df9429016ad74841a518c52c2bea6d9038a312b252802607d9a836bd2e598e2f3a4a24a9f63b34a0fb8c737f32329b96
6Size (libeXosip2-4.1.0.tar.gz) = 530997 bytes 6Size (libexosip2-5.1.1.tar.gz) = 630264 bytes
7SHA1 (patch-aa) = 9e3482cb6cbe00cc512dca313904f0e671a180df 7SHA1 (patch-src_eXutils.c) = d4ad34fdb94c5f7b0bb6259521450efe459cc650
8SHA1 (patch-ab) = 929e7949d783a6065bb34c1a622284ad4ad24603 8SHA1 (patch-tools_sip__reg.c) = b2b5d03ef89207d748c35e36802f4193b103ea56

File Deleted: pkgsrc/net/libexosip/patches/Attic/patch-aa

File Deleted: pkgsrc/net/libexosip/patches/Attic/patch-ab

File Added: pkgsrc/net/libexosip/patches/patch-src_eXutils.c
$NetBSD: patch-src_eXutils.c,v 1.1 2020/03/06 13:01:47 nia Exp $

Defines INADDR_NONE, which is needed on Solaris.

--- src/eXutils.c.orig	2020-01-17 12:52:50.000000000 +0000
+++ src/eXutils.c
@@ -84,6 +84,10 @@
 #include <unistd.h>
 #endif
 
+#ifndef INADDR_NONE
+#define INADDR_NONE	((unsigned long) -1)	/* needed on Solaris */
+#endif
+
 int
 _eXosip_closesocket (SOCKET_TYPE sock)
 {

File Added: pkgsrc/net/libexosip/patches/patch-tools_sip__reg.c
$NetBSD: patch-tools_sip__reg.c,v 1.1 2020/03/06 13:01:47 nia Exp $

Pull in NetBSD compatibility headers for use with other headers.

--- tools/sip_reg.c.orig	2020-01-16 21:29:27.000000000 +0000
+++ tools/sip_reg.c
@@ -60,8 +60,14 @@
 
 #if !defined(WIN32) && !defined(_WIN32_WCE) && !defined(__arc__)
 #define _GNU_SOURCE
+#if defined(HAVE_NBCOMPAT_H)
+#include <nbcompat/config.h>	/* needed for the other headers */
+#include <nbcompat/cdefs.h>	/* needed for the other headers */
+#include <nbcompat/getopt.h>
+#else
 #include <getopt.h>
 #endif
+#endif
 
 #define PROG_NAME "sipreg"
 #define PROG_VER  "1.0"