hooks parameter of parse_params() is made optional,
authorMiklos Tirpak <miklos@iptel.org>
Thu, 22 May 2008 16:06:15 +0000 (16:06 +0000)
committerMiklos Tirpak <miklos@iptel.org>
Thu, 22 May 2008 16:06:15 +0000 (16:06 +0000)
it is not always needed

parser/parse_param.c

index 2d21e1c..f52811d 100644 (file)
@@ -54,6 +54,10 @@ static inline void parse_contact_class(param_hooks_t* _h, param_t* _p)
                LOG(L_ERR, "ERROR: parse_contact_class: empty value\n");
                return;
        }
+       if (!_h) {
+               LOG(L_CRIT, "BUG: parse_uri_class: NULL param hook pointer\n");
+               return;
+       }
        switch(_p->name.s[0]) {
        case 'q':
        case 'Q':
@@ -111,6 +115,10 @@ static inline void parse_uri_class(param_hooks_t* _h, param_t* _p)
                LOG(L_ERR, "ERROR: parse_uri_class: empty value\n");
                return;
        }
+       if (!_h) {
+               LOG(L_CRIT, "BUG: parse_uri_class: NULL param hook pointer\n");
+               return;
+       }
        switch(_p->name.s[0]) {
        case 't':
        case 'T':
@@ -316,7 +324,7 @@ static inline void parse_param_name(str* _s, pclass_t _c, param_hooks_t* _h, par
 
  out:
        _p->name.len = _s->s - _p->name.s;
-       
+
        switch(_c) {
        case CLASS_CONTACT: parse_contact_class(_h, _p); break;
        case CLASS_URI:     parse_uri_class(_h, _p);     break;
@@ -436,12 +444,13 @@ int parse_params(str* _s, pclass_t _c, param_hooks_t* _h, param_t** _p)
 {
        param_t* t;
 
-       if (!_s || !_h || !_p) {
+       if (!_s || !_p) {
                LOG(L_ERR, "parse_params(): Invalid parameter value\n");
                return -1;
        }
 
-       memset(_h, 0, sizeof(param_hooks_t));
+       if (_h)
+               memset(_h, 0, sizeof(param_hooks_t));
        *_p = 0;
 
        if (!_s->s) { /* no parameters at all -- we're done */