New patches:
[configure sun studio 64
mike@jerris.com**20080227210618] {
hunk ./configure.ac 65
+
+AC_DEFUN([AX_COMPILER_VENDOR],
+[
+AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
+ [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
+ # note: don't check for gcc first since some other compilers define __GNUC__
+ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
+ vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
+#if !($vencpp)
+ thisisanerror;
+#endif
+])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
+ done
+ ])
+])
+
+AX_COMPILER_VENDOR
+
+# Enable 64 bit build
+AC_ARG_ENABLE(64,
+[AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="no"])
+
+if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
+ if test "${enable_64}" = "yes"; then
+ SOFIA_CFLAGS="$SOFIA_CFLAGS -m64"
+ LDFLAGS="-m64 -Wl,-64"
+ export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig
+ fi
+fi
}
[func name clonflict
mike@jerris.com**20080227210645] {
hunk ./libsofia-sip-ua/bnf/bnf.c 852
- if (s[len] == '\0' && inet_pton(AF_INET6, s, addr) == 1) {
+ if (s[len] == '\0' && su_inet_pton(AF_INET6, s, addr) == 1) {
hunk ./libsofia-sip-ua/bnf/bnf.c 871
- if (s[len] == '\0' && inet_pton(AF_INET, s, addr) == 1)
+ if (s[len] == '\0' && su_inet_pton(AF_INET, s, addr) == 1)
hunk ./libsofia-sip-ua/nta/nta.c 1821
- inet_ntop(su->su_family, SU_ADDR(su), host, sizeof host);
+ su_inet_ntop(su->su_family, SU_ADDR(su), host, sizeof host);
hunk ./libsofia-sip-ua/nta/nta.c 7535
- inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
+ su_inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/nta/nta.c 9648
- inet_ntop(AF_INET6, &aaaa->aaaa_addr, addr, sizeof(addr));
+ su_inet_ntop(AF_INET6, &aaaa->aaaa_addr, addr, sizeof(addr));
hunk ./libsofia-sip-ua/nta/nta.c 9731
- inet_ntop(AF_INET, &a->a_addr, addr, sizeof(addr));
+ su_inet_ntop(AF_INET, &a->a_addr, addr, sizeof(addr));
hunk ./libsofia-sip-ua/nth/nth_client.c 1078
- inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
+ su_inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/sresolv/sres.c 169
-int inet_pton(int af, char const *src, void *dst);
+int su_inet_pton(int af, char const *src, void *dst);
+#else
+#define su_inet_pton inet_pton
hunk ./libsofia-sip-ua/sresolv/sres.c 174
-const char *inet_ntop(int af, void const *src, char *dst, size_t size);
+const char *su_inet_ntop(int af, void const *src, char *dst, size_t size);
+#else
+#define su_inet_ntop inet_ntop
hunk ./libsofia-sip-ua/sresolv/sres.c 2426
- err = inet_pton(sa->sa_family = AF_INET6, server, &sin6->sin6_addr);
+ err = su_inet_pton(sa->sa_family = AF_INET6, server, &sin6->sin6_addr);
hunk ./libsofia-sip-ua/sresolv/sres.c 2433
- err = inet_pton(sa->sa_family = AF_INET, server, &sin->sin_addr);
+ err = su_inet_pton(sa->sa_family = AF_INET, server, &sin->sin_addr);
hunk ./libsofia-sip-ua/sresolv/sres.c 2521
- inet_ntop(dns->dns_addr->ss_family, SS_ADDR(dns->dns_addr),
+ su_inet_ntop(dns->dns_addr->ss_family, SS_ADDR(dns->dns_addr),
hunk ./libsofia-sip-ua/sresolv/sres.c 2606
- inet_ntop(family, addr, ipaddr, sizeof ipaddr);
+ su_inet_ntop(family, addr, ipaddr, sizeof ipaddr);
hunk ./libsofia-sip-ua/sresolv/sres.c 2611
- inet_ntop(family, addr, ipaddr, sizeof ipaddr);
+ su_inet_ntop(family, addr, ipaddr, sizeof ipaddr);
hunk ./libsofia-sip-ua/sresolv/sres.c 3220
- inet_ntop(from->ss_family, SS_ADDR(from),
+ su_inet_ntop(from->ss_family, SS_ADDR(from),
hunk ./libsofia-sip-ua/sresolv/sres.c 3284
- inet_ntop(AF_INET, in_addr, buf, sizeof(buf));
+ su_inet_ntop(AF_INET, in_addr, buf, sizeof(buf));
hunk ./libsofia-sip-ua/sresolv/sres.c 3290
- inet_ntop(AF_INET6, in_addr, buf, sizeof(buf));
+ su_inet_ntop(AF_INET6, in_addr, buf, sizeof(buf));
hunk ./libsofia-sip-ua/sresolv/sres.c 3417
- inet_ntop(AF_INET, &sin->sin_addr, host, sizeof host);
+ su_inet_ntop(AF_INET, &sin->sin_addr, host, sizeof host);
hunk ./libsofia-sip-ua/sresolv/sres.c 3422
- inet_ntop(AF_INET6, &sin6->sin6_addr, host, sizeof host);
+ su_inet_ntop(AF_INET6, &sin6->sin6_addr, host, sizeof host);
hunk ./libsofia-sip-ua/stun/stun.c 809
- inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
+ su_inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/stun/stun.c 823
- inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
+ su_inet_ntop(su->su_family, SU_ADDR(su), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/stun/stun.c 870
- inet_ntop(family, SU_ADDR(su), addr, sizeof(addr))));
+ su_inet_ntop(family, SU_ADDR(su), addr, sizeof(addr))));
hunk ./libsofia-sip-ua/stun/stun.c 1699
- inet_ntop(recv.su_family, SU_ADDR(&recv), addr, sizeof(addr)),
+ su_inet_ntop(recv.su_family, SU_ADDR(&recv), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/stun/stun.c 2019
- inet_ntop(AF_INET, SU_ADDR(su), addr, sizeof(addr))));
+ su_inet_ntop(AF_INET, SU_ADDR(su), addr, sizeof(addr))));
hunk ./libsofia-sip-ua/stun/stun.c 2037
- inet_ntop(af, SU_ADDR(li->li_addr), addr, sizeof(addr))));
+ su_inet_ntop(af, SU_ADDR(li->li_addr), addr, sizeof(addr))));
hunk ./libsofia-sip-ua/stun/stun.c 2763
- inet_ntop(y_addr.su_family, SU_ADDR(&y_addr), addr, sizeof(addr)),
+ su_inet_ntop(y_addr.su_family, SU_ADDR(&y_addr), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/stun/stun.c 2951
- inet_ntop(sa->su_family, SU_ADDR(sa), addr, sizeof(addr)),
+ su_inet_ntop(sa->su_family, SU_ADDR(sa), addr, sizeof(addr)),
hunk ./libsofia-sip-ua/stun/stun_common.c 225
- inet_ntop(addr->su_family, SU_ADDR(addr), ipaddr, sizeof(ipaddr)),
+ su_inet_ntop(addr->su_family, SU_ADDR(addr), ipaddr, sizeof(ipaddr)),
hunk ./libsofia-sip-ua/stun/stun_common.c 642
- inet_ntop(to_addr->su_family, SU_ADDR(to_addr), ipaddr, sizeof(ipaddr));
+ su_inet_ntop(to_addr->su_family, SU_ADDR(to_addr), ipaddr, sizeof(ipaddr));
hunk ./libsofia-sip-ua/stun/stun_mini.c 186
- inet_ntop(sin->sin_family, &sin->sin_addr, buffer, sizeof buffer);
+ su_inet_ntop(sin->sin_family, &sin->sin_addr, buffer, sizeof buffer);
hunk ./libsofia-sip-ua/su/inet_ntop.c 48
-inet_ntop(int af, void const *src, char *dst, size_t size)
+su_inet_ntop(int af, void const *src, char *dst, size_t size)
hunk ./libsofia-sip-ua/su/inet_pton.c 48
-inet_pton(int af, const char * src, void * dst)
+su_inet_pton(int af, const char * src, void * dst)
hunk ./libsofia-sip-ua/su/sofia-sip/su.h 324
-SOFIAPUBFUN int inet_pton(int af, char const *src, void *dst);
-SOFIAPUBFUN const char *inet_ntop(int af, void const *src,
+SOFIAPUBFUN int su_inet_pton(int af, char const *src, void *dst);
+SOFIAPUBFUN const char *su_inet_ntop(int af, void const *src,
hunk ./libsofia-sip-ua/su/sofia-sip/su.h 354
+#define su_inet_pton inet_pton
+#define su_inet_ntop inet_ntop
hunk ./libsofia-sip-ua/su/su_localinfo.c 1599
- if (!inet_ntop(su->su_family, SU_ADDR(su), name, sizeof name))
+ if (!su_inet_ntop(su->su_family, SU_ADDR(su), name, sizeof name))
hunk ./libsofia-sip-ua/tport/tport.c 2957
- inet_ntop(su->su_family, SU_ADDR(su), ipaddr + 1, sizeof(ipaddr) - 1);
+ su_inet_ntop(su->su_family, SU_ADDR(su), ipaddr + 1, sizeof(ipaddr) - 1);
hunk ./libsofia-sip-ua/tport/tport.c 2961
- inet_ntop(su->su_family, SU_ADDR(su), ipaddr, sizeof(ipaddr));
+ su_inet_ntop(su->su_family, SU_ADDR(su), ipaddr, sizeof(ipaddr));
hunk ./libsofia-sip-ua/tport/tport.c 2964
- inet_ntop(su->su_family, SU_ADDR(su), ipaddr, sizeof(ipaddr));
+ su_inet_ntop(su->su_family, SU_ADDR(su), ipaddr, sizeof(ipaddr));
hunk ./libsofia-sip-ua/tport/tport.c 3952
- inet_ntop(su->su_family, SU_ADDR(su), ipaddr, sizeof(ipaddr)),
+ su_inet_ntop(su->su_family, SU_ADDR(su), ipaddr, sizeof(ipaddr)),
hunk ./libsofia-sip-ua/tport/tport.c 4436
- if (inet_pton(su->su_family, host, SU_ADDR(su)) > 0) {
+ if (su_inet_pton(su->su_family, host, SU_ADDR(su)) > 0) {
hunk ./libsofia-sip-ua/tport/tport.c 4716
- if (inet_ntop(su->su_family, SU_ADDR(su), b, bufsize) == NULL)
+ if (su_inet_ntop(su->su_family, SU_ADDR(su), b, bufsize) == NULL)
hunk ./libsofia-sip-ua/tport/tport_logging.c 151
- inet_ntop(su->su_family, SU_ADDR(su), name, sizeof(name));
+ su_inet_ntop(su->su_family, SU_ADDR(su), name, sizeof(name));
}
[max_prodceeding
mike@jerris.com**20080227211149] {
hunk ./libsofia-sip-ua/nta/nta.c 348
- * NTATAG_TIMER_C(),
+ * NTATAG_TIMER_C(), NTATAG_MAX_PROCEEDING(),
hunk ./libsofia-sip-ua/nta/nta.c 887
- * Setting the parameters NTATAG_MAXSIZE(), NTATAG_UDP_MTU(),
+ * Setting the parameters NTATAG_MAXSIZE(), NTATAG_UDP_MTU(), NTATAG_MAX_PROCEEDING(),
hunk ./libsofia-sip-ua/nta/nta.c 905
- * NTATAG_TIMER_C(),
+ * NTATAG_TIMER_C(), NTATAG_MAX_PROCEEDING(),
hunk ./libsofia-sip-ua/nta/nta.c 938
+ usize_t max_proceeding = agent->sa_max_proceeding;
hunk ./libsofia-sip-ua/nta/nta.c 992
+ NTATAG_MAX_PROCEEDING_REF(max_proceeding),
hunk ./libsofia-sip-ua/nta/nta.c 1097
+ if (max_proceeding == 0) max_proceeding = SIZE_MAX;
+ agent->sa_max_proceeding = max_proceeding;
+
hunk ./libsofia-sip-ua/nta/nta.c 1214
- * NTATAG_MERGE_482_REF(),
+ * NTATAG_MERGE_482_REF(), NTATAG_MAX_PROCEEDING_REF(),
hunk ./libsofia-sip-ua/nta/nta.c 1263
+ NTATAG_MAX_PROCEEDING(agent->sa_max_proceeding),
hunk ./libsofia-sip-ua/nta/nta.c 2441
- SU_DEBUG_5(("nta: %s (%u) %s\n",
- method_name, cseq, "going to a default leg"));
- leg_recv(leg, msg, sip, tport);
+ if (method == sip_method_invite && agent->sa_in.proceeding->q_length >= agent->sa_max_proceeding) {
+ SU_DEBUG_5(("nta: proceeding queue full for %s (%u)\n", method_name, cseq));
+ nta_msg_treply(agent, msg, SIP_503_SERVICE_UNAVAILABLE,
+ NTATAG_TPORT(tport),
+ TAG_END());
+ return;
+ } else {
+ SU_DEBUG_5(("nta: %s (%u) %s\n", method_name, cseq, "going to a default leg"));
+ leg_recv(leg, msg, sip, tport);
+ }
hunk ./libsofia-sip-ua/nta/nta_internal.h 147
+
+ /** Maximum size of proceeding queue */
+ size_t sa_max_proceeding;
hunk ./libsofia-sip-ua/nta/nta_tag.c 402
+
+/**@def NTATAG_MAX_PROCEEDING(x)
+ *
+ * Maximum size of proceeding queue.
+ *
+ * If the size of the proceedng message queue would exceed the
+ * given limit, the stack will automatically respond with 503
+ * Service Unavailable.
+ *
+ * @par Used with
+ * nua_create(), nua_set_params(),
+ * nta_agent_create(), nta_agent_set_params()
+ *
+ * @par Parameter type
+ * - #usize_t
+ *
+ * @par Values
+ * - Maximum acceptable size of a queue (size_t).
+ *
+ */
+tag_typedef_t ntatag_max_proceeding = USIZETAG_TYPEDEF(max_proceeding);
hunk ./libsofia-sip-ua/nta/sofia-sip/nta_tag.h 157
+
+NTA_DLL extern tag_typedef_t ntatag_max_proceeding;
+#define NTATAG_MAX_PROCEEDING(x) ntatag_max_proceeding, tag_usize_v((x))
+
+NTA_DLL extern tag_typedef_t ntatag_max_proceeding_ref;
+#define NTATAG_MAX_PROCEEDING_REF(x) ntatag_max_proceeding_ref, tag_usize_vr(&(x))
hunk ./libsofia-sip-ua/nua/nua_params.c 1538
+ usize_t max_proceeding = 0;
hunk ./libsofia-sip-ua/nua/nua_params.c 1554
+ NTATAG_MAX_PROCEEDING_REF(max_proceeding),
hunk ./libsofia-sip-ua/nua/nua_params.c 1696
+ NTATAG_MAX_PROCEEDING(max_proceeding),
hunk ./libsofia-sip-ua/su/sofia-sip/su_tag.h 219
+#define tag_size_v(v) (tag_value_t)(v)
+#define tag_size_vr(v) (tag_value_t)(v)
}
[doxygen ifdefs
mike@jerris.com**20080227211411] {
hunk ./libsofia-sip-ua/nta/nta.c 282
-extern char const NTA_DEBUG[];
+#ifdef DOXYGEN
+extern char const NTA_DEBUG[]; /* dummy declaration for Doxygen */
+#endif
hunk ./libsofia-sip-ua/sresolv/sres.c 556
-#if DOXYGEN_ONLY
hunk ./libsofia-sip-ua/sresolv/sres.c 566
-extern SRESOLV_DEBUG;
+#ifdef DOXYGEN
+extern char const SRESOLV_DEBUG[]; /* dummy declaration for Doxygen */
hunk ./libsofia-sip-ua/stun/stun_internal.h 74
+#ifdef DOXYGEN
hunk ./libsofia-sip-ua/stun/stun_internal.h 76
+#endif
hunk ./libsofia-sip-ua/tport/tport_logging.c 55
+#ifdef DOXYGEN
hunk ./libsofia-sip-ua/tport/tport_logging.c 57
+#endif
hunk ./libsofia-sip-ua/tport/tport_logging.c 69
+#ifdef DOXYGEN
hunk ./libsofia-sip-ua/tport/tport_logging.c 71
+#endif
hunk ./libsofia-sip-ua/tport/tport_logging.c 82
+#ifdef DOXYGEN
hunk ./libsofia-sip-ua/tport/tport_logging.c 84
+#endif
}
[msvc2008
mike@jerris.com**20080227213431] {
hunk ./libsofia-sip-ua/nua/nua_register.c 1294
- nta_agent_bind_tport_update(nua->nua_nta, nua, nua_stack_tport_update);
+ nta_agent_bind_tport_update(nua->nua_nta, (nta_update_magic_t *)nua, nua_stack_tport_update);
hunk ./libsofia-sip-ua/nua/nua_session.c 1104
+
hunk ./libsofia-sip-ua/sresolv/sres.c 144
-#if !defined(IPPROTO_IPV6)
+#if !defined(IPPROTO_IPV6) && (_WIN32_WINNT < 0x0600)
hunk ./libsofia-sip-ua/stun/stun.c 43
+#include
hunk ./libsofia-sip-ua/stun/stun_common.c 47
+#include
hunk ./libsofia-sip-ua/stun/stun_mini.c 43
+#include
hunk ./libsofia-sip-ua/tport/tport_internal.h 69
+
+#if (_WIN32_WINNT >= 0x0600)
+#ifndef HAVE_MSG_TRUNC
+#define HAVE_MSG_TRUNC 1
+#endif
+#endif
hunk ./libsofia-sip-ua/tport/tport_type_tcp.c 320
+
hunk ./libsofia-sip-ua/tport/tport_type_udp.c 241
- (void *)ai->ai_addr, ai->ai_addrlen);
+ (void *)ai->ai_addr, (socklen_t)ai->ai_addrlen);
hunk ./win32/config.h.in 460
+
+#ifndef _MSC_VER
+#define vsnprintf _vsnprintf
+#endif
+#if _MSC_VER < 1500
hunk ./win32/config.h.in 466
+#endif
hunk ./win32/sofia-sip/su_configure.h 107
-#define vsnprintf _vsnprintf
+#ifndef _MSC_VER
+#define vsnprintf _vsnprintf
+#endif
+#if _MSC_VER < 1500
+#define vsnprintf _vsnprintf
+#endif
}
[line endings
mike@jerris.com**20080227213604] {
hunk ./libsofia-sip-ua/su/inet_ntop.c 82
- if (snprintf(tmp, sizeof tmp, fmt,
+ if (snprintf(tmp, sizeof tmp, fmt,
hunk ./libsofia-sip-ua/su/su_open_c_localinfo.cpp 1
-/*
- * This file is part of the Sofia-SIP package
- *
- * Copyright (C) 2005 Nokia Corporation.
- *
- * Contact: Pekka Pessi
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-/**@ingroup su_open_c_localinfo.cpp
- *
- * @CFILE su_open_c_localinfo.cpp
- * Functionality for choosing an access point for sockets on Symbian.
- *
- * @author Martti Mela
- * @date Created: Fri May 18 14:31:41 2007 mela
- *
- */
-
-#include "config.h"
-
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-#include
-
-
-su_sockaddr_t sa_global[1];
-
-/* Copy IP address for the sockaddr structure.
- *
- * @param su pointer to allocated su_sockaddr_t structure
- *
- * @return 0 if successful.
- */
-extern "C" int su_get_local_ip_addr(su_sockaddr_t *su)
-{
- su->su_sin.sin_addr.s_addr = sa_global->su_sin.sin_addr.s_addr;
- su->su_family = sa_global->su_family;
- su->su_len = sa_global->su_len;
-
- return 0;
-}
-
-
-/* Set up the access point for the stack. Code adapted from Forum Nokia,
- * http://wiki.forum.nokia.com/index.php/LocalDeviceIpAddress.
- *
- * @param su su_sockaddr_t structure
- * @param ifindex pointer to interface index
- *
- * @return Connection object
- */
-extern "C" void *su_localinfo_ap_set(su_sockaddr_t *su, int *ifindex)
-{
- TCommDbConnPref iPref;
- RSocketServ aSocketServ;
- RSocket sock;
-
- /* Get the IAP id of the underlying interface of this RConnection */
- TUint32 iapId;
-
- iPref.SetDirection(ECommDbConnectionDirectionOutgoing);
- iPref.SetDialogPreference(ECommDbDialogPrefPrompt);
- iPref.SetBearerSet(KCommDbBearerUnknown /*PSD*/);
-
- aSocketServ = RSocketServ();
- aSocketServ.Connect();
- RConnection *aConnection = new RConnection();
- aConnection->Open(aSocketServ);
- aConnection->Start(iPref);
-
- User::LeaveIfError(sock.Open(aSocketServ, KAfInet, KSockStream,
- KProtocolInetTcp));
-
- User::LeaveIfError(aConnection->GetIntSetting(_L("IAP\\Id"), iapId));
-
- /* Get IP information from the socket */
- TSoInetInterfaceInfo ifinfo;
- TPckg ifinfopkg(ifinfo);
-
- TSoInetIfQuery ifquery;
- TPckg ifquerypkg(ifquery);
-
- /* To find out which interfaces are using our current IAP, we
- * must enumerate and go through all of them and make a query
- * by name for each. */
- User::LeaveIfError(sock.SetOpt(KSoInetEnumInterfaces, KSolInetIfCtrl));
- while(sock.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, ifinfopkg) == KErrNone) {
- ifquery.iName = ifinfo.iName;
- TInt err = sock.GetOpt(KSoInetIfQueryByName, KSolInetIfQuery, ifquerypkg);
-
- /* IAP ID is index 1 of iZone */
- if(err == KErrNone && ifquery.iZone[1] == iapId) {
- /* We have found an interface using the IAP we are interested in. */
- if(ifinfo.iAddress.Address() > 0) {
- /* found a IPv4 address */
- su->su_sin.sin_addr.s_addr = htonl(ifinfo.iAddress.Address());
- sa_global->su_sin.sin_addr.s_addr = su->su_sin.sin_addr.s_addr;
- sa_global->su_family = su->su_family = AF_INET;
- sa_global->su_len = su->su_len = 28;
- *ifindex = iapId;
- return (void *) aConnection;
- }
- }
- else if(err != KErrNone)
- break;
- }
-
- sock.Close();
-}
-
-
-/* Deinitialize the access point in use.
- *
- * @param aconn Pointer to connection object
- *
- * @return 0 if successful.
- */
-extern "C" int su_localinfo_ap_deinit(void *aconn)
-{
- RConnection *aConnection = (RConnection *) aconn;
- aConnection->Stop();
- aConnection->Close();
- delete aConnection;
- return 0;
-}
+/*
+ * This file is part of the Sofia-SIP package
+ *
+ * Copyright (C) 2005 Nokia Corporation.
+ *
+ * Contact: Pekka Pessi
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA
+ *
+ */
+
+/**@ingroup su_open_c_localinfo.cpp
+ *
+ * @CFILE su_open_c_localinfo.cpp
+ * Functionality for choosing an access point for sockets on Symbian.
+ *
+ * @author Martti Mela
+ * @date Created: Fri May 18 14:31:41 2007 mela
+ *
+ */
+
+#include "config.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+
+
+su_sockaddr_t sa_global[1];
+
+/* Copy IP address for the sockaddr structure.
+ *
+ * @param su pointer to allocated su_sockaddr_t structure
+ *
+ * @return 0 if successful.
+ */
+extern "C" int su_get_local_ip_addr(su_sockaddr_t *su)
+{
+ su->su_sin.sin_addr.s_addr = sa_global->su_sin.sin_addr.s_addr;
+ su->su_family = sa_global->su_family;
+ su->su_len = sa_global->su_len;
+
+ return 0;
+}
+
+
+/* Set up the access point for the stack. Code adapted from Forum Nokia,
+ * http://wiki.forum.nokia.com/index.php/LocalDeviceIpAddress.
+ *
+ * @param su su_sockaddr_t structure
+ * @param ifindex pointer to interface index
+ *
+ * @return Connection object
+ */
+extern "C" void *su_localinfo_ap_set(su_sockaddr_t *su, int *ifindex)
+{
+ TCommDbConnPref iPref;
+ RSocketServ aSocketServ;
+ RSocket sock;
+
+ /* Get the IAP id of the underlying interface of this RConnection */
+ TUint32 iapId;
+
+ iPref.SetDirection(ECommDbConnectionDirectionOutgoing);
+ iPref.SetDialogPreference(ECommDbDialogPrefPrompt);
+ iPref.SetBearerSet(KCommDbBearerUnknown /*PSD*/);
+
+ aSocketServ = RSocketServ();
+ aSocketServ.Connect();
+ RConnection *aConnection = new RConnection();
+ aConnection->Open(aSocketServ);
+ aConnection->Start(iPref);
+
+ User::LeaveIfError(sock.Open(aSocketServ, KAfInet, KSockStream,
+ KProtocolInetTcp));
+
+ User::LeaveIfError(aConnection->GetIntSetting(_L("IAP\\Id"), iapId));
+
+ /* Get IP information from the socket */
+ TSoInetInterfaceInfo ifinfo;
+ TPckg ifinfopkg(ifinfo);
+
+ TSoInetIfQuery ifquery;
+ TPckg ifquerypkg(ifquery);
+
+ /* To find out which interfaces are using our current IAP, we
+ * must enumerate and go through all of them and make a query
+ * by name for each. */
+ User::LeaveIfError(sock.SetOpt(KSoInetEnumInterfaces, KSolInetIfCtrl));
+ while(sock.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, ifinfopkg) == KErrNone) {
+ ifquery.iName = ifinfo.iName;
+ TInt err = sock.GetOpt(KSoInetIfQueryByName, KSolInetIfQuery, ifquerypkg);
+
+ /* IAP ID is index 1 of iZone */
+ if(err == KErrNone && ifquery.iZone[1] == iapId) {
+ /* We have found an interface using the IAP we are interested in. */
+ if(ifinfo.iAddress.Address() > 0) {
+ /* found a IPv4 address */
+ su->su_sin.sin_addr.s_addr = htonl(ifinfo.iAddress.Address());
+ sa_global->su_sin.sin_addr.s_addr = su->su_sin.sin_addr.s_addr;
+ sa_global->su_family = su->su_family = AF_INET;
+ sa_global->su_len = su->su_len = 28;
+ *ifindex = iapId;
+ return (void *) aConnection;
+ }
+ }
+ else if(err != KErrNone)
+ break;
+ }
+
+ sock.Close();
+}
+
+
+/* Deinitialize the access point in use.
+ *
+ * @param aconn Pointer to connection object
+ *
+ * @return 0 if successful.
+ */
+extern "C" int su_localinfo_ap_deinit(void *aconn)
+{
+ RConnection *aConnection = (RConnection *) aconn;
+ aConnection->Stop();
+ aConnection->Close();
+ delete aConnection;
+ return 0;
+}
}
[dafesafe free
mike@jerris.com**20080227213635] {
hunk ./libsofia-sip-ua/su/su_alloc.c 944
-
+#define safe_free(it) if (it) { free(it); it = NULL; }
hunk ./libsofia-sip-ua/su/su_alloc.c 980
- free(b->sub_nodes[i].sua_data);
+ safe_free(b->sub_nodes[i].sua_data);
+
hunk ./libsofia-sip-ua/su/su_alloc.c 986
- free(b->sub_preload);
+ safe_free(b->sub_preload);
hunk ./libsofia-sip-ua/su/su_alloc.c 988
- free(b->sub_stats);
+ safe_free(b->sub_stats);
hunk ./libsofia-sip-ua/su/su_alloc.c 990
- free(b);
+ safe_free(b);
}
Context:
[nua_session.c: determine INVITE overlap with re-INVITEs, too
Pekka.Pessi@nokia.com**20080226180206]
[test_nua.c: fixed tests
Pekka.Pessi@nokia.com**20080226174552]
[nua_session.c: fixed non-compiling fix on session state check
Pekka.Pessi@nokia.com**20080226164000]
[nua_stack.c: pass events while in shutdown if NUTAG_SHUTDOWN_EVENTS(1) has been set
Pekka.Pessi@nokia.com**20080206170513]
[nua: added NUTAG_SUB_EXPIRES()
Pekka.Pessi@nokia.com**20080225191415]
[nua: using global preferences. Added NUTAG_SHUTDOWN_EVENTS().
Pekka.Pessi@nokia.com**20080206170546]
[nua_subnotref.c: fixed problems re-calculating the subscription duration upon NOTIFY
Pekka.Pessi@nokia.com**20080225144939
Thanks for Colin Whittaker for reporting this problem.
]
[nua_subnotref.c: do not terminate subscriptions immediately after receiving 200 OK to un-SUBSCRIBE
Pekka Pessi **20080213142324]
[nua_session.c: ensure correct call state
Pekka.Pessi@nokia.com**20080226161940
Avoid assert() on bad input from network - crash reported by Michael Jerris.
Also if calls are being terminated, reject new INVITE/UPDATE/PRACK requests
with 481.
]
[sdp_print.c: pt 9 is, like, g722. 19 is used by nobody, so it can be used as filler?
Pekka.Pessi@nokia.com**20080226163319]
[nua: initial fix for sf.net bug #1827511
Pekka.Pessi@nokia.com**20080226160937
BYE can now be challenged.
]
[nua: renamed crm_deinit as crm_complete, commented nua_client_methods_t initializers
Pekka.Pessi@nokia.com**20080225171031]
[tport.c: tport_name_dup() now validates the input
Pekka.Pessi@nokia.com**20080212192626]
[test_tport.c: fixed type-punning warning.
Pekka.Pessi@nokia.com**20080201151309]
[tport_tls.c: cleared confused logging levels
Pekka.Pessi@nokia.com**20080201151025]
[tport_tls.c: restructured error logging code.
Pekka.Pessi@nokia.com**20080201144142]
[su_root.c: try not to segfault in su_msg_destroy()
Pekka.Pessi@nokia.com**20080128143048
Reduced window for race condition in su_msg_destroy().
Patch by Michael Jerris.
]
[su_alloc.c: su_free() handles NULL gracefully
Pekka.Pessi@nokia.com**20080128142703
Patch by Michael Jerris.
]
[nta.c, sofia-sip.nta.h: added nta_leg_get_seq(), nta_leg_get_rseq()
Pekka.Pessi@nokia.com**20080124082658]
[nta.c: fixed graylisting if used with IPv4/IPv6 only
Pekka.Pessi@nokia.com**20080125093139]
[RELEASE, configure.ac: 1.12.8devel
Pekka.Pessi@nokia.com**20080123192507]
[TAG 1.12.8
Pekka Pessi **20080123182552]
[TAG rel-sofia-sip_1_12_8
Pekka Pessi **20080123182546]
[RELEASE, configure.ac: release 1.12.8
Pekka Pessi **20080123182542]
[test_nta.c: fixed memset() usage. MSG_TRUNC.
Pekka.Pessi@nokia.com**20080123182239]
[configure.ac: prerelease version
Pekka.Pessi@nokia.com**20080117125729]
[nta.c: asserting in proper place when handling queue tail
Pekka.Pessi@nokia.com**20080123160558]
[nta.c: ignore tags in nta_leg_by_dialog() if they are empty strings
Pekka.Pessi@nokia.com**20080123160523]
[soa_static.c: fixed signedness error
Pekka Pessi **20080123150730]
[nta.c: added NTATAG_GRAYLIST().
Pekka.Pessi@nokia.com**20080122185944
Use NTATAG_GRAYLIST() as ttl value for sres_set_cached_srv_priority().
]
[sres: added ttl parameter to sres_set_cached_srv_priority() and sres_cache_set_srv_priority().
Pekka.Pessi@nokia.com**20080122185738]
[test_soa.c: testing hold with inactive, offered mode and setting remote activity flags while in hold
Pekka.Pessi@nokia.com**20080122163544]
[sip_util.c: updated sip_response_terminates_dialog() as per RFC 5057.
Pekka.Pessi@nokia.com**20080122161504
Changes handling of 423 in case of SUBSCRIBE.
]
[soa_static.c: soa_sdp_mode_set() now includes wanted media state in offer
Pekka.Pessi@nokia.com**20080121190808
The wanted media state is based on original user SDP and SOATAG_HOLD()
content. Removed soa_sdp_mode_set_is_needed(), using dry-run parameter
instead.
]
[soa.c: using session state in soa_set_activity()
Pekka.Pessi@nokia.com**20080121190635
The media mode bits are set using (local) session description instead of
remote offer/answer when O/A has been completed.
]
[soa_static.c: cleaned inactive hold, added tests
Pekka Pessi **20080117164046]
[nta.c: NetModule hack re-prioritizing SRV records
Pekka.Pessi@nokia.com**20080111171112
Original hack by Stefan Leuenberger .
The hack reprioritizes the SRV records used with transaction in case a
server refuses connection or it does not answer.
]
[su_addrinfo.c: if su_getaddrinfo() service is NULL, try both with "0" and NULL
Pekka.Pessi@nokia.com**20080111142846]
[soa_tag.c: documented SOATAG_HOLD() inactive mode
Pekka.Pessi@nokia.com**20080111141518]
[Using # in SOATAG_HOLD to set media as inactive instead of sendonly
Bernhard Suttner **20080111141201]
[test_100rel.c: added test for redirect after 100rel response.
Pekka.Pessi@nokia.com**20080123181816]
[nua: terminate dialog when redirected and re-establish it with new request
Pekka.Pessi@nokia.com**20080123180855]
[torture_sip.c: added tests for accessing other extra headers beside P-Asserted-Identity/P-Preferred-Identity
Pekka.Pessi@nokia.com**20080123171109]
[nta.c: now using RFC3261-compliant dialog-matching
Pekka.Pessi@nokia.com**20080123160111]
[test_tport.c: using blocking sockets in test_incomplete()
Pekka Pessi **20080123151336]
[torture_su.c: set blocking on
Pekka Pessi **20080123151300]
[win32 project files: fixed slash direction
Pekka Pessi **20080123151114]
[test_nta.c: fixed receiving with sink socket
Pekka.Pessi@nokia.com**20080123144750]
[sip_extra.c, sip_parser.c: updated documentation
Pekka.Pessi@nokia.com**20080123115611]
[RELEASE: updated.
Pekka.Pessi@nokia.com**20080122190429]
[docs/Makefile.am, docs/conformance.docs: fixed links to RFC 5057.
Pekka.Pessi@nokia.com**20080122175159]
[nua/test_refer.c: run test_challenge_refer() only if we use proxy
Pekka.Pessi@nokia.com**20080122174902
Test case is now more deterministic, too.
]
[nta.c: fixed memory corruption in case sending ACK failed
Pekka.Pessi@nokia.com**20080122172741
Thanks for Fabio Margarido for reporting this problem.
]
[test_auth_digest.c: testing empty realm
Pekka.Pessi@nokia.com**20080122163416]
[conformance.docs: added RFC 5057 (sipping-dialogusage)
Pekka.Pessi@nokia.com**20080122163401]
[nua_stack.c: return specific error phrases from nua_client_init_request()
Pekka.Pessi@nokia.com**20080121192031
As suggested by Jerry Richards.
]
[nua_subnotref.c: fixed REFER re-try case
Pekka.Pessi@nokia.com**20080121190911
REFER trashed its dialog when it got retried if there was no other dialog
usages.
]
[nua: removed asserts() on hairy dialog/request handling cases
Pekka.Pessi@nokia.com**20080121180049]
[TLS debug cleanup, 2/2.
Stefan Knoblich**20080121174504
Silence openssl messages, part 2 of 2. Changed to TPORT_DEBUG=1 (thanks
MikeJ). This one converts all ERR_print_errors() calls
]
[stun.c: default log level to the same as SU_DEBUG define
Pekka.Pessi@nokia.com**20080121171639
Patch by Michael Jerris
]
[sres.c: default log level to the same as SU_DEBUG define
Pekka.Pessi@nokia.com**20080121171519
Patch by Michael Jerris
]
[su_global_log.c: disable warning on SU_DEBUG[] (Doxygen-only variable)
Pekka.Pessi@nokia.com**20080121171425
Patch from Michael Jerris.
]
[tport: build fixes from Freeswitch
Pekka.Pessi@nokia.com**20080121170538]
[TLS debug cleanup
Stefan Knoblich**20080121153950]
[nua: Added NUA_ERROR_AT() macro
Pekka.Pessi@nokia.com**20080118160610
Made internally generated 900 (and 904) response phrases unique as suggested
by Jerry Richards.
]
[nua_stack.c: removed noisy debug message from nua_client_request_sendmsg()
Pekka Pessi **20080117164235]
[Makefile.am: added hide_emails.sh to dist
Pekka Pessi **20080117164154]
[autogen.sh: use automake 1.9 unless otherwise specified
Pekka Pessi **20080117144848]
[libsofia-sip-ua/docs/Doxyfile.aliases: added @NEW_1_12_8 and @VERSION_1_12_8
Pekka.Pessi@nokia.com**20080117125518]
[RELEASE: added new features and bug fixes since 1.12.7
Pekka.Pessi@nokia.com**20080117125321]
[AUTHORS: updated
Pekka.Pessi@nokia.com**20080117125301]
[su_alloc.c: marked new features for release 1.12.8.
Pekka.Pessi@nokia.com**20080117125233]
[sofia-sip/htable2.h: marked new features for release 1.12.8
Pekka.Pessi@nokia.com**20080117125203]
[sofia-sip/su_wait.h, su_port.h, su_root.c: documented new functions and types for 1.12.8
Pekka.Pessi@nokia.com**20080117125132]
[sres.c, sres_cache.c: documented sres_set_cached_srv_priority(), sres_cache_set_srv_priority()
Pekka.Pessi@nokia.com**20080117124810]
[nua: fix sf.net bug #1867753 (avoid duplicating initial route set)
Pekka.Pessi@nokia.com**20080116182047]
[su.h: IPv6 fix for Vista SDK
Pekka.Pessi@nokia.com**20080114115917
Patch by Michael Jerris
]
[tport_internal.h: grammar in doc
Pekka.Pessi@nokia.com**20080111171933]
[Makefile.am: fixed dist target
Pekka.Pessi@nokia.com**20080111171519]
[sres.c, sres_cache.c: NetModule hack for re-prioritizing SRV records
Pekka.Pessi@nokia.com**20080111171223
Original hack by Stefan Leuenberger .
The hack reprioritizes the SRV records used with transaction in case a
server refuses connection or it does not answer.
New functions sres_cache_set_srv_priority() and
sres_set_cached_srv_priority().
]
[Makefile.am: added tests to DIST_SUBDIRS
Pekka.Pessi@nokia.com**20080111143023]
[test_htable2.c: define struct before using it in prototypes
Pekka Pessi **20071120030507]
[nua_notifier.c: allow notifier handle to be shut down if SUBSCRIBE has been accpeted but no NOTIFY has been sent
Pekka.Pessi@nokia.com**20080104215408]
[nua_notifier.c: fix problem handing expiration time if NOTIFY is sent before SUBSCRIBE has been responded
Pekka.Pessi@nokia.com**20080104215320]
[nua_subnotref.c: accept NOTIFY without Event header
Pekka.Pessi@nokia.com**20080104215100]
[nua/outbound.c: reduce logging
Pekka.Pessi@nokia.com**20080104203258]
[nua_session.c: do not clear soa when an overlapping INVITE is received
Pekka.Pessi@nokia.com**20080104203122
]
[nta.c: follow more closely RFC 3261 request matching rules
Pekka.Pessi@nokia.com**20080104202701]
[nta.c: fixed request merging with RFC 2543 proxies
Pekka.Pessi@nokia.com**20080104182035
Updated matching of PRACKs with outstanding 100rel, too.
]
[test_nta.c: added check for request merging (with both 3261 and 2543 proxies)
Pekka.Pessi@nokia.com**20080104181901]
[tport_type_udp.c: made IP_ADD_MEMBERSHIP as portable
Pekka Pessi **20071119200109]
[tport_type_udp.c: when binding to multicast address, join to the group, too.
Pekka.Pessi@nokia.com**20080103170839
Use "canonic" IP address (from host-part of the SIP URI) to specify
interface.
]
[sac-su2.m4: checking for IP_ADD_MEMBERSHIP and IP_MULTICAST_LOOP
Pekka.Pessi@nokia.com**20080103160211]
[nta.c: calculate next timeout only after completing current timeout
Pekka.Pessi@nokia.com**20080103131904
Thanks to Mike Jerris for reporting this problem.
]
[m4/sac-su2.m4: checks for SO_RCVBUFFORCE and SO_SNDBUFFORCE
Pekka.Pessi@nokia.com**20080103121147]
[tport_type_udp.c: using SO_RCVBUFFORCE and SO_SNDBUFFORCE to set rmem/wmem on udp sockets
Pekka.Pessi@nokia.com**20080103121127
Referring reader to Linux sysctls to TPTAG_UDP_RMEM and TPTAG_UDP_WMEM
documentation.
]
[stun.c: try to avoid using stun handle after returning from discovery callback
Pekka.Pessi@nokia.com**20071220131337
Crash reported and partial patch by Daniele Rondina.
]
[check_sofia.c: pass xml result file as optional parameter to check_sofia
Pekka.Pessi@nokia.com**20071213141534]
[libsofia-sip-ua/docs/hide_emails.sh: moved to scripts/ subdir
Pekka.Pessi@nokia.com**20071213141504]
[nua_session.c: avoid NULL nua_session_state_t pointer in nua_update_client_report
Pekka Pessi **20071130140314
Thanks to Fabio Margarido for reporting this problem.
]
[Makefile.am, configure.ac: added subdir tests for Check-based module tests
Pekka.Pessi@nokia.com**20071129180525]
[nua: moved test_nua contents in ltlibraries
Pekka.Pessi@nokia.com**20071129180344]
[rules/sofia.am: defining INTERNAL_INCLUDES so it can be used from any subdir
Pekka.Pessi@nokia.com**20071129172110
utils/Makefile.am, libsofia-sip-ua/nua/Makefile.am: using INCLUDES from sofia.am
]
[tport: collecting statistics
Pekka Pessi **20071129171740]
[tport.h, tport.c: updated tport_create() docs
Pekka.Pessi@nokia.com**20071127004934]
[nua_stack.c: more logging on bad authentication
Pekka.Pessi@nokia.com**20071122145913]
[test_su.c: removed calls of deprecated (and unimplemented) functions su_clone_pause()/su_clone_resume()
Pekka.Pessi@nokia.com**20071128151507]
[nua: moved message passing into nua_stack.c. Recfactored reference counting.
Pekka.Pessi@nokia.com**20071127002305
This seems to fix the memory leak within 1.12.7.
]
[configure.ac: defining HAVE_SOFIA_HTTP
Pekka Pessi **20071127001541]
[sofia-sip/su_wait.h: added su_msg_new(), su_msg_send_to(), su_msg_deinitializer()
Pekka.Pessi@nokia.com**20071126221227
Reduce overhead from message passing.
]
[test_basic_call.c: fixed --no-proxy tests
Pekka.Pessi@nokia.com**20071126220835]
[test_proxy.c: removed memory leaks
Pekka.Pessi@nokia.com**20071126220816]
[nta: added nta_msg_is_internal().
Pekka.Pessi@nokia.com**20071122150133]
[nta.c: always use tport from NTATAG_TPORT() (even if it is bad)
Pekka.Pessi@nokia.com**20071122143621
Add tests, too.
]
[nta.c: nta_outgoing_*create() now uses NTATAG_TPORT() even if NTATAG_DEFAULT_PROXY() is set
Daniele Rondina **20071121161604]
[test_htable2.c: removed conversion warning
Pekka.Pessi@nokia.com**20071127184341
Conversion of size_t to isize_t when compiled wihout --disable-size-compat.
]
[nta: added nta_sip_is_internal().
Pekka.Pessi@nokia.com**20071122143945]
[test_nta.c: refactored client side tests
Pekka.Pessi@nokia.com**20071122134214]
[test_nta.c: removed dead code
Pekka.Pessi@nokia.com**20071121164642]
[test_tport.c: skipping tests on TLS if send fails.
Pekka Pessi **20071121121040]
[tport.c: fixed EXPENSIVE unresolved bug.
Pekka.Pessi@nokia.com**20071120175354]
[tport: tport_name_is_resolved() now uses host_is_ip_address()
Pekka.Pessi@nokia.com**20071120170919]
[test_register.c: fixed authentication caching issue
Pekka Pessi **20071120164706]
[nua_register.c: silenced warning with URL_INIT_AS() on Sun CC
Pekka Pessi **20071120164634]
[su_tagarg.h: call va_copy() before calling tl_vlist()
Pekka Pessi **20071120113208
Looks like Solaris on amd64 is not happy with normal va_start()/va_end() use
of va_lists.
Thanks for Michael Jerris for reporting the problem.
]
[su_alloc.c: silenced warnings on Sun CC
Pekka Pessi **20071119170006]
[nua_register.c: sf.net bug #1816647: Outbound contact does not make it to dialogs
Pekka.Pessi@nokia.com**20071116173400
Now use Contact from first registration instead of Contact generated from
transport.
]
[test_register.c, test_proxy.c: use realm "test-proxy" during normal tests
Pekka.Pessi@nokia.com**20071116172955]
[sofia-sip/su_alloc.h, su_alloc.c: added su_home_lock(), su_home_trylock(), su_home_unlock()
Pekka.Pessi@nokia.com**20071116161709
Added test in torture_su_alloc.c. Using in su_pthread_port.c.
]
[nua/test_proxy.[hc], nua/test_register.c: test support of multiple realms.
Pekka.Pessi@nokia.com**20071116152900]
[auth_client.c: allow multiple challenges in auc_credentials() or auc_all_credentials()
Pekka.Pessi@nokia.com**20071116152758]
[Added #include
Youness Alaoui **20071116113851]
[htable2.h: fixed usize_t/size_t confusion
Pekka.Pessi@nokia.com**20071115134038]
[sofia-sip/htable2.h: fixed HTABLE_PROTOS2()
Pekka.Pessi@nokia.com**20071107125808]
[nua_notifier.c: updated nua_i_subscribe, nua_notify() and nua_r_notify documentation
Pekka.Pessi@nokia.com**20071025171545]
[su_alloc.c: fixed su_home_init() (not initializing pointer to mutexes)
Pekka.Pessi@nokia.com**20071023144517]
[configure.ac, RELEASE: opened tree for development
Pekka.Pessi@nokia.com**20071017151315]
[libsofia-sip-ua/su/Makefile.am: fixed problem with automake 1.9
Pekka Pessi **20071017150112]
[TAG 1.12.7
Pekka Pessi **20071017124315]
[TAG rel-sofia-sip-1_12_7
Pekka Pessi **20071017124311]
[nua.docs: replace reference to nua_cli.c with sofsip_cli
Pekka Pessi **20071017105011]
[nua: Open C fixes
Pekka Pessi **20071016120746]
[open_c: included in the dist
Pekka.Pessi@nokia.com**20071015122713]
[configure.ac, RELEASE: version 1.12.7
Pekka.Pessi@nokia.com**20071015080322]
[TAG Release candidate 2 for 1.12.7
Pekka Pessi **20071012183842]
[test_sip_events.c: checking some nua_i_notifier/nua_i_subscriber events
Pekka Pessi **20071012183831]
[nea_server.c: avoid raporting un-SUBSCRIBE twice
Pekka Pessi **20071012183802]
[sip_basic.c: removed dead code
Pekka Pessi **20071012173958]
[Fixed various tests on win32.
Pekka Pessi **20071012173951]
[test_class.h: fixed test_auth_class, test_numeric_class declaration
Pekka Pessi **20071012173906]
[nta_internal.h, nua_params.c: fixed NTATAG_UDP_MTU() type
Pekka Pessi **20071012173815]
[tstdef.h: silenced warnings on TEST_M()
Pekka Pessi **20071012173743]
[url.h: silenced warning on URL_INIT_AS()
Pekka Pessi **20071012173725]
[win32/check.cmd: added option -a to relevant tests.
Pekka Pessi **20071012173700
Optionally check Release build.
]
[win32/build_sources.cmd: added extra headers to sip_tag.c and sip_parser_table.c
Pekka Pessi **20071012173342]
[win32: added missing files from Makefile.am, .dsp, vproj
Pekka Pessi **20071012173252]
[win32/tests/torture_su_root: fixed include paths
Pekka Pessi **20071012173219]
[win32/utils/stunc.dsp: fixed include paths
Pekka Pessi **20071012173202]
[Makefile.am: fixed ordering of SUBDIRS
Pekka Pessi **20071012124217]
[htable.h, htable2.h: freeing old hash table after resize.
Pekka.Pessi@nokia.com**20071102142310
Ensuring that resized hash table has enough slots for existing entries.
]
[su_clone_start(): fixed spurious release of a pthreaded port
Pekka.Pessi@nokia.com**20071011162528]
[TAG release candidate 1 for 1.12.7
Pekka Pessi **20071011181651]
Patch bundle hash:
3a5c5b6cfe2533d09dc072c5bb3b3e5466518bde