Avoid duplicate 200 OK
authorMark Spencer <markster@digium.com>
Sun, 16 Jan 2005 07:22:34 +0000 (07:22 +0000)
committerMark Spencer <markster@digium.com>
Sun, 16 Jan 2005 07:22:34 +0000 (07:22 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4809 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index d6f367e..338e79b 100755 (executable)
@@ -8002,13 +8002,14 @@ 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 {
+                                               ast_set_flag(p, SIP_NEEDDESTROY);       
+                                       } else {
                                                transmit_response(p, "403 Forbidden", req);
                                                ast_set_flag(p, SIP_NEEDDESTROY);       
                                        }
-                                       
+                                       return 0;
                                } else
                                    p->subscribed = 1;
                                if (p->subscribed)
@@ -8022,14 +8023,14 @@ static int handle_request(struct sip_pvt *p, struct sip_request *req, struct soc
                        p->lastinvite = seqno;
                if (p && !ast_test_flag(p, SIP_NEEDDESTROY)) {
                    if (!(p->expiry = atoi(get_header(req, "Expires")))) {
-                       transmit_response(p, "200 OK", req);
-                       ast_set_flag(p, SIP_NEEDDESTROY);       
-                       return 0;
+                               transmit_response(p, "200 OK", req);
+                               ast_set_flag(p, SIP_NEEDDESTROY);       
+                               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;
+                               if (p->expiry>max_expiry)
+                                       p->expiry = max_expiry;
                    }
                    transmit_response(p, "200 OK", req);
                    sip_scheddestroy(p, (p->expiry+10)*1000);