Ignore:
Timestamp:
Mar 8, 2007 6:58:04 PM (17 years ago)
Author:
bennylp
Message:

A really initial implementation on STUN server

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib-util/src/pjstun-srv-test/server.c

    r1040 r1049  
    3030    pj_bool_t            thread_quit_flag; 
    3131    pj_thread_t        **threads; 
     32 
     33    unsigned             usage_cnt; 
     34    pj_stun_usage       *usage[32]; 
    3235}; 
    3336 
     
    110113 
    111114 
     115pj_status_t pj_stun_server_register_usage(pj_stun_server *srv, 
     116                                          pj_stun_usage *usage) 
     117{ 
     118    unsigned i; 
     119 
     120    for (i=0; i<PJ_ARRAY_SIZE(srv->usage); ++i) { 
     121        if (srv->usage[i] == usage) 
     122            return PJ_SUCCESS; 
     123    } 
     124 
     125    for (i=0; i<PJ_ARRAY_SIZE(srv->usage); ++i) { 
     126        if (srv->usage[i] == NULL) 
     127            break; 
     128    } 
     129 
     130    if (i == PJ_ARRAY_SIZE(srv->usage)) 
     131        return PJ_ETOOMANY; 
     132 
     133    srv->usage[i] = usage; 
     134    ++srv->usage_cnt; 
     135 
     136    return PJ_SUCCESS; 
     137} 
     138 
     139pj_status_t pj_stun_server_unregister_usage(pj_stun_server *srv, 
     140                                            pj_stun_usage *usage) 
     141{ 
     142    unsigned i; 
     143 
     144    for (i=0; i<PJ_ARRAY_SIZE(srv->usage); ++i) { 
     145        if (srv->usage[i] == usage) 
     146            break; 
     147    } 
     148 
     149    if (i != PJ_ARRAY_SIZE(srv->usage)) { 
     150        srv->usage[i] = NULL; 
     151        --srv->usage_cnt; 
     152        return PJ_SUCCESS; 
     153    } 
     154 
     155    return PJ_ENOTFOUND; 
     156} 
     157 
     158 
    112159PJ_DEF(pj_status_t) pj_stun_server_destroy(pj_stun_server *srv) 
    113160{ 
    114161    unsigned i; 
     162 
     163    for (i=0; i<PJ_ARRAY_SIZE(srv->usage); ++i) { 
     164        if (!srv->usage[i]) 
     165            continue; 
     166 
     167        pj_stun_usage_destroy(srv->usage[i]); 
     168        pj_stun_server_unregister_usage(srv, srv->usage[i]); 
     169    } 
    115170 
    116171    srv->thread_quit_flag = PJ_TRUE; 
Note: See TracChangeset for help on using the changeset viewer.