]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge Script <automerge@asterisk.org>
Fri, 5 Jan 2007 18:09:06 +0000 (18:09 +0000)
committerAutomerge Script <automerge@asterisk.org>
Fri, 5 Jan 2007 18:09:06 +0000 (18:09 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@49667 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c
channels/chan_sip.c
channels/chan_skinny.c

index 1adac13e272956550784855eccf75af407a8fc6d..2fa2cc2c51921739cd751dd7e68578b5b8d40cf3 100644 (file)
@@ -6210,13 +6210,18 @@ static void spawn_dp_lookup(int callno, char *context, char *callednum, char *ca
        struct dpreq_data *dpr;
        dpr = malloc(sizeof(struct dpreq_data));
        if (dpr) {
+               pthread_attr_t attr;
+
+               pthread_attr_init(&attr);
+               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);    
+
                memset(dpr, 0, sizeof(struct dpreq_data));
                dpr->callno = callno;
                ast_copy_string(dpr->context, context, sizeof(dpr->context));
                ast_copy_string(dpr->callednum, callednum, sizeof(dpr->callednum));
                if (callerid)
                        dpr->callerid = strdup(callerid);
-               if (ast_pthread_create(&newthread, NULL, dp_lookup_thread, dpr)) {
+               if (ast_pthread_create(&newthread, &attr, dp_lookup_thread, dpr)) {
                        ast_log(LOG_WARNING, "Unable to start lookup thread!\n");
                }
        } else
@@ -6291,10 +6296,15 @@ static int iax_park(struct ast_channel *chan1, struct ast_channel *chan2)
        }
        d = malloc(sizeof(struct iax_dual));
        if (d) {
+               pthread_attr_t attr;
+
+               pthread_attr_init(&attr);
+               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
                memset(d, 0, sizeof(*d));
                d->chan1 = chan1m;
                d->chan2 = chan2m;
-               if (!ast_pthread_create(&th, NULL, iax_park_thread, d))
+               if (!ast_pthread_create(&th, &attr, iax_park_thread, d))
                        return 0;
                free(d);
        }
index 425bac658a0b6618fb06e076b04cd3b1bd40ee18..c9c65febd956bcd860e75aa0b2976870e664f008 100644 (file)
@@ -10487,12 +10487,17 @@ static int sip_park(struct ast_channel *chan1, struct ast_channel *chan2, struct
        ast_mutex_unlock(&chan2m->lock);
        d = malloc(sizeof(struct sip_dual));
        if (d) {
+               pthread_attr_t attr;
+
+               pthread_attr_init(&attr);
+               pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);    
+
                memset(d, 0, sizeof(*d));
                /* Save original request for followup */
                copy_request(&d->req, req);
                d->chan1 = chan1m;
                d->chan2 = chan2m;
-               if (!ast_pthread_create(&th, NULL, sip_park_thread, d))
+               if (!ast_pthread_create(&th, &attr, sip_park_thread, d))
                        return 0;
                free(d);
        }
index 5f875104ffd20c926dd12e96911f86cf5d48ecfe..ca55bfcad72b9d17cc7ee68a1ea90f3fe689030d 100644 (file)
@@ -682,7 +682,6 @@ static int ourport;
 static struct in_addr __ourip;
 struct ast_hostent ahp; struct hostent *hp;
 static int skinnysock  = -1;
-static pthread_t tcp_thread;
 static pthread_t accept_t;
 static char context[AST_MAX_CONTEXT] = "default";
 static char language[MAX_LANGUAGE] = "";
@@ -2938,6 +2937,7 @@ static void *accept_thread(void *ignore)
        struct protoent *p;
        int arg = 1;
        pthread_attr_t attr;
+       pthread_t tcp_thread;
 
        pthread_attr_init(&attr);
        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
@@ -2969,7 +2969,7 @@ static void *accept_thread(void *ignore)
                sessions = s;
                ast_mutex_unlock(&sessionlock);
                
-               if (ast_pthread_create(&tcp_thread, NULL, skinny_session, s)) {
+               if (ast_pthread_create(&tcp_thread, &attr, skinny_session, s)) {
                        destroy_session(s);
                }
        }