summaryrefslogtreecommitdiff
path: root/pjnath
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2007-04-22 12:48:30 +0000
committerBenny Prijono <bennylp@teluu.com>2007-04-22 12:48:30 +0000
commit560d8dba3b98b2a5ae65da01b5021757eb366888 (patch)
tree2b947a42f03be862b6fa1a45ce1e95723cee0ac1 /pjnath
parent44d9c946fc77600985b869552887497c2a539d5c (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/Makefile32
-rw-r--r--pjnath/src/pjnath/ice_session.c2
-rw-r--r--pjnath/src/pjnath/ice_strans.c16
-rw-r--r--pjnath/src/pjstun-client/client_main.c10
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();