summaryrefslogtreecommitdiff
path: root/pjnath/src/pjturn-srv/allocation.c
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-03-09 23:52:48 +0000
committerBenny Prijono <bennylp@teluu.com>2008-03-09 23:52:48 +0000
commitc2b574db5c151d0f71726bf7e9c604f50501f559 (patch)
tree1a7c4a7b3a85d262b1a06c5cc671a0f8f29dc0b6 /pjnath/src/pjturn-srv/allocation.c
parent401a7c0fa414523fc6a9d6cf78b503809f00995a (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.c19
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 {