summaryrefslogtreecommitdiff
path: root/res/res_pjsip/pjsip_global_headers.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2015-03-11 15:22:01 +0000
committerRichard Mudgett <rmudgett@digium.com>2015-03-11 15:22:01 +0000
commit185d2e082aad9962c7d94255158a49ca9b82536b (patch)
treed36966e8dcf8bd829a39da0f4796806e2e5f2108 /res/res_pjsip/pjsip_global_headers.c
parent2889f074a0a2ce83481fd89a0039bf85a96b6f84 (diff)
res_pjsip: Fixed invalid empty Server and User-Agent SIP headers.
Setting pjsip.conf useragent to an empty string results in an empty SIP header being sent. * Made not add an empty SIP header item to the global SIP headers list. Review: https://reviewboard.asterisk.org/r/4467/ ........ Merged revisions 432764 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432765 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_pjsip/pjsip_global_headers.c')
-rw-r--r--res/res_pjsip/pjsip_global_headers.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/res/res_pjsip/pjsip_global_headers.c b/res/res_pjsip/pjsip_global_headers.c
index 057b0c3d0..735008dcc 100644
--- a/res/res_pjsip/pjsip_global_headers.c
+++ b/res/res_pjsip/pjsip_global_headers.c
@@ -121,18 +121,22 @@ static void remove_header(struct header_list *headers, const char *to_remove)
static int add_header(struct header_list *headers, const char *name, const char *value, int replace)
{
- struct header *to_add;
+ struct header *to_add = NULL;
- to_add = alloc_header(name, value);
- if (!to_add) {
- return -1;
+ if (!ast_strlen_zero(value)) {
+ to_add = alloc_header(name, value);
+ if (!to_add) {
+ return -1;
+ }
}
AST_RWLIST_WRLOCK(headers);
if (replace) {
remove_header(headers, name);
}
- AST_LIST_INSERT_TAIL(headers, to_add, next);
+ if (to_add) {
+ AST_LIST_INSERT_TAIL(headers, to_add, next);
+ }
AST_RWLIST_UNLOCK(headers);
return 0;