Ignore:
Timestamp:
Feb 4, 2014 10:13:56 AM (10 years ago)
Author:
bennylp
Message:

Misc (re #1630): Fixing warnings about variable set but not used with recent gcc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjnath/src/pjnath/ice_strans.c

    r4606 r4728  
    11/* $Id$ */ 
    2 /*  
     2/* 
    33 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com) 
    44 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> 
     
    1616 * You should have received a copy of the GNU General Public License 
    1717 * along with this program; if not, write to the Free Software 
    18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  
     18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
    1919 */ 
    2020#include <pjnath/ice_strans.h> 
     
    6666 
    6767/* The candidate type preference when STUN candidate is used */ 
    68 static pj_uint8_t srflx_pref_table[PJ_ICE_CAND_TYPE_MAX] =  
     68static pj_uint8_t srflx_pref_table[PJ_ICE_CAND_TYPE_MAX] = 
    6969{ 
    7070#if PJNATH_ICE_PRIO_STD 
     
    8585/* ICE callbacks */ 
    8686static void        on_ice_complete(pj_ice_sess *ice, pj_status_t status); 
    87 static pj_status_t ice_tx_pkt(pj_ice_sess *ice,  
     87static pj_status_t ice_tx_pkt(pj_ice_sess *ice, 
    8888                              unsigned comp_id, 
    8989                              unsigned transport_id, 
     
    9191                              const pj_sockaddr_t *dst_addr, 
    9292                              unsigned dst_addr_len); 
    93 static void        ice_rx_data(pj_ice_sess *ice,  
    94                                unsigned comp_id,  
     93static void        ice_rx_data(pj_ice_sess *ice, 
     94                               unsigned comp_id, 
    9595                               unsigned transport_id, 
    9696                               void *pkt, pj_size_t size, 
     
    111111                                   pj_ssize_t sent); 
    112112/* Notification when the status of the STUN transport has changed. */ 
    113 static pj_bool_t stun_on_status(pj_stun_sock *stun_sock,  
     113static pj_bool_t stun_on_status(pj_stun_sock *stun_sock, 
    114114                                pj_stun_sock_op op, 
    115115                                pj_status_t status); 
     
    137137 * in ICE stream transport typically corresponds to a single socket created 
    138138 * for this component, and bound to a specific transport address. This 
    139  * component may have multiple alias addresses, for example one alias  
     139 * component may have multiple alias addresses, for example one alias 
    140140 * address for each interfaces in multi-homed host, another for server 
    141141 * reflexive alias, and another for relayed alias. For each transport 
     
    299299    /* Override with component specific socket buffer size settings, if any */ 
    300300    if (ice_st->cfg.comp[comp->comp_id-1].so_rcvbuf_size > 0) { 
    301         ice_st->cfg.turn.cfg.so_rcvbuf_size =  
     301        ice_st->cfg.turn.cfg.so_rcvbuf_size = 
    302302            ice_st->cfg.comp[comp->comp_id-1].so_rcvbuf_size; 
    303303    } 
    304304    if (ice_st->cfg.comp[comp->comp_id-1].so_sndbuf_size > 0) { 
    305         ice_st->cfg.turn.cfg.so_sndbuf_size =  
     305        ice_st->cfg.turn.cfg.so_sndbuf_size = 
    306306            ice_st->cfg.comp[comp->comp_id-1].so_sndbuf_size; 
    307307    } 
     
    382382        stun_sock_cb.on_status = &stun_on_status; 
    383383        stun_sock_cb.on_data_sent = &stun_on_data_sent; 
    384          
     384 
    385385        /* Override component specific QoS settings, if any */ 
    386386        if (ice_st->cfg.comp[comp_id-1].qos_type) { 
    387             ice_st->cfg.stun.cfg.qos_type =  
     387            ice_st->cfg.stun.cfg.qos_type = 
    388388                ice_st->cfg.comp[comp_id-1].qos_type; 
    389389        } 
     
    396396        /* Override component specific socket buffer size settings, if any */ 
    397397        if (ice_st->cfg.comp[comp_id-1].so_rcvbuf_size > 0) { 
    398             ice_st->cfg.stun.cfg.so_rcvbuf_size =  
     398            ice_st->cfg.stun.cfg.so_rcvbuf_size = 
    399399                ice_st->cfg.comp[comp_id-1].so_rcvbuf_size; 
    400400        } 
    401401        if (ice_st->cfg.comp[comp_id-1].so_sndbuf_size > 0) { 
    402             ice_st->cfg.stun.cfg.so_sndbuf_size =  
     402            ice_st->cfg.stun.cfg.so_sndbuf_size = 
    403403                ice_st->cfg.comp[comp_id-1].so_sndbuf_size; 
    404404        } 
     
    412412            return status; 
    413413 
    414         /* Start STUN Binding resolution and add srflx candidate  
    415          * only if server is set  
     414        /* Start STUN Binding resolution and add srflx candidate 
     415         * only if server is set 
    416416         */ 
    417417        if (ice_st->cfg.stun.server.slen) { 
     
    421421            ///sess_add_ref(ice_st); 
    422422 
    423             PJ_LOG(4,(ice_st->obj_name,  
     423            PJ_LOG(4,(ice_st->obj_name, 
    424424                      "Comp %d: srflx candidate starts Binding discovery", 
    425425                      comp_id)); 
     
    428428 
    429429            /* Start Binding resolution */ 
    430             status = pj_stun_sock_start(comp->stun_sock,  
     430            status = pj_stun_sock_start(comp->stun_sock, 
    431431                                        &ice_st->cfg.stun.server, 
    432                                         ice_st->cfg.stun.port,  
     432                                        ice_st->cfg.stun.port, 
    433433                                        ice_st->cfg.resolver); 
    434434            if (status != PJ_SUCCESS) { 
     
    476476                return status; 
    477477 
    478             for (i=0; i<stun_sock_info.alias_cnt &&  
    479                       i<ice_st->cfg.stun.max_host_cands; ++i)  
     478            for (i=0; i<stun_sock_info.alias_cnt && 
     479                      i<ice_st->cfg.stun.max_host_cands; ++i) 
    480480            { 
    481481                char addrinfo[PJ_INET6_ADDRSTRLEN+10]; 
     
    488488                } 
    489489 
    490                 /* Ignore loopback addresses unless cfg->stun.loop_addr  
    491                  * is set  
     490                /* Ignore loopback addresses unless cfg->stun.loop_addr 
     491                 * is set 
    492492                 */ 
    493493                if ((pj_ntohl(addr->ipv4.sin_addr.s_addr)>>24)==127) { 
     
    509509                                       cand->type, &cand->base_addr); 
    510510 
    511                 PJ_LOG(4,(ice_st->obj_name,  
     511                PJ_LOG(4,(ice_st->obj_name, 
    512512                          "Comp %d: host candidate %s added", 
    513513                          comp_id, pj_sockaddr_print(&cand->addr, addrinfo, 
     
    533533 
    534534 
    535 /*  
    536  * Create ICE stream transport  
     535/* 
     536 * Create ICE stream transport 
    537537 */ 
    538538PJ_DEF(pj_status_t) pj_ice_strans_create( const char *name, 
     
    565565    ice_st->user_data = user_data; 
    566566 
    567     PJ_LOG(4,(ice_st->obj_name,  
     567    PJ_LOG(4,(ice_st->obj_name, 
    568568              "Creating ICE stream transport with %d component(s)", 
    569569              comp_cnt)); 
     
    587587 
    588588    ice_st->comp_cnt = comp_cnt; 
    589     ice_st->comp = (pj_ice_strans_comp**)  
     589    ice_st->comp = (pj_ice_strans_comp**) 
    590590                   pj_pool_calloc(pool, comp_cnt, sizeof(pj_ice_strans_comp*)); 
    591591 
     
    593593    ice_st->state = PJ_ICE_STRANS_STATE_INIT; 
    594594 
    595     /* Acquire initialization mutex to prevent callback to be  
     595    /* Acquire initialization mutex to prevent callback to be 
    596596     * called before we finish initialization. 
    597597     */ 
     
    750750    ice_st->state = PJ_ICE_STRANS_STATE_READY; 
    751751    if (ice_st->cb.on_ice_complete) 
    752         (*ice_st->cb.on_ice_complete)(ice_st, PJ_ICE_STRANS_OP_INIT,  
     752        (*ice_st->cb.on_ice_complete)(ice_st, PJ_ICE_STRANS_OP_INIT, 
    753753                                      PJ_SUCCESS); 
    754754} 
     
    786786 
    787787/* 
    788  * Specify various options for this ICE stream transport.  
     788 * Specify various options for this ICE stream transport. 
    789789 */ 
    790790PJ_DEF(pj_status_t) pj_ice_strans_set_options(pj_ice_strans *ice_st, 
     
    835835    /* Create! */ 
    836836    status = pj_ice_sess_create(&ice_st->cfg.stun_cfg, ice_st->obj_name, role, 
    837                                 ice_st->comp_cnt, &ice_cb,  
     837                                ice_st->comp_cnt, &ice_cb, 
    838838                                local_ufrag, local_passwd, 
    839839                                ice_st->grp_lock, 
     
    853853     */ 
    854854    if (ice_st->comp[0]->default_cand >= 0 && 
    855         ice_st->comp[0]->cand_list[ice_st->comp[0]->default_cand].type  
     855        ice_st->comp[0]->cand_list[ice_st->comp[0]->default_cand].type 
    856856            == PJ_ICE_CAND_TYPE_SRFLX) 
    857857    { 
     
    866866        /* Re-enable logging for Send/Data indications */ 
    867867        if (comp->turn_sock) { 
    868             PJ_LOG(5,(ice_st->obj_name,  
     868            PJ_LOG(5,(ice_st->obj_name, 
    869869                      "Disabling STUN Indication logging for " 
    870870                      "component %d", i+1)); 
     
    879879            /* Skip if candidate is not ready */ 
    880880            if (cand->status != PJ_SUCCESS) { 
    881                 PJ_LOG(5,(ice_st->obj_name,  
     881                PJ_LOG(5,(ice_st->obj_name, 
    882882                          "Candidate %d of comp %d is not added (pending)", 
    883883                          j, i)); 
     
    889889 
    890890            /* Add the candidate */ 
    891             status = pj_ice_sess_add_cand(ice_st->ice, comp->comp_id,  
    892                                           cand->transport_id, cand->type,  
    893                                           cand->local_pref,  
    894                                           &cand->foundation, &cand->addr,  
     891            status = pj_ice_sess_add_cand(ice_st->ice, comp->comp_id, 
     892                                          cand->transport_id, cand->type, 
     893                                          cand->local_pref, 
     894                                          &cand->foundation, &cand->addr, 
    895895                                          &cand->base_addr,  &cand->rel_addr, 
    896896                                          pj_sockaddr_get_len(&cand->addr), 
     
    912912 
    913913/* 
    914  * Check if the ICE stream transport has the ICE session created.  
     914 * Check if the ICE stream transport has the ICE session created. 
    915915 */ 
    916916PJ_DEF(pj_bool_t) pj_ice_strans_has_sess(pj_ice_strans *ice_st) 
     
    985985    unsigned i, cnt; 
    986986 
    987     PJ_ASSERT_RETURN(ice_st && ice_st->ice && comp_id &&  
     987    PJ_ASSERT_RETURN(ice_st && ice_st->ice && comp_id && 
    988988                     comp_id <= ice_st->comp_cnt, 0); 
    989989 
     
    10081008    unsigned i, cnt; 
    10091009 
    1010     PJ_ASSERT_RETURN(ice_st && ice_st->ice && comp_id &&  
     1010    PJ_ASSERT_RETURN(ice_st && ice_st->ice && comp_id && 
    10111011                     comp_id <= ice_st->comp_cnt && count && cand, PJ_EINVAL); 
    10121012 
     
    10421042        pj_ice_strans_comp *comp = ice_st->comp[comp_id - 1]; 
    10431043        pj_assert(comp->default_cand>=0 && comp->default_cand<comp->cand_cnt); 
    1044         pj_memcpy(cand, &comp->cand_list[comp->default_cand],  
     1044        pj_memcpy(cand, &comp->cand_list[comp->default_cand], 
    10451045                  sizeof(pj_ice_sess_cand)); 
    10461046    } 
     
    11081108 
    11091109            if (count) { 
    1110                 status = pj_turn_sock_set_perm(comp->turn_sock, count,  
     1110                status = pj_turn_sock_set_perm(comp->turn_sock, count, 
    11111111                                               addrs, 0); 
    11121112                if (status != PJ_SUCCESS) { 
     
    11321132 * Get valid pair. 
    11331133 */ 
    1134 PJ_DEF(const pj_ice_sess_check*)  
     1134PJ_DEF(const pj_ice_sess_check*) 
    11351135pj_ice_strans_get_valid_pair(const pj_ice_strans *ice_st, 
    11361136                             unsigned comp_id) 
     
    11381138    PJ_ASSERT_RETURN(ice_st && comp_id && comp_id <= ice_st->comp_cnt, 
    11391139                     NULL); 
    1140      
     1140 
    11411141    if (ice_st->ice == NULL) 
    11421142        return NULL; 
    1143      
     1143 
    11441144    return ice_st->ice->comp[comp_id-1].valid_check; 
    11451145} 
     
    11711171                                          int dst_addr_len) 
    11721172{ 
    1173     pj_ssize_t pkt_size; 
    11741173    pj_ice_strans_comp *comp; 
    11751174    unsigned def_cand; 
     
    12201219            if (!comp->turn_log_off) { 
    12211220                /* Disable logging for Send/Data indications */ 
    1222                 PJ_LOG(5,(ice_st->obj_name,  
     1221                PJ_LOG(5,(ice_st->obj_name, 
    12231222                          "Disabling STUN Indication logging for " 
    12241223                          "component %d", comp->comp_id)); 
     
    12271226            } 
    12281227 
    1229             status = pj_turn_sock_sendto(comp->turn_sock,  
    1230                                          (const pj_uint8_t*)data,  
     1228            status = pj_turn_sock_sendto(comp->turn_sock, 
     1229                                         (const pj_uint8_t*)data, 
    12311230                                         (unsigned)data_len, 
    12321231                                         dst_addr, dst_addr_len); 
    1233             return (status==PJ_SUCCESS||status==PJ_EPENDING) ?  
     1232            return (status==PJ_SUCCESS||status==PJ_EPENDING) ? 
    12341233                    PJ_SUCCESS : status; 
    12351234        } else { 
    1236             pkt_size = data_len; 
    1237             status = pj_stun_sock_sendto(comp->stun_sock, NULL, data,  
    1238                                          (unsigned)data_len, 0, dst_addr,  
     1235            status = pj_stun_sock_sendto(comp->stun_sock, NULL, data, 
     1236                                         (unsigned)data_len, 0, dst_addr, 
    12391237                                         dst_addr_len); 
    1240             return (status==PJ_SUCCESS||status==PJ_EPENDING) ?  
     1238            return (status==PJ_SUCCESS||status==PJ_EPENDING) ? 
    12411239                    PJ_SUCCESS : status; 
    12421240        } 
     
    12661264            char errmsg[PJ_ERR_MSG_SIZE]; 
    12671265            pj_strerror(status, errmsg, sizeof(errmsg)); 
    1268             PJ_LOG(4,(ice_st->obj_name,  
    1269                       "ICE negotiation failed after %ds:%03d: %s",  
     1266            PJ_LOG(4,(ice_st->obj_name, 
     1267                      "ICE negotiation failed after %ds:%03d: %s", 
    12701268                      msec/1000, msec%1000, errmsg)); 
    12711269        } else { 
     
    12771275            }; 
    12781276 
    1279             PJ_LOG(4,(ice_st->obj_name,  
     1277            PJ_LOG(4,(ice_st->obj_name, 
    12801278                      "ICE negotiation success after %ds:%03d", 
    12811279                      msec/1000, msec%1000)); 
     
    12891287                    char rip[PJ_INET6_ADDRSTRLEN+10]; 
    12901288 
    1291                     pj_sockaddr_print(&check->lcand->addr, lip,  
     1289                    pj_sockaddr_print(&check->lcand->addr, lip, 
    12921290                                      sizeof(lip), 3); 
    1293                     pj_sockaddr_print(&check->rcand->addr, rip,  
     1291                    pj_sockaddr_print(&check->rcand->addr, rip, 
    12941292                                      sizeof(rip), 3); 
    12951293 
     
    13041302 
    13051303                        /* Disable logging for Send/Data indications */ 
    1306                         PJ_LOG(5,(ice_st->obj_name,  
     1304                        PJ_LOG(5,(ice_st->obj_name, 
    13071305                                  "Disabling STUN Indication logging for " 
    13081306                                  "component %d", i+1)); 
     
    13151313                              "sending from %s candidate %s to " 
    13161314                              "%s candidate %s", 
    1317                               i+1,  
     1315                              i+1, 
    13181316                              pj_ice_get_cand_type_name(check->lcand->type), 
    13191317                              lip, 
    13201318                              pj_ice_get_cand_type_name(check->rcand->type), 
    13211319                              rip)); 
    1322                                
     1320 
    13231321                } else { 
    1324                     PJ_LOG(4,(ice_st->obj_name,  
     1322                    PJ_LOG(4,(ice_st->obj_name, 
    13251323                              "Comp %d: disabled", i+1)); 
    13261324                } 
     
    13321330 
    13331331        pj_log_push_indent(); 
    1334         (*ice_st->cb.on_ice_complete)(ice_st, PJ_ICE_STRANS_OP_NEGOTIATION,  
     1332        (*ice_st->cb.on_ice_complete)(ice_st, PJ_ICE_STRANS_OP_NEGOTIATION, 
    13351333                                      status); 
    13361334        pj_log_pop_indent(); 
    1337          
     1335 
    13381336    } 
    13391337 
     
    13441342 * Callback called by ICE session when it wants to send outgoing packet. 
    13451343 */ 
    1346 static pj_status_t ice_tx_pkt(pj_ice_sess *ice,  
    1347                               unsigned comp_id,  
     1344static pj_status_t ice_tx_pkt(pj_ice_sess *ice, 
     1345                              unsigned comp_id, 
    13481346                              unsigned transport_id, 
    13491347                              const void *pkt, pj_size_t size, 
     
    13621360    comp = ice_st->comp[comp_id-1]; 
    13631361 
    1364     TRACE_PKT((comp->ice_st->obj_name,  
     1362    TRACE_PKT((comp->ice_st->obj_name, 
    13651363               "Component %d TX packet to %s:%d with transport %d", 
    1366                comp_id,  
     1364               comp_id, 
    13671365               pj_sockaddr_print(dst_addr, daddr, sizeof(addr), 0), 
    13681366               pj_sockaddr_get_port(dst_addr), 
     
    13711369    if (transport_id == TP_TURN) { 
    13721370        if (comp->turn_sock) { 
    1373             status = pj_turn_sock_sendto(comp->turn_sock,  
    1374                                          (const pj_uint8_t*)pkt,  
     1371            status = pj_turn_sock_sendto(comp->turn_sock, 
     1372                                         (const pj_uint8_t*)pkt, 
    13751373                                         (unsigned)size, 
    13761374                                         dst_addr, dst_addr_len); 
     
    13791377        } 
    13801378    } else if (transport_id == TP_STUN) { 
    1381         status = pj_stun_sock_sendto(comp->stun_sock, NULL,  
     1379        status = pj_stun_sock_sendto(comp->stun_sock, NULL, 
    13821380                                     pkt, (unsigned)size, 0, 
    13831381                                     dst_addr, dst_addr_len); 
     
    13861384        status = PJ_EINVALIDOP; 
    13871385    } 
    1388      
     1386 
    13891387    return (status==PJ_SUCCESS||status==PJ_EPENDING) ? PJ_SUCCESS : status; 
    13901388} 
     
    13931391 * Callback called by ICE session when it receives application data. 
    13941392 */ 
    1395 static void ice_rx_data(pj_ice_sess *ice,  
    1396                         unsigned comp_id,  
     1393static void ice_rx_data(pj_ice_sess *ice, 
     1394                        unsigned comp_id, 
    13971395                        unsigned transport_id, 
    13981396                        void *pkt, pj_size_t size, 
     
    14051403 
    14061404    if (ice_st->cb.on_rx_data) { 
    1407         (*ice_st->cb.on_rx_data)(ice_st, comp_id, pkt, size,  
     1405        (*ice_st->cb.on_rx_data)(ice_st, comp_id, pkt, size, 
    14081406                                 src_addr, src_addr_len); 
    14091407    } 
     
    14111409 
    14121410/* Notification when incoming packet has been received from 
    1413  * the STUN socket.  
     1411 * the STUN socket. 
    14141412 */ 
    14151413static pj_bool_t stun_on_rx_data(pj_stun_sock *stun_sock, 
     
    14391437         */ 
    14401438        if (ice_st->cb.on_rx_data) { 
    1441             (*ice_st->cb.on_rx_data)(ice_st, comp->comp_id, pkt, pkt_len,  
     1439            (*ice_st->cb.on_rx_data)(ice_st, comp->comp_id, pkt, pkt_len, 
    14421440                                     src_addr, addr_len); 
    14431441        } 
     
    14461444 
    14471445        /* Hand over the packet to ICE session */ 
    1448         status = pj_ice_sess_on_rx_pkt(comp->ice_st->ice, comp->comp_id,  
     1446        status = pj_ice_sess_on_rx_pkt(comp->ice_st->ice, comp->comp_id, 
    14491447                                       TP_STUN, pkt, pkt_len, 
    14501448                                       src_addr, addr_len); 
    14511449 
    14521450        if (status != PJ_SUCCESS) { 
    1453             ice_st_perror(comp->ice_st, "Error processing packet",  
     1451            ice_st_perror(comp->ice_st, "Error processing packet", 
    14541452                          status); 
    14551453        } 
     
    14601458 
    14611459/* Notifification when asynchronous send operation to the STUN socket 
    1462  * has completed.  
     1460 * has completed. 
    14631461 */ 
    14641462static pj_bool_t stun_on_data_sent(pj_stun_sock *stun_sock, 
     
    14731471 
    14741472/* Notification when the status of the STUN transport has changed. */ 
    1475 static pj_bool_t stun_on_status(pj_stun_sock *stun_sock,  
     1473static pj_bool_t stun_on_status(pj_stun_sock *stun_sock, 
    14761474                                pj_stun_sock_op op, 
    14771475                                pj_status_t status) 
     
    15731571                } 
    15741572 
    1575                 PJ_LOG(4,(comp->ice_st->obj_name,  
     1573                PJ_LOG(4,(comp->ice_st->obj_name, 
    15761574                          "Comp %d: %s, " 
    15771575                          "srflx address is %s", 
    1578                           comp->comp_id, op_name,  
    1579                           pj_sockaddr_print(&info.mapped_addr, ipaddr,  
     1576                          comp->comp_id, op_name, 
     1577                          pj_sockaddr_print(&info.mapped_addr, ipaddr, 
    15801578                                             sizeof(ipaddr), 3))); 
    15811579 
     
    16631661 
    16641662        if (status != PJ_SUCCESS) { 
    1665             ice_st_perror(comp->ice_st,  
    1666                           "Error processing packet from TURN relay",  
     1663            ice_st_perror(comp->ice_st, 
     1664                          "Error processing packet from TURN relay", 
    16671665                          status); 
    16681666        } 
     
    17221720        pj_sockaddr_cp(&cand->base_addr, &rel_info.relay_addr); 
    17231721        pj_sockaddr_cp(&cand->rel_addr, &rel_info.mapped_addr); 
    1724         pj_ice_calc_foundation(comp->ice_st->pool, &cand->foundation,  
    1725                                PJ_ICE_CAND_TYPE_RELAYED,  
     1722        pj_ice_calc_foundation(comp->ice_st->pool, &cand->foundation, 
     1723                               PJ_ICE_CAND_TYPE_RELAYED, 
    17261724                               &rel_info.relay_addr); 
    17271725        cand->status = PJ_SUCCESS; 
     
    17301728        comp->default_cand = (unsigned)(cand - comp->cand_list); 
    17311729 
    1732         PJ_LOG(4,(comp->ice_st->obj_name,  
     1730        PJ_LOG(4,(comp->ice_st->obj_name, 
    17331731                  "Comp %d: TURN allocation complete, relay address is %s", 
    1734                   comp->comp_id,  
    1735                   pj_sockaddr_print(&rel_info.relay_addr, ipaddr,  
     1732                  comp->comp_id, 
     1733                  pj_sockaddr_print(&rel_info.relay_addr, ipaddr, 
    17361734                                     sizeof(ipaddr), 3))); 
    17371735 
Note: See TracChangeset for help on using the changeset viewer.