[SCM] rtmpdump/upstream: Replace RTMP_PUB_ALLOC with RTMP_LF_FTCU and RTMP_LF_FAPU
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Jul 20 00:29:39 UTC 2014
The following commit has been merged in the upstream branch:
commit a1900c3e152085406ecb87c1962c55ec9c6e4016
Author: Martin Storsjo <martin at martin.st>
Date: Sun Jul 6 01:09:31 2014 +0300
Replace RTMP_PUB_ALLOC with RTMP_LF_FTCU and RTMP_LF_FAPU
This gets rid of the overlap between these two flags, shortening
the code somewhat.
diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c
index 32aaa29..60f251c 100644
--- a/librtmp/rtmp.c
+++ b/librtmp/rtmp.c
@@ -2534,18 +2534,6 @@ PublisherAuth(RTMP *r, AVal *description)
char salted2[SALTED2_LEN];
AVal pubToken;
- // If tcUrl is allocated, set RTMP_PUB_ALLOC instead to simplify checks below.
- if (r->Link.lFlags & RTMP_LF_FTCU && !(r->Link.pFlags & RTMP_PUB_ALLOC))
- {
- ptr = malloc(r->Link.app.av_len + 1);
- strncpy(ptr, r->Link.app.av_val, r->Link.app.av_len);
- ptr[r->Link.app.av_len] = '\0'; // We use strstr on this string below
- r->Link.app.av_val = ptr;
-
- r->Link.lFlags &= ~RTMP_LF_FTCU;
- r->Link.pFlags |= RTMP_PUB_ALLOC;
- }
-
if (strstr(description->av_val, av_authmod_adobe.av_val) != NULL)
{
if(strstr(description->av_val, "code=403 need auth") != NULL)
@@ -2672,7 +2660,7 @@ PublisherAuth(RTMP *r, AVal *description)
strncpy(ptr, r->Link.app.av_val, r->Link.app.av_len);
strncpy(ptr + r->Link.app.av_len, pubToken.av_val, pubToken.av_len);
r->Link.app.av_len += pubToken.av_len;
- if(r->Link.pFlags & RTMP_PUB_ALLOC)
+ if(r->Link.lFlags & RTMP_LF_FAPU)
free(r->Link.app.av_val);
r->Link.app.av_val = ptr;
@@ -2680,12 +2668,12 @@ PublisherAuth(RTMP *r, AVal *description)
strncpy(ptr, r->Link.tcUrl.av_val, r->Link.tcUrl.av_len);
strncpy(ptr + r->Link.tcUrl.av_len, pubToken.av_val, pubToken.av_len);
r->Link.tcUrl.av_len += pubToken.av_len;
- if(r->Link.pFlags & RTMP_PUB_ALLOC)
+ if(r->Link.lFlags & RTMP_LF_FTCU)
free(r->Link.tcUrl.av_val);
r->Link.tcUrl.av_val = ptr;
free(pubToken.av_val);
- r->Link.pFlags |= RTMP_PUB_ALLOC;
+ r->Link.lFlags |= RTMP_LF_FTCU | RTMP_LF_FAPU;
RTMP_Log(RTMP_LOGDEBUG, "%s, new app: %.*s tcUrl: %.*s playpath: %s", __FUNCTION__,
r->Link.app.av_len, r->Link.app.av_val,
@@ -2856,7 +2844,7 @@ PublisherAuth(RTMP *r, AVal *description)
strncpy(ptr, r->Link.app.av_val, r->Link.app.av_len);
strncpy(ptr + r->Link.app.av_len, pubToken.av_val, pubToken.av_len);
r->Link.app.av_len += pubToken.av_len;
- if(r->Link.pFlags & RTMP_PUB_ALLOC)
+ if(r->Link.lFlags & RTMP_LF_FAPU)
free(r->Link.app.av_val);
r->Link.app.av_val = ptr;
@@ -2864,12 +2852,12 @@ PublisherAuth(RTMP *r, AVal *description)
strncpy(ptr, r->Link.tcUrl.av_val, r->Link.tcUrl.av_len);
strncpy(ptr + r->Link.tcUrl.av_len, pubToken.av_val, pubToken.av_len);
r->Link.tcUrl.av_len += pubToken.av_len;
- if(r->Link.pFlags & RTMP_PUB_ALLOC)
+ if(r->Link.lFlags & RTMP_LF_FTCU)
free(r->Link.tcUrl.av_val);
r->Link.tcUrl.av_val = ptr;
free(pubToken.av_val);
- r->Link.pFlags |= RTMP_PUB_ALLOC;
+ r->Link.lFlags |= RTMP_LF_FTCU | RTMP_LF_FAPU;
RTMP_Log(RTMP_LOGDEBUG, "%s, new app: %.*s tcUrl: %.*s playpath: %s", __FUNCTION__,
r->Link.app.av_len, r->Link.app.av_val,
@@ -4210,12 +4198,18 @@ CloseInternal(RTMP *r, int reconnect)
r->m_resplen = 0;
r->m_unackd = 0;
- if (r->Link.lFlags & RTMP_LF_FTCU)
+ if (r->Link.lFlags & RTMP_LF_FTCU && !reconnect)
{
free(r->Link.tcUrl.av_val);
r->Link.tcUrl.av_val = NULL;
r->Link.lFlags ^= RTMP_LF_FTCU;
}
+ if (r->Link.lFlags & RTMP_LF_FAPU && !reconnect)
+ {
+ free(r->Link.app.av_val);
+ r->Link.app.av_val = NULL;
+ r->Link.lFlags ^= RTMP_LF_FAPU;
+ }
if (!reconnect)
{
@@ -4223,14 +4217,6 @@ CloseInternal(RTMP *r, int reconnect)
r->Link.playpath0.av_val = NULL;
}
#ifdef CRYPTO
- if ((r->Link.protocol & RTMP_FEATURE_WRITE) &&
- (r->Link.pFlags & RTMP_PUB_ALLOC) && !reconnect)
- {
- free(r->Link.app.av_val);
- r->Link.app.av_val = NULL;
- free(r->Link.tcUrl.av_val);
- r->Link.tcUrl.av_val = NULL;
- }
if (r->Link.dh)
{
MDH_free(r->Link.dh);
diff --git a/librtmp/rtmp.h b/librtmp/rtmp.h
index 1a080c1..0248913 100644
--- a/librtmp/rtmp.h
+++ b/librtmp/rtmp.h
@@ -171,6 +171,7 @@ extern "C"
#define RTMP_LF_PLST 0x0008 /* send playlist before play */
#define RTMP_LF_BUFX 0x0010 /* toggle stream on BufferEmpty msg */
#define RTMP_LF_FTCU 0x0020 /* free tcUrl on close */
+#define RTMP_LF_FAPU 0x0040 /* free app on close */
int lFlags;
int swfAge;
@@ -178,8 +179,7 @@ extern "C"
int protocol;
int timeout; /* connection timeout in seconds */
-#define RTMP_PUB_ALLOC 0x0004 /* allocated data for new tcUrl & app */
- int pFlags;
+ int pFlags; /* unused, but kept to avoid breaking ABI */
unsigned short socksport;
unsigned short port;
--
rtmpdump packaging
More information about the pkg-multimedia-commits
mailing list