]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Correction to commmit 120863, make sure proper destructor function is called as well...
authorJeff Peeler <jpeeler@digium.com>
Fri, 6 Jun 2008 16:39:20 +0000 (16:39 +0000)
committerJeff Peeler <jpeeler@digium.com>
Fri, 6 Jun 2008 16:39:20 +0000 (16:39 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@120885 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 50a7f43810bc045715b3e20a74013f893f52f64b..278528c8049fda8effb2ae797ce8a8adffbe577e 100644 (file)
@@ -1194,7 +1194,10 @@ static void temp_pvt_cleanup(void *);
 /*! \brief A per-thread temporary pvt structure */
 AST_THREADSTORAGE_CUSTOM(ts_temp_pvt, temp_pvt_init, temp_pvt_cleanup);
 
-AST_THREADSTORAGE(ast_rtp_buf, ast_rtp_buf_init);
+static void ts_ast_rtp_destroy(void *);
+
+AST_THREADSTORAGE_CUSTOM(ts_audio_rtp, ts_audio_rtp_init, ts_ast_rtp_destroy);
+AST_THREADSTORAGE_CUSTOM(ts_video_rtp, ts_video_rtp_init, ts_ast_rtp_destroy);
 
 /*! \todo Move the sip_auth list to AST_LIST */
 static struct sip_auth *authl = NULL;          /*!< Authentication list for realm authentication */
@@ -5063,7 +5066,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
 
        /* Initialize the temporary RTP structures we use to evaluate the offer from the peer */
 #ifdef LOW_MEMORY
-       newaudiortp = ast_threadstorage_get(&ast_rtp_buf, ast_rtp_alloc_size());
+       newaudiortp = ast_threadstorage_get(&ts_audio_rtp, ast_rtp_alloc_size());
 #else
        newaudiortp = alloca(ast_rtp_alloc_size());
 #endif
@@ -5072,7 +5075,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
        ast_rtp_pt_clear(newaudiortp);
 
 #ifdef LOW_MEMORY
-       newvideortp = ast_threadstorage_get(&ast_rtp_buf, ast_rtp_alloc_size());
+       newvideortp = ast_threadstorage_get(&ts_video_rtp, ast_rtp_alloc_size());
 #else
        newvideortp = alloca(ast_rtp_alloc_size());
 #endif
@@ -5607,6 +5610,11 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
        return 0;
 }
 
+static void ts_ast_rtp_destroy(void *data)
+{
+    struct ast_rtp *tmp = data;
+    ast_rtp_destroy(tmp);
+}
 
 /*! \brief Add header to SIP message */
 static int add_header(struct sip_request *req, const char *var, const char *value)