Expire time fix (bug #1996)
authorMark Spencer <markster@digium.com>
Fri, 9 Jul 2004 11:03:33 +0000 (11:03 +0000)
committerMark Spencer <markster@digium.com>
Fri, 9 Jul 2004 11:03:33 +0000 (11:03 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3413 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index dc34f3e..6fb2909 100755 (executable)
@@ -6463,8 +6463,10 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                                                        contact = __get_header(req, "Contact", &start);
                                                        /* this loop ensures we get a contact header about our register request */
                                                        if(!ast_strlen_zero(contact)) {
-                                                               if(strstr(contact, p->our_contact))
+                                                               if( (tmptmp=strstr(contact, p->our_contact))) {
+                                                                       contact=tmptmp;
                                                                        break;
+                                                               }
                                                        } else
                                                                break;
                                                }
@@ -6483,6 +6485,7 @@ static void handle_response(struct sip_pvt *p, int resp, char *rest, struct sip_
                                        else
                                                expires_ms -= EXPIRY_GUARD_SECS * 1000;
 
+                                       r->refresh= (int) expires_ms / 1000;
                                        r->expire=ast_sched_add(sched, expires_ms, sip_reregister, r); 
                                } else
                                        ast_log(LOG_WARNING, "Got 200 OK on REGISTER that isn't a register\n");