Module: sip-router Branch: master Commit: f65d060bb471070dca743905092afb60e5119bb6 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=f65d060b...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: Wed Nov 30 15:19:35 2011 +0100
parser: remove old URI parser and structure
---
parser/msg_parser.h | 13 ----- parser/parse_uri.c | 144 --------------------------------------------------- 2 files changed, 0 insertions(+), 157 deletions(-)
diff --git a/parser/msg_parser.h b/parser/msg_parser.h index 31582f5..eee2948 100644 --- a/parser/msg_parser.h +++ b/parser/msg_parser.h @@ -174,19 +174,6 @@ if ( (*tmp==(firstchar) || *tmp==((firstchar) | 32)) && \ (((m)->new_uri.s && (m)->new_uri.len) ? (&(m)->new_uri) : (&(m)->first_line.u.request.uri))
-#if 0 - /* old version */ -struct sip_uri { - str user; /* Username */ - str passwd; /* Password */ - str host; /* Host name */ - str port; /* Port number */ - str params; /* Parameters */ - str headers; - unsigned short port_no; -}; -#endif - enum _uri_type{ERROR_URI_T=0, SIP_URI_T, SIPS_URI_T, TEL_URI_T, TELS_URI_T}; typedef enum _uri_type uri_type; enum _uri_flags{ diff --git a/parser/parse_uri.c b/parser/parse_uri.c index b337153..affe44f 100644 --- a/parser/parse_uri.c +++ b/parser/parse_uri.c @@ -52,9 +52,7 @@ #include "parse_uri.h" #include <string.h> #include "../dprint.h" -/* #ifdef PARSE_URI_OLD */ /* ZSW */ #include "../ut.h" /* q_memchr */ -/* #endif */ #include "../error.h" #include "../core_stats.h"
@@ -62,7 +60,6 @@ * len= len of uri * returns: fills uri & returns <0 on error or 0 if ok */ -#ifndef PARSE_URI_OLD int parse_uri(char* buf, int len, struct sip_uri* uri) { enum states { URI_INIT, URI_USER, URI_PASSWORD, URI_PASSWORD_ALPHA, @@ -1234,147 +1231,6 @@ error_exit: return E_BAD_URI; }
-#else /* PARSE_URI_OLD */ - -int parse_uri(char *buf, int len, struct sip_uri* uri) -{ - char* next, *end; - char *user, *passwd, *host, *port, *params, *headers, *ipv6; - int host_len, port_len, params_len, headers_len; - int err; - int ret; - - - ret=0; - host_len=0; - end=buf+len; - memset(uri, 0, sizeof(struct sip_uri)); /* zero it all, just to be sure */ - /* look for "sip:"*/; - next=q_memchr(buf, ':', len); - if ((next==0)||(strncasecmp(buf,"sip",next-buf)!=0)){ - LOG(L_DBG, "ERROR: parse_uri: bad sip uri\n"); - ser_error=ret=E_BAD_URI; - return ret; - } - buf=next+1; /* next char after ':' */ - if (buf>end){ - LOG(L_DBG, "ERROR: parse_uri: uri too short\n"); - ser_error=ret=E_BAD_URI; - return ret; - } - /*look for '@' */ - next=q_memchr(buf,'@', end-buf); - if (next==0){ - /* no '@' found, => no userinfo */ - uri->user.s=0; - uri->passwd.s=0; - host=buf; - }else{ - /* found it */ - user=buf; - /* try to find passwd */ - passwd=q_memchr(user,':', next-user); - if (passwd==0){ - /* no ':' found => no password */ - uri->passwd.s=0; - uri->user.s=user; - uri->user.len=next-user; - }else{ - uri->user.s=user; - uri->user.len=passwd-user; - passwd++; /*skip ':' */ - uri->passwd.s=passwd; - uri->passwd.len=next-passwd; - } - host=next+1; /* skip '@' */ - } - /* try to find the rest */ - if(host>=end){ - LOG(L_DBG, "ERROR: parse_uri: missing hostport\n"); - ser_error=ret=E_UNSPEC; - return ret; - } - next=host; - ipv6=q_memchr(host, '[', end-host); - if (ipv6){ - host=ipv6+1; /* skip '[' in "[3ffe::abbcd]" */ - if (host>=end){ - LOG(L_DBG, "ERROR: parse_uri: bad ipv6 uri\n"); - ret=E_UNSPEC; - return ret; - } - ipv6=q_memchr(host, ']', end-host); - if ((ipv6==0)||(ipv6==host)){ - LOG(L_DBG, "ERROR: parse_uri: bad ipv6 uri - null address" - " or missing ']'\n"); - ret=E_UNSPEC; - return ret; - } - host_len=ipv6-host; - next=ipv6; - } - - - headers=q_memchr(next,'?',end-next); - params=q_memchr(next,';',end-next); - port=q_memchr(next,':',end-next); - if (host_len==0){ /* host not ipv6 addr */ - host_len=(port)?port-host:(params)?params-host:(headers)?headers-host: - end-host; - } - /* get host */ - uri->host.s=host; - uri->host.len=host_len; - - /* get port*/ - if ((port)&&(port+1<end)){ - port++; - if ( ((params) &&(params<port))||((headers) &&(headers<port)) ){ - /* error -> invalid uri we found ';' or '?' before ':' */ - LOG(L_DBG, "ERROR: parse_uri: malformed sip uri\n"); - ser_error=ret=E_BAD_URI; - return ret; - } - port_len=(params)?params-port:(headers)?headers-port:end-port; - uri->port.s=port; - uri->port.len=port_len; - }else uri->port.s=0; - /* get params */ - if ((params)&&(params+1<end)){ - params++; - if ((headers) && (headers<params)){ - /* error -> invalid uri we found '?' or '?' before ';' */ - LOG(L_DBG, "ERROR: parse_uri: malformed sip uri\n"); - ser_error=ret=E_BAD_URI; - return ret; - } - params_len=(headers)?headers-params:end-params; - uri->params.s=params; - uri->params.len=params_len; - }else uri->params.s=0; - /*get headers */ - if ((headers)&&(headers+1<end)){ - headers++; - headers_len=end-headers; - uri->headers.s=headers; - uri->headers.len=headers_len; - }else uri->headers.s=0; - - err=0; - if (uri->port.s) uri->port_no=str2s(uri->port.s, uri->port.len, &err); - if (err){ - LOG(L_DBG, "ERROR: parse_uri: bad port number in sip uri: %.*s\n", - uri->port.len, ZSW(uri->port.s)); - ser_error=ret=E_BAD_URI; - return ret; - } - - return ret; -} -#endif - - -
static inline int _parse_ruri(str *uri, int *status, struct sip_uri *parsed_uri)