diff options
Diffstat (limited to 'pjnath')
-rw-r--r-- | pjnath/build/Makefile | 54 | ||||
-rw-r--r-- | pjnath/src/pjnath/turn_session.c | 1 | ||||
-rw-r--r-- | pjnath/src/pjturn-client/client_main.c | 42 | ||||
-rw-r--r-- | pjnath/src/pjturn-srv/auth.c | 4 | ||||
-rw-r--r-- | pjnath/src/pjturn-srv/auth.h | 2 | ||||
-rw-r--r-- | pjnath/src/pjturn-srv/main.c | 5 |
6 files changed, 41 insertions, 67 deletions
diff --git a/pjnath/build/Makefile b/pjnath/build/Makefile index 393562f5..9dd0b2db 100644 --- a/pjnath/build/Makefile +++ b/pjnath/build/Makefile @@ -31,7 +31,8 @@ export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJNATH_LIB)) \ export PJNATH_SRCDIR = ../src/pjnath export PJNATH_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ errno.o ice_session.o ice_strans.o nat_detect.o stun_auth.o \ - stun_msg.o stun_msg_dump.o stun_session.o stun_transaction.o + stun_msg.o stun_msg_dump.o stun_session.o stun_transaction.o \ + turn_session.o turn_udp.o export PJNATH_CFLAGS += $(_CFLAGS) ############################################################################### @@ -45,23 +46,23 @@ export PJNATH_TEST_EXE:=../bin/pjnath-test-$(TARGET_NAME)$(HOST_EXE) ############################################################################### -# Defines for building test client application +# Defines for building TURN 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) +export PJTURN_CLIENT_SRCDIR = ../src/pjturn-client +export PJTURN_CLIENT_OBJS += client_main.o +export PJTURN_CLIENT_CFLAGS += $(_CFLAGS) +export PJTURN_CLIENT_LDFLAGS += $(_LDFLAGS) +export PJTURN_CLIENT_EXE:=../bin/pjturn-client-$(TARGET_NAME)$(HOST_EXE) ############################################################################### -# Defines for building test server application +# Defines for building TURN 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 \ +export PJTURN_SRV_SRCDIR = ../src/pjturn-srv +export PJTURN_SRV_OBJS += allocation.o auth.o listener_udp.o server.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 PJTURN_SRV_CFLAGS += $(_CFLAGS) +export PJTURN_SRV_LDFLAGS += $(_LDFLAGS) +export PJTURN_SRV_EXE:=../bin/pjturn-srv-$(TARGET_NAME)$(HOST_EXE) @@ -71,8 +72,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT # # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. # -TARGETS := pjnath pjnath-test -#pjstun-client pjstun-srv-test +TARGETS := pjnath pjnath-test pjturn-client pjturn-srv all: $(TARGETS) @@ -90,11 +90,11 @@ 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) +pjturn-client: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB) + $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $(PJTURN_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) +pjturn-srv: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB) + $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $(PJTURN_SRV_EXE) .PHONY: ../lib/pjnath.ko ../lib/pjnath.ko: @@ -108,24 +108,24 @@ pjstun-srv-test: $(PJLIB_LIB) $(PJLIB_UTIL_LIB) $(PJNATH_LIB) clean: $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@ $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@ - $(MAKE) -f $(RULES_MAK) APP=PJSTUN_CLIENT app=pjstun-client $@ - $(MAKE) -f $(RULES_MAK) APP=PJSTUN_SRV_TEST app=pjstun-srv-test $@ + $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $@ + $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $@ realclean: $(subst @@,$(subst /,$(HOST_PSEP),.pjnath-$(TARGET_NAME).depend),$(HOST_RMR)) $(subst @@,$(subst /,$(HOST_PSEP),.pjnath-test-$(TARGET_NAME).depend),$(HOST_RMR)) - $(subst @@,$(subst /,$(HOST_PSEP),.pjstun-client-$(TARGET_NAME).depend),$(HOST_RMR)) - $(subst @@,$(subst /,$(HOST_PSEP),.pjstun-srv-test-$(TARGET_NAME).depend),$(HOST_RMR)) + $(subst @@,$(subst /,$(HOST_PSEP),.pjturn-client-$(TARGET_NAME).depend),$(HOST_RMR)) + $(subst @@,$(subst /,$(HOST_PSEP),.pjturn-srv-$(TARGET_NAME).depend),$(HOST_RMR)) $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@ $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@ - $(MAKE) -f $(RULES_MAK) APP=PJSTUN_CLIENT app=pjstun-client $@ - $(MAKE) -f $(RULES_MAK) APP=PJSTUN_SRV_TEST app=pjstun-srv-test $@ + $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $@ + $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $@ depend: $(MAKE) -f $(RULES_MAK) APP=PJNATH app=pjnath $@ $(MAKE) -f $(RULES_MAK) APP=PJNATH_TEST app=pjnath-test $@ - $(MAKE) -f $(RULES_MAK) APP=PJSTUN_CLIENT app=pjstun-client $@ - $(MAKE) -f $(RULES_MAK) APP=PJSTUN_SRV_TEST app=pjstun-srv-test $@ + $(MAKE) -f $(RULES_MAK) APP=PJTURN_CLIENT app=pjturn-client $@ + $(MAKE) -f $(RULES_MAK) APP=PJTURN_SRV app=pjturn-srv $@ echo '$(TEST_EXE): $(PJNATH_LIB)' >> .pjnath-test-$(TARGET_NAME).depend; \ diff --git a/pjnath/src/pjnath/turn_session.c b/pjnath/src/pjnath/turn_session.c index e5364edc..0e91ca09 100644 --- a/pjnath/src/pjnath/turn_session.c +++ b/pjnath/src/pjnath/turn_session.c @@ -336,6 +336,7 @@ static void sess_shutdown(pj_turn_session *sess, send_refresh(sess, 0); break; case PJ_TURN_STATE_DEALLOCATED: + case PJ_TURN_STATE_DESTROYING: break; } diff --git a/pjnath/src/pjturn-client/client_main.c b/pjnath/src/pjturn-client/client_main.c index 470ad251..9c428fcf 100644 --- a/pjnath/src/pjturn-client/client_main.c +++ b/pjnath/src/pjturn-client/client_main.c @@ -66,7 +66,6 @@ static struct options static int worker_thread(void *unused); -static pj_status_t parse_addr(const char *input, pj_sockaddr_in *addr); static void turn_on_rx_data(pj_turn_udp *udp_rel, const pj_uint8_t *pkt, unsigned pkt_len, @@ -320,39 +319,6 @@ static void turn_on_state(pj_turn_udp *udp_rel, pj_turn_state_t old_state, } } -static pj_status_t parse_addr(const char *input, - pj_sockaddr_in *addr) -{ - const char *pos; - pj_str_t ip; - pj_uint16_t port; - pj_sockaddr tmp_addr; - - pos = pj_ansi_strchr(input, ':'); - if (pos==NULL) { - puts("Invalid format"); - return -1; - } - - ip.ptr = (char*)input; - ip.slen = pos - input; - port = (pj_uint16_t)atoi(pos+1); - - if (port==0) { - puts("Invalid port"); - return -1; - } - - if (pj_sockaddr_in_init(&tmp_addr.ipv4, &ip, port)!=PJ_SUCCESS) { - puts("Invalid address"); - return -1; - } - - pj_memcpy(addr, &tmp_addr, sizeof(pj_sockaddr_in)); - - return PJ_SUCCESS; -} - static void menu(void) { pj_turn_session_info info; @@ -423,7 +389,8 @@ static void console_main(void) peer = &g.peer[1]; strcpy(input, "Hello from client"); - status = pj_turn_udp_sendto(g.udp_rel, input, strlen(input)+1, + status = pj_turn_udp_sendto(g.udp_rel, (const pj_uint8_t*)input, + strlen(input)+1, &peer->addr, pj_sockaddr_get_len(&peer->addr)); if (status != PJ_SUCCESS) @@ -453,6 +420,10 @@ static void console_main(void) break; case '0': case '1': + if (g.udp_rel == NULL) { + puts("No relay"); + break; + } peer = &g.peer[input[0]-'0']; sprintf(input, "Hello from peer%d", input[0]-'0'); len = strlen(input)+1; @@ -522,6 +493,7 @@ int main(int argc, char *argv[]) if (pj_optind == argc) { puts("Error: TARGET is needed"); + usage(); return 1; } diff --git a/pjnath/src/pjturn-srv/auth.c b/pjnath/src/pjturn-srv/auth.c index 8e6c9c59..e02079e4 100644 --- a/pjnath/src/pjturn-srv/auth.c +++ b/pjnath/src/pjturn-srv/auth.c @@ -85,7 +85,7 @@ PJ_DEF(pj_status_t) pj_turn_get_password(const pj_stun_msg *msg, const pj_str_t *realm, const pj_str_t *username, pj_pool_t *pool, - int *data_type, + pj_stun_passwd_type *data_type, pj_str_t *data) { unsigned i; @@ -95,7 +95,7 @@ PJ_DEF(pj_status_t) pj_turn_get_password(const pj_stun_msg *msg, PJ_UNUSED_ARG(pool); if (pj_stricmp2(realm, g_realm)) - PJ_EINVAL; + return PJ_EINVAL; for (i=0; i<PJ_ARRAY_SIZE(g_cred); ++i) { if (pj_stricmp2(username, g_cred[i].username) == 0) { diff --git a/pjnath/src/pjturn-srv/auth.h b/pjnath/src/pjturn-srv/auth.h index 2e342a73..a684490f 100644 --- a/pjnath/src/pjturn-srv/auth.h +++ b/pjnath/src/pjturn-srv/auth.h @@ -88,7 +88,7 @@ PJ_DECL(pj_status_t) pj_turn_get_password(const pj_stun_msg *msg, const pj_str_t *realm, const pj_str_t *username, pj_pool_t *pool, - int *data_type, + pj_stun_passwd_type *data_type, pj_str_t *data); /** diff --git a/pjnath/src/pjturn-srv/main.c b/pjnath/src/pjturn-srv/main.c index 164b3c25..348ad3db 100644 --- a/pjnath/src/pjturn-srv/main.c +++ b/pjnath/src/pjturn-srv/main.c @@ -69,16 +69,17 @@ static void dump_status(pj_turn_srv *srv) while (it) { pj_turn_allocation *alloc = (pj_turn_allocation*) pj_hash_this(srv->tables.alloc, it); - printf("%-3d %-22s %-22s %-8.*s %-4d %-4d %-4d %-4d\n", + printf("%-3d %-22s %-22s %-8.*s %-4d %-4ld %-4d %-4d\n", i, alloc->info, pj_sockaddr_print(&alloc->relay.hkey.addr, addr, sizeof(addr), 3), (int)alloc->cred.data.static_cred.username.slen, - (int)alloc->cred.data.static_cred.username.ptr, + alloc->cred.data.static_cred.username.ptr, alloc->relay.lifetime, alloc->relay.expiry.sec - now.sec, pj_hash_count(alloc->peer_table), pj_hash_count(alloc->ch_table)); + it = pj_hash_next(srv->tables.alloc, it); ++i; } |