summaryrefslogtreecommitdiff
path: root/pjlib/src/pj
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-07-20 08:08:30 +0000
committerBenny Prijono <bennylp@teluu.com>2007-07-20 08:08:30 +0000
commitd24a9aee403d6540ec792d3b56a1934fbc0969d4 (patch)
tree0706522f9173a479f4f3af4e6fbf1e1cddb9ef2b /pjlib/src/pj
parentc3f4bae326d9e2dfa78d23f288e822e7ae16c2db (diff)
Ticket #354: build PJLIB as dynamic libraries (.DSO) in Symbian
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1405 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjlib/src/pj')
-rw-r--r--pjlib/src/pj/addr_resolv_sock.c2
-rw-r--r--pjlib/src/pj/addr_resolv_symbian.cpp6
-rw-r--r--pjlib/src/pj/errno.c2
-rw-r--r--pjlib/src/pj/fifobuf.c15
-rw-r--r--pjlib/src/pj/file_io_ansi.c2
-rw-r--r--pjlib/src/pj/ioqueue_common_abs.c10
-rw-r--r--pjlib/src/pj/ioqueue_select.c16
-rw-r--r--pjlib/src/pj/ioqueue_winnt.c2
-rw-r--r--pjlib/src/pj/log.c10
-rw-r--r--pjlib/src/pj/os_core_symbian.cpp90
-rw-r--r--pjlib/src/pj/os_symbian.h2
-rw-r--r--pjlib/src/pj/os_time_common.c14
-rw-r--r--pjlib/src/pj/pool_caching.c4
-rw-r--r--pjlib/src/pj/pool_policy_kmalloc.c5
-rw-r--r--pjlib/src/pj/pool_policy_malloc.c8
-rw-r--r--pjlib/src/pj/pool_policy_new.cpp8
-rw-r--r--pjlib/src/pj/sock_common.c145
-rw-r--r--pjlib/src/pj/sock_symbian.cpp15
-rw-r--r--pjlib/src/pj/types.c2
19 files changed, 306 insertions, 52 deletions
diff --git a/pjlib/src/pj/addr_resolv_sock.c b/pjlib/src/pj/addr_resolv_sock.c
index 9e64378b..408eae12 100644
--- a/pjlib/src/pj/addr_resolv_sock.c
+++ b/pjlib/src/pj/addr_resolv_sock.c
@@ -83,7 +83,7 @@ PJ_DEF(pj_status_t) pj_gethostip(pj_in_addr *addr)
pj_sockaddr_in a;
int len;
- status = pj_sock_socket(PJ_AF_INET, PJ_SOCK_DGRAM, 0, &fd);
+ status = pj_sock_socket(pj_AF_INET(), pj_SOCK_DGRAM(), 0, &fd);
if (status != PJ_SUCCESS) {
return status;
}
diff --git a/pjlib/src/pj/addr_resolv_symbian.cpp b/pjlib/src/pj/addr_resolv_symbian.cpp
index 95da5cdd..ea3c7660 100644
--- a/pjlib/src/pj/addr_resolv_symbian.cpp
+++ b/pjlib/src/pj/addr_resolv_symbian.cpp
@@ -76,7 +76,7 @@ PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he)
// Return hostent
he->h_name = resolved_name;
he->h_aliases = no_aliases;
- he->h_addrtype = PJ_AF_INET;
+ he->h_addrtype = pj_AF_INET();
he->h_length = 4;
he->h_addr_list = (char**) addr_list;
@@ -85,7 +85,7 @@ PJ_DEF(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he)
/* Resolve the IP address of local machine */
-pj_status_t pj_gethostip(pj_in_addr *addr)
+PJ_DEF(pj_status_t) pj_gethostip(pj_in_addr *addr)
{
const pj_str_t *hostname = pj_gethostname();
struct pj_hostent he;
@@ -111,7 +111,7 @@ pj_status_t pj_gethostip(pj_in_addr *addr)
pj_sockaddr_in a;
int len;
- status = pj_sock_socket(PJ_AF_INET, PJ_SOCK_DGRAM, 0, &fd);
+ status = pj_sock_socket(pj_AF_INET(), pj_SOCK_DGRAM(), 0, &fd);
if (status != PJ_SUCCESS) {
return status;
}
diff --git a/pjlib/src/pj/errno.c b/pjlib/src/pj/errno.c
index f7273a42..a11f3b43 100644
--- a/pjlib/src/pj/errno.c
+++ b/pjlib/src/pj/errno.c
@@ -101,7 +101,7 @@ static int pjlib_error(pj_status_t code, char *buf, pj_size_t size)
#define IN_RANGE(val,start,end) ((val)>=(start) && (val)<(end))
/* Register strerror handle. */
-PJ_DECL(pj_status_t) pj_register_strerror(pj_status_t start,
+PJ_DEF(pj_status_t) pj_register_strerror( pj_status_t start,
pj_status_t space,
pjsip_error_callback f)
{
diff --git a/pjlib/src/pj/fifobuf.c b/pjlib/src/pj/fifobuf.c
index 08bf907a..54a23753 100644
--- a/pjlib/src/pj/fifobuf.c
+++ b/pjlib/src/pj/fifobuf.c
@@ -25,8 +25,7 @@
#define SZ sizeof(unsigned)
-PJ_DEF(void)
-pj_fifobuf_init (pj_fifobuf_t *fifobuf, void *buffer, unsigned size)
+PJ_DEF(void) pj_fifobuf_init (pj_fifobuf_t *fifobuf, void *buffer, unsigned size)
{
PJ_CHECK_STACK();
@@ -40,8 +39,7 @@ pj_fifobuf_init (pj_fifobuf_t *fifobuf, void *buffer, unsigned size)
fifobuf->full = 0;
}
-PJ_DEF(unsigned)
-pj_fifobuf_max_size (pj_fifobuf_t *fifobuf)
+PJ_DEF(unsigned) pj_fifobuf_max_size (pj_fifobuf_t *fifobuf)
{
unsigned s1, s2;
@@ -57,8 +55,7 @@ pj_fifobuf_max_size (pj_fifobuf_t *fifobuf)
return s1<s2 ? s2 : s1;
}
-PJ_DEF(void*)
-pj_fifobuf_alloc (pj_fifobuf_t *fifobuf, unsigned size)
+PJ_DEF(void*) pj_fifobuf_alloc (pj_fifobuf_t *fifobuf, unsigned size)
{
unsigned available;
char *start;
@@ -115,8 +112,7 @@ pj_fifobuf_alloc (pj_fifobuf_t *fifobuf, unsigned size)
return NULL;
}
-PJ_DEF(pj_status_t)
-pj_fifobuf_unalloc (pj_fifobuf_t *fifobuf, void *buf)
+PJ_DEF(pj_status_t) pj_fifobuf_unalloc (pj_fifobuf_t *fifobuf, void *buf)
{
char *ptr = (char*)buf;
char *endptr;
@@ -146,8 +142,7 @@ pj_fifobuf_unalloc (pj_fifobuf_t *fifobuf, void *buf)
return 0;
}
-PJ_DEF(pj_status_t)
-pj_fifobuf_free (pj_fifobuf_t *fifobuf, void *buf)
+PJ_DEF(pj_status_t) pj_fifobuf_free (pj_fifobuf_t *fifobuf, void *buf)
{
char *ptr = (char*)buf;
char *end;
diff --git a/pjlib/src/pj/file_io_ansi.c b/pjlib/src/pj/file_io_ansi.c
index 6d340ce1..1bdfef8b 100644
--- a/pjlib/src/pj/file_io_ansi.c
+++ b/pjlib/src/pj/file_io_ansi.c
@@ -109,11 +109,13 @@ PJ_DEF(pj_status_t) pj_file_read( pj_oshandle_t fd,
return PJ_SUCCESS;
}
+/*
PJ_DEF(pj_bool_t) pj_file_eof(pj_oshandle_t fd, enum pj_file_access access)
{
PJ_UNUSED_ARG(access);
return feof((FILE*)fd) ? PJ_TRUE : 0;
}
+*/
PJ_DEF(pj_status_t) pj_file_setpos( pj_oshandle_t fd,
pj_off_t offset,
diff --git a/pjlib/src/pj/ioqueue_common_abs.c b/pjlib/src/pj/ioqueue_common_abs.c
index 8fd1be72..fdd1afe7 100644
--- a/pjlib/src/pj/ioqueue_common_abs.c
+++ b/pjlib/src/pj/ioqueue_common_abs.c
@@ -100,10 +100,10 @@ static pj_status_t ioqueue_init_key( pj_pool_t *pool,
* will be performed during send to allow parallel send operations.
*/
optlen = sizeof(key->fd_type);
- rc = pj_sock_getsockopt(sock, PJ_SOL_SOCKET, PJ_SO_TYPE,
+ rc = pj_sock_getsockopt(sock, pj_SOL_SOCKET(), pj_SO_TYPE(),
&key->fd_type, &optlen);
if (rc != PJ_SUCCESS)
- key->fd_type = PJ_SOCK_STREAM;
+ key->fd_type = pj_SOCK_STREAM();
/* Create mutex for the key. */
#if !PJ_IOQUEUE_HAS_SAFE_UNREG
@@ -269,7 +269,7 @@ void ioqueue_dispatch_write_event(pj_ioqueue_t *ioqueue, pj_ioqueue_key_t *h)
/* For datagrams, we can remove the write_op from the list
* so that send() can work in parallel.
*/
- if (h->fd_type == PJ_SOCK_DGRAM) {
+ if (h->fd_type == pj_SOCK_DGRAM()) {
pj_list_erase(write_op);
if (pj_list_empty(&h->write_list))
@@ -315,12 +315,12 @@ void ioqueue_dispatch_write_event(pj_ioqueue_t *ioqueue, pj_ioqueue_key_t *h)
/* Are we finished with this buffer? */
if (send_rc!=PJ_SUCCESS ||
write_op->written == (pj_ssize_t)write_op->size ||
- h->fd_type == PJ_SOCK_DGRAM)
+ h->fd_type == pj_SOCK_DGRAM())
{
write_op->op = PJ_IOQUEUE_OP_NONE;
- if (h->fd_type != PJ_SOCK_DGRAM) {
+ if (h->fd_type != pj_SOCK_DGRAM()) {
/* Write completion of the whole stream. */
pj_list_erase(write_op);
diff --git a/pjlib/src/pj/ioqueue_select.c b/pjlib/src/pj/ioqueue_select.c
index e200d642..48612d22 100644
--- a/pjlib/src/pj/ioqueue_select.c
+++ b/pjlib/src/pj/ioqueue_select.c
@@ -64,22 +64,6 @@
# error "Error reporting must be enabled for this function to work!"
#endif
-/**
- * Get the number of descriptors in the set. This is defined in sock_select.c
- * This function will only return the number of sockets set from PJ_FD_SET
- * operation. When the set is modified by other means (such as by select()),
- * the count will not be reflected here.
- *
- * That's why don't export this function in the header file, to avoid
- * misunderstanding.
- *
- * @param fdsetp The descriptor set.
- *
- * @return Number of descriptors in the set.
- */
-PJ_DECL(pj_size_t) PJ_FD_COUNT(const pj_fd_set_t *fdsetp);
-
-
/*
* During debugging build, VALIDATE_FD_SET is set.
* This will check the validity of the fd_sets.
diff --git a/pjlib/src/pj/ioqueue_winnt.c b/pjlib/src/pj/ioqueue_winnt.c
index 8d17878e..3e8253e1 100644
--- a/pjlib/src/pj/ioqueue_winnt.c
+++ b/pjlib/src/pj/ioqueue_winnt.c
@@ -1106,7 +1106,7 @@ PJ_DEF(pj_status_t) pj_ioqueue_accept( pj_ioqueue_key_t *key,
*/
op_key_rec = (union operation_key*)op_key->internal__;
- status = pj_sock_socket(PJ_AF_INET, PJ_SOCK_STREAM, 0,
+ status = pj_sock_socket(pj_AF_INET(), pj_SOCK_STREAM(), 0,
&op_key_rec->accept.newsock);
if (status != PJ_SUCCESS)
return status;
diff --git a/pjlib/src/pj/log.c b/pjlib/src/pj/log.c
index 518854c4..59e8956f 100644
--- a/pjlib/src/pj/log.c
+++ b/pjlib/src/pj/log.c
@@ -24,7 +24,11 @@
#if PJ_LOG_MAX_LEVEL >= 1
-PJ_DEF(int) pj_log_max_level = PJ_LOG_MAX_LEVEL;
+#if 0
+PJ_DEF_DATA(int) pj_log_max_level = PJ_LOG_MAX_LEVEL;
+#else
+static int pj_log_max_level = PJ_LOG_MAX_LEVEL;
+#endif
static pj_log_func *log_writer = &pj_log_write;
static unsigned log_decor = PJ_LOG_HAS_TIME | PJ_LOG_HAS_MICRO_SEC |
PJ_LOG_HAS_SENDER | PJ_LOG_HAS_NEWLINE;
@@ -48,7 +52,7 @@ PJ_DEF(void) pj_log_set_level(int level)
pj_log_max_level = level;
}
-#if 0
+#if 1
PJ_DEF(int) pj_log_get_level(void)
{
return pj_log_max_level;
@@ -169,6 +173,7 @@ PJ_DEF(void) pj_log( const char *sender, int level,
(*log_writer)(level, log_buffer, len);
}
+/*
PJ_DEF(void) pj_log_0(const char *obj, const char *format, ...)
{
va_list arg;
@@ -176,6 +181,7 @@ PJ_DEF(void) pj_log_0(const char *obj, const char *format, ...)
pj_log(obj, 0, format, arg);
va_end(arg);
}
+*/
PJ_DEF(void) pj_log_1(const char *obj, const char *format, ...)
{
diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp
index a3ec3c04..f13365a5 100644
--- a/pjlib/src/pj/os_core_symbian.cpp
+++ b/pjlib/src/pj/os_core_symbian.cpp
@@ -260,8 +260,6 @@ PJ_DEF(pj_uint32_t) pj_getpid(void)
}
-PJ_DECL(void) pj_shutdown(void);
-
/*
* pj_init(void).
* Init PJLIB!
@@ -333,6 +331,94 @@ PJ_DEF(void) pj_shutdown(void)
os->Shutdown();
}
+/////////////////////////////////////////////////////////////////////////////
+
+class CPollTimeoutTimer : public CActive
+{
+public:
+ static CPollTimeoutTimer* NewL(int msec, TInt prio);
+ ~CPollTimeoutTimer();
+
+ virtual void RunL();
+ virtual void DoCancel();
+
+private:
+ RTimer rtimer_;
+
+ explicit CPollTimeoutTimer(TInt prio);
+ void ConstructL(int msec);
+};
+
+CPollTimeoutTimer::CPollTimeoutTimer(TInt prio)
+: CActive(prio)
+{
+}
+
+
+CPollTimeoutTimer::~CPollTimeoutTimer()
+{
+ rtimer_.Close();
+}
+
+void CPollTimeoutTimer::ConstructL(int msec)
+{
+ rtimer_.CreateLocal();
+ CActiveScheduler::Add(this);
+ rtimer_.After(iStatus, msec*1000);
+ SetActive();
+}
+
+CPollTimeoutTimer* CPollTimeoutTimer::NewL(int msec, TInt prio)
+{
+ CPollTimeoutTimer *self = new CPollTimeoutTimer(prio);
+ CleanupStack::PushL(self);
+ self->ConstructL(msec);
+ CleanupStack::Pop(self);
+
+ return self;
+}
+
+void CPollTimeoutTimer::RunL()
+{
+}
+
+void CPollTimeoutTimer::DoCancel()
+{
+ rtimer_.Cancel();
+}
+
+
+/*
+ * Wait the completion of any Symbian active objects.
+ */
+PJ_DEF(pj_bool_t) pj_symbianos_poll(int priority, int ms_timeout)
+{
+ CPollTimeoutTimer *timer = NULL;
+
+ if (priority==-1)
+ priority = CActive::EPriorityStandard;
+
+ if (ms_timeout >= 0) {
+ timer = CPollTimeoutTimer::NewL(ms_timeout, priority);
+ }
+
+ PjSymbianOS::Instance()->WaitForActiveObjects(priority);
+
+ if (timer) {
+ bool timer_is_active = timer->IsActive();
+
+ if (timer_is_active)
+ timer->Cancel();
+
+ delete timer;
+
+ return timer_is_active ? PJ_TRUE : PJ_FALSE;
+
+ } else {
+ return PJ_TRUE;
+ }
+}
+
/*
* pj_thread_register(..)
diff --git a/pjlib/src/pj/os_symbian.h b/pjlib/src/pj/os_symbian.h
index a1977871..abfa7f04 100644
--- a/pjlib/src/pj/os_symbian.h
+++ b/pjlib/src/pj/os_symbian.h
@@ -220,7 +220,7 @@ public:
pj_sockaddr_in &pj_addr)
{
pj_bzero(&pj_addr, sizeof(pj_sockaddr_in));
- pj_addr.sin_family = PJ_AF_INET;
+ pj_addr.sin_family = pj_AF_INET();
pj_addr.sin_addr.s_addr = pj_htonl(sym_addr.Address());
pj_addr.sin_port = pj_htons((pj_uint16_t) sym_addr.Port());
}
diff --git a/pjlib/src/pj/os_time_common.c b/pjlib/src/pj/os_time_common.c
index 5fffe948..331116bc 100644
--- a/pjlib/src/pj/os_time_common.c
+++ b/pjlib/src/pj/os_time_common.c
@@ -18,6 +18,8 @@
*/
#include <pj/os.h>
#include <pj/compat/time.h>
+#include <pj/errno.h>
+
///////////////////////////////////////////////////////////////////////////////
@@ -65,11 +67,19 @@ PJ_DEF(pj_status_t) pj_time_encode(const pj_parsed_time *pt, pj_time_val *tv)
/**
* Convert local time to GMT.
*/
-PJ_DEF(pj_status_t) pj_time_local_to_gmt(pj_time_val *tv);
+PJ_DEF(pj_status_t) pj_time_local_to_gmt(pj_time_val *tv)
+{
+ PJ_UNUSED_ARG(tv);
+ return PJ_EBUG;
+}
/**
* Convert GMT to local time.
*/
-PJ_DEF(pj_status_t) pj_time_gmt_to_local(pj_time_val *tv);
+PJ_DEF(pj_status_t) pj_time_gmt_to_local(pj_time_val *tv)
+{
+ PJ_UNUSED_ARG(tv);
+ return PJ_EBUG;
+}
diff --git a/pjlib/src/pj/pool_caching.c b/pjlib/src/pj/pool_caching.c
index 01c303d6..295d6b9a 100644
--- a/pjlib/src/pj/pool_caching.c
+++ b/pjlib/src/pj/pool_caching.c
@@ -65,6 +65,10 @@ PJ_DEF(void) pj_caching_pool_init( pj_caching_pool *cp,
for (i=0; i<PJ_CACHING_POOL_ARRAY_SIZE; ++i)
pj_list_init(&cp->free_list[i]);
+ if (policy == NULL) {
+ policy = &pj_pool_factory_default_policy;
+ }
+
pj_memcpy(&cp->factory.policy, policy, sizeof(pj_pool_factory_policy));
cp->factory.create_pool = &cpool_create_pool;
cp->factory.release_pool = &cpool_release_pool;
diff --git a/pjlib/src/pj/pool_policy_kmalloc.c b/pjlib/src/pj/pool_policy_kmalloc.c
index 439fa4c5..7dc4044d 100644
--- a/pjlib/src/pj/pool_policy_kmalloc.c
+++ b/pjlib/src/pj/pool_policy_kmalloc.c
@@ -56,3 +56,8 @@ pj_pool_factory_policy pj_pool_factory_default_policy =
0
};
+PJ_DEF(const pj_pool_factory_policy*) pj_pool_factory_get_default_policy(void)
+{
+ return &pj_pool_factory_default_policy;
+}
+
diff --git a/pjlib/src/pj/pool_policy_malloc.c b/pjlib/src/pj/pool_policy_malloc.c
index d7e8ad1f..38db7fd7 100644
--- a/pjlib/src/pj/pool_policy_malloc.c
+++ b/pjlib/src/pj/pool_policy_malloc.c
@@ -86,7 +86,7 @@ static void default_pool_callback(pj_pool_t *pool, pj_size_t size)
PJ_THROW(PJ_NO_MEMORY_EXCEPTION);
}
-pj_pool_factory_policy pj_pool_factory_default_policy =
+PJ_DECL_DATA(pj_pool_factory_policy) pj_pool_factory_default_policy =
{
&default_block_alloc,
&default_block_free,
@@ -94,4 +94,10 @@ pj_pool_factory_policy pj_pool_factory_default_policy =
0
};
+PJ_DEF(const pj_pool_factory_policy*) pj_pool_factory_get_default_policy(void)
+{
+ return &pj_pool_factory_default_policy;
+}
+
+
#endif /* PJ_HAS_POOL_ALT_API */
diff --git a/pjlib/src/pj/pool_policy_new.cpp b/pjlib/src/pj/pool_policy_new.cpp
index 82374adc..42771660 100644
--- a/pjlib/src/pj/pool_policy_new.cpp
+++ b/pjlib/src/pj/pool_policy_new.cpp
@@ -77,19 +77,19 @@ static void default_pool_callback(pj_pool_t *pool, pj_size_t size)
PJ_THROW(PJ_NO_MEMORY_EXCEPTION);
}
-pj_pool_factory_policy pj_pool_factory_default_policy =
+PJ_DEF_DATA(pj_pool_factory_policy) pj_pool_factory_default_policy =
{
&operator_new,
&operator_delete,
&default_pool_callback,
0
};
-
-PJ_DEF(pj_pool_factory_policy*) pj_pool_factory_get_default_policy(void)
+
+PJ_DEF(const pj_pool_factory_policy*) pj_pool_factory_get_default_policy(void)
{
return &pj_pool_factory_default_policy;
}
-
+
#endif /* PJ_HAS_POOL_ALT_API */
diff --git a/pjlib/src/pj/sock_common.c b/pjlib/src/pj/sock_common.c
new file mode 100644
index 00000000..4431f593
--- /dev/null
+++ b/pjlib/src/pj/sock_common.c
@@ -0,0 +1,145 @@
+/* $Id$ */
+/*
+ * Copyright (C)2003-2007 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include <pj/sock.h>
+
+PJ_DEF(pj_uint16_t) pj_AF_UNIX(void)
+{
+ return PJ_AF_UNIX;
+}
+
+PJ_DEF(pj_uint16_t) pj_AF_INET(void)
+{
+ return PJ_AF_INET;
+}
+
+PJ_DEF(pj_uint16_t) pj_AF_INET6(void)
+{
+ return PJ_AF_INET6;
+}
+
+PJ_DEF(pj_uint16_t) pj_AF_PACKET(void)
+{
+ return PJ_AF_PACKET;
+}
+
+PJ_DEF(pj_uint16_t) pj_AF_IRDA(void)
+{
+ return PJ_AF_IRDA;
+}
+
+PJ_DEF(int) pj_SOCK_STREAM(void)
+{
+ return PJ_SOCK_STREAM;
+}
+
+PJ_DEF(int) pj_SOCK_DGRAM(void)
+{
+ return PJ_SOCK_DGRAM;
+}
+
+PJ_DEF(int) pj_SOCK_RAW(void)
+{
+ return PJ_SOCK_RAW;
+}
+
+PJ_DEF(int) pj_SOCK_RDM(void)
+{
+ return PJ_SOCK_RDM;
+}
+
+PJ_DEF(pj_uint16_t) pj_SOL_SOCKET(void)
+{
+ return PJ_SOL_SOCKET;
+}
+
+PJ_DEF(pj_uint16_t) pj_SOL_IP(void)
+{
+ return PJ_SOL_IP;
+}
+
+PJ_DEF(pj_uint16_t) pj_SOL_TCP(void)
+{
+ return PJ_SOL_TCP;
+}
+
+PJ_DEF(pj_uint16_t) pj_SOL_UDP(void)
+{
+ return PJ_SOL_UDP;
+}
+
+PJ_DEF(pj_uint16_t) pj_SOL_IPV6(void)
+{
+ return PJ_SOL_IPV6;
+}
+
+PJ_DEF(int) pj_IP_TOS(void)
+{
+ return PJ_IP_TOS;
+}
+
+PJ_DEF(int) pj_IPTOS_LOWDELAY(void)
+{
+ return PJ_IPTOS_LOWDELAY;
+}
+
+PJ_DEF(int) pj_IPTOS_THROUGHPUT(void)
+{
+ return PJ_IPTOS_THROUGHPUT;
+}
+
+PJ_DEF(int) pj_IPTOS_RELIABILITY(void)
+{
+ return PJ_IPTOS_RELIABILITY;
+}
+
+PJ_DEF(int) pj_IPTOS_MINCOST(void)
+{
+ return PJ_IPTOS_MINCOST;
+}
+
+PJ_DEF(pj_uint16_t) pj_SO_TYPE(void)
+{
+ return PJ_SO_TYPE;
+}
+
+PJ_DEF(pj_uint16_t) pj_SO_RCVBUF(void)
+{
+ return PJ_SO_RCVBUF;
+}
+
+PJ_DEF(pj_uint16_t) pj_SO_SNDBUF(void)
+{
+ return PJ_SO_SNDBUF;
+}
+
+PJ_DEF(int) pj_MSG_OOB(void)
+{
+ return PJ_MSG_OOB;
+}
+
+PJ_DEF(int) pj_MSG_PEEK(void)
+{
+ return PJ_MSG_PEEK;
+}
+
+PJ_DEF(int) pj_MSG_DONTROUTE(void)
+{
+ return PJ_MSG_DONTROUTE;
+}
+
diff --git a/pjlib/src/pj/sock_symbian.cpp b/pjlib/src/pj/sock_symbian.cpp
index 38960917..7c7680a9 100644
--- a/pjlib/src/pj/sock_symbian.cpp
+++ b/pjlib/src/pj/sock_symbian.cpp
@@ -52,11 +52,22 @@ const pj_uint16_t PJ_SOL_TCP = 0xFFFF;
const pj_uint16_t PJ_SOL_UDP = 0xFFFF;
const pj_uint16_t PJ_SOL_IPV6 = 0xFFFF;
+/* TOS */
+const pj_uint16_t PJ_IP_TOS = 0;
+const pj_uint16_t PJ_IPTOS_LOWDELAY = 0;
+const pj_uint16_t PJ_IPTOS_THROUGHPUT = 0;
+const pj_uint16_t PJ_IPTOS_RELIABILITY = 0;
+const pj_uint16_t PJ_IPTOS_MINCOST = 0;
+
/* ioctl() is also not supported. */
const pj_uint16_t PJ_SO_TYPE = 0xFFFF;
const pj_uint16_t PJ_SO_RCVBUF = 0xFFFF;
const pj_uint16_t PJ_SO_SNDBUF = 0xFFFF;
+/* Flags */
+const int PJ_MSG_OOB = 0;
+const int PJ_MSG_PEEK = KSockReadPeek;
+const int PJ_MSG_DONTROUTE = 0;
/////////////////////////////////////////////////////////////////////////////
//
@@ -455,9 +466,9 @@ PJ_DEF(pj_status_t) pj_sock_socket(int af,
/* Set proto if none is specified. */
if (proto == 0) {
- if (type == PJ_SOCK_STREAM)
+ if (type == pj_SOCK_STREAM())
proto = KProtocolInetTcp;
- else if (type == PJ_SOCK_DGRAM)
+ else if (type == pj_SOCK_DGRAM())
proto = KProtocolInetUdp;
}
diff --git a/pjlib/src/pj/types.c b/pjlib/src/pj/types.c
index 030d6fce..1581b4c1 100644
--- a/pjlib/src/pj/types.c
+++ b/pjlib/src/pj/types.c
@@ -19,7 +19,7 @@
#include <pj/types.h>
#include <pj/os.h>
-void pj_time_val_normalize(pj_time_val *t)
+PJ_DEF(void) pj_time_val_normalize(pj_time_val *t)
{
PJ_CHECK_STACK();