[rtmpdump] [PATCH] Get rid of declarations after statements in limelight authentication

Martin Storsjo martin at martin.st
Tue Oct 30 18:30:18 CET 2012


---
 librtmp/rtmp.c |   27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/librtmp/rtmp.c b/librtmp/rtmp.c
index 3994d42..fbfbc50 100644
--- a/librtmp/rtmp.c
+++ b/librtmp/rtmp.c
@@ -2695,6 +2695,12 @@ PublisherAuth(RTMP *r, AVal *description)
           char *user = NULL;
           char *nonce = NULL;
 
+          const char *authmod, *realm, *method, *qop;
+          char *tmpbuf, *hash1, *hash2, *hash3, *apptmp, *qpos;
+          int nc;
+          char nchex[9];
+          char cnonce[9];
+
           ptr = orig_ptr = strdup(token_in);
           /* Extract parameters (we need user and nonce) */
           while (ptr)
@@ -2725,19 +2731,16 @@ PublisherAuth(RTMP *r, AVal *description)
            *    http://en.wikipedia.org/wiki/Digest_access_authentication
            */
 
-          const char *authmod = "llnw";
-          const char *realm = "live";
-          const char *method = "publish";
-          const char *qop = "auth";
-          char *tmpbuf;
+          authmod = "llnw";
+          realm = "live";
+          method = "publish";
+          qop = "auth";
 
           /* nc = 1..connection count (or rather, number of times cnonce has been reused) */
-          int nc = 1;
+          nc = 1;
           /* nchex = hexenc(nc) (8 hex digits according to RFC 2617) */
-          char nchex[9];
           sprintf(nchex, "%08x", nc);
           /* cnonce = hexenc(4 random bytes) (initialized on first connection) */
-          char cnonce[9];
           srand( time(NULL) ); // FIXME: a lib shouldn't call srand()
           sprintf(cnonce, "%08x", rand());
 
@@ -2748,11 +2751,11 @@ PublisherAuth(RTMP *r, AVal *description)
           RTMP_Log(RTMP_LOGDEBUG, "%s, md5(%s) =>", __FUNCTION__, tmpbuf);
           RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
           free(tmpbuf);
-          char *hash1 = hexenc(md5sum_val, MD5_DIGEST_LENGTH);
+          hash1 = hexenc(md5sum_val, MD5_DIGEST_LENGTH);
 
           /* hash2 = hexenc(md5(method + ":/" + app + "/" + appInstance)) */
           /* Extract appname + appinstance without query parameters */
-          char *apptmp = malloc(r->Link.app.av_len + 1), *qpos;
+          apptmp = malloc(r->Link.app.av_len + 1);
           memcpy(apptmp, r->Link.app.av_val, r->Link.app.av_len);
           apptmp[r->Link.app.av_len] = '\0';
           if((qpos = strchr(apptmp, '?')))
@@ -2764,7 +2767,7 @@ PublisherAuth(RTMP *r, AVal *description)
           RTMP_Log(RTMP_LOGDEBUG, "%s, md5(%s) =>", __FUNCTION__, tmpbuf);
           RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
           free(tmpbuf);
-          char *hash2 = hexenc(md5sum_val, MD5_DIGEST_LENGTH);
+          hash2 = hexenc(md5sum_val, MD5_DIGEST_LENGTH);
 
           free(apptmp);
 
@@ -2775,7 +2778,7 @@ PublisherAuth(RTMP *r, AVal *description)
           RTMP_Log(RTMP_LOGDEBUG, "%s, md5(%s) =>", __FUNCTION__, tmpbuf);
           RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
           free(tmpbuf);
-          char *hash3 = hexenc(md5sum_val, MD5_DIGEST_LENGTH);
+          hash3 = hexenc(md5sum_val, MD5_DIGEST_LENGTH);
 
           /* pubToken = &authmod=<authmod>&user=<username>&nonce=<nonce>&cnonce=<cnonce>&nc=<nchex>&response=<hash3> */
           /* Append nonces and response to query string which already contains
-- 
1.7.9.4



More information about the rtmpdump mailing list