From e015ebe064c6f5120ef2af2b73ce52796a06f790 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 14 Sep 2006 16:07:49 +0000 Subject: Added pjsip_transport_register_type() API to register new transport type. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@720 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/src/pjsip/sip_transport.c | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) (limited to 'pjsip/src') diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c index e18a9048..909632e8 100644 --- a/pjsip/src/pjsip/sip_transport.c +++ b/pjsip/src/pjsip/sip_transport.c @@ -97,13 +97,14 @@ struct transport_key /* * Transport names. */ -const struct +struct { pjsip_transport_type_e type; pj_uint16_t port; pj_str_t name; unsigned flag; -} transport_names[] = + char name_buf[16]; +} transport_names[16] = { { PJSIP_TRANSPORT_UNSPECIFIED, 0, {"Unspecified", 11}, 0}, { PJSIP_TRANSPORT_UDP, 5060, {"UDP", 3}, PJSIP_TRANSPORT_DATAGRAM}, @@ -115,6 +116,42 @@ const struct }; +/* + * Register new transport type to PJSIP. + */ +PJ_DECL(pj_status_t) pjsip_transport_register_type(unsigned tp_flag, + const char *tp_name, + int def_port, + int *p_tp_type) +{ + unsigned i; + + PJ_ASSERT_RETURN(tp_flag && tp_name && def_port, PJ_EINVAL); + PJ_ASSERT_RETURN(pj_ansi_strlen(tp_name) < + PJ_ARRAY_SIZE(transport_names[0].name_buf), + PJ_ENAMETOOLONG); + + for (i=1; i