summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-05-12 15:03:23 +0000
committerBenny Prijono <bennylp@teluu.com>2007-05-12 15:03:23 +0000
commitfd5aade84080ce74df1622958ea2c56c3e827703 (patch)
treeba9d237790fd514955f4e716afc162b7d7091d31
parent3727cae28c3f725ff6f909955718523737a597fa (diff)
Symbian fixes to compile on GCCE (nested callbacks etc)
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1269 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--build.symbian/bld.inf5
-rw-r--r--build.symbian/pjlib.mmp60
-rw-r--r--build.symbian/pjlib_test.mmp2
-rw-r--r--build.symbian/pjlib_util.mmp2
-rw-r--r--build.symbian/pjmedia.mmp160
-rw-r--r--build.symbian/pjnath.mmp8
-rw-r--r--build.symbian/pjsdp.mmp2
-rw-r--r--build.symbian/pjsip.mmp2
-rw-r--r--build.symbian/pjsip_simple.mmp2
-rw-r--r--build.symbian/pjsip_ua.mmp2
-rw-r--r--build.symbian/pjstun_client.mmp2
-rw-r--r--pjlib/include/pj/compat/cc_armcc.h6
-rw-r--r--pjlib/include/pj/compat/os_symbian.h2
-rw-r--r--pjlib/include/pj/errno.h4
-rw-r--r--pjlib/include/pj/except.h10
-rw-r--r--pjlib/include/pj/types.h3
-rw-r--r--pjlib/src/pj/addr_resolv_symbian.cpp4
-rw-r--r--pjlib/src/pj/errno.c3
-rw-r--r--pjlib/src/pj/exception_symbian.cpp1
-rw-r--r--pjlib/src/pj/os_core_symbian.cpp8
-rw-r--r--pjlib/src/pj/sock_symbian.cpp12
-rw-r--r--pjlib/src/pjlib-test/main_symbian.cpp2
-rw-r--r--pjmedia/src/pjmedia/bidirectional.c2
-rw-r--r--pjmedia/src/pjmedia/echo_common.c1
-rw-r--r--pjmedia/src/pjmedia/nullsound.c2
-rw-r--r--pjsip-apps/src/samples/sndinfo.c1
-rw-r--r--pjsip/include/pjsip/sip_transport.h24
-rw-r--r--pjsip/include/pjsip/sip_util.h17
-rw-r--r--pjsip/src/pjsip/sip_parser.c3
-rw-r--r--pjsip/src/pjsip/sip_transport.c11
-rw-r--r--pjsip/src/pjsip/sip_transport_loop.c4
-rw-r--r--pjsip/src/pjsip/sip_transport_tcp.c10
-rw-r--r--pjsip/src/pjsip/sip_transport_udp.c4
-rw-r--r--pjsip/src/pjsip/sip_util.c12
-rw-r--r--pjsip/src/pjsip/sip_util_statefull.c2
35 files changed, 203 insertions, 192 deletions
diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf
index 5ded5aec..9e51ee9a 100644
--- a/build.symbian/bld.inf
+++ b/build.symbian/bld.inf
@@ -1,3 +1,8 @@
+prj_platforms
+winscw
+armv5
+gcce
+
prj_mmpfiles
pjlib.mmp
pjlib_util.mmp
diff --git a/build.symbian/pjlib.mmp b/build.symbian/pjlib.mmp
index 8ec56ca7..e574b47a 100644
--- a/build.symbian/pjlib.mmp
+++ b/build.symbian/pjlib.mmp
@@ -6,6 +6,8 @@ VENDORID 0x70000001
SOURCEPATH ..\pjlib\src\pj
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
@@ -56,37 +58,37 @@ SOURCE sock_select_symbian.cpp
SOURCE timer_symbian.cpp
SOURCE unicode_symbian.cpp
-DOCUMENT os_symbian.h
+//DOCUMENT os_symbian.h
-DOCUMENT pj\addr_resolv.h
-DOCUMENT pj\array.h
-DOCUMENT pj\assert.h
-DOCUMENT pj\config.h
-DOCUMENT pj\config_site.h
+//DOCUMENT pj\addr_resolv.h
+//DOCUMENT pj\array.h
+//DOCUMENT pj\assert.h
+//DOCUMENT pj\config.h
+//DOCUMENT pj\config_site.h
//DOCUMENT pj\config_site_sample.h
-DOCUMENT pj\ctype.h
-DOCUMENT pj\errno.h
-DOCUMENT pj\except.h
-DOCUMENT pj\file_access.h
-DOCUMENT pj\file_io.h
-DOCUMENT pj\guid.h
-DOCUMENT pj\hash.h
-DOCUMENT pj\ioqueue.h
-DOCUMENT pj\ip_helper.h
-DOCUMENT pj\list.h
-DOCUMENT pj\lock.h
-DOCUMENT pj\log.h
-DOCUMENT pj\os.h
-DOCUMENT pj\\pool.h
-DOCUMENT pj\\pool_buf.h
-DOCUMENT pj\rand.h
-DOCUMENT pj\rbtree.h
-DOCUMENT pj\sock.h
-DOCUMENT pj\sock_select.h
-DOCUMENT pj\string.h
-DOCUMENT pj\timer.h
-DOCUMENT pj\types.h
-DOCUMENT pj\unicode.h
+//DOCUMENT pj\ctype.h
+//DOCUMENT pj\errno.h
+//DOCUMENT pj\except.h
+//DOCUMENT pj\file_access.h
+//DOCUMENT pj\file_io.h
+//DOCUMENT pj\guid.h
+//DOCUMENT pj\hash.h
+//DOCUMENT pj\ioqueue.h
+//DOCUMENT pj\ip_helper.h
+//DOCUMENT pj\list.h
+//DOCUMENT pj\lock.h
+//DOCUMENT pj\log.h
+//DOCUMENT pj\os.h
+//DOCUMENT pj\\pool.h
+//DOCUMENT pj\\pool_buf.h
+//DOCUMENT pj\rand.h
+//DOCUMENT pj\rbtree.h
+//DOCUMENT pj\sock.h
+//DOCUMENT pj\sock_select.h
+//DOCUMENT pj\string.h
+//DOCUMENT pj\timer.h
+//DOCUMENT pj\types.h
+//DOCUMENT pj\unicode.h
SYSTEMINCLUDE ..\pjlib\include
diff --git a/build.symbian/pjlib_test.mmp b/build.symbian/pjlib_test.mmp
index 9836a14e..ed88906e 100644
--- a/build.symbian/pjlib_test.mmp
+++ b/build.symbian/pjlib_test.mmp
@@ -9,6 +9,8 @@ MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
// Test files
diff --git a/build.symbian/pjlib_util.mmp b/build.symbian/pjlib_util.mmp
index 30f59fa2..fc161cae 100644
--- a/build.symbian/pjlib_util.mmp
+++ b/build.symbian/pjlib_util.mmp
@@ -9,6 +9,8 @@ MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
//
// PJLIB-UTIL files
diff --git a/build.symbian/pjmedia.mmp b/build.symbian/pjmedia.mmp
index 7af3187b..4534a45e 100644
--- a/build.symbian/pjmedia.mmp
+++ b/build.symbian/pjmedia.mmp
@@ -1,80 +1,80 @@
-TARGET pjmedia.lib
-TARGETTYPE lib
-UID 0x100039CE 0x10004299
-VENDORID 0x70000001
-
-SOURCEPATH ..\pjmedia\src\pjmedia
-
-//OPTION CW -lang c++
-
-MACRO PJ_M_I386=1
-MACRO PJ_SYMBIAN=1
-
-//
-// Platform independent source
-//
-
-SOURCE alaw_ulaw.c
-SOURCE alaw_ulaw_table.c
-SOURCE bidirectional.c
-SOURCE clock_thread.c
-SOURCE codec.c
-SOURCE conference.c
-SOURCE echo_common.c
-SOURCE echo_port.c
-SOURCE echo_suppress.c
-SOURCE endpoint.c
-SOURCE errno.c
-SOURCE g711.c
-SOURCE jbuf.c
-SOURCE master_port.c
-SOURCE mem_capture.c
-SOURCE mem_player.c
-SOURCE null_port.c
-SOURCE plc_common.c
-SOURCE port.c
-SOURCE resample_port.c
-SOURCE resample_resample.c
-SOURCE rtcp.c
-SOURCE rtp.c
-//SDP files are in pjsdp.mmp
-//SOURCE sdp.c
-//SOURCE sdp_cmp.c
-//SOURCE sdp_neg.c
-SOURCE session.c
-SOURCE silencedet.c
-SOURCE sound_port.c
-SOURCE splitcomb.c
-SOURCE stream.c
-SOURCE tonegen.c
-SOURCE transport_ice.c
-SOURCE transport_udp.c
-SOURCE wav_player.c
-SOURCE wav_playlist.c
-SOURCE wav_writer.c
-SOURCE wave.c
-
-//
-// Symbian specific
-// These are on separate project
-//
-//SOURCE symbian_sound.cpp
-//SOURCE null_sound.c
-
-
-//
-// Header files
-//
-
-
-SYSTEMINCLUDE ..\pjmedia\include
-SYSTEMINCLUDE ..\pjlib\include
-SYSTEMINCLUDE ..\pjlib-util\include
-SYSTEMINCLUDE ..\pjnath\include
-
-SYSTEMINCLUDE \epoc32\include
-SYSTEMINCLUDE \epoc32\include\libc
-SYSTEMINCLUDE \epoc32\include\mmf\plugin
-
-CAPABILITY None
-
+TARGET pjmedia.lib
+TARGETTYPE lib
+UID 0x100039CE 0x10004299
+VENDORID 0x70000001
+
+SOURCEPATH ..\pjmedia\src\pjmedia
+
+//OPTION CW -lang c++
+
+MACRO PJ_M_I386=1
+MACRO PJ_SYMBIAN=1
+
+//
+// Platform independent source
+//
+
+SOURCE alaw_ulaw.c
+SOURCE alaw_ulaw_table.c
+SOURCE bidirectional.c
+SOURCE clock_thread.c
+SOURCE codec.c
+SOURCE conference.c
+SOURCE echo_common.c
+SOURCE echo_port.c
+SOURCE echo_suppress.c
+SOURCE endpoint.c
+SOURCE errno.c
+SOURCE g711.c
+SOURCE jbuf.c
+SOURCE master_port.c
+SOURCE mem_capture.c
+SOURCE mem_player.c
+SOURCE null_port.c
+SOURCE plc_common.c
+SOURCE port.c
+SOURCE resample_port.c
+SOURCE resample_resample.c
+SOURCE rtcp.c
+SOURCE rtp.c
+//SDP files are in pjsdp.mmp
+//SOURCE sdp.c
+//SOURCE sdp_cmp.c
+//SOURCE sdp_neg.c
+SOURCE session.c
+SOURCE silencedet.c
+SOURCE sound_port.c
+SOURCE splitcomb.c
+SOURCE stream.c
+SOURCE tonegen.c
+SOURCE transport_ice.c
+SOURCE transport_udp.c
+SOURCE wav_player.c
+SOURCE wav_playlist.c
+SOURCE wav_writer.c
+SOURCE wave.c
+
+//
+// Symbian specific
+// These are on separate project
+//
+//SOURCE symbian_sound.cpp
+//SOURCE null_sound.c
+
+
+//
+// Header files
+//
+
+
+SYSTEMINCLUDE ..\pjmedia\include
+SYSTEMINCLUDE ..\pjlib\include
+SYSTEMINCLUDE ..\pjlib-util\include
+SYSTEMINCLUDE ..\pjnath\include
+
+SYSTEMINCLUDE \epoc32\include
+SYSTEMINCLUDE \epoc32\include\libc
+//SYSTEMINCLUDE \epoc32\include\mmf\plugin
+
+CAPABILITY None
+
diff --git a/build.symbian/pjnath.mmp b/build.symbian/pjnath.mmp
index 8e648dd6..2bd86911 100644
--- a/build.symbian/pjnath.mmp
+++ b/build.symbian/pjnath.mmp
@@ -8,7 +8,9 @@ SOURCEPATH ..\pjnath\src\pjnath
MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
-//OPTION CW -lang c++
+OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
//
// PJNATH files
@@ -45,7 +47,7 @@ SYSTEMINCLUDE ..\pjnath\include
SYSTEMINCLUDE \epoc32\include
SYSTEMINCLUDE \epoc32\include\libc
-LIBRARY pjlib.lib
-LIBRARY pjlib_util.lib
+//STATICLIBRARY pjlib.lib
+//STATICLIBRARY pjlib_util.lib
CAPABILITY None
diff --git a/build.symbian/pjsdp.mmp b/build.symbian/pjsdp.mmp
index 97f461bf..3ff46f1a 100644
--- a/build.symbian/pjsdp.mmp
+++ b/build.symbian/pjsdp.mmp
@@ -6,6 +6,8 @@ VENDORID 0x70000001
SOURCEPATH ..\pjmedia\src\pjmedia
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
diff --git a/build.symbian/pjsip.mmp b/build.symbian/pjsip.mmp
index d1dd741e..cabb74be 100644
--- a/build.symbian/pjsip.mmp
+++ b/build.symbian/pjsip.mmp
@@ -9,6 +9,8 @@ MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
// PJSIP-CORE files
diff --git a/build.symbian/pjsip_simple.mmp b/build.symbian/pjsip_simple.mmp
index 0ff7f162..f77c5b45 100644
--- a/build.symbian/pjsip_simple.mmp
+++ b/build.symbian/pjsip_simple.mmp
@@ -9,6 +9,8 @@ MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
// PJSIP-SIMPLE files
diff --git a/build.symbian/pjsip_ua.mmp b/build.symbian/pjsip_ua.mmp
index cef53738..08ab2452 100644
--- a/build.symbian/pjsip_ua.mmp
+++ b/build.symbian/pjsip_ua.mmp
@@ -11,7 +11,7 @@ MACRO PJ_SYMBIAN=1
//OPTION CW -lang c++
-// PJSIP-SIMPLE files
+// PJSIP-UA files
SOURCE sip_inv.c
SOURCE sip_reg.c
diff --git a/build.symbian/pjstun_client.mmp b/build.symbian/pjstun_client.mmp
index 98194e86..2c9d3521 100644
--- a/build.symbian/pjstun_client.mmp
+++ b/build.symbian/pjstun_client.mmp
@@ -9,6 +9,8 @@ MACRO PJ_M_I386=1
MACRO PJ_SYMBIAN=1
OPTION CW -lang c++
+OPTION ARMCC --cpp
+OPTION GCC -x c++
// PJSTUN-CLIENT files
diff --git a/pjlib/include/pj/compat/cc_armcc.h b/pjlib/include/pj/compat/cc_armcc.h
index 504ca889..52fe74c0 100644
--- a/pjlib/include/pj/compat/cc_armcc.h
+++ b/pjlib/include/pj/compat/cc_armcc.h
@@ -33,8 +33,12 @@
#define PJ_CC_VER_2 __ARMCC_MINOR__
#define PJ_CC_VER_3 __ARMCC_PATCHLEVEL__
+#ifdef __cplusplus
+# define PJ_INLINE_SPECIFIER inline
+#else
+# define PJ_INLINE_SPECIFIER static __inline
+#endif
-#define PJ_INLINE_SPECIFIER static // why is not inline accepted?
#define PJ_THREAD_FUNC
#define PJ_NORETURN
#define PJ_ATTR_NORETURN __attribute__ ((noreturn))
diff --git a/pjlib/include/pj/compat/os_symbian.h b/pjlib/include/pj/compat/os_symbian.h
index b1b1cd1a..f6787b06 100644
--- a/pjlib/include/pj/compat/os_symbian.h
+++ b/pjlib/include/pj/compat/os_symbian.h
@@ -144,7 +144,9 @@
#define PJ_HAS_SOCKLEN_T 1
typedef unsigned int socklen_t;
+#ifndef __GCCE__
#include <e32def.h>
+#endif
/*
#if defined(PJ_EXPORTING)
diff --git a/pjlib/include/pj/errno.h b/pjlib/include/pj/errno.h
index cd5d9164..df6c1b02 100644
--- a/pjlib/include/pj/errno.h
+++ b/pjlib/include/pj/errno.h
@@ -111,6 +111,7 @@ PJ_DECL(void) pj_set_netos_error(pj_status_t code);
PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode,
char *buf, pj_size_t bufsize);
+typedef pj_str_t (*pjsip_error_callback)(pj_status_t, char*, pj_size_t);
/**
* Register strerror message handler for the specified error space.
* Application can register its own handler to supply the error message
@@ -132,8 +133,7 @@ PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode,
*/
PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start_code,
pj_status_t err_space,
- pj_str_t (*f)(pj_status_t,char*,
- pj_size_t));
+ pjsip_error_callback f);
/**
* @hideinitializer
diff --git a/pjlib/include/pj/except.h b/pjlib/include/pj/except.h
index 610f4626..509b01be 100644
--- a/pjlib/include/pj/except.h
+++ b/pjlib/include/pj/except.h
@@ -26,6 +26,7 @@
#include <pj/types.h>
#include <pj/compat/setjmp.h>
+#include <pj/log.h>
PJ_BEGIN_DECL
@@ -265,6 +266,15 @@ public:
while (0)
#define PJ_GET_EXCEPTION() pj_excp_.code_
+#else
+
+#define PJ_USE_EXCEPTION
+#define PJ_TRY
+#define PJ_CATCH_ANY if (0)
+#define PJ_END
+#define PJ_THROW(x_id) do { PJ_LOG(1,("PJ_THROW"," error code = %d",x_id)); } while (0)
+#define PJ_GET_EXCEPTION() 0
+
#endif /* __cplusplus */
#else
diff --git a/pjlib/include/pj/types.h b/pjlib/include/pj/types.h
index 7b7598b1..e9095524 100644
--- a/pjlib/include/pj/types.h
+++ b/pjlib/include/pj/types.h
@@ -302,6 +302,7 @@ PJ_DECL(pj_status_t) pj_init(void);
*/
PJ_DECL(void) pj_shutdown(void);
+typedef void (*pj_exit_callback)(void);
/**
* Register cleanup function to be called by PJLIB when pj_shutdown() is
* called.
@@ -310,7 +311,7 @@ PJ_DECL(void) pj_shutdown(void);
*
* @return PJ_SUCCESS on success.
*/
-PJ_DECL(pj_status_t) pj_atexit(void (*func)(void));
+PJ_DECL(pj_status_t) pj_atexit(pj_exit_callback func);
diff --git a/pjlib/src/pj/addr_resolv_symbian.cpp b/pjlib/src/pj/addr_resolv_symbian.cpp
index c9a776c8..95da5cdd 100644
--- a/pjlib/src/pj/addr_resolv_symbian.cpp
+++ b/pjlib/src/pj/addr_resolv_symbian.cpp
@@ -35,7 +35,7 @@ PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he)
// Convert name to Unicode
wchar_t name16[PJ_MAX_HOSTNAME];
pj_ansi_to_unicode(name->ptr, name->slen, name16, PJ_ARRAY_SIZE(name16));
- TPtrC16 data(name16);
+ TPtrC16 data((const TUint16*)name16);
// Resolve!
TNameEntry nameEntry;
@@ -65,7 +65,7 @@ PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he)
static pj_sockaddr_in resolved_addr;
// Convert the official address to ANSI.
- pj_unicode_to_ansi(nameEntry().iName.Ptr(), nameEntry().iName.Length(),
+ pj_unicode_to_ansi((const wchar_t*)nameEntry().iName.Ptr(), nameEntry().iName.Length(),
resolved_name, sizeof(resolved_name));
// Convert IP address
diff --git a/pjlib/src/pj/errno.c b/pjlib/src/pj/errno.c
index f82c22d6..f7273a42 100644
--- a/pjlib/src/pj/errno.c
+++ b/pjlib/src/pj/errno.c
@@ -103,8 +103,7 @@ static int pjlib_error(pj_status_t code, char *buf, pj_size_t size)
/* Register strerror handle. */
PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start,
pj_status_t space,
- pj_str_t (*f)(pj_status_t,char*,
- pj_size_t))
+ pjsip_error_callback f)
{
unsigned i;
diff --git a/pjlib/src/pj/exception_symbian.cpp b/pjlib/src/pj/exception_symbian.cpp
index 1d475335..6f2e0803 100644
--- a/pjlib/src/pj/exception_symbian.cpp
+++ b/pjlib/src/pj/exception_symbian.cpp
@@ -22,7 +22,6 @@
#include <pj/log.h>
#include <pj/errno.h>
-static long thread_local_id = -1;
#if defined(PJ_HAS_EXCEPTION_NAMES) && PJ_HAS_EXCEPTION_NAMES != 0
static const char *exception_id_names[PJ_MAX_EXCEPTION_ID];
diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp
index 742fe5ab..a3ec3c04 100644
--- a/pjlib/src/pj/os_core_symbian.cpp
+++ b/pjlib/src/pj/os_core_symbian.cpp
@@ -301,7 +301,7 @@ on_error:
}
-PJ_DEF(pj_status_t) pj_atexit(void (*func)(void))
+PJ_DEF(pj_status_t) pj_atexit(pj_exit_callback func)
{
if (atexit_count >= PJ_ARRAY_SIZE(atexit_func))
return PJ_ETOOMANY;
@@ -459,7 +459,7 @@ PJ_DEF(pj_status_t) pj_thread_local_alloc(long *index)
*/
PJ_DEF(void) pj_thread_local_free(long index)
{
- PJ_ASSERT_ON_FAIL(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) &&
+ PJ_ASSERT_ON_FAIL(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) &&
tls_vars[index] != 0, return);
tls_vars[index] = 0;
@@ -473,7 +473,7 @@ PJ_DEF(pj_status_t) pj_thread_local_set(long index, void *value)
{
pj_thread_t *rec = pj_thread_this();
- PJ_ASSERT_RETURN(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) &&
+ PJ_ASSERT_RETURN(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) &&
tls_vars[index] != 0, PJ_EINVAL);
rec->tls_values[index] = value;
@@ -487,7 +487,7 @@ PJ_DEF(void*) pj_thread_local_get(long index)
{
pj_thread_t *rec = pj_thread_this();
- PJ_ASSERT_RETURN(index >= 0 && index < PJ_ARRAY_SIZE(tls_vars) &&
+ PJ_ASSERT_RETURN(index >= 0 && index < (int)PJ_ARRAY_SIZE(tls_vars) &&
tls_vars[index] != 0, NULL);
return rec->tls_values[index];
diff --git a/pjlib/src/pj/sock_symbian.cpp b/pjlib/src/pj/sock_symbian.cpp
index ae691bae..38960917 100644
--- a/pjlib/src/pj/sock_symbian.cpp
+++ b/pjlib/src/pj/sock_symbian.cpp
@@ -271,7 +271,7 @@ PJ_DEF(char*) pj_inet_ntoa(pj_in_addr inaddr)
TInetAddr temp_addr((TUint32)pj_ntohl(inaddr.s_addr), (TUint)0);
temp_addr.Output(str16);
- return pj_unicode_to_ansi(str16.PtrZ(), str16.Length(),
+ return pj_unicode_to_ansi((const wchar_t*)str16.PtrZ(), str16.Length(),
str8, sizeof(str8));
}
@@ -307,7 +307,7 @@ PJ_DEF(int) pj_inet_aton(const pj_str_t *cp, struct pj_in_addr *inp)
pj_ansi_to_unicode(tempaddr8, pj_ansi_strlen(tempaddr8),
tempaddr16, sizeof(tempaddr16));
- TBuf<MAXIPLEN> ip_addr(tempaddr16);
+ TBuf<MAXIPLEN> ip_addr((const TText*)tempaddr16);
TInetAddr addr;
addr.Init(KAfInet);
@@ -418,7 +418,7 @@ PJ_DEF(const pj_str_t*) pj_gethostname(void)
resv.GetHostName(tmpName, reqStatus);
User::WaitForRequest(reqStatus);
- hostname.ptr = pj_unicode_to_ansi(tmpName.Ptr(), tmpName.Length(),
+ hostname.ptr = pj_unicode_to_ansi((const wchar_t*)tmpName.Ptr(), tmpName.Length(),
buf, sizeof(buf));
hostname.slen = tmpName.Length();
}
@@ -551,7 +551,7 @@ PJ_DEF(pj_status_t) pj_sock_getpeername( pj_sock_t sock,
PJ_CHECK_STACK();
PJ_ASSERT_RETURN(sock && addr && namelen &&
- *namelen>=sizeof(pj_sockaddr_in), PJ_EINVAL);
+ *namelen>=(int)sizeof(pj_sockaddr_in), PJ_EINVAL);
CPjSocket *pjSock = (CPjSocket*)sock;
RSocket &rSock = pjSock->Socket();
@@ -578,7 +578,7 @@ PJ_DEF(pj_status_t) pj_sock_getsockname( pj_sock_t sock,
PJ_CHECK_STACK();
PJ_ASSERT_RETURN(sock && addr && namelen &&
- *namelen>=sizeof(pj_sockaddr_in), PJ_EINVAL);
+ *namelen>=(int)sizeof(pj_sockaddr_in), PJ_EINVAL);
CPjSocket *pjSock = (CPjSocket*)sock;
RSocket &rSock = pjSock->Socket();
@@ -728,7 +728,7 @@ PJ_DEF(pj_status_t) pj_sock_recvfrom(pj_sock_t sock,
PJ_ASSERT_RETURN(sock && buf && len && from && fromlen, PJ_EINVAL);
PJ_ASSERT_RETURN(*len > 0, PJ_EINVAL);
- PJ_ASSERT_RETURN(*fromlen >= sizeof(pj_sockaddr_in), PJ_EINVAL);
+ PJ_ASSERT_RETURN(*fromlen >= (int)sizeof(pj_sockaddr_in), PJ_EINVAL);
CPjSocket *pjSock = (CPjSocket*)sock;
RSocket &rSock = pjSock->Socket();
diff --git a/pjlib/src/pjlib-test/main_symbian.cpp b/pjlib/src/pjlib-test/main_symbian.cpp
index c2c808b8..e57b080d 100644
--- a/pjlib/src/pjlib-test/main_symbian.cpp
+++ b/pjlib/src/pjlib-test/main_symbian.cpp
@@ -51,7 +51,7 @@ LOCAL_C void MainL()
//
// add your program code here, example code below
//
- int rc = test_main();
+ test_main();
console->Printf(_L(" [press any key]\n"));
console->Getch();
diff --git a/pjmedia/src/pjmedia/bidirectional.c b/pjmedia/src/pjmedia/bidirectional.c
index 441e895b..a504c737 100644
--- a/pjmedia/src/pjmedia/bidirectional.c
+++ b/pjmedia/src/pjmedia/bidirectional.c
@@ -54,7 +54,7 @@ PJ_DEF(pj_status_t) pjmedia_bidirectional_port_create( pj_pool_t *pool,
{
struct bidir_port *port;
- port = pj_pool_zalloc(pool, sizeof(struct bidir_port));
+ port = PJ_POOL_ZALLOC_T(pool, struct bidir_port);
pjmedia_port_info_init(&port->base.info, &get_port->info.name, SIGNATURE,
get_port->info.clock_rate,
diff --git a/pjmedia/src/pjmedia/echo_common.c b/pjmedia/src/pjmedia/echo_common.c
index 5f392ef6..079333b4 100644
--- a/pjmedia/src/pjmedia/echo_common.c
+++ b/pjmedia/src/pjmedia/echo_common.c
@@ -17,6 +17,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <pjmedia/config.h>
#include <pjmedia/echo.h>
#include <pj/assert.h>
#include <pj/pool.h>
diff --git a/pjmedia/src/pjmedia/nullsound.c b/pjmedia/src/pjmedia/nullsound.c
index 2b82bd19..f0c065ee 100644
--- a/pjmedia/src/pjmedia/nullsound.c
+++ b/pjmedia/src/pjmedia/nullsound.c
@@ -67,7 +67,7 @@ PJ_DEF(int) pjmedia_snd_get_dev_count(void)
PJ_DEF(const pjmedia_snd_dev_info*) pjmedia_snd_get_dev_info(unsigned index)
{
- PJ_ASSERT_RETURN(index==0 || index==-1, NULL);
+ PJ_ASSERT_RETURN(index==0 || index==(unsigned)-1, NULL);
return &null_info;
}
diff --git a/pjsip-apps/src/samples/sndinfo.c b/pjsip-apps/src/samples/sndinfo.c
index d7815c25..78521451 100644
--- a/pjsip-apps/src/samples/sndinfo.c
+++ b/pjsip-apps/src/samples/sndinfo.c
@@ -256,7 +256,6 @@ int main(int argc, char *argv[])
if (argc == 1) {
enum_devices();
- return 0;
} else if (argc == 6) {
int dev_id;
diff --git a/pjsip/include/pjsip/sip_transport.h b/pjsip/include/pjsip/sip_transport.h
index 5137ef70..aadd51ea 100644
--- a/pjsip/include/pjsip/sip_transport.h
+++ b/pjsip/include/pjsip/sip_transport.h
@@ -605,7 +605,8 @@ PJ_DECL(pj_status_t) pjsip_tx_data_set_transport(pjsip_tx_data *tdata,
* TRANSPORT
*
*****************************************************************************/
-
+typedef void (*pjsip_transport_callback)(pjsip_transport *tp, void *token,
+ pj_ssize_t sent_bytes);
/**
* This structure represent the "public" interface of a SIP transport.
* Applications normally extend this structure to include transport
@@ -671,9 +672,7 @@ struct pjsip_transport
const pj_sockaddr_t *rem_addr,
int addr_len,
void *token,
- void (*callback)(pjsip_transport *transport,
- void *token,
- pj_ssize_t sent_bytes));
+ pjsip_transport_callback callback);
/**
* Instruct the transport to initiate graceful shutdown procedure.
@@ -884,7 +883,8 @@ PJ_DECL(pj_status_t) pjsip_tpmgr_unregister_tpfactory(pjsip_tpmgr *mgr,
* TRANSPORT MANAGER
*
*****************************************************************************/
-
+typedef void (*pjsip_rx_callback)(pjsip_endpoint*, pj_status_t, pjsip_rx_data *);
+typedef pj_status_t (*pjsip_tx_callback)(pjsip_endpoint*, pjsip_tx_data*);
/**
* Create a new transport manager.
*
@@ -899,11 +899,8 @@ PJ_DECL(pj_status_t) pjsip_tpmgr_unregister_tpfactory(pjsip_tpmgr *mgr,
*/
PJ_DECL(pj_status_t) pjsip_tpmgr_create( pj_pool_t *pool,
pjsip_endpoint * endpt,
- void (*rx_cb)(pjsip_endpoint*,
- pj_status_t,
- pjsip_rx_data *),
- pj_status_t (*tx_cb)(pjsip_endpoint*,
- pjsip_tx_data*),
+ pjsip_rx_callback rx_cb,
+ pjsip_tx_callback tx_cb,
pjsip_tpmgr **p_mgr);
@@ -987,7 +984,8 @@ PJ_DECL(pj_status_t) pjsip_tpmgr_acquire_transport(pjsip_tpmgr *mgr,
const pjsip_tpselector *sel,
pjsip_transport **tp);
-
+typedef void (*pjsip_tp_send_callback)(void *token, pjsip_tx_data *tdata,
+ pj_ssize_t bytes_sent);
/**
* Send a SIP message using the specified transport.
*/
@@ -996,9 +994,7 @@ PJ_DECL(pj_status_t) pjsip_transport_send( pjsip_transport *tr,
const pj_sockaddr_t *addr,
int addr_len,
void *token,
- void (*cb)(void *token,
- pjsip_tx_data *tdata,
- pj_ssize_t bytes_sent));
+ pjsip_tp_send_callback cb);
/**
diff --git a/pjsip/include/pjsip/sip_util.h b/pjsip/include/pjsip/sip_util.h
index 62fb847c..18c1ce7b 100644
--- a/pjsip/include/pjsip/sip_util.h
+++ b/pjsip/include/pjsip/sip_util.h
@@ -258,6 +258,8 @@ typedef struct pjsip_send_state
pj_bool_t *cont);
} pjsip_send_state;
+typedef void (*pjsip_endpt_callback)(pjsip_send_state*, pj_ssize_t sent,
+ pj_bool_t *cont);
/**
* Send outgoing request statelessly The function will take care of which
* destination and transport to use based on the information in the message,
@@ -279,9 +281,7 @@ PJ_DECL(pj_status_t)
pjsip_endpt_send_request_stateless( pjsip_endpoint *endpt,
pjsip_tx_data *tdata,
void *token,
- void (*cb)(pjsip_send_state*,
- pj_ssize_t sent,
- pj_bool_t *cont));
+ pjsip_endpt_callback cb);
/**
* This structure describes destination information to send response.
@@ -357,9 +357,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_response( pjsip_endpoint *endpt,
pjsip_response_addr *res_addr,
pjsip_tx_data *tdata,
void *token,
- void (*cb)(pjsip_send_state*,
- pj_ssize_t sent,
- pj_bool_t *cont));
+ pjsip_endpt_callback cb);
/**
* This is a convenient function which wraps #pjsip_get_response_addr() and
@@ -382,9 +380,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_response2(pjsip_endpoint *endpt,
pjsip_rx_data *rdata,
pjsip_tx_data *tdata,
void *token,
- void (*cb)(pjsip_send_state*,
- pj_ssize_t sent,
- pj_bool_t *cont));
+ pjsip_endpt_callback cb);
/**
* This composite function sends response message statelessly to an incoming
@@ -445,6 +441,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_respond( pjsip_endpoint *endpt,
const pjsip_msg_body *body,
pjsip_transaction **p_tsx );
+typedef void (*pjsip_endpt_send_callback)(void*, pjsip_event*);
/**
* Send outgoing request and initiate UAC transaction for the request.
* This is an auxiliary function to be used by application to send arbitrary
@@ -469,7 +466,7 @@ PJ_DECL(pj_status_t) pjsip_endpt_send_request( pjsip_endpoint *endpt,
pjsip_tx_data *tdata,
pj_int32_t timeout,
void *token,
- void (*cb)(void*,pjsip_event*));
+ pjsip_endpt_send_callback cb);
/**
* @}
diff --git a/pjsip/src/pjsip/sip_parser.c b/pjsip/src/pjsip/sip_parser.c
index 644532ec..32a511cc 100644
--- a/pjsip/src/pjsip/sip_parser.c
+++ b/pjsip/src/pjsip/sip_parser.c
@@ -908,6 +908,7 @@ static pjsip_msg *int_parse_msg( pjsip_parse_ctx *ctx,
parsing_headers = PJ_FALSE;
+retry_parse:
PJ_TRY
{
if (parsing_headers)
@@ -1054,7 +1055,7 @@ parse_headers:
/* Continue parse next header, if any. */
if (!pj_scan_is_eof(scanner) && !IS_NEWLINE(*scanner->curptr)) {
- goto parse_headers;
+ goto retry_parse;
}
}
diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c
index 91ac4343..49afe464 100644
--- a/pjsip/src/pjsip/sip_transport.c
+++ b/pjsip/src/pjsip/sip_transport.c
@@ -548,9 +548,7 @@ PJ_DEF(pj_status_t) pjsip_transport_send( pjsip_transport *tr,
const pj_sockaddr_t *addr,
int addr_len,
void *token,
- void (*cb)(void *token,
- pjsip_tx_data *tdata,
- pj_ssize_t))
+ pjsip_tp_send_callback cb)
{
pj_status_t status;
@@ -883,11 +881,8 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_unregister_tpfactory( pjsip_tpmgr *mgr,
*/
PJ_DEF(pj_status_t) pjsip_tpmgr_create( pj_pool_t *pool,
pjsip_endpoint *endpt,
- void (*rx_cb)(pjsip_endpoint*,
- pj_status_t,
- pjsip_rx_data *),
- pj_status_t (*tx_cb)(pjsip_endpoint*,
- pjsip_tx_data*),
+ pjsip_rx_callback rx_cb,
+ pjsip_tx_callback tx_cb,
pjsip_tpmgr **p_mgr)
{
pjsip_tpmgr *mgr;
diff --git a/pjsip/src/pjsip/sip_transport_loop.c b/pjsip/src/pjsip/sip_transport_loop.c
index 25121978..d49fb3b3 100644
--- a/pjsip/src/pjsip/sip_transport_loop.c
+++ b/pjsip/src/pjsip/sip_transport_loop.c
@@ -145,9 +145,7 @@ static pj_status_t loop_send_msg( pjsip_transport *tp,
const pj_sockaddr_t *rem_addr,
int addr_len,
void *token,
- void (*cb)(pjsip_transport *transport,
- void *token,
- pj_ssize_t sent_bytes))
+ pjsip_transport_callback cb)
{
struct loop_transport *loop = (struct loop_transport*)tp;
struct recv_list *recv_pkt;
diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c
index 70008a78..40ec04bd 100644
--- a/pjsip/src/pjsip/sip_transport_tcp.c
+++ b/pjsip/src/pjsip/sip_transport_tcp.c
@@ -449,9 +449,7 @@ static pj_status_t tcp_send_msg(pjsip_transport *transport,
const pj_sockaddr_t *rem_addr,
int addr_len,
void *token,
- void (*callback)(pjsip_transport *transport,
- void *token,
- pj_ssize_t sent_bytes));
+ pjsip_transport_callback callback);
/* Called by transport manager to shutdown */
static pj_status_t tcp_shutdown(pjsip_transport *transport);
@@ -1038,9 +1036,7 @@ static pj_status_t tcp_send_msg(pjsip_transport *transport,
const pj_sockaddr_t *rem_addr,
int addr_len,
void *token,
- void (*callback)(pjsip_transport *transport,
- void *token,
- pj_ssize_t sent_bytes))
+ pjsip_transport_callback callback)
{
struct tcp_transport *tcp = (struct tcp_transport*)transport;
pj_ssize_t size;
@@ -1252,7 +1248,7 @@ static void on_read_complete(pj_ioqueue_key_t *key,
/* Read next packet. */
bytes_read = sizeof(rdata->pkt_info.packet) - rdata->pkt_info.len;
- rdata->pkt_info.src_addr_len = sizeof(rdata->pkt_info.src_addr);
+ rdata->pkt_info.src_addr_len = sizeof(pj_sockaddr_in);
status = pj_ioqueue_recv(key, op_key,
rdata->pkt_info.packet+rdata->pkt_info.len,
&bytes_read, flags);
diff --git a/pjsip/src/pjsip/sip_transport_udp.c b/pjsip/src/pjsip/sip_transport_udp.c
index 02b86fbb..48da26f9 100644
--- a/pjsip/src/pjsip/sip_transport_udp.c
+++ b/pjsip/src/pjsip/sip_transport_udp.c
@@ -286,9 +286,7 @@ static pj_status_t udp_send_msg( pjsip_transport *transport,
const pj_sockaddr_t *rem_addr,
int addr_len,
void *token,
- void (*callback)(pjsip_transport*,
- void *token,
- pj_ssize_t))
+ pjsip_transport_callback callback)
{
struct udp_transport *tp = (struct udp_transport*)transport;
pj_ssize_t size;
diff --git a/pjsip/src/pjsip/sip_util.c b/pjsip/src/pjsip/sip_util.c
index f0292be0..a611fe97 100644
--- a/pjsip/src/pjsip/sip_util.c
+++ b/pjsip/src/pjsip/sip_util.c
@@ -1005,9 +1005,7 @@ PJ_DEF(pj_status_t)
pjsip_endpt_send_request_stateless(pjsip_endpoint *endpt,
pjsip_tx_data *tdata,
void *token,
- void (*cb)(pjsip_send_state*,
- pj_ssize_t sent,
- pj_bool_t *cont))
+ pjsip_endpt_callback cb)
{
pjsip_host_info dest_info;
pjsip_send_state *stateless_data;
@@ -1226,9 +1224,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_response( pjsip_endpoint *endpt,
pjsip_response_addr *res_addr,
pjsip_tx_data *tdata,
void *token,
- void (*cb)(pjsip_send_state*,
- pj_ssize_t sent,
- pj_bool_t *cont))
+ pjsip_endpt_callback cb)
{
/* Determine which transports and addresses to send the response,
* based on Section 18.2.2 of RFC 3261.
@@ -1277,9 +1273,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_response2( pjsip_endpoint *endpt,
pjsip_rx_data *rdata,
pjsip_tx_data *tdata,
void *token,
- void (*cb)(pjsip_send_state*,
- pj_ssize_t sent,
- pj_bool_t *cont))
+ pjsip_endpt_callback cb)
{
pjsip_response_addr res_addr;
pj_status_t status;
diff --git a/pjsip/src/pjsip/sip_util_statefull.c b/pjsip/src/pjsip/sip_util_statefull.c
index 129a13cd..94ab4477 100644
--- a/pjsip/src/pjsip/sip_util_statefull.c
+++ b/pjsip/src/pjsip/sip_util_statefull.c
@@ -83,7 +83,7 @@ PJ_DEF(pj_status_t) pjsip_endpt_send_request( pjsip_endpoint *endpt,
pjsip_tx_data *tdata,
pj_int32_t timeout,
void *token,
- void (*cb)(void*,pjsip_event*))
+ pjsip_endpt_send_callback cb)
{
pjsip_transaction *tsx;
struct tsx_data *tsx_data;