Changeset 119 for pjproject/trunk/pjsip/src/pjsip/sip_uri.c
- Timestamp:
- Jan 10, 2006 1:31:40 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_uri.c
r82 r119 112 112 } 113 113 p = p->next; 114 if (sep == '?') sep = '&'; 114 115 } while (p != param_list); 115 116 … … 123 124 #define IS_SIPS(url) ((url)->vptr==&sips_url_vptr) 124 125 125 static const pj_str_t *pjsip_url_get_scheme( const pjsip_ url* );126 static const pj_str_t *pjsips_url_get_scheme( const pjsip_ url* );126 static const pj_str_t *pjsip_url_get_scheme( const pjsip_sip_uri* ); 127 static const pj_str_t *pjsips_url_get_scheme( const pjsip_sip_uri* ); 127 128 static const pj_str_t *pjsip_name_addr_get_scheme( const pjsip_name_addr * ); 128 129 static void *pjsip_get_uri( pjsip_uri *uri ); … … 147 148 const pjsip_name_addr *naddr2); 148 149 static int pjsip_url_print( pjsip_uri_context_e context, 149 const pjsip_ url*url,150 const pjsip_sip_uri *url, 150 151 char *buf, pj_size_t size); 151 152 static int pjsip_url_compare( pjsip_uri_context_e context, 152 const pjsip_url *url1, const pjsip_url *url2); 153 static pjsip_url* pjsip_url_clone(pj_pool_t *pool, const pjsip_url *rhs); 153 const pjsip_sip_uri *url1, 154 const pjsip_sip_uri *url2); 155 static pjsip_sip_uri* pjsip_url_clone(pj_pool_t *pool, 156 const pjsip_sip_uri *rhs); 154 157 155 158 static pjsip_uri_vptr sip_url_vptr = … … 180 183 }; 181 184 182 static const pj_str_t *pjsip_url_get_scheme(const pjsip_ url*url)185 static const pj_str_t *pjsip_url_get_scheme(const pjsip_sip_uri *url) 183 186 { 184 187 PJ_UNUSED_ARG(url); … … 186 189 } 187 190 188 static const pj_str_t *pjsips_url_get_scheme(const pjsip_ url*url)191 static const pj_str_t *pjsips_url_get_scheme(const pjsip_sip_uri *url) 189 192 { 190 193 PJ_UNUSED_ARG(url); … … 202 205 } 203 206 204 PJ_DEF(void) pjsip_url_init(pjsip_ url*url, int secure)207 PJ_DEF(void) pjsip_url_init(pjsip_sip_uri *url, int secure) 205 208 { 206 209 pj_memset(url, 0, sizeof(*url)); … … 211 214 } 212 215 213 PJ_DEF(pjsip_ url*) pjsip_url_create( pj_pool_t *pool, int secure )214 { 215 pjsip_ url *url = pj_pool_alloc(pool, sizeof(pjsip_url));216 PJ_DEF(pjsip_sip_uri*) pjsip_url_create( pj_pool_t *pool, int secure ) 217 { 218 pjsip_sip_uri *url = pj_pool_alloc(pool, sizeof(pjsip_sip_uri)); 216 219 pjsip_url_init(url, secure); 217 220 return url; … … 219 222 220 223 static int pjsip_url_print( pjsip_uri_context_e context, 221 const pjsip_ url*url,224 const pjsip_sip_uri *url, 222 225 char *buf, pj_size_t size) 223 226 { … … 226 229 char *endbuf = buf+size; 227 230 const pj_str_t *scheme; 228 pjsip_param *param;229 char hparam_char = '?';230 231 231 232 *buf = '\0'; … … 318 319 buf += printed; 319 320 320 /* Header param. */ 321 param = url->header_param.next; 322 while (param != &url->header_param) { 323 if (endbuf - buf < param->name.slen+2) 321 /* Header param. 322 * Header param is only allowed in these contexts: 323 * - PJSIP_URI_IN_CONTACT_HDR 324 * - PJSIP_URI_IN_OTHER 325 */ 326 if (context == PJSIP_URI_IN_CONTACT_HDR || context == PJSIP_URI_IN_OTHER) { 327 printed = pjsip_param_print_on(&url->header_param, buf, endbuf-buf, 328 &pjsip_HDR_CHAR_SPEC, 329 &pjsip_HDR_CHAR_SPEC, '?'); 330 if (printed < 0) 324 331 return -1; 325 *buf++ = hparam_char; 326 copy_advance_escape(buf, param->name, pjsip_HDR_CHAR_SPEC); 327 if (param->value.slen) { 328 *buf++ = '='; 329 copy_advance_escape(buf, param->value, pjsip_HDR_CHAR_SPEC); 330 } 331 param = param->next; 332 hparam_char = '&'; 332 buf += printed; 333 333 } 334 334 … … 338 338 339 339 static pj_status_t pjsip_url_compare( pjsip_uri_context_e context, 340 const pjsip_ url*url1,341 const pjsip_ url*url2)340 const pjsip_sip_uri *url1, 341 const pjsip_sip_uri *url2) 342 342 { 343 343 const pjsip_param *p1; … … 466 466 467 467 468 PJ_DEF(void) pjsip_url_assign(pj_pool_t *pool, pjsip_ url*url,469 const pjsip_ url*rhs)468 PJ_DEF(void) pjsip_url_assign(pj_pool_t *pool, pjsip_sip_uri *url, 469 const pjsip_sip_uri *rhs) 470 470 { 471 471 pj_strdup( pool, &url->user, &rhs->user); … … 483 483 } 484 484 485 static pjsip_ url* pjsip_url_clone(pj_pool_t *pool, const pjsip_url*rhs)486 { 487 pjsip_ url *url = pj_pool_alloc(pool, sizeof(pjsip_url));485 static pjsip_sip_uri* pjsip_url_clone(pj_pool_t *pool, const pjsip_sip_uri *rhs) 486 { 487 pjsip_sip_uri *url = pj_pool_alloc(pool, sizeof(pjsip_sip_uri)); 488 488 if (!url) 489 489 return NULL;
Note: See TracChangeset
for help on using the changeset viewer.