From 22243ee9ae1a19daf8b438ec62bb9d99939f1e08 Mon Sep 17 00:00:00 2001 From: Mark Spencer <markster@digium.com> Date: Sun, 9 May 2004 22:03:38 +0000 Subject: [PATCH] merge brian's cleanups git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2939 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 0c02a06db8..c1ad16ee68 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -3648,6 +3648,7 @@ static int parse_contact(struct sip_pvt *pvt, struct sip_peer *p, struct sip_req int expiry = atoi(expires); char *c, *n, *pt; int port; + char *useragent; struct hostent *hp; struct ast_hostent ahp; struct sockaddr_in oldsin; @@ -3679,6 +3680,7 @@ static int parse_contact(struct sip_pvt *pvt, struct sip_peer *p, struct sip_req ast_sched_del(sched, p->expire); p->expire = -1; ast_db_del("SIP/Registry", p->name); + strcpy(p->useragent, ""); if (option_verbose > 2) ast_verbose(VERBOSE_PREFIX_3 "Unregistered SIP '%s'\n", p->name); return 0; @@ -3744,10 +3746,13 @@ static int parse_contact(struct sip_pvt *pvt, struct sip_peer *p, struct sip_req } /* Save User agent */ - strncpy(p->useragent, get_header(req, "User-Agent"),sizeof(p->useragent)); - if (option_verbose > 2) - ast_verbose(VERBOSE_PREFIX_3 "Saved useragent \"%s\" for peer %s\n",p->useragent,p->name); - + useragent = get_header(req, "User-Agent"); + if(useragent && strcasecmp(useragent, p->useragent)) { + strncpy(p->useragent, get_header(req, "User-Agent"),sizeof(p->useragent)); + if (option_verbose > 2) { + ast_verbose(VERBOSE_PREFIX_3 "Saved useragent \"%s\" for peer %s\n",p->useragent,p->name); + } + } return 0; } -- GitLab