Module: kamailio Branch: master Commit: c1fcb8379c24efed52f6dca2f3f00f6ee5d43706 URL: https://github.com/kamailio/kamailio/commit/c1fcb8379c24efed52f6dca2f3f00f6ee5d43706
Author: Daniel-Constantin Mierla <[email protected]> Committer: Daniel-Constantin Mierla <[email protected]> Date: 2021-03-30T11:58:11+02:00 core: dset - asume udp if uri without transport for alias encoding - set output length for udp proto --- Modified: src/core/dset.c --- Diff: https://github.com/kamailio/kamailio/commit/c1fcb8379c24efed52f6dca2f3f00f6ee5d43706.diff Patch: https://github.com/kamailio/kamailio/commit/c1fcb8379c24efed52f6dca2f3f00f6ee5d43706.patch --- diff --git a/src/core/dset.c b/src/core/dset.c index 1252135043..adabe7bba0 100644 --- a/src/core/dset.c +++ b/src/core/dset.c @@ -1153,7 +1153,7 @@ int ksr_uri_alias_encode(str *iuri, str *ualias) p += 4; } *p++ = '~'; - *p++ = puri.proto + '0'; + *p++ = ((puri.proto)?puri.proto:1) + '0'; ualias->len = p - ualias->s; ualias->s[ualias->len] = '\0'; @@ -1204,6 +1204,9 @@ int ksr_uri_alias_decode(str *ualias, str *ouri) goto error; } nproto = *p - '0'; + if(nproto == PROTO_NONE) { + nproto = PROTO_UDP; + } if (nproto != PROTO_UDP) { proto_type_to_str(nproto, &sproto); if (sproto.len == 0) { @@ -1214,11 +1217,13 @@ int ksr_uri_alias_decode(str *ualias, str *ouri) p += 10; memcpy(p, sproto.s, sproto.len); p += sproto.len; - *p = '\0'; - ouri->len = (int)(p - ouri->s); - ouri->s[ouri->len] = '\0'; - break; + } else { + /* go back one byte to overwrite ';' */ + p--; } + ouri->len = (int)(p - ouri->s); + ouri->s[ouri->len] = '\0'; + break; } else { LM_ERR("invalid number of separators (%d)\n", n); goto error; _______________________________________________ Kamailio (SER) - Development Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
