diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-03-09 23:52:48 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-03-09 23:52:48 +0000 |
commit | c2b574db5c151d0f71726bf7e9c604f50501f559 (patch) | |
tree | 1a7c4a7b3a85d262b1a06c5cc671a0f8f29dc0b6 /pjnath/src/pjturn-srv/allocation.c | |
parent | 401a7c0fa414523fc6a9d6cf78b503809f00995a (diff) |
More ticket #485: initial (incomplete) work on TURN client session library
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1854 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath/src/pjturn-srv/allocation.c')
-rw-r--r-- | pjnath/src/pjturn-srv/allocation.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/pjnath/src/pjturn-srv/allocation.c b/pjnath/src/pjturn-srv/allocation.c index 5698ea41..da35266c 100644 --- a/pjnath/src/pjturn-srv/allocation.c +++ b/pjnath/src/pjturn-srv/allocation.c @@ -40,15 +40,6 @@ enum { #define DEF_LIFETIME 300 - -/* ChannelData header */ -typedef struct channel_data_hdr -{ - pj_uint16_t ch_number; - pj_uint16_t length; -} channel_data_hdr; - - /* Parsed Allocation request. */ typedef struct alloc_request { @@ -912,10 +903,12 @@ PJ_DEF(void) pj_turn_allocation_on_rx_client_pkt(pj_turn_allocation *alloc, /* * This is not a STUN packet, must be ChannelData packet. */ - channel_data_hdr *cd = (channel_data_hdr*)pkt->pkt; + pj_turn_channel_data *cd = (pj_turn_channel_data*)pkt->pkt; pj_turn_permission *perm; pj_ssize_t len; + pj_assert(sizeof(*cd)==4); + /* For UDP check the packet length */ if (alloc->listener->tp_type == PJ_TURN_TP_UDP) { if (pkt->len < pj_ntohs(cd->length)+sizeof(*cd)) { @@ -978,7 +971,7 @@ static void handle_peer_pkt(pj_turn_allocation *alloc, */ if (perm->channel != PJ_TURN_INVALID_CHANNEL) { /* Send ChannelData */ - channel_data_hdr *cd = (channel_data_hdr*)rel->tp.tx_pkt; + pj_turn_channel_data *cd = (pj_turn_channel_data*)rel->tp.tx_pkt; if (len > PJ_TURN_MAX_PKT_LEN) { char peer_addr[80]; @@ -994,11 +987,11 @@ static void handle_peer_pkt(pj_turn_allocation *alloc, cd->length = pj_htons((pj_uint16_t)len); /* Copy data */ - pj_memcpy(rel->tp.rx_pkt+sizeof(channel_data_hdr), pkt, len); + pj_memcpy(rel->tp.rx_pkt+sizeof(pj_turn_channel_data), pkt, len); /* Send to client */ pj_turn_listener_sendto(alloc->listener, rel->tp.tx_pkt, - len+sizeof(channel_data_hdr), 0, + len+sizeof(pj_turn_channel_data), 0, &alloc->hkey.clt_addr, pj_sockaddr_get_len(&alloc->hkey.clt_addr)); } else { |