]> granicus.if.org Git - rtmpdump/commitdiff
Add "ask" param, don't talk to HTTP server if we already have cached hash
authorhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Tue, 29 Dec 2009 22:47:18 +0000 (22:47 +0000)
committerhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Tue, 29 Dec 2009 22:47:18 +0000 (22:47 +0000)
git-svn-id: svn://svn.mplayerhq.hu/rtmpdump/trunk@133 400ebc74-4327-4243-bc38-086b20814532

rtmpdump.c
streams.c
swfvfy.c

index f7ddb0ae4c74738ef47a9fa731382dbd2d311d3b..0e1c2ec1711def23d45d7f37acf64c275952897d 100644 (file)
@@ -47,7 +47,7 @@
 
 #ifdef CRYPTO
 #define HASHLEN        32
-extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash);
+extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask);
 #endif
 
 #define RTMPDUMP_VERSION       "v2.0"
@@ -1289,7 +1289,7 @@ main(int argc, char **argv)
          }
         case 'W':
          STR2AVAL(swfUrl, optarg);
-          if (SWFVerify(optarg, &swfSize, hash) == 0)
+          if (SWFVerify(optarg, &swfSize, hash, 1) == 0)
             {
               swfHash.av_val = (char *)hash;
               swfHash.av_len = HASHLEN;
index 0cbc0b95e62dfca20857d9be3b960db360acbabe..d66c8bf4b4770795f724243e0a2178ec3a419160 100644 (file)
--- a/streams.c
+++ b/streams.c
@@ -39,7 +39,7 @@
 
 #ifdef CRYPTO
 #define HASHLEN        32
-extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash);
+extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask);
 #endif
 
 #define RTMPDUMP_STREAMS_VERSION       "v2.0"
@@ -947,7 +947,7 @@ ParseOption(char opt, char *arg, RTMP_REQUEST * req)
         unsigned char hash[HASHLEN];
 
         STR2AVAL(req->swfUrl, arg);
-        if (SWFVerify(arg, &req->swfSize, hash) == 0)
+        if (SWFVerify(arg, &req->swfSize, hash, 1) == 0)
           {
             req->swfHash.av_val = malloc(HASHLEN);
             req->swfHash.av_len = HASHLEN;
index 56806e54c5b44c7fab02589c729be2f9aca621df..1a459553ef96971d1a2324ffc542ef56c05299a5 100644 (file)
--- a/swfvfy.c
+++ b/swfvfy.c
@@ -219,7 +219,7 @@ leave:
 #define HEX2BIN(a)      (((a)&0x40)?((a)&0xf)+9:((a)&0xf))
 
 int
-SWFVerify(const char *url, unsigned int *size, unsigned char *hash)
+SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask)
 {
   FILE *f = NULL;
   char *path, *home, date[64];
@@ -288,6 +288,9 @@ SWFVerify(const char *url, unsigned int *size, unsigned char *hash)
         }
     }
 
+  if (got && !ask)
+    return 0;
+
   in.first = 1;
   in.date = date;
   HMAC_CTX_init(&ctx);