diff options
author | Benny Prijono <bennylp@teluu.com> | 2007-04-22 12:48:30 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2007-04-22 12:48:30 +0000 |
commit | 560d8dba3b98b2a5ae65da01b5021757eb366888 (patch) | |
tree | 2b947a42f03be862b6fa1a45ce1e95723cee0ac1 /pjnath | |
parent | 44d9c946fc77600985b869552887497c2a539d5c (diff) |
Merged changes from the trunk
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/split-3rd-party@1210 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath')
-rw-r--r-- | pjnath/build/Makefile | 32 | ||||
-rw-r--r-- | pjnath/src/pjnath/ice_session.c | 2 | ||||
-rw-r--r-- | pjnath/src/pjnath/ice_strans.c | 16 | ||||
-rw-r--r-- | pjnath/src/pjstun-client/client_main.c | 10 |
4 files changed, 50 insertions, 10 deletions
diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile index 390bfd06..2f265f17 100644 --- a/pjnath/build/Makefile +++ b/pjnath/build/Makefile @@ -10,7 +10,6 @@ RULES_MAK := $(PJDIR)/build/rules.mak PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT) PJNATH_LIB:=../../pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT) -export PJNATH_LIB:=../lib/libpjnath-$(TARGET_NAME)$(LIBEXT) ############################################################################### # Gather all flags. @@ -27,7 +26,7 @@ export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \ $(LDFLAGS) ############################################################################### -# Defines for building PJLIB-UTIL library +# Defines for building PJNATH library # export PJNATH_SRCDIR = ../src/pjnath export PJNATH_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ @@ -45,13 +44,34 @@ export PJNATH_TEST_LDFLAGS += $(_LDFLAGS) export PJNATH_TEST_EXE:=../bin/pjnath-test-$(TARGET_NAME)$(HOST_EXE) +############################################################################### +# Defines for building test client application +# +export PJSTUN_CLIENT_SRCDIR = ../src/pjstun-client +export PJSTUN_CLIENT_OBJS += client_main.o +export PJSTUN_CLIENT_CFLAGS += $(_CFLAGS) +export PJSTUN_CLIENT_LDFLAGS += $(_LDFLAGS) +export PJSTUN_CLIENT_EXE:=../bin/pjstun-client-$(TARGET_NAME)$(HOST_EXE) + +############################################################################### +# Defines for building test server application +# +export PJSTUN_SRV_TEST_SRCDIR = ../src/pjstun-srv-test +export PJSTUN_SRV_TEST_OBJS += bind_usage.o server.o turn_usage.o usage.o \ + main.o +export PJSTUN_SRV_TEST_CFLAGS += $(_CFLAGS) +export PJSTUN_SRV_TEST_LDFLAGS += $(_LDFLAGS) +export PJSTUN_SRV_TEST_EXE:=../bin/pjstun-srv-test-$(TARGET_NAME)$(HOST_EXE) + + + export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT ############################################################################### # Main entry # # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. # -TARGETS := pjnath pjnath-test +TARGETS := pjnath pjnath-test pjstun-client pjstun-srv-test all: $(TARGETS) @@ -69,6 +89,12 @@ pjnath: pjnath-test: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB) $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $(PJNATH_TEST_EXE) +pjstun-client: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB) + $(MAKE) -f $(RULES_MAK) APP=PJSTUN_CLIENT app=pjstun-client $(PJSTUN_CLIENT_EXE) + +pjstun-srv-test: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB) + $(MAKE) -f $(RULES_MAK) APP=PJSTUN_SRV_TEST app=pjstun-srv-test $(PJSTUN_SRV_TEST_EXE) + .PHONY: ../lib/pjnath.ko ../lib/pjnath.ko: echo Making $@ diff --git a/pjnath/src/pjnath/ice_session.c b/pjnath/src/pjnath/ice_session.c index 6cdea360..d6811768 100644 --- a/pjnath/src/pjnath/ice_session.c +++ b/pjnath/src/pjnath/ice_session.c @@ -549,7 +549,7 @@ PJ_DEF(pj_status_t) pj_ice_sess_add_cand(pj_ice_sess *ice, pj_status_t status = PJ_SUCCESS; char tmp[128]; - PJ_ASSERT_RETURN(ice && comp_id && local_pref && + PJ_ASSERT_RETURN(ice && comp_id && foundation && addr && base_addr && addr_len, PJ_EINVAL); PJ_ASSERT_RETURN(comp_id <= ice->comp_cnt, PJ_EINVAL); diff --git a/pjnath/src/pjnath/ice_strans.c b/pjnath/src/pjnath/ice_strans.c index d3ba78f4..a7e5f8f3 100644 --- a/pjnath/src/pjnath/ice_strans.c +++ b/pjnath/src/pjnath/ice_strans.c @@ -212,10 +212,24 @@ static pj_status_t add_cand( pj_ice_strans *ice_st, pj_bool_t set_default) { pj_ice_strans_cand *cand; + unsigned i; PJ_ASSERT_RETURN(ice_st && comp && addr, PJ_EINVAL); PJ_ASSERT_RETURN(comp->cand_cnt < PJ_ICE_ST_MAX_CAND, PJ_ETOOMANY); + /* Check that we don't have candidate with the same + * address. + */ + for (i=0; i<comp->cand_cnt; ++i) { + if (pj_memcmp(addr, &comp->cand_list[i].addr, + sizeof(pj_sockaddr_in))==0) + { + /* Duplicate */ + PJ_LOG(5,(ice_st->obj_name, "Duplicate candidate not added")); + return PJ_SUCCESS; + } + } + cand = &comp->cand_list[comp->cand_cnt]; pj_bzero(cand, sizeof(*cand)); @@ -225,7 +239,7 @@ static pj_status_t add_cand( pj_ice_strans *ice_st, cand->ice_cand_id = -1; cand->local_pref = local_pref; pj_ice_calc_foundation(ice_st->pool, &cand->foundation, type, - (const pj_sockaddr*)addr); + &comp->local_addr); if (set_default) comp->default_cand = comp->cand_cnt; diff --git a/pjnath/src/pjstun-client/client_main.c b/pjnath/src/pjstun-client/client_main.c index 11094e2b..cb62788e 100644 --- a/pjnath/src/pjstun-client/client_main.c +++ b/pjnath/src/pjstun-client/client_main.c @@ -66,7 +66,7 @@ static struct options static pj_status_t parse_addr(const char *input, pj_sockaddr_in *addr); -static my_perror(const char *title, pj_status_t status) +static void my_perror(const char *title, pj_status_t status) { char errmsg[PJ_ERR_MSG_SIZE]; pj_strerror(status, errmsg, sizeof(errmsg)); @@ -145,7 +145,7 @@ static int worker_thread(void *unused) n = pj_sock_select(g.sock+1, &readset, NULL, NULL, &timeout); if (n > 0) { if (PJ_FD_ISSET(g.sock, &readset)) { - char buffer[512]; + pj_uint8_t buffer[512]; pj_ssize_t len; pj_sockaddr_in addr; int addrlen; @@ -426,7 +426,7 @@ static void send_send_ind(void) PJ_STUN_ATTR_REMOTE_ADDR, PJ_FALSE, &g.peer_addr, sizeof(g.peer_addr)); pj_stun_msg_add_binary_attr(tdata->pool, tdata->msg, - PJ_STUN_ATTR_DATA, g.data, len); + PJ_STUN_ATTR_DATA, (pj_uint8_t*)g.data, len); rc = pj_stun_session_send_msg(g.sess, PJ_FALSE, &g.srv_addr, sizeof(g.srv_addr), @@ -520,7 +520,7 @@ static void set_peer_addr(void) printf("Input peer address in IP:PORT format: "); fflush(stdout); - gets(addr); + fgets(addr, sizeof(addr), stdin); if (parse_addr(addr, &g.peer_addr) != PJ_SUCCESS) { return; @@ -561,7 +561,7 @@ static void console_main(void) } else if (input[0]=='d' && input[1]=='t') { printf("Input data: "); - gets(g.data); + fgets(g.data, sizeof(g.data_buf), stdin); } else if (input[0]=='p' && input[1]=='r') { set_peer_addr(); |