]> granicus.if.org Git - rtmpdump/commitdiff
Rename SWFVerify() to RTMP_HashSWF(), rename swfvfy.c to hashswf.c
authorhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Wed, 30 Dec 2009 04:30:45 +0000 (04:30 +0000)
committerhyc <hyc@400ebc74-4327-4243-bc38-086b20814532>
Wed, 30 Dec 2009 04:30:45 +0000 (04:30 +0000)
git-svn-id: svn://svn.mplayerhq.hu/rtmpdump/trunk@141 400ebc74-4327-4243-bc38-086b20814532

ChangeLog
Makefile
hashswf.c [moved from swfvfy.c with 98% similarity]
rtmp.h
rtmpdump.c
rtmpsuck.c
streams.c

index fd7d7e24650cd5662cdef9e9d176d6d804dae5d5..670e02b6028a970a0aa04b640ef84924a4f53996 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,7 +3,18 @@ Copyright 2008-2009 Andrej Stepanchuk; Distributed under the GPL v2
 Copyright 2009 Howard Chu
 Copyright 2009 The Flvstreamer Team
 
-16 December 2009, v2.x
+29 December 2009, v2.x
+- AMF cleanup: bounds checking for all encoders, moved AMF_EncodeNamed* from rtmp.c
+- added SecureToken support
+- added automatic SWF hash calculation
+- added server-side handshake processing
+- added rtmpsrv stub server example
+- added rtmpsuck proxy server
+- tweaks for logging
+- renamed more functions to cleanup namespace for library use
+- tweaks for server operation: objectEncoding, chunksize changes
+
+16 December 2009, v2.0
 - rewrote everything else in C, reorganized to make it usable again as a library
 - fixed more portability bugs
 - plugged memory leaks
@@ -85,7 +96,7 @@ content to your player over http
 11 Mar 2009, v1.4
 
 - fixed resume bug: when the server switches between audio/video packets and FLV
-chunk packets (why should a server want to do that? some actually do!) and rtmpdump 
+chunk packets (why should a server want to do that? some actually do!) and rtmpdump
 was invoked with --resume the keyframe check prevented rtmpdump from continuing
 
 - fixed endianness
index 1e0ad979851f2c02e528ce967fcbd71728cff451..b3a6cc4f46087f104a50582071da168e4576b455 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -37,23 +37,23 @@ arm:
 clean:
        rm -f *.o rtmpdump$(EXT) streams$(EXT)
 
-streams: log.o rtmp.o amf.o streams.o parseurl.o swfvfy.o
+streams: log.o rtmp.o amf.o streams.o parseurl.o hashswf.o
        $(CC) $(LDFLAGS) $^ -o $@$(EXT) $(SLIBS)
 
-rtmpdump: log.o rtmp.o amf.o rtmpdump.o parseurl.o swfvfy.o
+rtmpdump: log.o rtmp.o amf.o rtmpdump.o parseurl.o hashswf.o
        $(CC) $(LDFLAGS) $^ -o $@$(EXT) $(LIBS)
 
 rtmpsrv: log.o rtmp.o amf.o rtmpsrv.o
        $(CC) $(LDFLAGS) $^ -o $@$(EXT) $(SLIBS)
 
-rtmpsuck: log.o rtmp.o amf.o rtmpsuck.o swfvfy.o
+rtmpsuck: log.o rtmp.o amf.o rtmpsuck.o hashswf.o
        $(CC) $(LDFLAGS) $^ -o $@$(EXT) $(SLIBS)
 
 log.o: log.c log.h Makefile
 parseurl.o: parseurl.c parseurl.h log.h Makefile
-streams.o: streams.c rtmp.h log.h swfvfy.o Makefile
+streams.o: streams.c rtmp.h log.h hashswf.o Makefile
 rtmp.o: rtmp.c rtmp.h handshake.h dh.h log.h amf.h Makefile
 amf.o: amf.c amf.h bytes.h log.h Makefile
 rtmpdump.o: rtmpdump.c rtmp.h log.h amf.h Makefile
 rtmpsrv.o: rtmpsrv.c rtmp.h log.h amf.h Makefile
-swfvfy.o: swfvfy.c
+hashswf.o: hashswf.c
similarity index 98%
rename from swfvfy.c
rename to hashswf.c
index 1a459553ef96971d1a2324ffc542ef56c05299a5..ceb5fd032444e4801f85d36cb48eace05c133c80 100644 (file)
--- a/swfvfy.c
+++ b/hashswf.c
@@ -31,6 +31,8 @@
 #include <arpa/inet.h>
 #endif
 
+#include "rtmp.h"
+
 #include <openssl/sha.h>
 #include <openssl/hmac.h>
 #include <zlib.h>
@@ -219,7 +221,7 @@ leave:
 #define HEX2BIN(a)      (((a)&0x40)?((a)&0xf)+9:((a)&0xf))
 
 int
-SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask)
+RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash, int ask)
 {
   FILE *f = NULL;
   char *path, *home, date[64];
diff --git a/rtmp.h b/rtmp.h
index 09093767b0ac9d09ecbfeda5025810b01f33e9dc..93394512689528bc414a389eaaa5fba25cc04254 100644 (file)
--- a/rtmp.h
+++ b/rtmp.h
@@ -207,5 +207,11 @@ bool RTMP_SendPause(RTMP *r, bool DoPause, double dTime);
 bool RTMP_FindFirstMatchingProperty(AMFObject *obj, const AVal *name,
                                      AMFObjectProperty *p);
 
+#ifdef CRYPTO
+/* hashswf.c */
+#define HASHLEN        32
+
+int RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash, int ask);
+#endif
 
 #endif
index 0e1c2ec1711def23d45d7f37acf64c275952897d..2dee8bd04fce981af7354d09d1357ba630c76ce3 100644 (file)
 #include "log.h"
 #include "parseurl.h"
 
-#ifdef CRYPTO
-#define HASHLEN        32
-extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask);
-#endif
-
 #define RTMPDUMP_VERSION       "v2.0"
 
 #define RD_SUCCESS             0
@@ -1289,7 +1284,7 @@ main(int argc, char **argv)
          }
         case 'W':
          STR2AVAL(swfUrl, optarg);
-          if (SWFVerify(optarg, &swfSize, hash, 1) == 0)
+          if (RTMP_HashSWF(optarg, &swfSize, hash, 1) == 0)
             {
               swfHash.av_val = (char *)hash;
               swfHash.av_len = HASHLEN;
index 8d358a302dc11aab492ccd7fa719b422523bb8cb..7a841bbb338375a4977772b277a8ae61cf88a6c0 100644 (file)
 #include <pthread.h>
 #endif
 
-#ifdef CRYPTO
-#define HASHLEN        32
-extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask);
-#endif
-
 #define RTMPDUMP_PROXY_VERSION "v2.0"
 
 #define RD_SUCCESS             0
@@ -212,7 +207,7 @@ ServeInvoke(STREAMING_SERVER *server, RTMPPacket *pack, const char *body)
             {
               unsigned char hash[HASHLEN];
               server->rc.Link.swfUrl = pval;
-              if (SWFVerify(pval.av_val, &server->rc.Link.SWFSize, hash, 0) == 0)
+              if (RTMP_HashSWF(pval.av_val, &server->rc.Link.SWFSize, hash, 0) == 0)
                 {
                   server->rc.Link.SWFHash.av_val = malloc(HASHLEN);
                   memcpy(server->rc.Link.SWFHash.av_val, hash, HASHLEN);
index d66c8bf4b4770795f724243e0a2178ec3a419160..818713a2fc5f0c44b56e639241e5fb30534c0c23 100644 (file)
--- a/streams.c
+++ b/streams.c
 #include <pthread.h>
 #endif
 
-#ifdef CRYPTO
-#define HASHLEN        32
-extern int SWFVerify(const char *url, unsigned int *size, unsigned char *hash, int ask);
-#endif
-
 #define RTMPDUMP_STREAMS_VERSION       "v2.0"
 
 #define RD_SUCCESS             0
@@ -947,7 +942,7 @@ ParseOption(char opt, char *arg, RTMP_REQUEST * req)
         unsigned char hash[HASHLEN];
 
         STR2AVAL(req->swfUrl, arg);
-        if (SWFVerify(arg, &req->swfSize, hash, 1) == 0)
+        if (RTMP_HashSWF(arg, &req->swfSize, hash, 1) == 0)
           {
             req->swfHash.av_val = malloc(HASHLEN);
             req->swfHash.av_len = HASHLEN;