Ignore:
Timestamp:
Nov 21, 2005 5:07:18 PM (18 years ago)
Author:
bennylp
Message:

Optimization here and there, changes because of PJLIB modifications

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_parser.c

    r65 r74  
    184184 
    185185/* Case insensitive comparison */ 
    186 #define parser_stricmp(str1, str2)  pj_stricmp(&str1, &str2) 
     186#define parser_stricmp(s1, s2)  (pj_stricmp_alnum(&s1, &s2)) 
    187187 
    188188 
     
    552552        msg = int_parse_msg(&context, err_list); 
    553553    }  
    554     PJ_DEFAULT { 
     554    PJ_CATCH_ANY { 
    555555        msg = NULL; 
    556556    } 
     
    581581        rdata->msg_info.msg = int_parse_msg(&context, &rdata->msg_info.parse_err); 
    582582    }  
    583     PJ_DEFAULT { 
     583    PJ_CATCH_ANY { 
    584584        rdata->msg_info.msg = NULL; 
    585585    } 
     
    657657                /* Found a valid Content-Length header. */ 
    658658                content_length = pj_strtoul(&str_clen); 
    659             }  
     659            } 
     660            PJ_CATCH_ANY { 
     661                content_length = -1; 
     662            } 
    660663            PJ_END 
    661664 
     
    692695                                         unsigned option) 
    693696{ 
    694     PJ_USE_EXCEPTION; 
    695697    pj_scanner scanner; 
    696698    pjsip_uri *uri = NULL; 
     699    PJ_USE_EXCEPTION; 
    697700 
    698701    init_sip_parser(); 
     
    703706    PJ_TRY { 
    704707        uri = int_parse_uri_or_name_addr(&scanner, pool, option); 
     708    } 
     709    PJ_CATCH_ANY { 
     710        uri = NULL; 
    705711    } 
    706712    PJ_END; 
     
    739745                                 pjsip_parser_err_report *err_list) 
    740746{ 
    741     PJ_USE_EXCEPTION; 
    742747    int ch; 
    743748    pjsip_msg *msg; 
     
    745750    pj_scanner *scanner = ctx->scanner; 
    746751    pj_pool_t *pool = ctx->pool; 
     752    PJ_USE_EXCEPTION; 
    747753 
    748754    /* Skip leading newlines. */ 
     
    801807 
    802808        } 
    803         PJ_DEFAULT { 
     809        PJ_CATCH_ANY { 
    804810            /* Exception was thrown during parsing.  
    805811             * Skip until newline, and parse next header.  
     
    816822                 
    817823                err_info = pj_pool_alloc(pool, sizeof(*err_info)); 
    818                 err_info->exception_code = PJ_GET_EXCEPTION(); 
     824                err_info->except_code = PJ_GET_EXCEPTION(); 
    819825                err_info->line = scanner->line; 
    820826                err_info->col = scanner->col; 
     
    10801086{ 
    10811087    pj_str_t scheme; 
    1082     pjsip_url *url; 
     1088    pjsip_url *url = NULL; 
    10831089    int colon; 
    10841090    int skip_ws = scanner->skip_ws; 
    1085     int hsep = '?'; 
    10861091    scanner->skip_ws = 0; 
    10871092 
     
    11151120 
    11161121    /* Get URL parameters. */ 
    1117     while ( parse_params && *scanner->curptr == ';' ) { 
     1122    if (parse_params) { 
     1123      while (*scanner->curptr == ';' ) { 
    11181124        pj_str_t pname, pvalue; 
    11191125 
     
    11441150            pj_list_insert_before(&url->other_param, p); 
    11451151        } 
     1152      } 
    11461153    } 
    11471154 
    11481155    /* Get header params. */ 
    1149     while (parse_params && *scanner->curptr == hsep) { 
     1156    if (parse_params && *scanner->curptr == '?') { 
     1157      do { 
    11501158        pjsip_param *param; 
    11511159        param = pj_pool_alloc(pool, sizeof(pjsip_param)); 
    11521160        int_parse_hparam(scanner, pool, &param->name, &param->value); 
    11531161        pj_list_insert_before(&url->header_param, param); 
    1154         hsep = '&'; 
     1162      } while (*scanner->curptr == '&'); 
    11551163    } 
    11561164 
     
    17751783 
    17761784    }  
    1777     PJ_DEFAULT { 
     1785    PJ_CATCH_ANY { 
    17781786        hdr = NULL; 
    17791787    } 
Note: See TracChangeset for help on using the changeset viewer.