]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
prevent duplicate 200 ... and some formatting
authorRussell Bryant <russell@russellbryant.com>
Mon, 17 Jan 2005 19:29:10 +0000 (19:29 +0000)
committerRussell Bryant <russell@russellbryant.com>
Mon, 17 Jan 2005 19:29:10 +0000 (19:29 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/v1-0@4824 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 96b3d6d4a455ce07610a63a7f779c3944bb6aa5e..51f6dada57f85656d4513eedf23a99ea6df9f434 100755 (executable)
@@ -7594,13 +7594,16 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                                                found++;
                                        }
 
-                                       if (found)
+                                       if (found) {
                                                transmit_response(p, "200 OK", req);
-                                       else {
+                                               p->needdestroy = 1;
+                                       } else {
                                                transmit_response(p, "403 Forbidden", req);
                                                p->needdestroy = 1;
                                        }
-                                       
+
+                                       return 0;
+                               
                                } else
                                    p->subscribed = 1;
                                if (p->subscribed)
@@ -7613,19 +7616,20 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                if (!ignore && p)
                        p->lastinvite = seqno;
                if (p && !p->needdestroy) {
-                   if (!(p->expiry = atoi(get_header(req, "Expires")))) {
+                       if (!(p->expiry = atoi(get_header(req, "Expires")))) {
+                               transmit_response(p, "200 OK", req);
+                               p->needdestroy = 1;
+                               return 0;
+                       }
+                       /* The next line can be removed if the SNOM200 Expires bug is fixed */
+                       if (p->subscribed == 1) {  
+                               if (p->expiry>max_expiry) {
+                                       p->expiry = max_expiry;
+                               }
+                       }       
                        transmit_response(p, "200 OK", req);
-                       p->needdestroy = 1;
-                       return 0;
-                   }
-                   /* The next line can be removed if the SNOM200 Expires bug is fixed */
-                   if (p->subscribed == 1) {  
-                       if (p->expiry>max_expiry)
-                           p->expiry = max_expiry;
-                   }
-                   transmit_response(p, "200 OK", req);
-                   sip_scheddestroy(p, (p->expiry+10)*1000);
-                   transmit_state_notify(p, ast_extension_state(NULL, p->context, p->exten),1);
+                       sip_scheddestroy(p, (p->expiry+10)*1000);
+                       transmit_state_notify(p, ast_extension_state(NULL, p->context, p->exten),1);
                }
        } else if (!strcasecmp(cmd, "INFO")) {
                if (!ignore) {