Ignore:
Timestamp:
Mar 9, 2008 12:55:00 PM (16 years ago)
Author:
bennylp
Message:

More work for ticket #485: updated pjnath with TURN-07 and added authentication in the server

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjnath/src/pjturn-srv/listener_udp.c

    r1812 r1852  
    2222{ 
    2323    pj_ioqueue_op_key_t op_key; 
    24     pjturn_pkt          pkt; 
     24    pj_turn_pkt         pkt; 
    2525}; 
    2626 
    2727struct udp_listener 
    2828{ 
    29     pjturn_listener          base; 
     29    pj_turn_listener         base; 
    3030    pj_ioqueue_key_t        *key; 
    3131    unsigned                 read_cnt; 
     
    3434 
    3535 
    36 static pj_status_t udp_sendto(pjturn_listener *listener, 
     36static pj_status_t udp_sendto(pj_turn_listener *listener, 
    3737                              const void *packet, 
    3838                              pj_size_t size, 
     
    4040                              const pj_sockaddr_t *addr, 
    4141                              int addr_len); 
    42 static pj_status_t udp_destroy(pjturn_listener *udp); 
     42static pj_status_t udp_destroy(pj_turn_listener *udp); 
    4343static void on_read_complete(pj_ioqueue_key_t *key,  
    4444                             pj_ioqueue_op_key_t *op_key,  
     
    4949 * Create a new listener on the specified port. 
    5050 */ 
    51 PJ_DEF(pj_status_t) pjturn_listener_create_udp( pjturn_srv *srv, 
     51PJ_DEF(pj_status_t) pj_turn_listener_create_udp( pj_turn_srv *srv, 
    5252                                                int af, 
    5353                                                const pj_str_t *bound_addr, 
     
    5555                                                unsigned concurrency_cnt, 
    5656                                                unsigned flags, 
    57                                                 pjturn_listener **p_listener) 
     57                                                pj_turn_listener **p_listener) 
    5858{ 
    5959    pj_pool_t *pool; 
     
    6464 
    6565    /* Create structure */ 
    66     pool = pj_pool_create(srv->core.pf, "udplis%p", 1000, 1000, NULL); 
     66    pool = pj_pool_create(srv->core.pf, "udp%p", 1000, 1000, NULL); 
    6767    udp = PJ_POOL_ZALLOC_T(pool, struct udp_listener); 
    6868    udp->base.pool = pool; 
     69    udp->base.obj_name = pool->obj_name; 
    6970    udp->base.server = srv; 
    70     udp->base.tp_type = PJTURN_TP_UDP; 
     71    udp->base.tp_type = PJ_TURN_TP_UDP; 
    7172    udp->base.sock = PJ_INVALID_SOCKET; 
    7273    udp->base.sendto = &udp_sendto; 
     
    8687        goto on_error; 
    8788     
     89    /* Create info */ 
     90    pj_ansi_strcpy(udp->base.info, "UDP:"); 
     91    pj_sockaddr_print(&udp->base.addr, udp->base.info+4,  
     92                      sizeof(udp->base.info)-4, 3); 
     93 
    8894    /* Bind socket */ 
    8995    status = pj_sock_bind(udp->base.sock, &udp->base.addr,  
     
    105111    for (i=0; i<concurrency_cnt; ++i) { 
    106112        pj_pool_t *rpool = pj_pool_create(srv->core.pf, "rop%p",  
    107                                           1000, 1000, NULL); 
     113                                          sizeof(struct read_op)+1000,  
     114                                          1000, NULL); 
    108115 
    109116        udp->read_op[i] = PJ_POOL_ZALLOC_T(rpool, struct read_op); 
     
    114121 
    115122    /* Done */ 
     123    PJ_LOG(4,(udp->base.obj_name, "Listener %s created", udp->base.info)); 
     124 
    116125    *p_listener = &udp->base; 
    117126    return PJ_SUCCESS; 
     
    127136 * Destroy listener. 
    128137 */ 
    129 static pj_status_t udp_destroy(pjturn_listener *listener) 
     138static pj_status_t udp_destroy(pj_turn_listener *listener) 
    130139{ 
    131140    struct udp_listener *udp = (struct udp_listener *)listener; 
     
    150159 
    151160    if (udp->base.pool) { 
    152         pj_pool_release(udp->base.pool); 
     161        pj_pool_t *pool = udp->base.pool; 
     162 
     163        PJ_LOG(4,(udp->base.obj_name, "Listener %s destroyed",  
     164                  udp->base.info)); 
     165 
    153166        udp->base.pool = NULL; 
     167        pj_pool_release(pool); 
    154168    } 
    155169    return PJ_SUCCESS; 
     
    159173 * Callback to send packet. 
    160174 */ 
    161 static pj_status_t udp_sendto(pjturn_listener *listener, 
     175static pj_status_t udp_sendto(pj_turn_listener *listener, 
    162176                              const void *packet, 
    163177                              pj_size_t size, 
     
    167181{ 
    168182    pj_ssize_t len = size; 
    169     return pj_sock_sendto(listener->sock, packet, &len, flag, addr, 
    170                           pj_sockaddr_get_len(addr)); 
     183    return pj_sock_sendto(listener->sock, packet, &len, flag, addr, addr_len); 
    171184} 
    172185 
     
    192205            pj_gettimeofday(&read_op->pkt.rx_time); 
    193206 
    194             pjturn_srv_on_rx_pkt(udp->base.server, &read_op->pkt); 
     207            pj_turn_srv_on_rx_pkt(udp->base.server, &read_op->pkt); 
    195208        } 
    196209 
Note: See TracChangeset for help on using the changeset viewer.