Ignore:
Timestamp:
Nov 20, 2005 7:58:10 PM (18 years ago)
Author:
bennylp
Message:

More compliant URI parser, comparison, etc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsip/print_util.h

    r60 r64  
    2020#define __PJSIP_PRINT_H__ 
    2121 
     22/* Minimum space left in the buffer */ 
     23#define MIN_SPACE       10 
     24 
    2225#define copy_advance_check(buf,str)   \ 
    2326        do { \ 
    24             if ((str).slen+10 >= (endbuf-buf)) return -1;       \ 
     27            if ((str).slen+MIN_SPACE >= (endbuf-buf)) return -1;        \ 
    2528            pj_memcpy(buf, (str).ptr, (str).slen); \ 
    2629            buf += (str).slen; \ 
     
    3235    if (str2->slen) { 
    3336        int printed = len1+str2->slen; 
    34         if (printed+10 >= (endbuf-buf)) return NULL; 
     37        if (printed+MIN_SPACE >= (endbuf-buf)) return NULL; 
    3538        pj_memcpy(buf,str1,len1); 
    3639        pj_memcpy(buf+len1, str2->ptr, str2->slen); 
     
    4548            if (str2.slen) { \ 
    4649                printed = len1+str2.slen; \ 
    47                 if (printed+10 >= (endbuf-buf)) return -1;      \ 
     50                if (printed+MIN_SPACE >= (endbuf-buf)) return -1;       \ 
    4851                pj_memcpy(buf,str1,len1); \ 
    4952                pj_memcpy(buf+len1, str2.ptr, str2.slen); \ 
     
    6366            if (str2.slen) { \ 
    6467                printed = len1+str2.slen+2; \ 
    65                 if (printed+10 >= (endbuf-buf)) return -1;      \ 
     68                if (printed+MIN_SPACE >= (endbuf-buf)) return -1;       \ 
    6669                pj_memcpy(buf,str1,len1); \ 
    6770                *(buf+len1)=quotebegin; \ 
     
    7275        } while (0) 
    7376 
     77#define copy_advance_pair_escape(buf,str1,len1,str2,unres)      \ 
     78        do { \ 
     79            if (str2.slen) { \ 
     80                pj_ssize_t esc_len; \ 
     81                if (len1+str2.slen+MIN_SPACE >= (endbuf-buf)) return -1; \ 
     82                pj_memcpy(buf,str1,len1); \ 
     83                buf += len1; \ 
     84                esc_len=pj_strncpy2_escape(buf, &str2, (endbuf-buf), &unres); \ 
     85                if (esc_len < 0) return -1; \ 
     86                buf += esc_len; \ 
     87                if (endbuf-buf < MIN_SPACE) return -1; \ 
     88            } \ 
     89        } while (0) 
     90 
     91 
    7492#define copy_advance_no_check(buf,str)   \ 
    75         pj_memcpy(buf, (str).ptr, (str).slen); \ 
    76         buf += (str).slen; 
     93        do { \ 
     94            pj_memcpy(buf, (str).ptr, (str).slen); \ 
     95            buf += (str).slen; \ 
     96        } while (0) 
     97 
     98#define copy_advance_escape(buf,str,unres)    \ 
     99        do { \ 
     100            pj_ssize_t len = \ 
     101                pj_strncpy2_escape(buf, &(str), (endbuf-buf), &(unres)); \ 
     102            if (len < 0) return -1; \ 
     103            buf += len; \ 
     104            if (endbuf-buf < MIN_SPACE) return -1; \ 
     105        } while (0) 
    77106 
    78107#define copy_advance_pair_no_check(buf,str1,len1,str2)   \ 
Note: See TracChangeset for help on using the changeset viewer.