From d73e5c4efb3ce395e82ef7f4f88afc2b57e52230 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 6 Apr 2007 10:29:20 +0000 Subject: Fixed ticket #216: Build error when PJ_HAS_TCP is set to zero (thanks ChenHuan) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1159 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/src/pj/ioqueue_common_abs.c | 1 + pjlib/src/pj/ioqueue_select.c | 11 +++++++++-- pjlib/src/pj/ioqueue_winnt.c | 4 ++++ pjsip-apps/src/samples/pjsip-perf.c | 5 ++++- pjsip-apps/src/samples/sipstateless.c | 4 ++-- pjsip/include/pjsip/sip_transport_tcp.h | 7 +++++++ pjsip/src/pjsip/sip_transport_tcp.c | 5 +++++ pjsip/src/pjsua-lib/pjsua_core.c | 4 ++++ pjsip/src/test-pjsip/test.c | 6 +++++- pjsip/src/test-pjsip/transport_tcp_test.c | 7 +++++++ 10 files changed, 48 insertions(+), 6 deletions(-) diff --git a/pjlib/src/pj/ioqueue_common_abs.c b/pjlib/src/pj/ioqueue_common_abs.c index 2301ac96..82f962c2 100644 --- a/pjlib/src/pj/ioqueue_common_abs.c +++ b/pjlib/src/pj/ioqueue_common_abs.c @@ -155,6 +155,7 @@ PJ_INLINE(int) key_has_pending_accept(pj_ioqueue_key_t *key) #if PJ_HAS_TCP return !pj_list_empty(&key->accept_list); #else + PJ_UNUSED_ARG(key); return 0; #endif } diff --git a/pjlib/src/pj/ioqueue_select.c b/pjlib/src/pj/ioqueue_select.c index 7595e635..f5e36904 100644 --- a/pjlib/src/pj/ioqueue_select.c +++ b/pjlib/src/pj/ioqueue_select.c @@ -556,8 +556,10 @@ static void ioqueue_remove_from_set( pj_ioqueue_t *ioqueue, PJ_FD_CLR((pj_sock_t)key->fd, &ioqueue->rfdset); else if (event_type == WRITEABLE_EVENT) PJ_FD_CLR((pj_sock_t)key->fd, &ioqueue->wfdset); +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 else if (event_type == EXCEPTION_EVENT) PJ_FD_CLR((pj_sock_t)key->fd, &ioqueue->xfdset); +#endif else pj_assert(0); @@ -580,8 +582,10 @@ static void ioqueue_add_to_set( pj_ioqueue_t *ioqueue, PJ_FD_SET((pj_sock_t)key->fd, &ioqueue->rfdset); else if (event_type == WRITEABLE_EVENT) PJ_FD_SET((pj_sock_t)key->fd, &ioqueue->wfdset); +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 else if (event_type == EXCEPTION_EVENT) PJ_FD_SET((pj_sock_t)key->fd, &ioqueue->xfdset); +#endif else pj_assert(0); @@ -649,8 +653,11 @@ PJ_DEF(int) pj_ioqueue_poll( pj_ioqueue_t *ioqueue, const pj_time_val *timeout) * Otherwise select() will return error. */ if (PJ_FD_COUNT(&ioqueue->rfdset)==0 && - PJ_FD_COUNT(&ioqueue->wfdset)==0 && - PJ_FD_COUNT(&ioqueue->xfdset)==0) + PJ_FD_COUNT(&ioqueue->wfdset)==0 +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 + && PJ_FD_COUNT(&ioqueue->xfdset)==0 +#endif + ) { #if PJ_IOQUEUE_HAS_SAFE_UNREG scan_closing_keys(ioqueue); diff --git a/pjlib/src/pj/ioqueue_winnt.c b/pjlib/src/pj/ioqueue_winnt.c index ce8cd5d9..8d17878e 100644 --- a/pjlib/src/pj/ioqueue_winnt.c +++ b/pjlib/src/pj/ioqueue_winnt.c @@ -366,7 +366,9 @@ PJ_DEF(pj_status_t) pj_ioqueue_create( pj_pool_t *pool, */ PJ_DEF(pj_status_t) pj_ioqueue_destroy( pj_ioqueue_t *ioqueue ) { +#if PJ_HAS_TCP unsigned i; +#endif pj_ioqueue_key_t *key; PJ_CHECK_STACK(); @@ -739,7 +741,9 @@ PJ_DEF(pj_status_t) pj_ioqueue_unregister( pj_ioqueue_key_t *key ) PJ_DEF(int) pj_ioqueue_poll( pj_ioqueue_t *ioqueue, const pj_time_val *timeout) { DWORD dwMsec; +#if PJ_HAS_TCP int connect_count = 0; +#endif int event_count = 0; PJ_ASSERT_RETURN(ioqueue, -PJ_EINVAL); diff --git a/pjsip-apps/src/samples/pjsip-perf.c b/pjsip-apps/src/samples/pjsip-perf.c index ae7d0ee1..264c2065 100644 --- a/pjsip-apps/src/samples/pjsip-perf.c +++ b/pjsip-apps/src/samples/pjsip-perf.c @@ -771,7 +771,9 @@ static pj_status_t init_sip() if (app.local_port != 0) addrname.port = app.local_port; - if (app.use_tcp) { + if (0) { +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 + } else if (app.use_tcp) { pj_sockaddr_in local_addr; pjsip_tpfactory *tpfactory; @@ -783,6 +785,7 @@ static pj_status_t init_sip() app.local_addr = tpfactory->addr_name.host; app.local_port = tpfactory->addr_name.port; } +#endif } else { pjsip_transport *tp; diff --git a/pjsip-apps/src/samples/sipstateless.c b/pjsip-apps/src/samples/sipstateless.c index 832c021f..53b1fc7c 100644 --- a/pjsip-apps/src/samples/sipstateless.c +++ b/pjsip-apps/src/samples/sipstateless.c @@ -36,7 +36,7 @@ #define HAS_UDP_TRANSPORT /* If this macro is set, TCP transport will be initialized at port 5060 */ -#define HAS_TCP_TRANSPORT +#define HAS_TCP_TRANSPORT (1 && PJ_HAS_TCP) /* Log identification */ #define THIS_FILE "sipstateless.c" @@ -141,7 +141,7 @@ int main(int argc, char *argv[]) } #endif -#ifdef HAS_TCP_TRANSPORT +#if HAS_TCP_TRANSPORT /* * Add UDP transport, with hard-coded port */ diff --git a/pjsip/include/pjsip/sip_transport_tcp.h b/pjsip/include/pjsip/sip_transport_tcp.h index ff1af7a9..abadf171 100644 --- a/pjsip/include/pjsip/sip_transport_tcp.h +++ b/pjsip/include/pjsip/sip_transport_tcp.h @@ -26,6 +26,11 @@ #include + +/* Only declare the API if PJ_HAS_TCP is true */ +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 + + PJ_BEGIN_DECL /** @@ -112,4 +117,6 @@ PJ_END_DECL * @} */ +#endif /* PJ_HAS_TCP */ + #endif /* __PJSIP_TRANSPORT_TCP_H__ */ diff --git a/pjsip/src/pjsip/sip_transport_tcp.c b/pjsip/src/pjsip/sip_transport_tcp.c index 481387c0..6033a8d3 100644 --- a/pjsip/src/pjsip/sip_transport_tcp.c +++ b/pjsip/src/pjsip/sip_transport_tcp.c @@ -29,6 +29,9 @@ #include #include +/* Only declare the API if PJ_HAS_TCP is true */ +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 + #define THIS_FILE "sip_transport_tcp.c" @@ -1365,3 +1368,5 @@ static void on_connect_complete(pj_ioqueue_key_t *key, tcp_flush_pending_tx(tcp); } +#endif /* PJ_HAS_TCP */ + diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c index e40882d5..136364ff 100644 --- a/pjsip/src/pjsua-lib/pjsua_core.c +++ b/pjsip/src/pjsua-lib/pjsua_core.c @@ -1191,6 +1191,8 @@ PJ_DEF(pj_status_t) pjsua_transport_create( pjsip_transport_type_e type, pjsua_var.tpdata[id].local_name = tp->local_name; pjsua_var.tpdata[id].data.tp = tp; +#if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 + } else if (type == PJSIP_TRANSPORT_TCP) { /* * Create TCP transport. @@ -1242,6 +1244,8 @@ PJ_DEF(pj_status_t) pjsua_transport_create( pjsip_transport_type_e type, pjsua_var.tpdata[id].local_name = tcp->addr_name; pjsua_var.tpdata[id].data.factory = tcp; +#endif /* PJ_HAS_TCP */ + #if defined(PJSIP_HAS_TLS_TRANSPORT) && PJSIP_HAS_TLS_TRANSPORT!=0 } else if (type == PJSIP_TRANSPORT_TLS) { /* diff --git a/pjsip/src/test-pjsip/test.c b/pjsip/src/test-pjsip/test.c index 62360756..62e3aed3 100644 --- a/pjsip/src/test-pjsip/test.c +++ b/pjsip/src/test-pjsip/test.c @@ -226,8 +226,10 @@ int test_main(void) #if INCLUDE_TSX_TEST unsigned i; pjsip_transport *tp; +#if PJ_HAS_TCP pjsip_tpfactory *tpfactory; -#endif +#endif /* PJ_HAS_TCP */ +#endif /* INCLUDE_TSX_TEST */ int line; pj_log_set_level(log_level); @@ -331,6 +333,7 @@ int test_main(void) ++tsx_test_cnt; } +#if PJ_HAS_TCP status = pjsip_tcp_transport_start(endpt, NULL, 1, &tpfactory); if (status == PJ_SUCCESS) { tsx_test[tsx_test_cnt].port = tpfactory->addr_name.port; @@ -342,6 +345,7 @@ int test_main(void) rc = -4; goto on_return; } +#endif for (i=0; i