]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 291110-291111 via svnmerge from
authorRichard Mudgett <rmudgett@digium.com>
Mon, 11 Oct 2010 18:48:15 +0000 (18:48 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Mon, 11 Oct 2010 18:48:15 +0000 (18:48 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r291110 | rmudgett | 2010-10-11 13:34:22 -0500 (Mon, 11 Oct 2010) | 9 lines

  Merged revisions 291109 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r291109 | rmudgett | 2010-10-11 13:29:43 -0500 (Mon, 11 Oct 2010) | 1 line

    Add missing unlock to an exception condition in reload_config().
  ........
................
  r291111 | rmudgett | 2010-10-11 13:39:06 -0500 (Mon, 11 Oct 2010) | 1 line

  Make exit from handle_request_do() consistent.
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291112 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 3772c5a681c06ad1f02daf2c90f62b90c7a685fe..802f13dead742451c8aebe3357803ee7746b92da 100644 (file)
@@ -23412,9 +23412,13 @@ static int handle_request_register(struct sip_pvt *p, struct sip_request *req, s
        return res;
 }
 
-/*! \brief Handle incoming SIP requests (methods)
-\note  This is where all incoming requests go first   */
-/* called with p and p->owner locked */
+/*!
+ * \brief Handle incoming SIP requests (methods)
+ * \note
+ * This is where all incoming requests go first.
+ * \note
+ * called with p and p->owner locked
+ */
 static int handle_incoming(struct sip_pvt *p, struct sip_request *req, struct ast_sockaddr *addr, int *recount, int *nounlock)
 {
        /* Called with p->lock held, as well as p->owner->lock if appropriate, keeping things
@@ -23913,8 +23917,8 @@ static int handle_request_do(struct sip_request *req, struct ast_sockaddr *addr)
        if (p->owner && !nounlock)
                ast_channel_unlock(p->owner);
        sip_pvt_unlock(p);
-       ast_mutex_unlock(&netlock);
        ao2_t_ref(p, -1, "throw away dialog ptr from find_call at end of routine"); /* p is gone after the return */
+       ast_mutex_unlock(&netlock);
        return 1;
 }
 
@@ -27082,6 +27086,7 @@ static int reload_config(enum channelreloadreason reason)
                if (sipsock < 0) {
                        ast_log(LOG_WARNING, "Unable to create SIP socket: %s\n", strerror(errno));
                        ast_config_destroy(cfg);
+                       ast_mutex_unlock(&netlock);
                        return -1;
                } else {
                        /* Allow SIP clients on the same host to access us: */