Ignore:
Timestamp:
Nov 11, 2005 7:01:31 PM (18 years ago)
Author:
bennylp
Message:

First clean compile of pjsip

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/main/pjsip/src/pjsip/sip_auth_parser.c

    • Property svn:keywords set to Id
    r3 r43  
    11/* $Id$ 
    2  * 
    32 */ 
    43#include <pjsip/sip_auth_parser.h> 
    54#include <pjsip/sip_auth_msg.h> 
    65#include <pjsip/sip_parser.h> 
     6#include <pj/assert.h> 
    77#include <pj/string.h> 
    88#include <pj/except.h> 
    99 
    10 static pjsip_authorization_hdr*       parse_hdr_authorization( pj_scanner *scanner, pj_pool_t *pool); 
    11 static pjsip_proxy_authorization_hdr* parse_hdr_proxy_authorization( pj_scanner *scanner, pj_pool_t *pool); 
    12 static pjsip_www_authenticate_hdr*    parse_hdr_www_authenticate( pj_scanner *scanner, pj_pool_t *pool); 
    13 static pjsip_proxy_authenticate_hdr*  parse_hdr_proxy_authenticate( pj_scanner *scanner, pj_pool_t *pool); 
    14  
    15 static void parse_digest_credential( pj_scanner *scanner, pj_pool_t *pool, pjsip_digest_credential *cred); 
    16 static void parse_pgp_credential( pj_scanner *scanner, pj_pool_t *pool, pjsip_pgp_credential *cred); 
    17 static void parse_digest_challenge( pj_scanner *scanner, pj_pool_t *pool, pjsip_digest_challenge *chal); 
    18 static void parse_pgp_challenge( pj_scanner *scanner, pj_pool_t *pool, pjsip_pgp_challenge *chal); 
     10static pjsip_hdr* parse_hdr_authorization       ( pjsip_parse_ctx *ctx ); 
     11static pjsip_hdr* parse_hdr_proxy_authorization ( pjsip_parse_ctx *ctx ); 
     12static pjsip_hdr* parse_hdr_www_authenticate    ( pjsip_parse_ctx *ctx ); 
     13static pjsip_hdr* parse_hdr_proxy_authenticate  ( pjsip_parse_ctx *ctx ); 
     14 
     15static void parse_digest_credential ( pj_scanner *scanner, pj_pool_t *pool,  
     16                                      pjsip_digest_credential *cred); 
     17static void parse_pgp_credential    ( pj_scanner *scanner, pj_pool_t *pool,  
     18                                      pjsip_pgp_credential *cred); 
     19static void parse_digest_challenge  ( pj_scanner *scanner, pj_pool_t *pool,  
     20                                      pjsip_digest_challenge *chal); 
     21static void parse_pgp_challenge     ( pj_scanner *scanner, pj_pool_t *pool, 
     22                                      pjsip_pgp_challenge *chal); 
    1923 
    2024const pj_str_t  pjsip_USERNAME_STR =        { "username", 8 }, 
     
    4448 
    4549 
    46 static void parse_digest_credential( pj_scanner *scanner, pj_pool_t *pool, pjsip_digest_credential *cred) 
     50static void parse_digest_credential( pj_scanner *scanner, pj_pool_t *pool,  
     51                                     pjsip_digest_credential *cred) 
    4752{ 
    4853    for (;;) { 
    4954        pj_str_t name, value; 
    5055 
    51         pjsip_parse_param_imp(scanner, &name, &value, PJSIP_PARSE_REMOVE_QUOTE); 
     56        pjsip_parse_param_imp(scanner, &name, &value,PJSIP_PARSE_REMOVE_QUOTE); 
    5257 
    5358        if (!pj_stricmp(&name, &pjsip_USERNAME_STR)) { 
     
    8287 
    8388        } else { 
    84             pjsip_concat_param_imp(&cred->other_param, pool, &name, &value, ','); 
     89            pjsip_concat_param_imp(&cred->other_param,pool,&name,&value, ','); 
    8590        } 
    8691 
    8792        /* Eat comma */ 
    88         if (!pj_scan_is_eof(scanner) && *scanner->current == ',') 
     93        if (!pj_scan_is_eof(scanner) && *scanner->curptr == ',') 
    8994            pj_scan_get_char(scanner); 
    9095        else 
     
    9398} 
    9499 
    95 static void parse_pgp_credential( pj_scanner *scanner, pj_pool_t *pool, pjsip_pgp_credential *cred) 
    96 { 
    97     PJ_UNUSED_ARG(scanner) 
    98     PJ_UNUSED_ARG(pool) 
    99     PJ_UNUSED_ARG(cred) 
     100static void parse_pgp_credential( pj_scanner *scanner, pj_pool_t *pool,  
     101                                  pjsip_pgp_credential *cred) 
     102{ 
     103    PJ_UNUSED_ARG(scanner); 
     104    PJ_UNUSED_ARG(pool); 
     105    PJ_UNUSED_ARG(cred); 
    100106 
    101107    PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); 
    102108} 
    103109 
    104 static void parse_digest_challenge( pj_scanner *scanner, pj_pool_t *pool, pjsip_digest_challenge *chal) 
     110static void parse_digest_challenge( pj_scanner *scanner, pj_pool_t *pool,  
     111                                    pjsip_digest_challenge *chal) 
    105112{ 
    106113    for (;;) { 
    107114        pj_str_t name, value; 
    108115 
    109         pjsip_parse_param_imp(scanner, &name, &value, PJSIP_PARSE_REMOVE_QUOTE); 
     116        pjsip_parse_param_imp(scanner, &name, &value,PJSIP_PARSE_REMOVE_QUOTE); 
    110117 
    111118        if (!pj_stricmp(&name, &pjsip_REALM_STR)) { 
     
    122129 
    123130        } else if (!pj_stricmp(&name, &pjsip_STALE_STR)) { 
    124             if (!pj_stricmp(&value, &pjsip_TRUE_STR) || !pj_stricmp(&value, &pjsip_QUOTED_TRUE_STR)) 
     131            if (!pj_stricmp(&value, &pjsip_TRUE_STR) ||  
     132                !pj_stricmp(&value, &pjsip_QUOTED_TRUE_STR)) 
     133            { 
    125134                chal->stale = 1; 
     135            } 
    126136 
    127137        } else if (!pj_stricmp(&name, &pjsip_ALGORITHM_STR)) { 
     
    133143 
    134144        } else { 
    135             pjsip_concat_param_imp(&chal->other_param, pool, &name, &value, ','); 
     145            pjsip_concat_param_imp(&chal->other_param, pool,  
     146                                   &name, &value, ','); 
    136147        } 
    137148 
    138149        /* Eat comma */ 
    139         if (!pj_scan_is_eof(scanner) && *scanner->current == ',') 
     150        if (!pj_scan_is_eof(scanner) && *scanner->curptr == ',') 
    140151            pj_scan_get_char(scanner); 
    141152        else 
     
    144155} 
    145156 
    146 static void parse_pgp_challenge( pj_scanner *scanner, pj_pool_t *pool, pjsip_pgp_challenge *chal) 
    147 { 
    148     PJ_UNUSED_ARG(scanner) 
    149     PJ_UNUSED_ARG(pool) 
    150     PJ_UNUSED_ARG(chal) 
     157static void parse_pgp_challenge( pj_scanner *scanner, pj_pool_t *pool,  
     158                                 pjsip_pgp_challenge *chal) 
     159{ 
     160    PJ_UNUSED_ARG(scanner); 
     161    PJ_UNUSED_ARG(pool); 
     162    PJ_UNUSED_ARG(chal); 
    151163 
    152164    PJ_THROW(PJSIP_SYN_ERR_EXCEPTION); 
    153165} 
    154166 
    155 static void int_parse_hdr_authorization( pj_scanner *scanner, pj_pool_t *pool,  
     167static void int_parse_hdr_authorization( pj_scanner *scanner, pj_pool_t *pool, 
    156168                                         pjsip_authorization_hdr *hdr) 
    157169{ 
    158     if (*scanner->current == '"') { 
     170    if (*scanner->curptr == '"') { 
    159171        pj_scan_get_quote(scanner, '"', '"', &hdr->scheme); 
    160172        hdr->scheme.ptr++; 
    161173        hdr->scheme.slen -= 2; 
    162174    } else { 
    163         pj_scan_get(scanner, pjsip_TOKEN_SPEC, &hdr->scheme); 
     175        pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &hdr->scheme); 
    164176    } 
    165177 
     
    182194                                        pjsip_www_authenticate_hdr *hdr) 
    183195{ 
    184     if (*scanner->current == '"') { 
     196    if (*scanner->curptr == '"') { 
    185197        pj_scan_get_quote(scanner, '"', '"', &hdr->scheme); 
    186198        hdr->scheme.ptr++; 
    187199        hdr->scheme.slen -= 2; 
    188200    } else { 
    189         pj_scan_get(scanner, pjsip_TOKEN_SPEC, &hdr->scheme); 
     201        pj_scan_get(scanner, &pjsip_TOKEN_SPEC, &hdr->scheme); 
    190202    } 
    191203 
     
    206218 
    207219 
    208 static pjsip_authorization_hdr *parse_hdr_authorization( pj_scanner *scanner, pj_pool_t *pool) 
    209 { 
    210     pjsip_authorization_hdr *hdr = pjsip_authorization_hdr_create(pool); 
    211     int_parse_hdr_authorization(scanner, pool, hdr); 
    212     return hdr; 
    213 } 
    214  
    215 static pjsip_proxy_authorization_hdr *parse_hdr_proxy_authorization( pj_scanner *scanner, pj_pool_t *pool) 
    216 { 
    217     pjsip_proxy_authorization_hdr *hdr = pjsip_proxy_authorization_hdr_create(pool); 
    218     int_parse_hdr_authorization(scanner, pool, hdr); 
    219     return hdr; 
    220 } 
    221  
    222 static pjsip_www_authenticate_hdr *parse_hdr_www_authenticate( pj_scanner *scanner, pj_pool_t *pool) 
    223 { 
    224     pjsip_www_authenticate_hdr *hdr = pjsip_www_authenticate_hdr_create(pool); 
    225     int_parse_hdr_authenticate(scanner, pool, hdr); 
    226     return hdr; 
    227 } 
    228  
    229 static pjsip_proxy_authenticate_hdr *parse_hdr_proxy_authenticate( pj_scanner *scanner, pj_pool_t *pool) 
    230 { 
    231     pjsip_proxy_authenticate_hdr *hdr = pjsip_proxy_authenticate_hdr_create(pool); 
    232     int_parse_hdr_authenticate(scanner, pool, hdr); 
    233     return hdr; 
    234 } 
    235  
    236  
    237 PJ_DEF(void) pjsip_auth_init_parser() 
    238 { 
    239     pjsip_register_hdr_parser( "Authorization", NULL, (pjsip_parse_hdr_func*) &parse_hdr_authorization); 
    240     pjsip_register_hdr_parser( "Proxy-Authorization", NULL, (pjsip_parse_hdr_func*) &parse_hdr_proxy_authorization); 
    241     pjsip_register_hdr_parser( "WWW-Authenticate", NULL, (pjsip_parse_hdr_func*) &parse_hdr_www_authenticate); 
    242     pjsip_register_hdr_parser( "Proxy-Authenticate", NULL, (pjsip_parse_hdr_func*) &parse_hdr_proxy_authenticate); 
     220static pjsip_hdr* parse_hdr_authorization( pjsip_parse_ctx *ctx ) 
     221{ 
     222    pjsip_authorization_hdr *hdr = pjsip_authorization_hdr_create(ctx->pool); 
     223    int_parse_hdr_authorization(ctx->scanner, ctx->pool, hdr); 
     224    return (pjsip_hdr*)hdr; 
     225} 
     226 
     227static pjsip_hdr* parse_hdr_proxy_authorization( pjsip_parse_ctx *ctx ) 
     228{ 
     229    pjsip_proxy_authorization_hdr *hdr =  
     230        pjsip_proxy_authorization_hdr_create(ctx->pool); 
     231    int_parse_hdr_authorization(ctx->scanner, ctx->pool, hdr); 
     232    return (pjsip_hdr*)hdr; 
     233} 
     234 
     235static pjsip_hdr* parse_hdr_www_authenticate( pjsip_parse_ctx *ctx ) 
     236{ 
     237    pjsip_www_authenticate_hdr *hdr =  
     238        pjsip_www_authenticate_hdr_create(ctx->pool); 
     239    int_parse_hdr_authenticate(ctx->scanner, ctx->pool, hdr); 
     240    return (pjsip_hdr*)hdr; 
     241} 
     242 
     243static pjsip_hdr* parse_hdr_proxy_authenticate( pjsip_parse_ctx *ctx ) 
     244{ 
     245    pjsip_proxy_authenticate_hdr *hdr =  
     246        pjsip_proxy_authenticate_hdr_create(ctx->pool); 
     247    int_parse_hdr_authenticate(ctx->scanner, ctx->pool, hdr); 
     248    return (pjsip_hdr*)hdr; 
     249} 
     250 
     251 
     252PJ_DEF(pj_status_t) pjsip_auth_init_parser() 
     253{ 
     254    pj_status_t status; 
     255 
     256    status = pjsip_register_hdr_parser( "Authorization", NULL,  
     257                                        &parse_hdr_authorization); 
     258    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); 
     259    status = pjsip_register_hdr_parser( "Proxy-Authorization", NULL,  
     260                                        &parse_hdr_proxy_authorization); 
     261    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); 
     262    status = pjsip_register_hdr_parser( "WWW-Authenticate", NULL,  
     263                                        &parse_hdr_www_authenticate); 
     264    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); 
     265    status = pjsip_register_hdr_parser( "Proxy-Authenticate", NULL,  
     266                                        &parse_hdr_proxy_authenticate); 
     267    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); 
     268 
     269    return PJ_SUCCESS; 
    243270} 
    244271 
Note: See TracChangeset for help on using the changeset viewer.