]> granicus.if.org Git - rtmpdump/commitdiff
Prep for 2.1; use Referrer in HashSWF
authorhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Wed, 30 Dec 2009 06:17:36 +0000 (06:17 +0000)
committerhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Wed, 30 Dec 2009 06:17:36 +0000 (06:17 +0000)
git-svn-id: svn://svn.mplayerhq.hu/rtmpdump/trunk@142 400ebc74-4327-4243-bc38-086b20814532

ChangeLog
hashswf.c
rtmp.h
rtmpdump.c
rtmpsrv.c
rtmpsuck.c
streams.c

index 670e02b6028a970a0aa04b640ef84924a4f53996..48b406564f7288ceb10c1145aec1dbfcddaa20d4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,7 @@ Copyright 2008-2009 Andrej Stepanchuk; Distributed under the GPL v2
 Copyright 2009 Howard Chu
 Copyright 2009 The Flvstreamer Team
 
-29 December 2009, v2.x
+29 December 2009, v2.1
 - AMF cleanup: bounds checking for all encoders, moved AMF_EncodeNamed* from rtmp.c
 - added SecureToken support
 - added automatic SWF hash calculation
index ceb5fd032444e4801f85d36cb48eace05c133c80..8ad006b9374e6acf9e4455972523ea84040955db 100644 (file)
--- a/hashswf.c
+++ b/hashswf.c
@@ -151,7 +151,8 @@ http_get(const char *url, struct info *in)
   s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
   if (s < 0)
     return -1;
-  i = sprintf(buf, "GET %s HTTP/1.0\r\nUser-Agent: %s\r\nHost: %s\r\n", path, AGENT, host);
+  i = sprintf(buf, "GET %s HTTP/1.0\r\nUser-Agent: %s\r\nHost: %s\r\nReferrer: %.*s\r\n", path, AGENT, host,
+    path-url+1, url);
   if (in->date[0])
     i += sprintf(buf+i, "If-Modified-Since: %s\r\n", in->date);
   i += sprintf(buf+i, "\r\n");
@@ -221,7 +222,7 @@ leave:
 #define HEX2BIN(a)      (((a)&0x40)?((a)&0xf)+9:((a)&0xf))
 
 int
-RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash, int ask)
+RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash)
 {
   FILE *f = NULL;
   char *path, *home, date[64];
@@ -290,9 +291,6 @@ RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash, int ask)
         }
     }
 
-  if (got && !ask)
-    return 0;
-
   in.first = 1;
   in.date = date;
   HMAC_CTX_init(&ctx);
diff --git a/rtmp.h b/rtmp.h
index 93394512689528bc414a389eaaa5fba25cc04254..c08f38649ffa451a82bc6b8230d1c935071f15e9 100644 (file)
--- a/rtmp.h
+++ b/rtmp.h
@@ -211,7 +211,7 @@ bool RTMP_FindFirstMatchingProperty(AMFObject *obj, const AVal *name,
 /* hashswf.c */
 #define HASHLEN        32
 
-int RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash, int ask);
+int RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash);
 #endif
 
 #endif
index 2dee8bd04fce981af7354d09d1357ba630c76ce3..d27e272c1c357a4bfbda9365eea3f6195e503462 100644 (file)
@@ -45,7 +45,7 @@
 #include "log.h"
 #include "parseurl.h"
 
-#define RTMPDUMP_VERSION       "v2.0"
+#define RTMPDUMP_VERSION       "v2.1"
 
 #define RD_SUCCESS             0
 #define RD_FAILED              1
@@ -1284,7 +1284,7 @@ main(int argc, char **argv)
          }
         case 'W':
          STR2AVAL(swfUrl, optarg);
-          if (RTMP_HashSWF(optarg, &swfSize, hash, 1) == 0)
+          if (RTMP_HashSWF(optarg, &swfSize, hash) == 0)
             {
               swfHash.av_val = (char *)hash;
               swfHash.av_len = HASHLEN;
index d6a63270fb74733deab9db5a188f729fe8162bea..204e178ddbc6d3d076e37a58d8939b6063c3c1e3 100644 (file)
--- a/rtmpsrv.c
+++ b/rtmpsrv.c
@@ -45,7 +45,7 @@
 #include <pthread.h>
 #endif
 
-#define RTMPDUMP_SERVER_VERSION        "v2.0"
+#define RTMPDUMP_SERVER_VERSION        "v2.1"
 
 #define RD_SUCCESS             0
 #define RD_FAILED              1
index 7a841bbb338375a4977772b277a8ae61cf88a6c0..ff94b36e788319b94be4e8bde9328087ca6c8f7b 100644 (file)
@@ -45,7 +45,7 @@
 #include <pthread.h>
 #endif
 
-#define RTMPDUMP_PROXY_VERSION "v2.0"
+#define RTMPDUMP_PROXY_VERSION "v2.1"
 
 #define RD_SUCCESS             0
 #define RD_FAILED              1
@@ -207,7 +207,7 @@ ServeInvoke(STREAMING_SERVER *server, RTMPPacket *pack, const char *body)
             {
               unsigned char hash[HASHLEN];
               server->rc.Link.swfUrl = pval;
-              if (RTMP_HashSWF(pval.av_val, &server->rc.Link.SWFSize, hash, 0) == 0)
+              if (RTMP_HashSWF(pval.av_val, &server->rc.Link.SWFSize, hash, 1) == 0)
                 {
                   server->rc.Link.SWFHash.av_val = malloc(HASHLEN);
                   memcpy(server->rc.Link.SWFHash.av_val, hash, HASHLEN);
index 818713a2fc5f0c44b56e639241e5fb30534c0c23..34b92c17031a4b760d39ea633c736e56b7e22348 100644 (file)
--- a/streams.c
+++ b/streams.c
@@ -37,7 +37,7 @@
 #include <pthread.h>
 #endif
 
-#define RTMPDUMP_STREAMS_VERSION       "v2.0"
+#define RTMPDUMP_STREAMS_VERSION       "v2.1"
 
 #define RD_SUCCESS             0
 #define RD_FAILED              1
@@ -942,7 +942,7 @@ ParseOption(char opt, char *arg, RTMP_REQUEST * req)
         unsigned char hash[HASHLEN];
 
         STR2AVAL(req->swfUrl, arg);
-        if (RTMP_HashSWF(arg, &req->swfSize, hash, 1) == 0)
+        if (RTMP_HashSWF(arg, &req->swfSize, hash) == 0)
           {
             req->swfHash.av_val = malloc(HASHLEN);
             req->swfHash.av_len = HASHLEN;