The build took 00h 00m 54s and was NOT successful.
The program in this build is written in the following languages, according to sloccount:
SLOC | Language |
---|---|
12,659 |
ansic |
261 |
sh |
166 |
makefile |
13,086 |
total |
The process tree of the build process is here.
Several sub-process invocations were improper; see the process tree for details. Summary:
To avoid scrolling, you may jump to the last line of the
invocation of makepkg
that was used to build this
package.
Removed vanilla repositories from pacman.conf and added:
Copied permanent toolchain into container-local sysroot
/toolchain_root/arm-linux-androideabi --> /sysroot/arm-linux-androideabi
/toolchain_root/COPYING3.LIB --> /sysroot/COPYING3.LIB
/toolchain_root/sysroot --> /sysroot/sysroot
/toolchain_root/COPYING.RUNTIME --> /sysroot/COPYING.RUNTIME
/toolchain_root/lib --> /sysroot/lib
/toolchain_root/SOURCES --> /sysroot/SOURCES
/toolchain_root/lib64 --> /sysroot/lib64
/toolchain_root/share --> /sysroot/share
/toolchain_root/bin --> /sysroot/bin
/toolchain_root/COPYING --> /sysroot/COPYING
/toolchain_root/COPYING3 --> /sysroot/COPYING3
/toolchain_root/COPYING.LIB --> /sysroot/COPYING.LIB
/toolchain_root/include --> /sysroot/include
/toolchain_root/libexec --> /sysroot/libexec
CMD: sudo -u tuscan PATH=/sysroot/bin:/sysroot/libexec/gcc/arm-linux-androideabi/4.8:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CC=arm-linux-androideabi-gcc CXX=arm-linux-androideabi-g++ red makepkg --noextract --syncdeps --skipinteg --skippgpcheck --skipchecksums --noconfirm --nocolor --log --noprogressbar --nocheck
==> Making package: rtmpdump 1:2.4.r96.fa8646d-2 (Tue Apr 4 21:59:12 UTC 2017)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting pkgver()...
==> Starting build()...
make[1]: Entering directory '/tmp/rtmpdump/src/rtmpdump/librtmp'
gcc -Wall -DRTMPDUMP_VERSION=\"v2.4\" -DUSE_OPENSSL -fPIC -c -o rtmp.o rtmp.c
cc1: error: no include path in which to search for stdc-predef.h
rtmp.c:26:20: error: no include path in which to search for stdint.h
#include
^
rtmp.c:27:20: error: no include path in which to search for stdlib.h
#include
^
rtmp.c:28:20: error: no include path in which to search for string.h
#include
^
rtmp.c:29:20: error: no include path in which to search for assert.h
#include
^
rtmp.c:30:18: error: no include path in which to search for time.h
#include
^
In file included from rtmp.c:32:0:
rtmp_sys.h:45:23: error: no include path in which to search for sys/types.h
#include
^
rtmp_sys.h:46:24: error: no include path in which to search for sys/socket.h
#include
^
rtmp_sys.h:47:23: error: no include path in which to search for sys/times.h
#include
^
rtmp_sys.h:48:19: error: no include path in which to search for netdb.h
#include
^
rtmp_sys.h:49:20: error: no include path in which to search for unistd.h
#include
^
rtmp_sys.h:50:24: error: no include path in which to search for netinet/in.h
#include
^
rtmp_sys.h:51:25: error: no include path in which to search for netinet/tcp.h
#include
^
rtmp_sys.h:52:23: error: no include path in which to search for arpa/inet.h
#include
^
In file included from rtmp_sys.h:61:0,
from rtmp.c:32:
rtmp.h:32:19: error: no include path in which to search for errno.h
#include
^
rtmp.h:33:20: error: no include path in which to search for stdint.h
#include
^
rtmp.h:34:20: error: no include path in which to search for stddef.h
#include
^
In file included from rtmp.h:36:0,
from rtmp_sys.h:61,
from rtmp.c:32:
amf.h:28:20: error: no include path in which to search for stdint.h
#include
^
amf.h:83:5: error: unknown type name 'int16_t'
int16_t p_UTCoffset;
^
In file included from rtmp_sys.h:61:0,
from rtmp.c:32:
rtmp.h:72:3: error: unknown type name 'uint32_t'
uint32_t RTMP_GetTime(void);
^
rtmp.h:115:5: error: unknown type name 'uint8_t'
uint8_t m_headerType;
^
rtmp.h:116:5: error: unknown type name 'uint8_t'
uint8_t m_packetType;
^
rtmp.h:117:5: error: unknown type name 'uint8_t'
uint8_t m_hasAbsTimestamp; /* timestamp absolute or relative? */
^
rtmp.h:119:5: error: unknown type name 'uint32_t'
uint32_t m_nTimeStamp; /* timestamp */
^
rtmp.h:120:5: error: unknown type name 'int32_t'
int32_t m_nInfoField2; /* last 4 bytes in a long header */
^
rtmp.h:121:5: error: unknown type name 'uint32_t'
uint32_t m_nBodySize;
^
rtmp.h:122:5: error: unknown type name 'uint32_t'
uint32_t m_nBytesRead;
^
rtmp.h:139:39: error: unknown type name 'uint32_t'
int RTMPPacket_Alloc(RTMPPacket *p, uint32_t nSize);
^
rtmp.h:193:5: error: unknown type name 'uint32_t'
uint32_t SWFSize;
^
rtmp.h:194:5: error: unknown type name 'uint8_t'
uint8_t SWFHash[RTMP_SWF_HASHLEN];
^
rtmp.h:205:5: error: unknown type name 'uint32_t'
uint32_t timestamp;
^
rtmp.h:206:5: error: unknown type name 'uint8_t'
uint8_t dataType;
^
rtmp.h:207:5: error: unknown type name 'uint8_t'
uint8_t flags;
^
rtmp.h:214:5: error: unknown type name 'int8_t'
int8_t status;
^
rtmp.h:221:5: error: unknown type name 'uint8_t'
uint8_t initialFrameType;
^
rtmp.h:222:5: error: unknown type name 'uint32_t'
uint32_t nResumeTS;
^
rtmp.h:225:5: error: unknown type name 'uint32_t'
uint32_t nMetaHeaderSize;
^
rtmp.h:226:5: error: unknown type name 'uint32_t'
uint32_t nInitialFrameSize;
^
rtmp.h:227:5: error: unknown type name 'uint32_t'
uint32_t nIgnoredFrameCounter;
^
rtmp.h:228:5: error: unknown type name 'uint32_t'
uint32_t nIgnoredFlvFrameCounter;
^
rtmp.h:247:5: error: unknown type name 'uint32_t'
uint32_t m_mediaStamp;
^
rtmp.h:248:5: error: unknown type name 'uint32_t'
uint32_t m_pauseStamp;
^
rtmp.h:252:5: error: unknown type name 'uint8_t'
uint8_t m_nClientBW2;
^
rtmp.h:253:5: error: unknown type name 'uint8_t'
uint8_t m_bPlaying;
^
rtmp.h:254:5: error: unknown type name 'uint8_t'
uint8_t m_bSendEncoding;
^
rtmp.h:255:5: error: unknown type name 'uint8_t'
uint8_t m_bSendCounter;
^
rtmp.h:305:4: error: unknown type name 'uint32_t'
uint32_t swfSize,
^
In file included from rtmp.c:33:0:
log.h:27:19: error: no include path in which to search for stdio.h
#include
^
log.h:28:20: error: no include path in which to search for stdarg.h
#include
^
log.h:29:20: error: no include path in which to search for stdint.h
#include
^
log.h:48:61: error: unknown type name 'va_list'
typedef void (RTMP_LogCallback)(int level, const char *fmt, va_list);
^
log.h:49:26: error: unknown type name 'RTMP_LogCallback'
void RTMP_LogSetCallback(RTMP_LogCallback *cb);
^
log.h:50:24: error: unknown type name 'FILE'
void RTMP_LogSetOutput(FILE *file);
^
log.h:60:1: error: unknown type name 'uint8_t'
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
^
log.h:61:1: error: unknown type name 'uint8_t'
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
^
rtmp.c:60:25: error: no include path in which to search for openssl/ssl.h
#include
^
rtmp.c:61:25: error: no include path in which to search for openssl/rc4.h
#include
^
rtmp.c:62:25: error: no include path in which to search for openssl/md5.h
#include
^
rtmp.c:63:25: error: no include path in which to search for openssl/bio.h
#include
^
rtmp.c:64:28: error: no include path in which to search for openssl/buffer.h
#include
^
In file included from rtmp.c:32:0:
rtmp_sys.h:127:17: error: unknown type name 'SSL_CTX'
#define TLS_CTX SSL_CTX *
^
rtmp.c:66:1: note: in expansion of macro 'TLS_CTX'
TLS_CTX RTMP_TLS_ctx;
^
In file included from rtmp.c:152:0:
handshake.h:66:25: error: no include path in which to search for openssl/sha.h
#include
^
handshake.h:67:26: error: no include path in which to search for openssl/hmac.h
#include
^
handshake.h:68:25: error: no include path in which to search for openssl/rc4.h
#include
^
handshake.h:70:2: error: #error Your OpenSSL is too old, need 0.9.8 or newer with SHA256
#error Your OpenSSL is too old, need 0.9.8 or newer with SHA256
^
handshake.h:76:1: error: unknown type name 'RC4_KEY'
typedef RC4_KEY * RC4_handle;
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:24:20: error: no include path in which to search for stdint.h
#include
^
dh.h:25:20: error: no include path in which to search for stdlib.h
#include
^
dh.h:26:20: error: no include path in which to search for string.h
#include
^
dh.h:27:20: error: no include path in which to search for assert.h
#include
^
dh.h:28:20: error: no include path in which to search for limits.h
#include
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:167:24: error: no include path in which to search for openssl/bn.h
#include
^
dh.h:168:24: error: no include path in which to search for openssl/dh.h
#include
^
dh.h:170:1: error: unknown type name 'BIGNUM'
typedef BIGNUM * MP_t;
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h: In function 'isValidPublicKey':
dh.h:201:3: warning: implicit declaration of function 'assert' [-Wimplicit-function-declaration]
assert(y);
^
dh.h:203:3: warning: implicit declaration of function 'BN_new' [-Wimplicit-function-declaration]
MP_new(bn);
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:171:21: warning: assignment makes pointer from integer without a cast [enabled by default]
#define MP_new(m) m = BN_new()
^
dh.h:203:3: note: in expansion of macro 'MP_new'
MP_new(bn);
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:207:3: warning: implicit declaration of function 'BN_set_word' [-Wimplicit-function-declaration]
MP_set_w(bn, 1);
^
dh.h:208:3: warning: implicit declaration of function 'BN_cmp' [-Wimplicit-function-declaration]
if (MP_cmp(y, bn) < 0)
^
dh.h:216:3: warning: implicit declaration of function 'BN_copy' [-Wimplicit-function-declaration]
MP_set(bn, p);
^
dh.h:217:3: warning: implicit declaration of function 'BN_sub_word' [-Wimplicit-function-declaration]
MP_sub_w(bn, 1);
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:177:35: error: unknown type name 'BN_CTX'
#define MP_modexp(r, y, q, p) do {BN_CTX *ctx = BN_CTX_new(); BN_mod_exp(r, y, q, p, ctx); BN_CTX_free(ctx);} while(0)
^
dh.h:234:7: note: in expansion of macro 'MP_modexp'
MP_modexp(bn, y, q, p);
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:234:7: warning: implicit declaration of function 'BN_CTX_new' [-Wimplicit-function-declaration]
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:177:49: warning: initialization makes pointer from integer without a cast [enabled by default]
#define MP_modexp(r, y, q, p) do {BN_CTX *ctx = BN_CTX_new(); BN_mod_exp(r, y, q, p, ctx); BN_CTX_free(ctx);} while(0)
^
dh.h:234:7: note: in expansion of macro 'MP_modexp'
MP_modexp(bn, y, q, p);
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:234:7: warning: implicit declaration of function 'BN_mod_exp' [-Wimplicit-function-declaration]
dh.h:234:7: warning: implicit declaration of function 'BN_CTX_free' [-Wimplicit-function-declaration]
dh.h:236:7: warning: implicit declaration of function 'BN_value_one' [-Wimplicit-function-declaration]
if (MP_cmp_1(bn) != 0)
^
dh.h:243:3: warning: implicit declaration of function 'BN_free' [-Wimplicit-function-declaration]
MP_free(bn);
^
dh.h: At top level:
dh.h:247:1: error: unknown type name 'DH'
static MDH *
^
dh.h: In function 'DHInit':
dh.h:250:3: error: unknown type name 'size_t'
size_t res;
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:184:13: error: unknown type name 'DH'
#define MDH DH
^
dh.h:251:3: note: in expansion of macro 'MDH'
MDH *dh = MDH_new();
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:251:3: warning: implicit declaration of function 'DH_new' [-Wimplicit-function-declaration]
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:185:19: warning: initialization makes pointer from integer without a cast [enabled by default]
#define MDH_new() DH_new()
^
dh.h:251:13: note: in expansion of macro 'MDH_new'
MDH *dh = MDH_new();
^
dh.h:256:12: error: request for member 'g' in something not a structure or union
MP_new(dh->g);
^
dh.h:171:19: note: in definition of macro 'MP_new'
#define MP_new(m) m = BN_new()
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:258:10: error: request for member 'g' in something not a structure or union
if (!dh->g)
^
dh.h:261:3: warning: implicit declaration of function 'BN_hex2bn' [-Wimplicit-function-declaration]
MP_gethex(dh->p, P1024, res); /* prime P1024, see dhgroups.h */
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:261:15: error: request for member 'p' in something not a structure or union
MP_gethex(dh->p, P1024, res); /* prime P1024, see dhgroups.h */
^
dh.h:179:49: note: in definition of macro 'MP_gethex'
#define MP_gethex(u, hex, res) res = BN_hex2bn(&u, hex)
^
dh.h:267:14: error: request for member 'g' in something not a structure or union
MP_set_w(dh->g, 2); /* base 2 */
^
dh.h:172:38: note: in definition of macro 'MP_set_w'
#define MP_set_w(mpi, w) BN_set_word(mpi, w)
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:269:5: error: request for member 'length' in something not a structure or union
dh->length = nKeyBits;
^
dh.h:274:5: warning: implicit declaration of function 'DH_free' [-Wimplicit-function-declaration]
MDH_free(dh);
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h: At top level:
dh.h:184:13: error: unknown type name 'DH'
#define MDH DH
^
dh.h:280:15: note: in expansion of macro 'MDH'
DHGenerateKey(MDH *dh)
^
dh.h:184:13: error: unknown type name 'DH'
#define MDH DH
^
dh.h:314:16: note: in expansion of macro 'MDH'
DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen)
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:314:25: error: unknown type name 'uint8_t'
DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen)
^
dh.h:314:42: error: unknown type name 'size_t'
DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen)
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:184:13: error: unknown type name 'DH'
#define MDH DH
^
dh.h:350:26: note: in expansion of macro 'MDH'
DHComputeSharedSecretKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen,
^
In file included from handshake.h:86:0,
from rtmp.c:152:
dh.h:350:35: error: unknown type name 'uint8_t'
DHComputeSharedSecretKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen,
^
dh.h:350:52: error: unknown type name 'size_t'
DHComputeSharedSecretKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen,
^
dh.h:351:5: error: unknown type name 'uint8_t'
uint8_t *secret)
^
In file included from rtmp.c:152:0:
handshake.h:88:1: error: unknown type name 'uint8_t'
static const uint8_t GenuineFMSKey[] = {
^
handshake.h:101:1: error: unknown type name 'uint8_t'
static const uint8_t GenuineFPKey[] = {
^
handshake.h:114:4: error: unknown type name 'uint8_t'
(uint8_t * secretKey,
^
handshake.h:115:4: error: unknown type name 'uint8_t'
uint8_t * pubKeyIn,
^
handshake.h:116:4: error: unknown type name 'uint8_t'
uint8_t * pubKeyOut, RC4_handle *rc4keyIn, RC4_handle *rc4keyOut)
^
handshake.h:144:31: error: unknown type name 'uint8_t'
typedef unsigned int (getoff)(uint8_t *buf, unsigned int len);
^
handshake.h:147:14: error: unknown type name 'uint8_t'
GetDHOffset2(uint8_t *handshake, unsigned int len)
^
handshake.h:176:18: error: unknown type name 'uint8_t'
GetDigestOffset2(uint8_t *handshake, unsigned int len)
^
handshake.h:203:14: error: unknown type name 'uint8_t'
GetDHOffset1(uint8_t *handshake, unsigned int len)
^
handshake.h:232:18: error: unknown type name 'uint8_t'
GetDigestOffset1(uint8_t *handshake, unsigned int len)
^
handshake.h:261:1: error: unknown type name 'getoff'
static getoff *digoff[] = {GetDigestOffset1, GetDigestOffset2};
^
handshake.h:261:28: error: 'GetDigestOffset1' undeclared here (not in a function)
static getoff *digoff[] = {GetDigestOffset1, GetDigestOffset2};
^
handshake.h:261:46: error: 'GetDigestOffset2' undeclared here (not in a function)
static getoff *digoff[] = {GetDigestOffset1, GetDigestOffset2};
^
handshake.h:262:1: error: unknown type name 'getoff'
static getoff *dhoff[] = {GetDHOffset1, GetDHOffset2};
^
handshake.h:262:27: error: 'GetDHOffset1' undeclared here (not in a function)
static getoff *dhoff[] = {GetDHOffset1, GetDHOffset2};
^
handshake.h:262:1: error: initializer element is not constant
static getoff *dhoff[] = {GetDHOffset1, GetDHOffset2};
^
handshake.h:262:1: error: (near initialization for 'dhoff[0]')
handshake.h:262:41: error: 'GetDHOffset2' undeclared here (not in a function)
static getoff *dhoff[] = {GetDHOffset1, GetDHOffset2};
^
handshake.h:262:1: error: initializer element is not constant
static getoff *dhoff[] = {GetDHOffset1, GetDHOffset2};
^
handshake.h:262:1: error: (near initialization for 'dhoff[1]')
handshake.h:265:1: error: unknown type name 'uint8_t'
HMACsha256(const uint8_t *message, size_t messageLen, const uint8_t *key,
^
handshake.h:265:36: error: unknown type name 'size_t'
HMACsha256(const uint8_t *message, size_t messageLen, const uint8_t *key,
^
handshake.h:265:36: error: unknown type name 'uint8_t'
handshake.h:266:5: error: unknown type name 'size_t'
size_t keylen, uint8_t *digest)
^
handshake.h:266:20: error: unknown type name 'uint8_t'
size_t keylen, uint8_t *digest)
^
handshake.h:279:41: error: unknown type name 'uint8_t'
CalculateDigest(unsigned int digestPos, uint8_t *handshakeMessage,
^
handshake.h:280:3: error: unknown type name 'uint8_t'
const uint8_t *key, size_t keyLen, uint8_t *digest)
^
handshake.h:280:23: error: unknown type name 'size_t'
const uint8_t *key, size_t keyLen, uint8_t *digest)
^
handshake.h:280:38: error: unknown type name 'uint8_t'
const uint8_t *key, size_t keyLen, uint8_t *digest)
^
handshake.h:294:38: error: unknown type name 'uint8_t'
VerifyDigest(unsigned int digestPos, uint8_t *handshakeMessage, const uint8_t *key,
^
handshake.h:294:38: error: unknown type name 'uint8_t'
handshake.h:295:7: error: unknown type name 'size_t'
size_t keyLen)
^
handshake.h:315:1: error: unknown type name 'uint32_t'
static const uint32_t rtmpe8_keys[16][4] = {
^
handshake.h:337:24: error: unknown type name 'uint8_t'
static void rtmpe8_sig(uint8_t *in, uint8_t *out, int keyid)
^
handshake.h:337:37: error: unknown type name 'uint8_t'
static void rtmpe8_sig(uint8_t *in, uint8_t *out, int keyid)
^
handshake.h:369:2: error: unknown type name 'uint32_t'
uint32_t s[4][256];
^
handshake.h:370:2: error: unknown type name 'uint32_t'
uint32_t p[BF_ROUNDS+2];
^
handshake.h:373:1: error: unknown type name 'uint32_t'
static const uint32_t bf_sinit[][256] = {
^
handshake.h:556:1: error: unknown type name 'uint32_t'
static const uint32_t bf_pinit[] = {
^
handshake.h:603:20: error: unknown type name 'uint32_t'
static void bf_enc(uint32_t *x, bf_key *key)
^
handshake.h: In function 'bf_setkey':
handshake.h:634:3: error: unknown type name 'uint32_t'
uint32_t data;
^
handshake.h:635:3: error: unknown type name 'uint32_t'
uint32_t d[2];
^
handshake.h:637:3: warning: implicit declaration of function 'memcpy' [-Wimplicit-function-declaration]
memcpy(key->p, bf_pinit, sizeof(key->p));
^
handshake.h:637:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
handshake.h:657:5: warning: implicit declaration of function 'bf_enc' [-Wimplicit-function-declaration]
bf_enc(d, key);
^
handshake.h: At top level:
handshake.h:674:24: error: unknown type name 'uint8_t'
static void rtmpe9_sig(uint8_t *in, uint8_t *out, int keyid)
^
handshake.h:674:37: error: unknown type name 'uint8_t'
static void rtmpe9_sig(uint8_t *in, uint8_t *out, int keyid)
^
handshake.h: In function 'HandShake':
handshake.h:706:3: error: unknown type name 'int32_t'
int32_t *ip;
^
handshake.h:707:3: error: unknown type name 'uint32_t'
uint32_t uptime;
^
handshake.h:709:3: error: unknown type name 'uint8_t'
uint8_t clientbuf[RTMP_SIG_SIZE + 4], *clientsig=clientbuf+4;
^
handshake.h:710:3: error: unknown type name 'uint8_t'
uint8_t serversig[RTMP_SIG_SIZE], client2[RTMP_SIG_SIZE], *reply;
^
handshake.h:711:3: error: unknown type name 'uint8_t'
uint8_t type;
^
handshake.h:712:3: error: unknown type name 'getoff'
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:712:19: error: 'NULL' undeclared (first use in this function)
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:712:19: note: each undeclared identifier is reported only once for each function it appears in
handshake.h:712:19: warning: initialization from incompatible pointer type [enabled by default]
handshake.h:712:35: warning: initialization from incompatible pointer type [enabled by default]
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:729:3: warning: implicit declaration of function 'htonl' [-Wimplicit-function-declaration]
uptime = htonl(RTMP_GetTime());
^
handshake.h:730:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
memcpy(clientsig, &uptime, 4);
^
handshake.h:754:7: warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
memset(&clientsig[4], 0, 4);
^
handshake.h:754:7: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
handshake.h:761:9: error: 'int32_t' undeclared (first use in this function)
ip = (int32_t *)(clientsig+8);
^
handshake.h:761:18: error: expected expression before ')' token
ip = (int32_t *)(clientsig+8);
^
handshake.h:761:17: error: invalid operands to binary * (have 'int **' and 'int **')
ip = (int32_t *)(clientsig+8);
^
handshake.h:761:19: error: called object is not a function or function pointer
ip = (int32_t *)(clientsig+8);
^
handshake.h:761:6: warning: assignment from incompatible pointer type [enabled by default]
ip = (int32_t *)(clientsig+8);
^
handshake.h:763:5: warning: implicit declaration of function 'rand' [-Wimplicit-function-declaration]
*ip++ = rand();
^
handshake.h:780:23: error: called object 'getdh' is not a function or function pointer
dhposClient = getdh(clientsig, RTMP_SIG_SIZE);
^
handshake.h:712:11: note: declared here
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:780:16: warning: assignment makes integer from pointer without a cast [enabled by default]
dhposClient = getdh(clientsig, RTMP_SIG_SIZE);
^
handshake.h:783:4: warning: implicit declaration of function 'DHGenerateKey' [-Wimplicit-function-declaration]
if (!DHGenerateKey(r->Link.dh))
^
handshake.h:790:4: warning: implicit declaration of function 'DHGetPublicKey' [-Wimplicit-function-declaration]
if (!DHGetPublicKey(r->Link.dh, &clientsig[dhposClient], 128))
^
handshake.h:797:31: error: called object 'getdig' is not a function or function pointer
digestPosClient = getdig(clientsig, RTMP_SIG_SIZE); /* reuse this value in verification */
^
handshake.h:712:26: note: declared here
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:797:23: warning: assignment makes integer from pointer without a cast [enabled by default]
digestPosClient = getdig(clientsig, RTMP_SIG_SIZE); /* reuse this value in verification */
^
handshake.h:801:7: warning: implicit declaration of function 'CalculateDigest' [-Wimplicit-function-declaration]
CalculateDigest(digestPosClient, clientsig, GenuineFPKey, 30,
^
handshake.h:806:7: error: 'SHA256_DIGEST_LENGTH' undeclared (first use in this function)
SHA256_DIGEST_LENGTH);
^
handshake.h:806:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
In file included from rtmp.c:33:0:
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
^
In file included from rtmp.c:152:0:
handshake.h:831:3: warning: implicit declaration of function 'ntohl' [-Wimplicit-function-declaration]
uptime = ntohl(uptime);
^
handshake.h:847:7: error: unknown type name 'uint8_t'
uint8_t digestResp[SHA256_DIGEST_LENGTH];
^
handshake.h:848:7: error: unknown type name 'uint8_t'
uint8_t *signatureResp = NULL;
^
handshake.h:848:32: warning: initialization from incompatible pointer type [enabled by default]
uint8_t *signatureResp = NULL;
^
handshake.h:851:35: error: called object 'getdig' is not a function or function pointer
int digestPosServer = getdig(serversig, RTMP_SIG_SIZE);
^
handshake.h:712:26: note: declared here
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:851:29: warning: initialization makes integer from pointer without a cast [enabled by default]
int digestPosServer = getdig(serversig, RTMP_SIG_SIZE);
^
handshake.h:853:7: warning: implicit declaration of function 'VerifyDigest' [-Wimplicit-function-declaration]
if (!VerifyDigest(digestPosServer, serversig, GenuineFMSKey, 36))
^
handshake.h:859:28: error: called object 'getdig' is not a function or function pointer
digestPosServer = getdig(serversig, RTMP_SIG_SIZE);
^
handshake.h:712:26: note: declared here
getoff *getdh = NULL, *getdig = NULL;
^
handshake.h:859:20: warning: assignment makes integer from pointer without a cast [enabled by default]
digestPosServer = getdig(serversig, RTMP_SIG_SIZE);
^
In file included from rtmp.c:152:0:
handshake.h:877:4: warning: implicit declaration of function 'HMACsha256' [-Wimplicit-function-declaration]
HMACsha256(r->Link.SWFHash, SHA256_DIGEST_LENGTH,
^
handshake.h:878:33: error: invalid operands to binary - (have 'int' and 'int **')
&serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
^
handshake.h:878:18: error: array subscript is not an integer
&serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
^
handshake.h:880:9: error: 'uint8_t' undeclared (first use in this function)
(uint8_t *)&r->Link.SWFVerificationResponse[10]);
^
handshake.h:880:18: error: expected expression before ')' token
(uint8_t *)&r->Link.SWFVerificationResponse[10]);
^
handshake.h:880:17: error: invalid operands to binary * (have 'int **' and 'int **')
(uint8_t *)&r->Link.SWFVerificationResponse[10]);
^
handshake.h:887:4: warning: statement with no effect [-Wunused-value]
uint8_t secretKey[128] = { 0 };
^
handshake.h:887:12: error: expected ';' before 'secretKey'
uint8_t secretKey[128] = { 0 };
^
handshake.h:890:23: error: called object 'getdh' is not a function or function pointer
dhposServer = getdh(serversig, RTMP_SIG_SIZE);
^
In file included from rtmp.c:152:0:
handshake.h:712:11: note: declared here
getoff *getdh = NULL, *getdig = NULL;
^
In file included from rtmp.c:152:0:
handshake.h:890:16: warning: assignment makes integer from pointer without a cast [enabled by default]
dhposServer = getdh(serversig, RTMP_SIG_SIZE);
^
handshake.h:893:4: warning: implicit declaration of function 'DHComputeSharedSecretKey' [-Wimplicit-function-declaration]
len = DHComputeSharedSecretKey(r->Link.dh, &serversig[dhposServer],
^
handshake.h:894:13: error: 'secretKey' undeclared (first use in this function)
128, secretKey);
^
handshake.h:902:4: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
RTMP_LogHex(RTMP_LOGDEBUG, secretKey, 128);
^
In file included from rtmp.c:33:0:
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
^
In file included from rtmp.c:152:0:
handshake.h:904:4: warning: implicit declaration of function 'InitRC4Encryption' [-Wimplicit-function-declaration]
InitRC4Encryption(secretKey,
^
handshake.h:905:18: error: expected expression before ')' token
(uint8_t *) & serversig[dhposServer],
^
handshake.h:905:17: error: invalid operands to binary * (have 'int **' and 'int **')
(uint8_t *) & serversig[dhposServer],
^
handshake.h:915:22: error: expected expression before ')' token
ip = (int32_t *)reply;
^
handshake.h:915:21: error: invalid operands to binary * (have 'int **' and 'int **')
ip = (int32_t *)reply;
^
handshake.h:915:10: warning: assignment from incompatible pointer type [enabled by default]
ip = (int32_t *)reply;
^
handshake.h:920:42: error: invalid operands to binary - (have 'int *' and 'int **')
signatureResp = reply+RTMP_SIG_SIZE-SHA256_DIGEST_LENGTH;
^
handshake.h:920:21: warning: assignment from incompatible pointer type [enabled by default]
signatureResp = reply+RTMP_SIG_SIZE-SHA256_DIGEST_LENGTH;
^
handshake.h:924:39: error: invalid operands to binary - (have 'int' and 'int **')
HMACsha256(reply, RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH, digestResp,
^
handshake.h:931:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
RTMP_LogHex(RTMP_LOGDEBUG, digestResp, SHA256_DIGEST_LENGTH);
^
In file included from rtmp.c:33:0:
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
^
In file included from rtmp.c:152:0:
handshake.h:931:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
RTMP_LogHex(RTMP_LOGDEBUG, digestResp, SHA256_DIGEST_LENGTH);
^
In file included from rtmp.c:33:0:
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
^
In file included from rtmp.c:152:0:
handshake.h:936:13: error: 'dptr' undeclared (first use in this function)
uint8_t *dptr = digestResp;
^
handshake.h:936:12: error: invalid operands to binary * (have 'int **' and 'int **')
uint8_t *dptr = digestResp;
^
handshake.h:936:4: warning: statement with no effect [-Wunused-value]
uint8_t *dptr = digestResp;
^
handshake.h:937:13: error: 'sig' undeclared (first use in this function)
uint8_t *sig = signatureResp;
^
handshake.h:937:12: error: invalid operands to binary * (have 'int **' and 'int **')
uint8_t *sig = signatureResp;
^
handshake.h:937:4: warning: statement with no effect [-Wunused-value]
uint8_t *sig = signatureResp;
^
handshake.h:939:22: warning: comparison between pointer and integer [enabled by default]
for (i=0; i
#
^
#
handshake.h:940:6: warning: implicit declaration of function 'rtmpe8_sig' [-Wimplicit-function-declaration]
#
rtmpe8_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:940:39: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe8_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:944:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:944:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:945:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:945:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:947:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:948:13: warning: implicit declaration of function 'rtmpe9_sig' [-Wimplicit-function-declaration]
#
rtmpe9_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:948:46: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe9_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:952:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signatureResp, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:847:15: warning: unused variable 'digestResp' [-Wunused-variable]
#
uint8_t digestResp[SHA256_DIGEST_LENGTH];
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:982:7: warning: statement with no effect [-Wunused-value]
#
uint8_t signature[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:982:15: error: expected ';' before 'signature'
#
uint8_t signature[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:983:7: warning: statement with no effect [-Wunused-value]
#
uint8_t digest[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:983:15: error: expected ';' before 'digest'
#
uint8_t digest[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:993:59: error: invalid operands to binary - (have 'int' and 'int **')
#
RTMP_LogHex(RTMP_LOGDEBUG, &serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:993:44: error: array subscript is not an integer
#
RTMP_LogHex(RTMP_LOGDEBUG, &serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:994:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int * (*)[1]'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:994:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:998:42: error: 'digest' undeclared (first use in this function)
#
GenuineFMSKey, sizeof(GenuineFMSKey), digest);
#
^
#
handshake.h:999:43: error: invalid operands to binary - (have 'int' and 'int **')
#
HMACsha256(serversig, RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH, digest,
#
^
#
handshake.h:1000:26: error: 'signature' undeclared (first use in this function)
#
SHA256_DIGEST_LENGTH, signature);
#
^
#
handshake.h:1004:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, digest, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1004:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, digest, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1009:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1009:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1010:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signature;
#
^
#
handshake.h:1010:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signature;
#
^
#
handshake.h:1012:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:1013:39: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe8_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:1017:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1017:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1018:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signature;
#
^
#
handshake.h:1018:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signature;
#
^
#
handshake.h:1020:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:1021:46: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe9_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:1025:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signature, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1025:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signature, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1027:4: warning: implicit declaration of function 'memcmp' [-Wimplicit-function-declaration]
#
(signature, &serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1027:41: error: invalid operands to binary - (have 'int' and 'int **')
#
(signature, &serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1027:26: error: array subscript is not an integer
#
(signature, &serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1049:8: warning: implicit declaration of function 'RC4' [-Wimplicit-function-declaration]
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:79:46: error: expected expression before ')' token
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1049:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:45: error: invalid operands to binary * (have 'int **' and 'int **')
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1049:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:1049:53: error: called object is not a function or function pointer
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1049:65: error: expected ')' before 'buff'
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:79:46: error: expected expression before ')' token
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1054:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:45: error: invalid operands to binary * (have 'int **' and 'int **')
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1054:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:1054:54: error: called object is not a function or function pointer
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1054:66: error: expected ')' before 'buff'
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1040:9: warning: unused variable 'buff' [-Wunused-variable]
#
char buff[RTMP_SIG_SIZE];
#
^
#
handshake.h: In function 'SHandShake':
#
handshake.h:1081:3: error: unknown type name 'int32_t'
#
int32_t *ip;
#
^
#
handshake.h:1083:3: error: unknown type name 'uint8_t'
#
uint8_t clientsig[RTMP_SIG_SIZE];
#
^
#
handshake.h:1084:3: error: unknown type name 'uint8_t'
#
uint8_t serverbuf[RTMP_SIG_SIZE + 4], *serversig = serverbuf+4;
#
^
#
handshake.h:1085:3: error: unknown type name 'uint8_t'
#
uint8_t type;
#
^
#
handshake.h:1086:3: error: unknown type name 'uint32_t'
#
uint32_t uptime;
#
^
#
handshake.h:1087:3: error: unknown type name 'getoff'
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1087:19: error: 'NULL' undeclared (first use in this function)
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1087:19: warning: initialization from incompatible pointer type [enabled by default]
#
handshake.h:1087:35: warning: initialization from incompatible pointer type [enabled by default]
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1127:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(serversig, &uptime, 4);
#
^
#
handshake.h:1142:7: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
#
memset(&serversig[4], 0, 4);
#
^
#
handshake.h:1149:9: error: 'int32_t' undeclared (first use in this function)
#
ip = (int32_t *)(serversig+8);
#
^
#
handshake.h:1149:18: error: expected expression before ')' token
#
ip = (int32_t *)(serversig+8);
#
^
#
handshake.h:1149:17: error: invalid operands to binary * (have 'int **' and 'int **')
#
ip = (int32_t *)(serversig+8);
#
^
#
handshake.h:1149:19: error: called object is not a function or function pointer
#
ip = (int32_t *)(serversig+8);
#
^
#
handshake.h:1149:6: warning: assignment from incompatible pointer type [enabled by default]
#
ip = (int32_t *)(serversig+8);
#
^
#
handshake.h:1168:23: error: called object 'getdh' is not a function or function pointer
#
dhposServer = getdh(serversig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1087:11: note: declared here
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1168:16: warning: assignment makes integer from pointer without a cast [enabled by default]
#
dhposServer = getdh(serversig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1179:22: error: 'uint8_t' undeclared (first use in this function)
#
(r->Link.dh, (uint8_t *) &serversig[dhposServer], 128))
#
^
#
handshake.h:1179:31: error: expected expression before ')' token
#
(r->Link.dh, (uint8_t *) &serversig[dhposServer], 128))
#
^
#
handshake.h:1179:30: error: invalid operands to binary * (have 'int **' and 'int **')
#
(r->Link.dh, (uint8_t *) &serversig[dhposServer], 128))
#
^
#
handshake.h:1186:31: error: called object 'getdig' is not a function or function pointer
#
digestPosServer = getdig(serversig, RTMP_SIG_SIZE); /* reuse this value in verification */
#
^
#
handshake.h:1087:26: note: declared here
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1186:23: warning: assignment makes integer from pointer without a cast [enabled by default]
#
digestPosServer = getdig(serversig, RTMP_SIG_SIZE); /* reuse this value in verification */
#
^
#
handshake.h:1195:7: error: 'SHA256_DIGEST_LENGTH' undeclared (first use in this function)
#
SHA256_DIGEST_LENGTH);
#
^
#
handshake.h:1195:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1214:7: warning: statement with no effect [-Wunused-value]
#
uint8_t digestResp[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:1214:15: error: expected ';' before 'digestResp'
#
uint8_t digestResp[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:1215:16: error: 'signatureResp' undeclared (first use in this function)
#
uint8_t *signatureResp = NULL;
#
^
#
handshake.h:1215:15: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *signatureResp = NULL;
#
^
#
handshake.h:1215:7: warning: statement with no effect [-Wunused-value]
#
uint8_t *signatureResp = NULL;
#
^
#
handshake.h:1218:35: error: called object 'getdig' is not a function or function pointer
#
int digestPosClient = getdig(clientsig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1087:26: note: declared here
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1218:29: warning: initialization makes integer from pointer without a cast [enabled by default]
#
int digestPosClient = getdig(clientsig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1227:28: error: called object 'getdig' is not a function or function pointer
#
digestPosClient = getdig(clientsig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1087:26: note: declared here
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1227:20: warning: assignment makes integer from pointer without a cast [enabled by default]
#
digestPosClient = getdig(clientsig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1246:33: error: invalid operands to binary - (have 'int' and 'int **')
#
&serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1246:18: error: array subscript is not an integer
#
&serversig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1248:18: error: expected expression before ')' token
#
(uint8_t *)&r->Link.SWFVerificationResponse[10]);
#
^
#
handshake.h:1248:17: error: invalid operands to binary * (have 'int **' and 'int **')
#
(uint8_t *)&r->Link.SWFVerificationResponse[10]);
#
^
#
handshake.h:1256:4: warning: statement with no effect [-Wunused-value]
#
uint8_t secretKey[128] = { 0 };
#
^
#
handshake.h:1256:12: error: expected ';' before 'secretKey'
#
uint8_t secretKey[128] = { 0 };
#
^
#
handshake.h:1258:23: error: called object 'getdh' is not a function or function pointer
#
dhposClient = getdh(clientsig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1087:11: note: declared here
#
getoff *getdh = NULL, *getdig = NULL;
#
^
#
handshake.h:1258:16: warning: assignment makes integer from pointer without a cast [enabled by default]
#
dhposClient = getdh(clientsig, RTMP_SIG_SIZE);
#
^
#
handshake.h:1263:20: error: expected expression before ')' token
#
(uint8_t *) &clientsig[dhposClient], 128,
#
^
#
handshake.h:1263:19: error: invalid operands to binary * (have 'int **' and 'int **')
#
(uint8_t *) &clientsig[dhposClient], 128,
#
^
#
handshake.h:1272:31: error: 'secretKey' undeclared (first use in this function)
#
RTMP_LogHex(RTMP_LOGDEBUG, secretKey, 128);
#
^
#
handshake.h:1272:4: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, secretKey, 128);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1275:18: error: expected expression before ')' token
#
(uint8_t *) &clientsig[dhposClient],
#
^
#
handshake.h:1275:17: error: invalid operands to binary * (have 'int **' and 'int **')
#
(uint8_t *) &clientsig[dhposClient],
#
^
#
handshake.h:1282:46: error: invalid operands to binary - (have 'int *' and 'int **')
#
signatureResp = clientsig+RTMP_SIG_SIZE-SHA256_DIGEST_LENGTH;
#
^
#
handshake.h:1282:7: warning: statement with no effect [-Wunused-value]
#
signatureResp = clientsig+RTMP_SIG_SIZE-SHA256_DIGEST_LENGTH;
#
^
#
handshake.h:1285:42: error: 'digestResp' undeclared (first use in this function)
#
GenuineFMSKey, sizeof(GenuineFMSKey), digestResp);
#
^
#
handshake.h:1286:43: error: invalid operands to binary - (have 'int' and 'int **')
#
HMACsha256(clientsig, RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH, digestResp,
#
^
#
handshake.h:1291:13: error: 'dptr' undeclared (first use in this function)
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:1291:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:1291:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:1292:13: error: 'sig' undeclared (first use in this function)
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:1292:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:1292:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:1294:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:1295:39: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe8_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:1299:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:1299:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digestResp;
#
^
#
handshake.h:1300:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:1300:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signatureResp;
#
^
#
handshake.h:1302:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:1303:46: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe9_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:1311:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, digestResp, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1311:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, digestResp, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1314:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signatureResp, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1314:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signatureResp, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1340:7: warning: statement with no effect [-Wunused-value]
#
uint8_t signature[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:1340:15: error: expected ';' before 'signature'
#
uint8_t signature[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:1341:7: warning: statement with no effect [-Wunused-value]
#
uint8_t digest[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:1341:15: error: expected ';' before 'digest'
#
uint8_t digest[SHA256_DIGEST_LENGTH];
#
^
#
handshake.h:1344:59: error: invalid operands to binary - (have 'int' and 'int **')
#
RTMP_LogHex(RTMP_LOGDEBUG, &clientsig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1344:44: error: array subscript is not an integer
#
RTMP_LogHex(RTMP_LOGDEBUG, &clientsig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1345:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int * (*)[1]'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1345:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1349:40: error: 'digest' undeclared (first use in this function)
#
GenuineFPKey, sizeof(GenuineFPKey), digest);
#
^
#
handshake.h:1350:43: error: invalid operands to binary - (have 'int' and 'int **')
#
HMACsha256(clientsig, RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH, digest,
#
^
#
handshake.h:1351:26: error: 'signature' undeclared (first use in this function)
#
SHA256_DIGEST_LENGTH, signature);
#
^
#
handshake.h:1355:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1355:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1356:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signature;
#
^
#
handshake.h:1356:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signature;
#
^
#
handshake.h:1358:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:1359:39: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe8_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:1363:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1363:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *dptr = digest;
#
^
#
handshake.h:1364:12: error: invalid operands to binary * (have 'int **' and 'int **')
#
uint8_t *sig = signature;
#
^
#
handshake.h:1364:4: warning: statement with no effect [-Wunused-value]
#
uint8_t *sig = signature;
#
^
#
handshake.h:1366:22: warning: comparison between pointer and integer [enabled by default]
#
for (i=0; i
#
^
#
handshake.h:1367:46: error: invalid operands to binary % (have 'int *' and 'int')
#
rtmpe9_sig(sig+i, sig+i, dptr[i] % 15);
#
^
#
handshake.h:1373:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, digest, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1373:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, digest, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1376:7: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signature, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1376:7: warning: passing argument 3 of 'RTMP_LogHex' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, signature, SHA256_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'long unsigned int' but argument is of type 'int **'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1378:41: error: invalid operands to binary - (have 'int' and 'int **')
#
(signature, &clientsig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
handshake.h:1378:26: error: array subscript is not an integer
#
(signature, &clientsig[RTMP_SIG_SIZE - SHA256_DIGEST_LENGTH],
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:79:46: error: expected expression before ')' token
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1399:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:45: error: invalid operands to binary * (have 'int **' and 'int **')
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1399:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:1399:53: error: called object is not a function or function pointer
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1399:65: error: expected ')' before 'buff'
#
RC4_encrypt(r->Link.rc4keyIn, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:79:46: error: expected expression before ')' token
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1404:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:45: error: invalid operands to binary * (have 'int **' and 'int **')
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1404:8: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:1404:54: error: called object is not a function or function pointer
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
handshake.h:1404:66: error: expected ')' before 'buff'
#
RC4_encrypt(r->Link.rc4keyOut, RTMP_SIG_SIZE, (uint8_t *) buff);
#
^
#
handshake.h:79:47: note: in definition of macro 'RC4_encrypt'
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:1391:9: warning: unused variable 'buff' [-Wunused-variable]
#
char buff[RTMP_SIG_SIZE];
#
^
#
rtmp.c: At top level:
#
rtmp.c:155:1: error: unknown type name 'uint32_t'
#
uint32_t
#
^
#
rtmp.c: In function 'RTMP_GetTime':
#
rtmp.c:163:14: error: storage size of 't' isn't known
#
struct tms t;
#
^
#
rtmp.c:164:3: warning: implicit declaration of function 'sysconf' [-Wimplicit-function-declaration]
#
if (!clk_tck) clk_tck = sysconf(_SC_CLK_TCK);
#
^
#
rtmp.c:164:35: error: '_SC_CLK_TCK' undeclared (first use in this function)
#
if (!clk_tck) clk_tck = sysconf(_SC_CLK_TCK);
#
^
#
rtmp.c:165:3: warning: implicit declaration of function 'times' [-Wimplicit-function-declaration]
#
return times(&t) * 1000 / clk_tck;
#
^
#
rtmp.c:163:14: warning: unused variable 't' [-Wunused-variable]
#
struct tms t;
#
^
#
rtmp.c: At top level:
#
rtmp.c:189:33: error: unknown type name 'uint32_t'
#
RTMPPacket_Alloc(RTMPPacket *p, uint32_t nSize)
#
^
#
rtmp.c: In function 'RTMPPacket_Free':
#
rtmp.c:207:7: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
#
free(p->m_body - RTMP_MAX_HEADER_SIZE);
#
^
#
rtmp.c:207:7: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
rtmp.c:208:19: error: 'NULL' undeclared (first use in this function)
#
p->m_body = NULL;
#
^
#
rtmp.c:208:17: warning: assignment from incompatible pointer type [enabled by default]
#
p->m_body = NULL;
#
^
#
rtmp.c: In function 'RTMP_TLS_Init':
#
rtmp.c:248:3: warning: implicit declaration of function 'SSL_load_error_strings' [-Wimplicit-function-declaration]
#
SSL_load_error_strings();
#
^
#
rtmp.c:249:3: warning: implicit declaration of function 'SSL_library_init' [-Wimplicit-function-declaration]
#
SSL_library_init();
#
^
#
rtmp.c:250:3: warning: implicit declaration of function 'OpenSSL_add_all_digests' [-Wimplicit-function-declaration]
#
OpenSSL_add_all_digests();
#
^
#
rtmp.c:251:3: warning: implicit declaration of function 'SSL_CTX_new' [-Wimplicit-function-declaration]
#
RTMP_TLS_ctx = SSL_CTX_new(SSLv23_method());
#
^
#
rtmp.c:251:3: warning: implicit declaration of function 'SSLv23_method' [-Wimplicit-function-declaration]
#
rtmp.c:251:16: warning: assignment makes pointer from integer without a cast [enabled by default]
#
RTMP_TLS_ctx = SSL_CTX_new(SSLv23_method());
#
^
#
rtmp.c:252:3: warning: implicit declaration of function 'SSL_CTX_set_options' [-Wimplicit-function-declaration]
#
SSL_CTX_set_options(RTMP_TLS_ctx, SSL_OP_ALL);
#
^
#
rtmp.c:252:37: error: 'SSL_OP_ALL' undeclared (first use in this function)
#
SSL_CTX_set_options(RTMP_TLS_ctx, SSL_OP_ALL);
#
^
#
rtmp.c:253:3: warning: implicit declaration of function 'SSL_CTX_set_default_verify_paths' [-Wimplicit-function-declaration]
#
SSL_CTX_set_default_verify_paths(RTMP_TLS_ctx);
#
^
#
rtmp.c: In function 'RTMP_TLS_AllocServerContext':
#
rtmp.c:261:15: error: 'NULL' undeclared (first use in this function)
#
void *ctx = NULL;
#
^
#
rtmp.c:286:3: warning: implicit declaration of function 'SSLv23_server_method' [-Wimplicit-function-declaration]
#
ctx = SSL_CTX_new(SSLv23_server_method());
#
^
#
rtmp.c:286:7: warning: assignment makes pointer from integer without a cast [enabled by default]
#
ctx = SSL_CTX_new(SSLv23_server_method());
#
^
#
rtmp.c:287:3: warning: implicit declaration of function 'SSL_CTX_use_certificate_chain_file' [-Wimplicit-function-declaration]
#
if (!SSL_CTX_use_certificate_chain_file(ctx, cert)) {
#
^
#
rtmp.c:288:7: warning: implicit declaration of function 'SSL_CTX_free' [-Wimplicit-function-declaration]
#
SSL_CTX_free(ctx);
#
^
#
rtmp.c:291:3: warning: implicit declaration of function 'SSL_CTX_use_PrivateKey_file' [-Wimplicit-function-declaration]
#
if (!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) {
#
^
#
rtmp.c:291:46: error: 'SSL_FILETYPE_PEM' undeclared (first use in this function)
#
if (!SSL_CTX_use_PrivateKey_file(ctx, key, SSL_FILETYPE_PEM)) {
#
^
#
rtmp.c: In function 'RTMP_Alloc':
#
rtmp.c:319:3: warning: implicit declaration of function 'calloc' [-Wimplicit-function-declaration]
#
return calloc(1, sizeof(RTMP));
#
^
#
rtmp.c:319:10: warning: incompatible implicit declaration of built-in function 'calloc' [enabled by default]
#
return calloc(1, sizeof(RTMP));
#
^
#
rtmp.c: In function 'RTMP_Free':
#
rtmp.c:325:3: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r);
#
^
#
rtmp.c: In function 'RTMP_Init':
#
rtmp.c:336:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
#
memset(r, 0, sizeof(RTMP));
#
^
#
rtmp.c: In function 'SocksSetup':
#
rtmp.c:414:7: warning: implicit declaration of function 'strchr' [-Wimplicit-function-declaration]
#
const char *socksport = strchr(sockshost->av_val, ':');
#
^
#
rtmp.c:414:31: warning: incompatible implicit declaration of built-in function 'strchr' [enabled by default]
#
const char *socksport = strchr(sockshost->av_val, ':');
#
^
#
rtmp.c:415:7: warning: implicit declaration of function 'strdup' [-Wimplicit-function-declaration]
#
char *hostname = strdup(sockshost->av_val);
#
^
#
rtmp.c:415:24: warning: incompatible implicit declaration of built-in function 'strdup' [enabled by default]
#
char *hostname = strdup(sockshost->av_val);
#
^
#
rtmp.c:420:7: warning: implicit declaration of function 'strlen' [-Wimplicit-function-declaration]
#
r->Link.sockshost.av_len = strlen(hostname);
#
^
#
rtmp.c:420:34: warning: incompatible implicit declaration of built-in function 'strlen' [enabled by default]
#
r->Link.sockshost.av_len = strlen(hostname);
#
^
#
rtmp.c:422:7: warning: implicit declaration of function 'atoi' [-Wimplicit-function-declaration]
#
r->Link.socksport = socksport ? atoi(socksport + 1) : 1080;
#
^
#
rtmp.c:428:34: error: 'NULL' undeclared (first use in this function)
#
r->Link.sockshost.av_val = NULL;
#
^
#
rtmp.c:428:32: warning: assignment from incompatible pointer type [enabled by default]
#
r->Link.sockshost.av_val = NULL;
#
^
#
rtmp.c: At top level:
#
rtmp.c:447:4: error: unknown type name 'uint32_t'
#
uint32_t swfSize,
#
^
#
rtmp.c:551:3: error: unknown type name 'off_t'
#
off_t off;
#
^
#
rtmp.c:556:3: warning: implicit declaration of function 'offsetof' [-Wimplicit-function-declaration]
#
{ AVC("socks"), OFF(Link.sockshost), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:556:23: note: in expansion of macro 'OFF'
#
{ AVC("socks"), OFF(Link.sockshost), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:556:23: note: in expansion of macro 'OFF'
#
{ AVC("socks"), OFF(Link.sockshost), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[0].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:556:23: note: in expansion of macro 'OFF'
#
{ AVC("socks"), OFF(Link.sockshost), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:558:23: note: in expansion of macro 'OFF'
#
{ AVC("app"), OFF(Link.app), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:558:23: note: in expansion of macro 'OFF'
#
{ AVC("app"), OFF(Link.app), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[1].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:558:23: note: in expansion of macro 'OFF'
#
{ AVC("app"), OFF(Link.app), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:560:23: note: in expansion of macro 'OFF'
#
{ AVC("tcUrl"), OFF(Link.tcUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:560:23: note: in expansion of macro 'OFF'
#
{ AVC("tcUrl"), OFF(Link.tcUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[2].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:560:23: note: in expansion of macro 'OFF'
#
{ AVC("tcUrl"), OFF(Link.tcUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:562:23: note: in expansion of macro 'OFF'
#
{ AVC("pageUrl"), OFF(Link.pageUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:562:23: note: in expansion of macro 'OFF'
#
{ AVC("pageUrl"), OFF(Link.pageUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[3].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:562:23: note: in expansion of macro 'OFF'
#
{ AVC("pageUrl"), OFF(Link.pageUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:564:23: note: in expansion of macro 'OFF'
#
{ AVC("swfUrl"), OFF(Link.swfUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:564:23: note: in expansion of macro 'OFF'
#
{ AVC("swfUrl"), OFF(Link.swfUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[4].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:564:23: note: in expansion of macro 'OFF'
#
{ AVC("swfUrl"), OFF(Link.swfUrl), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:566:23: note: in expansion of macro 'OFF'
#
{ AVC("flashver"), OFF(Link.flashVer), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:566:23: note: in expansion of macro 'OFF'
#
{ AVC("flashver"), OFF(Link.flashVer), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[5].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:566:23: note: in expansion of macro 'OFF'
#
{ AVC("flashver"), OFF(Link.flashVer), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:568:23: note: in expansion of macro 'OFF'
#
{ AVC("conn"), OFF(Link.extras), OPT_CONN, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:568:23: note: in expansion of macro 'OFF'
#
{ AVC("conn"), OFF(Link.extras), OPT_CONN, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[6].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:568:23: note: in expansion of macro 'OFF'
#
{ AVC("conn"), OFF(Link.extras), OPT_CONN, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:570:23: note: in expansion of macro 'OFF'
#
{ AVC("playpath"), OFF(Link.playpath), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:570:23: note: in expansion of macro 'OFF'
#
{ AVC("playpath"), OFF(Link.playpath), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[7].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:570:23: note: in expansion of macro 'OFF'
#
{ AVC("playpath"), OFF(Link.playpath), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:572:23: note: in expansion of macro 'OFF'
#
{ AVC("playlist"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_PLST,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:572:23: note: in expansion of macro 'OFF'
#
{ AVC("playlist"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_PLST,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[8].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:572:23: note: in expansion of macro 'OFF'
#
{ AVC("playlist"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_PLST,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:574:23: note: in expansion of macro 'OFF'
#
{ AVC("live"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_LIVE,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:574:23: note: in expansion of macro 'OFF'
#
{ AVC("live"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_LIVE,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[9].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:574:23: note: in expansion of macro 'OFF'
#
{ AVC("live"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_LIVE,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:576:23: note: in expansion of macro 'OFF'
#
{ AVC("subscribe"), OFF(Link.subscribepath), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:576:23: note: in expansion of macro 'OFF'
#
{ AVC("subscribe"), OFF(Link.subscribepath), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[10].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:576:23: note: in expansion of macro 'OFF'
#
{ AVC("subscribe"), OFF(Link.subscribepath), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:578:17: note: in expansion of macro 'OFF'
#
{ AVC("jtv"), OFF(Link.usherToken), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:578:17: note: in expansion of macro 'OFF'
#
{ AVC("jtv"), OFF(Link.usherToken), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[11].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:578:17: note: in expansion of macro 'OFF'
#
{ AVC("jtv"), OFF(Link.usherToken), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:580:23: note: in expansion of macro 'OFF'
#
{ AVC("token"), OFF(Link.token), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:580:23: note: in expansion of macro 'OFF'
#
{ AVC("token"), OFF(Link.token), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[12].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:580:23: note: in expansion of macro 'OFF'
#
{ AVC("token"), OFF(Link.token), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:582:23: note: in expansion of macro 'OFF'
#
{ AVC("swfVfy"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_SWFV,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:582:23: note: in expansion of macro 'OFF'
#
{ AVC("swfVfy"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_SWFV,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[13].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:582:23: note: in expansion of macro 'OFF'
#
{ AVC("swfVfy"), OFF(Link.lFlags), OPT_BOOL, RTMP_LF_SWFV,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:584:23: note: in expansion of macro 'OFF'
#
{ AVC("swfAge"), OFF(Link.swfAge), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:584:23: note: in expansion of macro 'OFF'
#
{ AVC("swfAge"), OFF(Link.swfAge), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[14].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:584:23: note: in expansion of macro 'OFF'
#
{ AVC("swfAge"), OFF(Link.swfAge), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:586:23: note: in expansion of macro 'OFF'
#
{ AVC("start"), OFF(Link.seekTime), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:586:23: note: in expansion of macro 'OFF'
#
{ AVC("start"), OFF(Link.seekTime), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[15].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:586:23: note: in expansion of macro 'OFF'
#
{ AVC("start"), OFF(Link.seekTime), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:588:23: note: in expansion of macro 'OFF'
#
{ AVC("stop"), OFF(Link.stopTime), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:588:23: note: in expansion of macro 'OFF'
#
{ AVC("stop"), OFF(Link.stopTime), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[16].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:588:23: note: in expansion of macro 'OFF'
#
{ AVC("stop"), OFF(Link.stopTime), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:590:23: note: in expansion of macro 'OFF'
#
{ AVC("buffer"), OFF(m_nBufferMS), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:590:23: note: in expansion of macro 'OFF'
#
{ AVC("buffer"), OFF(m_nBufferMS), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[17].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:590:23: note: in expansion of macro 'OFF'
#
{ AVC("buffer"), OFF(m_nBufferMS), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:592:23: note: in expansion of macro 'OFF'
#
{ AVC("timeout"), OFF(Link.timeout), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:592:23: note: in expansion of macro 'OFF'
#
{ AVC("timeout"), OFF(Link.timeout), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[18].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:592:23: note: in expansion of macro 'OFF'
#
{ AVC("timeout"), OFF(Link.timeout), OPT_INT, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:594:23: note: in expansion of macro 'OFF'
#
{ AVC("pubUser"), OFF(Link.pubUser), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:594:23: note: in expansion of macro 'OFF'
#
{ AVC("pubUser"), OFF(Link.pubUser), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[19].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:594:23: note: in expansion of macro 'OFF'
#
{ AVC("pubUser"), OFF(Link.pubUser), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: expected expression before 'struct'
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:596:23: note: in expansion of macro 'OFF'
#
{ AVC("pubPasswd"), OFF(Link.pubPasswd), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: initializer element is not constant
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:596:23: note: in expansion of macro 'OFF'
#
{ AVC("pubPasswd"), OFF(Link.pubPasswd), OPT_STR, 0,
#
^
#
rtmp.c:547:25: error: (near initialization for 'options[20].off')
#
#define OFF(x) offsetof(struct RTMP,x)
#
^
#
rtmp.c:596:23: note: in expansion of macro 'OFF'
#
{ AVC("pubPasswd"), OFF(Link.pubPasswd), OPT_STR, 0,
#
^
#
rtmp.c:598:6: error: 'NULL' undeclared here (not in a function)
#
{ {NULL,0}, 0, 0}
#
^
#
rtmp.c:598:3: error: initializer element is not constant
#
{ {NULL,0}, 0, 0}
#
^
#
rtmp.c:598:3: error: (near initialization for 'options[21].name.av_val')
#
rtmp.c: In function 'parseAMF':
#
rtmp.c:643:4: warning: implicit declaration of function 'strtod' [-Wimplicit-function-declaration]
#
prop.p_vu.p_number = strtod(p, NULL);
#
^
#
rtmp.c:666:11: warning: incompatible implicit declaration of built-in function 'strchr' [enabled by default]
#
p = strchr(arg+3, ':');
#
^
#
rtmp.c: In function 'RTMP_SetOpt':
#
rtmp.c:720:5: warning: implicit declaration of function 'strcasecmp' [-Wimplicit-function-declaration]
#
if (strcasecmp(opt->av_val, options[i].name.av_val)) continue;
#
^
#
rtmp.c:728:7: warning: implicit declaration of function 'strtol' [-Wimplicit-function-declaration]
#
long l = strtol(arg->av_val, NULL, 0);
#
^
#
rtmp.c: In function 'RTMP_SetupURL':
#
rtmp.c:760:25: warning: incompatible implicit declaration of built-in function 'strchr' [enabled by default]
#
char *p1, *p2, *ptr = strchr(url, ' ');
#
^
#
rtmp.c:767:9: warning: incompatible implicit declaration of built-in function 'strlen' [enabled by default]
#
len = strlen(url);
#
^
#
rtmp.c:803:2: warning: implicit declaration of function 'sscanf' [-Wimplicit-function-declaration]
#
sscanf(p1+1, "%02x", &c);
#
^
#
rtmp.c:803:2: warning: incompatible implicit declaration of built-in function 'sscanf' [enabled by default]
#
rtmp.c:833:8: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
#
r->Link.tcUrl.av_val = malloc(len);
#
^
#
rtmp.c:833:31: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
r->Link.tcUrl.av_val = malloc(len);
#
^
#
rtmp.c:834:8: warning: implicit declaration of function 'snprintf' [-Wimplicit-function-declaration]
#
r->Link.tcUrl.av_len = snprintf(r->Link.tcUrl.av_val, len,
#
^
#
rtmp.c:834:31: warning: incompatible implicit declaration of built-in function 'snprintf' [enabled by default]
#
r->Link.tcUrl.av_len = snprintf(r->Link.tcUrl.av_val, len,
#
^
#
rtmp.c:852:4: warning: pointer targets in passing argument 2 of 'RTMP_HashSWF' differ in signedness [-Wpointer-sign]
#
(unsigned char *)r->Link.SWFHash, r->Link.swfAge);
#
^
#
In file included from rtmp_sys.h:61:0,
#
from rtmp.c:32:
#
rtmp.h:371:7: note: expected 'unsigned int *' but argument is of type 'int *'
#
int RTMP_HashSWF(const char *url, unsigned int *size, unsigned char *hash,
#
^
#
rtmp.c: At top level:
#
rtmp.c:870:22: warning: 'struct sockaddr_in' declared inside parameter list [enabled by default]
#
add_addr_info(struct sockaddr_in *service, AVal *host, int port)
#
^
#
rtmp.c:870:22: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
#
rtmp.c: In function 'add_addr_info':
#
rtmp.c:876:18: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
hostname = malloc(host->av_len+1);
#
^
#
rtmp.c:877:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(hostname, host->av_val, host->av_len);
#
^
#
rtmp.c:885:10: error: dereferencing pointer to incomplete type
#
service->sin_addr.s_addr = inet_addr(hostname);
#
^
#
rtmp.c:885:10: error: request for member 'sin_addr' in something not a structure or union
#
rtmp.c:885:20: error: request for member 's_addr' in something not a structure or union
#
service->sin_addr.s_addr = inet_addr(hostname);
#
^
#
rtmp.c:885:3: warning: implicit declaration of function 'inet_addr' [-Wimplicit-function-declaration]
#
service->sin_addr.s_addr = inet_addr(hostname);
#
^
#
rtmp.c:885:3: warning: statement with no effect [-Wunused-value]
#
rtmp.c:886:14: error: dereferencing pointer to incomplete type
#
if (service->sin_addr.s_addr == INADDR_NONE)
#
^
#
rtmp.c:886:14: error: request for member 'sin_addr' in something not a structure or union
#
rtmp.c:886:24: error: request for member 's_addr' in something not a structure or union
#
if (service->sin_addr.s_addr == INADDR_NONE)
#
^
#
rtmp.c:886:35: error: 'INADDR_NONE' undeclared (first use in this function)
#
if (service->sin_addr.s_addr == INADDR_NONE)
#
^
#
rtmp.c:888:14: warning: implicit declaration of function 'gethostbyname' [-Wimplicit-function-declaration]
#
struct hostent *host = gethostbyname(hostname);
#
^
#
rtmp.c:888:30: warning: initialization makes pointer from integer without a cast [enabled by default]
#
struct hostent *host = gethostbyname(hostname);
#
^
#
rtmp.c:889:16: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if (host == NULL || host->h_addr == NULL)
#
^
#
rtmp.c:889:31: error: dereferencing pointer to incomplete type
#
if (host == NULL || host->h_addr == NULL)
#
^
#
rtmp.c:889:31: error: request for member 'h_addr' in something not a structure or union
#
rtmp.c:895:14: error: dereferencing pointer to incomplete type
#
service->sin_addr = *(struct in_addr *)host->h_addr;
#
^
#
rtmp.c:895:14: error: request for member 'sin_addr' in something not a structure or union
#
rtmp.c:895:50: error: dereferencing pointer to incomplete type
#
service->sin_addr = *(struct in_addr *)host->h_addr;
#
^
#
rtmp.c:895:50: error: request for member 'h_addr' in something not a structure or union
#
rtmp.c:895:27: error: dereferencing pointer to incomplete type
#
service->sin_addr = *(struct in_addr *)host->h_addr;
#
^
#
rtmp.c:895:7: warning: statement with no effect [-Wunused-value]
#
service->sin_addr = *(struct in_addr *)host->h_addr;
#
^
#
rtmp.c:898:10: error: dereferencing pointer to incomplete type
#
service->sin_port = htons(port);
#
^
#
rtmp.c:898:10: error: request for member 'sin_port' in something not a structure or union
#
rtmp.c:898:3: warning: implicit declaration of function 'htons' [-Wimplicit-function-declaration]
#
service->sin_port = htons(port);
#
^
#
rtmp.c:898:3: warning: statement with no effect [-Wunused-value]
#
rtmp.c:901:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(hostname);
#
^
#
rtmp.c: In function 'RTMP_Connect0':
#
rtmp.c:913:3: warning: implicit declaration of function 'socket' [-Wimplicit-function-declaration]
#
r->m_sb.sb_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
#
^
#
rtmp.c:913:30: error: 'AF_INET' undeclared (first use in this function)
#
r->m_sb.sb_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
#
^
#
rtmp.c:913:39: error: 'SOCK_STREAM' undeclared (first use in this function)
#
r->m_sb.sb_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
#
^
#
rtmp.c:913:52: error: 'IPPROTO_TCP' undeclared (first use in this function)
#
r->m_sb.sb_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
#
^
#
rtmp.c:916:7: warning: implicit declaration of function 'connect' [-Wimplicit-function-declaration]
#
if (connect(r->m_sb.sb_socket, service, sizeof(struct sockaddr)) < 0)
#
^
#
rtmp.c:916:54: error: invalid application of 'sizeof' to incomplete type 'struct sockaddr'
#
if (connect(r->m_sb.sb_socket, service, sizeof(struct sockaddr)) < 0)
#
^
#
In file included from rtmp.c:32:0:
#
rtmp_sys.h:53:24: error: 'errno' undeclared (first use in this function)
#
#define GetSockError() errno
#
^
#
rtmp.c:918:14: note: in expansion of macro 'GetSockError'
#
int err = GetSockError();
#
^
#
rtmp_sys.h:53:24: warning: initialization makes integer from pointer without a cast [enabled by default]
#
#define GetSockError() errno
#
^
#
rtmp.c:918:14: note: in expansion of macro 'GetSockError'
#
int err = GetSockError();
#
^
#
rtmp.c:920:8: warning: implicit declaration of function 'strerror' [-Wimplicit-function-declaration]
#
__FUNCTION__, err, strerror(err));
#
^
#
rtmp.c:920:8: warning: format '%s' expects argument of type 'char *', but argument 5 has type 'int' [-Wformat=]
#
rtmp.c:939:4: warning: format '%d' expects argument of type 'int', but argument 4 has type 'struct urlopt *' [-Wformat=]
#
GetSockError());
#
^
#
In file included from rtmp.c:32:0:
#
rtmp_sys.h:58:35: error: variable 'tv' has initializer but incomplete type
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:945:5: note: in expansion of macro 'SET_RCVTIMEO'
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp_sys.h:58:35: warning: excess elements in struct initializer [enabled by default]
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:945:5: note: in expansion of macro 'SET_RCVTIMEO'
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp_sys.h:58:35: warning: (near initialization for 'tv') [enabled by default]
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:945:5: note: in expansion of macro 'SET_RCVTIMEO'
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp_sys.h:58:35: warning: excess elements in struct initializer [enabled by default]
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:945:5: note: in expansion of macro 'SET_RCVTIMEO'
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp_sys.h:58:35: warning: (near initialization for 'tv') [enabled by default]
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:945:5: note: in expansion of macro 'SET_RCVTIMEO'
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp.c:945:18: error: storage size of 'tv' isn't known
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp_sys.h:58:43: note: in definition of macro 'SET_RCVTIMEO'
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:947:9: warning: implicit declaration of function 'setsockopt' [-Wimplicit-function-declaration]
#
(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv)))
#
^
#
rtmp.c:947:29: error: 'SOL_SOCKET' undeclared (first use in this function)
#
(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv)))
#
^
#
rtmp.c:947:41: error: 'SO_RCVTIMEO' undeclared (first use in this function)
#
(r->m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&tv, sizeof(tv)))
#
^
#
In file included from rtmp.c:32:0:
#
rtmp.c:945:18: warning: unused variable 'tv' [-Wunused-variable]
#
SET_RCVTIMEO(tv, r->Link.timeout);
#
^
#
rtmp_sys.h:58:43: note: in definition of macro 'SET_RCVTIMEO'
#
#define SET_RCVTIMEO(tv,s) struct timeval tv = {s,0}
#
^
#
rtmp.c:954:46: error: 'TCP_NODELAY' undeclared (first use in this function)
#
setsockopt(r->m_sb.sb_socket, IPPROTO_TCP, TCP_NODELAY, (char *) &on, sizeof(on));
#
^
#
rtmp.c: In function 'RTMP_TLS_Accept':
#
rtmp.c:963:3: warning: implicit declaration of function 'SSL_new' [-Wimplicit-function-declaration]
#
TLS_server(ctx, r->m_sb.sb_ssl);
#
^
#
In file included from rtmp.c:32:0:
#
rtmp_sys.h:129:29: warning: assignment makes pointer from integer without a cast [enabled by default]
#
#define TLS_server(ctx,s) s = SSL_new(ctx)
#
^
#
rtmp.c:963:3: note: in expansion of macro 'TLS_server'
#
TLS_server(ctx, r->m_sb.sb_ssl);
#
^
#
rtmp.c:964:3: warning: implicit declaration of function 'SSL_set_fd' [-Wimplicit-function-declaration]
#
TLS_setfd(r->m_sb.sb_ssl, r->m_sb.sb_socket);
#
^
#
rtmp.c:965:3: warning: implicit declaration of function 'SSL_accept' [-Wimplicit-function-declaration]
#
if (TLS_accept(r->m_sb.sb_ssl) < 0)
#
^
#
In file included from rtmp.c:32:0:
#
rtmp.c: In function 'RTMP_Connect1':
#
rtmp_sys.h:128:29: warning: assignment makes pointer from integer without a cast [enabled by default]
#
#define TLS_client(ctx,s) s = SSL_new(ctx)
#
^
#
rtmp.c:982:7: note: in expansion of macro 'TLS_client'
#
TLS_client(RTMP_TLS_ctx, r->m_sb.sb_ssl);
#
^
#
rtmp.c:984:7: warning: implicit declaration of function 'SSL_connect' [-Wimplicit-function-declaration]
#
if (TLS_connect(r->m_sb.sb_ssl) < 0)
#
^
#
rtmp.c:1000:28: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_clientID.av_val = NULL;
#
^
#
rtmp.c: In function 'RTMP_Connect':
#
rtmp.c:1033:22: error: storage size of 'service' isn't known
#
struct sockaddr_in service;
#
^
#
rtmp.c:1037:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
#
memset(&service, 0, sizeof(struct sockaddr_in));
#
^
#
rtmp.c:1037:30: error: invalid application of 'sizeof' to incomplete type 'struct sockaddr_in'
#
memset(&service, 0, sizeof(struct sockaddr_in));
#
^
#
rtmp.c:1037:37: warning: passing argument 3 of 'memset' makes integer from pointer without a cast [enabled by default]
#
memset(&service, 0, sizeof(struct sockaddr_in));
#
^
#
rtmp.c:1037:37: note: expected 'unsigned int' but argument is of type 'struct urlopt *'
#
rtmp.c:1038:10: error: request for member 'sin_family' in something not a structure or union
#
service.sin_family = AF_INET;
#
^
#
rtmp.c:1038:24: error: 'AF_INET' undeclared (first use in this function)
#
service.sin_family = AF_INET;
#
^
#
rtmp.c:1038:3: warning: statement with no effect [-Wunused-value]
#
service.sin_family = AF_INET;
#
^
#
rtmp.c:1043:7: warning: passing argument 1 of 'add_addr_info' from incompatible pointer type [enabled by default]
#
if (!add_addr_info(&service, &r->Link.sockshost, r->Link.socksport))
#
^
#
rtmp.c:870:1: note: expected 'struct sockaddr_in *' but argument is of type 'struct urlopt (*)[1]'
#
add_addr_info(struct sockaddr_in *service, AVal *host, int port)
#
^
#
rtmp.c:1049:7: warning: passing argument 1 of 'add_addr_info' from incompatible pointer type [enabled by default]
#
if (!add_addr_info(&service, &r->Link.hostname, r->Link.port))
#
^
#
rtmp.c:870:1: note: expected 'struct sockaddr_in *' but argument is of type 'struct urlopt (*)[1]'
#
add_addr_info(struct sockaddr_in *service, AVal *host, int port)
#
^
#
rtmp.c:1033:22: warning: unused variable 'service' [-Wunused-variable]
#
struct sockaddr_in service;
#
^
#
rtmp.c: In function 'SocksNegotiate':
#
rtmp.c:1065:22: error: storage size of 'service' isn't known
#
struct sockaddr_in service;
#
^
#
rtmp.c:1066:3: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
#
memset(&service, 0, sizeof(struct sockaddr_in));
#
^
#
rtmp.c:1066:30: error: invalid application of 'sizeof' to incomplete type 'struct sockaddr_in'
#
memset(&service, 0, sizeof(struct sockaddr_in));
#
^
#
rtmp.c:1066:37: warning: passing argument 3 of 'memset' makes integer from pointer without a cast [enabled by default]
#
memset(&service, 0, sizeof(struct sockaddr_in));
#
^
#
rtmp.c:1066:37: note: expected 'unsigned int' but argument is of type 'struct urlopt *'
#
rtmp.c:1068:3: warning: passing argument 1 of 'add_addr_info' from incompatible pointer type [enabled by default]
#
add_addr_info(&service, &r->Link.hostname, r->Link.port);
#
^
#
rtmp.c:870:1: note: expected 'struct sockaddr_in *' but argument is of type 'struct urlopt (*)[1]'
#
add_addr_info(struct sockaddr_in *service, AVal *host, int port)
#
^
#
rtmp.c:1069:23: error: request for member 'sin_addr' in something not a structure or union
#
addr = htonl(service.sin_addr.s_addr);
#
^
#
rtmp.c:1069:32: error: request for member 's_addr' in something not a structure or union
#
addr = htonl(service.sin_addr.s_addr);
#
^
#
rtmp.c:1065:22: warning: unused variable 'service' [-Wunused-variable]
#
struct sockaddr_in service;
#
^
#
rtmp.c: In function 'RTMP_ToggleStream':
#
rtmp.c:1159:7: warning: implicit declaration of function 'sleep' [-Wimplicit-function-declaration]
#
sleep(1);
#
^
#
rtmp.c: In function 'RTMP_ClientPacket':
#
rtmp.c:1343:2: error: unknown type name 'uint32_t'
#
uint32_t nTimeStamp = packet->m_nTimeStamp;
#
^
#
rtmp.c:1347:6: error: unknown type name 'uint32_t'
#
uint32_t dataSize = AMF_DecodeInt24(packet->m_body + pos + 1); /* size without header (11) and prevTagSize (4) */
#
^
#
rtmp.c: In function 'ReadN':
#
rtmp.c:1461:4: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(ptr, r->m_sb.sb_start, nRead);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:79:37: error: 'uint8_t' undeclared (first use in this function)
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
rtmp.c:1490:4: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, nBytes, ptr);
#
^
#
handshake.h:79:46: error: expected expression before ')' token
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
rtmp.c:1490:4: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, nBytes, ptr);
#
^
#
handshake.h:79:45: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
#define RC4_encrypt(h,l,d) RC4(h,l,(uint8_t *)d,(uint8_t *)d)
#
^
#
rtmp.c:1490:4: note: in expansion of macro 'RC4_encrypt'
#
RC4_encrypt(r->Link.rc4keyIn, nBytes, ptr);
#
^
#
rtmp.c: In function 'WriteN':
#
rtmp.c:1512:22: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
encrypted = (char *)malloc(n);
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:80:40: error: 'uint8_t' undeclared (first use in this function)
#
#define RC4_encrypt2(h,l,s,d) RC4(h,l,(uint8_t *)s,(uint8_t *)d)
#
^
#
rtmp.c:1516:7: note: in expansion of macro 'RC4_encrypt2'
#
RC4_encrypt2(r->Link.rc4keyOut, n, buffer, ptr);
#
^
#
handshake.h:80:49: error: expected expression before ')' token
#
#define RC4_encrypt2(h,l,s,d) RC4(h,l,(uint8_t *)s,(uint8_t *)d)
#
^
#
rtmp.c:1516:7: note: in expansion of macro 'RC4_encrypt2'
#
RC4_encrypt2(r->Link.rc4keyOut, n, buffer, ptr);
#
^
#
handshake.h:80:48: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
#define RC4_encrypt2(h,l,s,d) RC4(h,l,(uint8_t *)s,(uint8_t *)d)
#
^
#
rtmp.c:1516:7: note: in expansion of macro 'RC4_encrypt2'
#
RC4_encrypt2(r->Link.rc4keyOut, n, buffer, ptr);
#
^
#
In file included from rtmp.c:32:0:
#
rtmp_sys.h:53:24: error: 'errno' undeclared (first use in this function)
#
#define GetSockError() errno
#
^
#
rtmp.c:1532:18: note: in expansion of macro 'GetSockError'
#
int sockerr = GetSockError();
#
^
#
rtmp_sys.h:53:24: warning: initialization makes integer from pointer without a cast [enabled by default]
#
#define GetSockError() errno
#
^
#
rtmp.c:1532:18: note: in expansion of macro 'GetSockError'
#
int sockerr = GetSockError();
#
^
#
rtmp.c:1536:19: error: 'EINTR' undeclared (first use in this function)
#
if (sockerr == EINTR && !RTMP_ctrlC)
#
^
#
rtmp.c:1536:16: warning: comparison between pointer and integer [enabled by default]
#
if (sockerr == EINTR && !RTMP_ctrlC)
#
^
#
rtmp.c:1553:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(encrypted);
#
^
#
rtmp.c: In function 'RTMP_SendCtrl':
#
rtmp.c:2371:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(buf, r->Link.SWFVerificationResponse, 42);
#
^
#
rtmp.c:2373:35: error: 'uint8_t' undeclared (first use in this function)
#
RTMP_LogHex(RTMP_LOGDEBUG, (uint8_t *)packet.m_body, packet.m_nBodySize);
#
^
#
rtmp.c:2373:44: error: expected expression before ')' token
#
RTMP_LogHex(RTMP_LOGDEBUG, (uint8_t *)packet.m_body, packet.m_nBodySize);
#
^
#
rtmp.c:2373:43: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHex(RTMP_LOGDEBUG, (uint8_t *)packet.m_body, packet.m_nBodySize);
#
^
#
rtmp.c:2373:44: warning: passing argument 2 of 'RTMP_LogHex' from incompatible pointer type [enabled by default]
#
RTMP_LogHex(RTMP_LOGDEBUG, (uint8_t *)packet.m_body, packet.m_nBodySize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2373:44: error: too few arguments to function 'RTMP_LogHex'
#
RTMP_LogHex(RTMP_LOGDEBUG, (uint8_t *)packet.m_body, packet.m_nBodySize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:60:6: note: declared here
#
void RTMP_LogHex(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2373:7: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHex(RTMP_LOGDEBUG, (uint8_t *)packet.m_body, packet.m_nBodySize);
#
^
#
rtmp.c: In function 'AV_erase':
#
rtmp.c:2396:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(vals[i].name.av_val);
#
^
#
rtmp.c:2402:23: warning: assignment from incompatible pointer type [enabled by default]
#
vals[i].name.av_val = NULL;
#
^
#
rtmp.c: In function 'AV_queue':
#
rtmp.c:2418:5: warning: implicit declaration of function 'realloc' [-Wimplicit-function-declaration]
#
*vals = realloc(*vals, (*num + 16) * sizeof(RTMP_METHOD));
#
^
#
rtmp.c:2418:13: warning: incompatible implicit declaration of built-in function 'realloc' [enabled by default]
#
*vals = realloc(*vals, (*num + 16) * sizeof(RTMP_METHOD));
#
^
#
rtmp.c:2419:9: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
tmp = malloc(av->av_len + 1);
#
^
#
rtmp.c:2420:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(tmp, av->av_val, av->av_len);
#
^
#
rtmp.c: In function 'AV_clear':
#
rtmp.c:2432:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(vals[i].name.av_val);
#
^
#
rtmp.c: In function 'b64enc':
#
rtmp.c:2462:3: error: unknown type name 'BIO'
#
BIO *bmem, *b64;
#
^
#
rtmp.c:2463:3: error: unknown type name 'BUF_MEM'
#
BUF_MEM *bptr;
#
^
#
rtmp.c:2465:3: warning: implicit declaration of function 'BIO_new' [-Wimplicit-function-declaration]
#
b64 = BIO_new(BIO_f_base64());
#
^
#
rtmp.c:2465:3: warning: implicit declaration of function 'BIO_f_base64' [-Wimplicit-function-declaration]
#
rtmp.c:2465:7: warning: assignment makes pointer from integer without a cast [enabled by default]
#
b64 = BIO_new(BIO_f_base64());
#
^
#
rtmp.c:2466:3: warning: implicit declaration of function 'BIO_s_mem' [-Wimplicit-function-declaration]
#
bmem = BIO_new(BIO_s_mem());
#
^
#
rtmp.c:2466:8: warning: assignment makes pointer from integer without a cast [enabled by default]
#
bmem = BIO_new(BIO_s_mem());
#
^
#
rtmp.c:2467:3: warning: implicit declaration of function 'BIO_push' [-Wimplicit-function-declaration]
#
b64 = BIO_push(b64, bmem);
#
^
#
rtmp.c:2467:7: warning: assignment makes pointer from integer without a cast [enabled by default]
#
b64 = BIO_push(b64, bmem);
#
^
#
rtmp.c:2468:3: warning: implicit declaration of function 'BIO_write' [-Wimplicit-function-declaration]
#
BIO_write(b64, input, length);
#
^
#
rtmp.c:2469:3: warning: implicit declaration of function 'BIO_flush' [-Wimplicit-function-declaration]
#
if (BIO_flush(b64) == 1)
#
^
#
rtmp.c:2471:7: warning: implicit declaration of function 'BIO_get_mem_ptr' [-Wimplicit-function-declaration]
#
BIO_get_mem_ptr(b64, &bptr);
#
^
#
rtmp.c:2472:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(output, bptr->data, bptr->length-1);
#
^
#
rtmp.c:2472:26: error: request for member 'data' in something not a structure or union
#
memcpy(output, bptr->data, bptr->length-1);
#
^
#
rtmp.c:2472:38: error: request for member 'length' in something not a structure or union
#
memcpy(output, bptr->data, bptr->length-1);
#
^
#
rtmp.c:2472:7: warning: passing argument 3 of 'memcpy' makes integer from pointer without a cast [enabled by default]
#
memcpy(output, bptr->data, bptr->length-1);
#
^
#
rtmp.c:2472:7: note: expected 'unsigned int' but argument is of type 'struct urlopt *'
#
rtmp.c:2473:18: error: request for member 'length' in something not a structure or union
#
output[bptr->length-1] = '\0';
#
^
#
rtmp.c:2473:13: error: array subscript is not an integer
#
output[bptr->length-1] = '\0';
#
^
#
rtmp.c:2473:7: warning: statement with no effect [-Wunused-value]
#
output[bptr->length-1] = '\0';
#
^
#
rtmp.c:2480:3: warning: implicit declaration of function 'BIO_free_all' [-Wimplicit-function-declaration]
#
BIO_free_all(b64);
#
^
#
rtmp.c: In function 'hexenc':
#
rtmp.c:2505:9: warning: implicit declaration of function 'sprintf' [-Wimplicit-function-declaration]
#
sprintf(ptr, "%02x", *inbuf++);
#
^
#
rtmp.c:2505:9: warning: incompatible implicit declaration of built-in function 'sprintf' [enabled by default]
#
rtmp.c: In function 'AValChr':
#
rtmp.c:2518:3: warning: return from incompatible pointer type [enabled by default]
#
return NULL;
#
^
#
rtmp.c: In function 'PublisherAuth':
#
rtmp.c:2524:20: warning: initialization from incompatible pointer type [enabled by default]
#
char *token_in = NULL;
#
^
#
rtmp.c:2526:28: error: 'MD5_DIGEST_LENGTH' undeclared (first use in this function)
#
unsigned char md5sum_val[MD5_DIGEST_LENGTH+1];
#
^
#
rtmp.c:2526:17: error: size of array 'md5sum_val' has non-integer type
#
unsigned char md5sum_val[MD5_DIGEST_LENGTH+1];
#
^
#
rtmp.c:2527:3: error: unknown type name 'MD5_CTX'
#
MD5_CTX md5ctx;
#
^
#
rtmp.c:2540:3: warning: implicit declaration of function 'strstr' [-Wimplicit-function-declaration]
#
if (strstr(description->av_val, av_authmod_adobe.av_val) != NULL)
#
^
#
rtmp.c:2540:7: warning: incompatible implicit declaration of built-in function 'strstr' [enabled by default]
#
if (strstr(description->av_val, av_authmod_adobe.av_val) != NULL)
#
^
#
rtmp.c:2540:60: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if (strstr(description->av_val, av_authmod_adobe.av_val) != NULL)
#
^
#
rtmp.c:2542:60: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if(strstr(description->av_val, "code=403 need auth") != NULL)
#
^
#
rtmp.c:2544:69: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if (strstr(r->Link.app.av_val, av_authmod_adobe.av_val) != NULL) {
#
^
#
rtmp.c:2548:33: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
pubToken.av_val = malloc(r->Link.pubUser.av_len + av_authmod_adobe.av_len + 8);
#
^
#
rtmp.c:2549:33: warning: incompatible implicit declaration of built-in function 'sprintf' [enabled by default]
#
pubToken.av_len = sprintf(pubToken.av_val, "?%s&user=%s",
#
^
#
rtmp.c:2558:76: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if((token_in = strstr(description->av_val, "?reason=needauth")) != NULL)
#
^
#
rtmp.c:2560:29: warning: initialization from incompatible pointer type [enabled by default]
#
char *par, *val = NULL, *orig_ptr;
#
^
#
rtmp.c:2561:48: warning: initialization from incompatible pointer type [enabled by default]
#
AVal user, salt, opaque, challenge, *aptr = NULL;
#
^
#
rtmp.c:2565:28: warning: incompatible implicit declaration of built-in function 'strdup' [enabled by default]
#
ptr = orig_ptr = strdup(token_in);
#
^
#
rtmp.c:2569:21: warning: incompatible implicit declaration of built-in function 'strchr' [enabled by default]
#
ptr = strchr(par, '&');
#
^
#
rtmp.c:2579:8: warning: assignment from incompatible pointer type [enabled by default]
#
aptr = NULL;
#
^
#
rtmp.c:2581:15: warning: implicit declaration of function 'strcmp' [-Wimplicit-function-declaration]
#
if (strcmp(par, "user") == 0){
#
^
#
rtmp.c:2598:21: warning: incompatible implicit declaration of built-in function 'strlen' [enabled by default]
#
aptr->av_len = strlen(aptr->av_val);
#
^
#
rtmp.c:2601:4: warning: implicit declaration of function 'MD5_Init' [-Wimplicit-function-declaration]
#
MD5_Init(&md5ctx);
#
^
#
rtmp.c:2602:4: warning: implicit declaration of function 'MD5_Update' [-Wimplicit-function-declaration]
#
MD5_Update(&md5ctx, user.av_val, user.av_len);
#
^
#
rtmp.c:2605:4: warning: implicit declaration of function 'MD5_Final' [-Wimplicit-function-declaration]
#
MD5_Final(md5sum_val, &md5ctx);
#
^
#
rtmp.c:2608:11: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'unsigned char *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2608:11: warning: passing argument 3 of 'RTMP_LogHexString' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'long unsigned int' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2610:11: warning: passing argument 2 of 'b64enc' makes integer from pointer without a cast [enabled by default]
#
b64enc(md5sum_val, MD5_DIGEST_LENGTH, salted2, SALTED2_LEN);
#
^
#
rtmp.c:2439:1: note: expected 'int' but argument is of type 'struct urlopt *'
#
b64enc(const unsigned char *input, int length, char *output, int maxsize)
#
^
#
rtmp.c:2630:11: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'unsigned char *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2630:11: warning: passing argument 3 of 'RTMP_LogHexString' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'long unsigned int' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2632:11: warning: passing argument 2 of 'b64enc' makes integer from pointer without a cast [enabled by default]
#
b64enc(md5sum_val, MD5_DIGEST_LENGTH, response, RESPONSE_LEN);
#
^
#
rtmp.c:2439:1: note: expected 'int' but argument is of type 'struct urlopt *'
#
b64enc(const unsigned char *input, int length, char *output, int maxsize)
#
^
#
rtmp.c:2636:31: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
pubToken.av_val = malloc(32 + B64INT_LEN + B64DIGEST_LEN + opaque.av_len);
#
^
#
rtmp.c:2637:31: warning: incompatible implicit declaration of built-in function 'sprintf' [enabled by default]
#
pubToken.av_len = sprintf(pubToken.av_val,
#
^
#
rtmp.c:2643:13: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(orig_ptr);
#
^
#
rtmp.c:2645:65: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if(strstr(description->av_val, "?reason=authfailed") != NULL)
#
^
#
rtmp.c:2650:65: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if(strstr(description->av_val, "?reason=nosuchuser") != NULL)
#
^
#
rtmp.c:2662:13: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
ptr = malloc(r->Link.app.av_len + pubToken.av_len);
#
^
#
rtmp.c:2663:7: warning: implicit declaration of function 'strncpy' [-Wimplicit-function-declaration]
#
strncpy(ptr, r->Link.app.av_val, r->Link.app.av_len);
#
^
#
rtmp.c:2663:7: warning: incompatible implicit declaration of built-in function 'strncpy' [enabled by default]
#
rtmp.c:2667:11: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->Link.app.av_val);
#
^
#
rtmp.c:2686:64: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if (strstr(description->av_val, av_authmod_llnw.av_val) != NULL)
#
^
#
rtmp.c:2688:60: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if(strstr(description->av_val, "code=403 need auth") != NULL)
#
^
#
rtmp.c:2692:68: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if (strstr(r->Link.app.av_val, av_authmod_llnw.av_val) != NULL) {
#
^
#
rtmp.c:2696:33: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
pubToken.av_val = malloc(r->Link.pubUser.av_len + av_authmod_llnw.av_len + 8);
#
^
#
rtmp.c:2697:33: warning: incompatible implicit declaration of built-in function 'sprintf' [enabled by default]
#
pubToken.av_len = sprintf(pubToken.av_val, "?%s&user=%s",
#
^
#
rtmp.c:2706:76: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if((token_in = strstr(description->av_val, "?reason=needauth")) != NULL)
#
^
#
rtmp.c:2709:29: warning: initialization from incompatible pointer type [enabled by default]
#
char *par, *val = NULL;
#
^
#
rtmp.c:2534:23: error: invalid operands to binary * (have 'int' and 'struct urlopt *')
#
#define HEXHASH_LEN (2*MD5_DIGEST_LENGTH)
#
^
#
rtmp.c:2710:15: note: in expansion of macro 'HEXHASH_LEN'
#
char hash1[HEXHASH_LEN+1], hash2[HEXHASH_LEN+1], hash3[HEXHASH_LEN+1];
#
^
#
rtmp.c:2710:9: error: size of array 'hash1' has non-integer type
#
char hash1[HEXHASH_LEN+1], hash2[HEXHASH_LEN+1], hash3[HEXHASH_LEN+1];
#
^
#
rtmp.c:2534:23: error: invalid operands to binary * (have 'int' and 'struct urlopt *')
#
#define HEXHASH_LEN (2*MD5_DIGEST_LENGTH)
#
^
#
rtmp.c:2710:37: note: in expansion of macro 'HEXHASH_LEN'
#
char hash1[HEXHASH_LEN+1], hash2[HEXHASH_LEN+1], hash3[HEXHASH_LEN+1];
#
^
#
rtmp.c:2710:31: error: size of array 'hash2' has non-integer type
#
char hash1[HEXHASH_LEN+1], hash2[HEXHASH_LEN+1], hash3[HEXHASH_LEN+1];
#
^
#
rtmp.c:2534:23: error: invalid operands to binary * (have 'int' and 'struct urlopt *')
#
#define HEXHASH_LEN (2*MD5_DIGEST_LENGTH)
#
^
#
rtmp.c:2710:59: note: in expansion of macro 'HEXHASH_LEN'
#
char hash1[HEXHASH_LEN+1], hash2[HEXHASH_LEN+1], hash3[HEXHASH_LEN+1];
#
^
#
rtmp.c:2710:53: error: size of array 'hash3' has non-integer type
#
char hash1[HEXHASH_LEN+1], hash2[HEXHASH_LEN+1], hash3[HEXHASH_LEN+1];
#
^
#
rtmp.c:2711:30: warning: initialization from incompatible pointer type [enabled by default]
#
AVal user, nonce, *aptr = NULL;
#
^
#
rtmp.c:2731:28: warning: incompatible implicit declaration of built-in function 'strdup' [enabled by default]
#
ptr = orig_ptr = strdup(token_in);
#
^
#
rtmp.c:2736:21: warning: incompatible implicit declaration of built-in function 'strchr' [enabled by default]
#
ptr = strchr(par, '&');
#
^
#
rtmp.c:2746:8: warning: assignment from incompatible pointer type [enabled by default]
#
aptr = NULL;
#
^
#
rtmp.c:2759:21: warning: incompatible implicit declaration of built-in function 'strlen' [enabled by default]
#
aptr->av_len = strlen(aptr->av_val);
#
^
#
rtmp.c:2763:11: warning: incompatible implicit declaration of built-in function 'sprintf' [enabled by default]
#
sprintf(nchex, "%08x", nc);
#
^
#
rtmp.c:2776:11: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'unsigned char *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2776:11: warning: passing argument 3 of 'RTMP_LogHexString' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'long unsigned int' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2777:11: warning: passing argument 2 of 'hexenc' makes integer from pointer without a cast [enabled by default]
#
hexenc(md5sum_val, MD5_DIGEST_LENGTH, hash1);
#
^
#
rtmp.c:2501:13: note: expected 'int' but argument is of type 'struct urlopt *'
#
static void hexenc(unsigned char *inbuf, int len, char *dst)
#
^
#
rtmp.c:2795:11: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'unsigned char *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2795:11: warning: passing argument 3 of 'RTMP_LogHexString' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'long unsigned int' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2796:11: warning: passing argument 2 of 'hexenc' makes integer from pointer without a cast [enabled by default]
#
hexenc(md5sum_val, MD5_DIGEST_LENGTH, hash2);
#
^
#
rtmp.c:2501:13: note: expected 'int' but argument is of type 'struct urlopt *'
#
static void hexenc(unsigned char *inbuf, int len, char *dst)
#
^
#
rtmp.c:2534:23: error: invalid operands to binary * (have 'int' and 'struct urlopt *')
#
#define HEXHASH_LEN (2*MD5_DIGEST_LENGTH)
#
^
#
rtmp.c:2800:31: note: in expansion of macro 'HEXHASH_LEN'
#
MD5_Update(&md5ctx, hash1, HEXHASH_LEN);
#
^
#
rtmp.c:2534:23: error: invalid operands to binary * (have 'int' and 'struct urlopt *')
#
#define HEXHASH_LEN (2*MD5_DIGEST_LENGTH)
#
^
#
rtmp.c:2810:31: note: in expansion of macro 'HEXHASH_LEN'
#
MD5_Update(&md5ctx, hash2, HEXHASH_LEN);
#
^
#
rtmp.c:2814:11: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'unsigned char *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2814:11: warning: passing argument 3 of 'RTMP_LogHexString' makes integer from pointer without a cast [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG, md5sum_val, MD5_DIGEST_LENGTH);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'long unsigned int' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:2815:11: warning: passing argument 2 of 'hexenc' makes integer from pointer without a cast [enabled by default]
#
hexenc(md5sum_val, MD5_DIGEST_LENGTH, hash3);
#
^
#
rtmp.c:2501:13: note: expected 'int' but argument is of type 'struct urlopt *'
#
static void hexenc(unsigned char *inbuf, int len, char *dst)
#
^
#
rtmp.c:2820:29: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
pubToken.av_val = malloc(64 + sizeof(authmod)-1 + user.av_len + nonce.av_len + sizeof(cnonce)-1 + sizeof(nchex)-1 + HEXHASH_LEN);
#
^
#
rtmp.c:2534:23: error: invalid operands to binary * (have 'int' and 'struct urlopt *')
#
#define HEXHASH_LEN (2*MD5_DIGEST_LENGTH)
#
^
#
rtmp.c:2820:127: note: in expansion of macro 'HEXHASH_LEN'
#
pubToken.av_val = malloc(64 + sizeof(authmod)-1 + user.av_len + nonce.av_len + sizeof(cnonce)-1 + sizeof(nchex)-1 + HEXHASH_LEN);
#
^
#
rtmp.c:2820:11: warning: passing argument 1 of 'malloc' makes integer from pointer without a cast [enabled by default]
#
pubToken.av_val = malloc(64 + sizeof(authmod)-1 + user.av_len + nonce.av_len + sizeof(cnonce)-1 + sizeof(nchex)-1 + HEXHASH_LEN);
#
^
#
rtmp.c:2820:11: note: expected 'unsigned int' but argument is of type 'struct urlopt *'
#
rtmp.c:2827:11: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(orig_ptr);
#
^
#
rtmp.c:2829:63: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if(strstr(description->av_val, "?reason=authfail") != NULL)
#
^
#
rtmp.c:2834:65: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
else if(strstr(description->av_val, "?reason=nosuchuser") != NULL)
#
^
#
rtmp.c:2846:13: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
ptr = malloc(r->Link.app.av_len + pubToken.av_len);
#
^
#
rtmp.c:2847:7: warning: incompatible implicit declaration of built-in function 'strncpy' [enabled by default]
#
strncpy(ptr, r->Link.app.av_val, r->Link.app.av_len);
#
^
#
rtmp.c:2851:11: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->Link.app.av_val);
#
^
#
rtmp.c: In function 'HandleInvoke':
#
rtmp.c:2933:3: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFProp_GetString(AMF_GetProp(&obj, NULL, 0), &method);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:2934:3: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
txn = AMFProp_GetNumber(AMF_GetProp(&obj, NULL, 1));
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:2995:4: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
r->m_stream_id = (int)AMFProp_GetNumber(AMF_GetProp(&obj, NULL, 3));
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:3014:7: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(methodInvoked.av_val);
#
^
#
rtmp.c:3079:15: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFProp_GetObject(AMF_GetProp(&obj, NULL, 3), &obj2);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:3088:17: warning: passing argument 2 of 'RTMP_Connect' from incompatible pointer type [enabled by default]
#
if (!RTMP_Connect(r, NULL) || !RTMP_ConnectStream(r, 0))
#
^
#
rtmp.c:1031:1: note: expected 'struct RTMPPacket *' but argument is of type 'struct urlopt *'
#
RTMP_Connect(RTMP *r, RTMPPacket *cp)
#
^
#
rtmp.c:3097:7: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(methodInvoked.av_val);
#
^
#
rtmp.c:3111:7: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFProp_GetObject(AMF_GetProp(&obj, NULL, 3), &obj2);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c: In function 'RTMP_FindFirstMatchingProperty':
#
rtmp.c:3207:7: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFObjectProperty *prop = AMF_GetProp(obj, NULL, n);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:3211:4: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(p, prop, sizeof(*prop));
#
^
#
rtmp.c: In function 'RTMP_FindPrefixProperty':
#
rtmp.c:3232:7: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFObjectProperty *prop = AMF_GetProp(obj, NULL, n);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:3237:4: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(p, prop, sizeof(*prop));
#
^
#
rtmp.c: In function 'DumpMetaData':
#
rtmp.c:3258:7: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
prop = AMF_GetProp(obj, NULL, n);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:3269:4: warning: incompatible implicit declaration of built-in function 'snprintf' [enabled by default]
#
snprintf(str, 255, "%.2f", prop->p_vu.p_number);
#
^
#
rtmp.c: In function 'HandleMetadata':
#
rtmp.c:3320:3: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFProp_GetString(AMF_GetProp(&obj, NULL, 0), &metastring);
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c: In function 'RTMP_ReadPacket':
#
rtmp.c:3552:3: error: unknown type name 'uint8_t'
#
uint8_t hbuf[RTMP_MAX_HEADER_SIZE] = { 0 };
#
^
#
rtmp.c:3601:24: warning: incompatible implicit declaration of built-in function 'realloc' [enabled by default]
#
int *timestamp = realloc(r->m_channelTimestamp, sizeof(int) * n);
#
^
#
rtmp.c:3604:9: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_channelTimestamp);
#
^
#
rtmp.c:3613:7: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
#
memset(r->m_channelTimestamp + r->m_channelsAllocatedIn, 0, sizeof(int) * (n - r->m_channelsAllocatedIn));
#
^
#
rtmp.c:3624:2: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(packet, r->m_vecChannelsIn[packet->m_nChannel],
#
^
#
rtmp.c:3673:38: error: 'uint8_t' undeclared (first use in this function)
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)hbuf, hSize);
#
^
#
rtmp.c:3673:47: error: expected expression before ')' token
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)hbuf, hSize);
#
^
#
rtmp.c:3673:46: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)hbuf, hSize);
#
^
#
rtmp.c:3673:47: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)hbuf, hSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3673:47: error: too few arguments to function 'RTMP_LogHexString'
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)hbuf, hSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: declared here
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3673:3: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)hbuf, hSize);
#
^
#
rtmp.c:3675:49: warning: comparison of distinct pointer types lacks a cast [enabled by default]
#
if (packet->m_nBodySize > 0 && packet->m_body == NULL)
#
^
#
rtmp.c:3677:7: warning: implicit declaration of function 'RTMPPacket_Alloc' [-Wimplicit-function-declaration]
#
if (!RTMPPacket_Alloc(packet, packet->m_nBodySize))
#
^
#
rtmp.c:3695:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(packet->m_chunk->c_header, hbuf, hSize);
#
^
#
rtmp.c:3707:47: error: expected expression before ')' token
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)packet->m_body + packet->m_nBytesRead, nChunk);
#
^
#
rtmp.c:3707:46: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)packet->m_body + packet->m_nBytesRead, nChunk);
#
^
#
rtmp.c:3707:47: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)packet->m_body + packet->m_nBytesRead, nChunk);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3707:47: error: too few arguments to function 'RTMP_LogHexString'
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)packet->m_body + packet->m_nBytesRead, nChunk);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: declared here
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3707:3: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)packet->m_body + packet->m_nBytesRead, nChunk);
#
^
#
rtmp.c:3713:46: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
r->m_vecChannelsIn[packet->m_nChannel] = malloc(sizeof(RTMPPacket));
#
^
#
rtmp.c:3714:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(r->m_vecChannelsIn[packet->m_nChannel], packet, sizeof(RTMPPacket));
#
^
#
rtmp.c:3730:54: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_vecChannelsIn[packet->m_nChannel]->m_body = NULL;
#
^
#
rtmp.c:3736:22: warning: assignment from incompatible pointer type [enabled by default]
#
packet->m_body = NULL; /* so it won't be erased on free */
#
^
#
rtmp.c:3555:7: warning: variable 'didAlloc' set but not used [-Wunused-but-set-variable]
#
int didAlloc = FALSE;
#
^
#
rtmp.c: In function 'RTMP_SendChunk':
#
rtmp.c:3879:38: error: 'uint8_t' undeclared (first use in this function)
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_header, chunk->c_headerSize);
#
^
#
rtmp.c:3879:47: error: expected expression before ')' token
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_header, chunk->c_headerSize);
#
^
#
rtmp.c:3879:46: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_header, chunk->c_headerSize);
#
^
#
rtmp.c:3879:47: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_header, chunk->c_headerSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3879:47: error: too few arguments to function 'RTMP_LogHexString'
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_header, chunk->c_headerSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: declared here
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3879:3: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_header, chunk->c_headerSize);
#
^
#
rtmp.c:3883:51: error: expected expression before ')' token
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_chunk, chunk->c_chunkSize);
#
^
#
rtmp.c:3883:50: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_chunk, chunk->c_chunkSize);
#
^
#
rtmp.c:3883:51: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_chunk, chunk->c_chunkSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3883:51: error: too few arguments to function 'RTMP_LogHexString'
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_chunk, chunk->c_chunkSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: declared here
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:3883:7: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)chunk->c_chunk, chunk->c_chunkSize);
#
^
#
rtmp.c:3885:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(hbuf, ptr, chunk->c_headerSize);
#
^
#
rtmp.c: In function 'RTMP_SendPacket':
#
rtmp.c:3899:3: error: unknown type name 'uint32_t'
#
uint32_t last = 0;
#
^
#
rtmp.c:3903:3: error: unknown type name 'uint32_t'
#
uint32_t t;
#
^
#
rtmp.c:3904:25: warning: initialization from incompatible pointer type [enabled by default]
#
char *buffer, *tbuf = NULL, *toff = NULL;
#
^
#
rtmp.c:3904:39: warning: initialization from incompatible pointer type [enabled by default]
#
char *buffer, *tbuf = NULL, *toff = NULL;
#
^
#
rtmp.c:3911:30: warning: incompatible implicit declaration of built-in function 'realloc' [enabled by default]
#
RTMPPacket **packets = realloc(r->m_vecChannelsOut, sizeof(RTMPPacket*) * n);
#
^
#
rtmp.c:3913:9: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_vecChannelsOut);
#
^
#
rtmp.c:3914:29: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_vecChannelsOut = NULL;
#
^
#
rtmp.c:3919:7: warning: incompatible implicit declaration of built-in function 'memset' [enabled by default]
#
memset(r->m_vecChannelsOut + r->m_channelsAllocatedOut, 0, sizeof(RTMPPacket*) * (n - r->m_channelsAllocatedOut));
#
^
#
rtmp.c:4029:11: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
tbuf = malloc(tlen);
#
^
#
rtmp.c:4042:42: error: 'uint8_t' undeclared (first use in this function)
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)header, hSize);
#
^
#
rtmp.c:4042:51: error: expected expression before ')' token
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)header, hSize);
#
^
#
rtmp.c:4042:50: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)header, hSize);
#
^
#
rtmp.c:4042:51: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)header, hSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:4042:51: error: too few arguments to function 'RTMP_LogHexString'
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)header, hSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: declared here
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:4042:7: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)header, hSize);
#
^
#
rtmp.c:4043:51: error: expected expression before ')' token
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)buffer, nChunkSize);
#
^
#
rtmp.c:4043:50: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)buffer, nChunkSize);
#
^
#
rtmp.c:4043:51: warning: passing argument 2 of 'RTMP_LogHexString' from incompatible pointer type [enabled by default]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)buffer, nChunkSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: expected 'const int *' but argument is of type 'struct urlopt *'
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:4043:51: error: too few arguments to function 'RTMP_LogHexString'
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)buffer, nChunkSize);
#
^
#
In file included from rtmp.c:33:0:
#
log.h:61:6: note: declared here
#
void RTMP_LogHexString(int level, const uint8_t *data, unsigned long len);
#
^
#
rtmp.c:4043:7: warning: statement with no effect [-Wunused-value]
#
RTMP_LogHexString(RTMP_LOGDEBUG2, (uint8_t *)buffer, nChunkSize);
#
^
#
rtmp.c:4046:4: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(toff, header, nChunkSize + hSize);
#
^
#
rtmp.c:4091:7: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(tbuf);
#
^
#
rtmp.c:4092:12: warning: assignment from incompatible pointer type [enabled by default]
#
tbuf = NULL;
#
^
#
rtmp.c:4115:47: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
r->m_vecChannelsOut[packet->m_nChannel] = malloc(sizeof(RTMPPacket));
#
^
#
rtmp.c:4116:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(r->m_vecChannelsOut[packet->m_nChannel], packet, sizeof(RTMPPacket));
#
^
#
rtmp.c: In function 'CloseInternal':
#
rtmp.c:4150:4: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_clientID.av_val);
#
^
#
rtmp.c:4151:25: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_clientID.av_val = NULL;
#
^
#
rtmp.c:4164:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_read.buf);
#
^
#
rtmp.c:4165:19: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_read.buf = NULL;
#
^
#
rtmp.c:4182:4: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_vecChannelsIn[i]);
#
^
#
rtmp.c:4183:26: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_vecChannelsIn[i] = NULL;
#
^
#
rtmp.c:4186:3: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_vecChannelsIn);
#
^
#
rtmp.c:4187:22: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_vecChannelsIn = NULL;
#
^
#
rtmp.c:4189:25: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_channelTimestamp = NULL;
#
^
#
rtmp.c:4196:27: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_vecChannelsOut[i] = NULL;
#
^
#
rtmp.c:4200:23: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_vecChannelsOut = NULL;
#
^
#
rtmp.c:4203:20: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_methodCalls = NULL;
#
^
#
rtmp.c:4217:28: warning: assignment from incompatible pointer type [enabled by default]
#
r->Link.tcUrl.av_val = NULL;
#
^
#
rtmp.c:4223:26: warning: assignment from incompatible pointer type [enabled by default]
#
r->Link.app.av_val = NULL;
#
^
#
rtmp.c:4230:32: warning: assignment from incompatible pointer type [enabled by default]
#
r->Link.playpath0.av_val = NULL;
#
^
#
rtmp.c: In function 'RTMPSockBuf_Fill':
#
rtmp.c:4265:4: warning: implicit declaration of function 'SSL_read' [-Wimplicit-function-declaration]
#
nBytes = TLS_read(sb->sb_ssl, sb->sb_start + sb->sb_size, nBytes);
#
^
#
rtmp.c:4270:4: warning: implicit declaration of function 'recv' [-Wimplicit-function-declaration]
#
nBytes = recv(sb->sb_socket, sb->sb_start + sb->sb_size, nBytes, 0);
#
^
#
In file included from rtmp.c:32:0:
#
rtmp_sys.h:53:24: error: 'errno' undeclared (first use in this function)
#
#define GetSockError() errno
#
^
#
rtmp.c:4278:18: note: in expansion of macro 'GetSockError'
#
int sockerr = GetSockError();
#
^
#
rtmp_sys.h:53:24: warning: initialization makes integer from pointer without a cast [enabled by default]
#
#define GetSockError() errno
#
^
#
rtmp.c:4278:18: note: in expansion of macro 'GetSockError'
#
int sockerr = GetSockError();
#
^
#
rtmp.c:4280:8: warning: format '%s' expects argument of type 'char *', but argument 6 has type 'int' [-Wformat=]
#
__FUNCTION__, nBytes, sockerr, strerror(sockerr));
#
^
#
rtmp.c:4281:19: error: 'EINTR' undeclared (first use in this function)
#
if (sockerr == EINTR && !RTMP_ctrlC)
#
^
#
rtmp.c:4281:16: warning: comparison between pointer and integer [enabled by default]
#
if (sockerr == EINTR && !RTMP_ctrlC)
#
^
#
rtmp.c:4284:19: error: 'EWOULDBLOCK' undeclared (first use in this function)
#
if (sockerr == EWOULDBLOCK || sockerr == EAGAIN)
#
^
#
rtmp.c:4284:16: warning: comparison between pointer and integer [enabled by default]
#
if (sockerr == EWOULDBLOCK || sockerr == EAGAIN)
#
^
#
rtmp.c:4284:45: error: 'EAGAIN' undeclared (first use in this function)
#
if (sockerr == EWOULDBLOCK || sockerr == EAGAIN)
#
^
#
rtmp.c:4284:42: warning: comparison between pointer and integer [enabled by default]
#
if (sockerr == EWOULDBLOCK || sockerr == EAGAIN)
#
^
#
rtmp.c: In function 'RTMPSockBuf_Send':
#
rtmp.c:4308:7: warning: implicit declaration of function 'SSL_write' [-Wimplicit-function-declaration]
#
rc = TLS_write(sb->sb_ssl, buf, len);
#
^
#
rtmp.c:4313:7: warning: implicit declaration of function 'send' [-Wimplicit-function-declaration]
#
rc = send(sb->sb_socket, buf, len, 0);
#
^
#
rtmp.c: In function 'RTMPSockBuf_Close':
#
rtmp.c:4324:7: warning: implicit declaration of function 'SSL_shutdown' [-Wimplicit-function-declaration]
#
TLS_shutdown(sb->sb_ssl);
#
^
#
rtmp.c:4325:7: warning: implicit declaration of function 'SSL_free' [-Wimplicit-function-declaration]
#
TLS_close(sb->sb_ssl);
#
^
#
rtmp.c:4330:7: warning: implicit declaration of function 'close' [-Wimplicit-function-declaration]
#
return closesocket(sb->sb_socket);
#
^
#
rtmp.c: In function 'DecodeTEA':
#
rtmp.c:4339:3: error: unknown type name 'uint32_t'
#
uint32_t *v, k[4] = { 0 }, u;
#
^
#
rtmp.c:4340:3: error: unknown type name 'uint32_t'
#
uint32_t z, y, sum = 0, e, DELTA = 0x9e3779b9;
#
^
#
rtmp.c:4341:3: error: unknown type name 'int32_t'
#
int32_t p, q;
#
^
#
rtmp.c:4371:9: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
out = malloc(n * 8);
#
^
#
rtmp.c:4373:8: error: 'uint32_t' undeclared (first use in this function)
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4373:18: error: expected expression before ')' token
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4373:17: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4373:5: warning: assignment from incompatible pointer type [enabled by default]
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4383:18: error: expected expression before ')' token
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4383:17: error: invalid operands to binary * (have 'struct urlopt *' and 'struct urlopt *')
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4383:5: warning: assignment from incompatible pointer type [enabled by default]
#
v = (uint32_t *) out;
#
^
#
rtmp.c:4402:3: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(text->av_val, out, text->av_len);
#
^
#
rtmp.c:4403:3: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(out);
#
^
#
rtmp.c: In function 'HTTP_Post':
#
rtmp.c:4410:14: warning: incompatible implicit declaration of built-in function 'snprintf' [enabled by default]
#
int hlen = snprintf(hbuf, sizeof(hbuf), "POST /%s%s/%d HTTP/1.1\r\n"
#
^
#
rtmp.c: In function 'HTTP_read':
#
rtmp.c:4442:3: warning: implicit declaration of function 'strncmp' [-Wimplicit-function-declaration]
#
if (strncmp(r->m_sb.sb_start, "HTTP/1.1 200 ", 13))
#
^
#
rtmp.c:4445:8: warning: incompatible implicit declaration of built-in function 'strstr' [enabled by default]
#
if (!strstr(r->m_sb.sb_start, "\r\n\r\n")) {
#
^
#
rtmp.c:4453:5: warning: implicit declaration of function 'strncasecmp' [-Wimplicit-function-declaration]
#
if (!strncasecmp(ptr+8, "length:", 7)) break;
#
^
#
rtmp.c:4476:30: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
r->m_clientID.av_val = malloc(hlen+1);
#
^
#
rtmp.c:4480:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(r->m_clientID.av_val+1, ptr, hlen-1);
#
^
#
rtmp.c: In function 'Read_1_Packet':
#
rtmp.c:4503:3: error: unknown type name 'uint32_t'
#
uint32_t prevTagSize = 0;
#
^
#
rtmp.c:4509:3: error: unknown type name 'uint32_t'
#
uint32_t nTimeStamp = 0;
#
^
#
rtmp.c:4575:9: warning: passing argument 2 of 'AMF_GetProp' from incompatible pointer type [enabled by default]
#
AMFProp_GetString(AMF_GetProp(&metaObj, NULL, 0),
#
^
#
In file included from rtmp.h:36:0,
#
from rtmp_sys.h:61,
#
from rtmp.c:32:
#
amf.h:121:22: note: expected 'const struct AVal *' but argument is of type 'struct urlopt *'
#
AMFObjectProperty *AMF_GetProp(AMFObject * obj, const AVal * name,
#
^
#
rtmp.c:4634:9: error: unknown type name 'uint32_t'
#
uint32_t ts = 0;
#
^
#
rtmp.c:4639:6: error: unknown type name 'uint32_t'
#
uint32_t dataSize =
#
^
#
rtmp.c:4801:20: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
r->m_read.buf = malloc(size + 4);
#
^
#
rtmp.c:4859:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(ptr, packetBody, nPacketLen);
#
^
#
rtmp.c:4876:8: error: unknown type name 'uint32_t'
#
uint32_t dataSize = AMF_DecodeInt24(packetBody + pos + 1);
#
^
#
rtmp.c:4964:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(buf, r->m_read.buf, len);
#
^
#
In file included from rtmp.c:32:0:
#
rtmp.c: In function 'RTMP_Read':
#
rtmp_sys.h:54:25: error: 'errno' undeclared (first use in this function)
#
#define SetSockError(e) errno = e
#
^
#
rtmp.c:4990:5: note: in expansion of macro 'SetSockError'
#
SetSockError(EINVAL);
#
^
#
rtmp.c:4990:18: error: 'EINVAL' undeclared (first use in this function)
#
SetSockError(EINVAL);
#
^
#
rtmp_sys.h:54:33: note: in definition of macro 'SetSockError'
#
#define SetSockError(e) errno = e
#
^
#
rtmp_sys.h:54:25: warning: statement with no effect [-Wunused-value]
#
#define SetSockError(e) errno = e
#
^
#
rtmp.c:4990:5: note: in expansion of macro 'SetSockError'
#
SetSockError(EINVAL);
#
^
#
rtmp.c:5001:18: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
#
char *mybuf = malloc(HEADERBUF), *end = mybuf + HEADERBUF;
#
^
#
rtmp.c:5006:4: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(mybuf, flvHeader, sizeof(flvHeader));
#
^
#
rtmp.c:5016:5: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(mybuf);
#
^
#
rtmp.c:5017:19: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_read.buf = NULL;
#
^
#
rtmp.c:5024:17: warning: incompatible implicit declaration of built-in function 'realloc' [enabled by default]
#
mybuf = realloc(mybuf, cnt + nRead);
#
^
#
rtmp.c:5026:3: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_read.buf);
#
^
#
rtmp.c:5047:7: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_read.buf);
#
^
#
rtmp.c:5048:21: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_read.buf = NULL;
#
^
#
rtmp.c:5049:24: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_read.bufpos = NULL;
#
^
#
rtmp.c:5059:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(buf, r->m_read.bufpos, nRead);
#
^
#
rtmp.c:5063:4: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
#
free(r->m_read.buf);
#
^
#
rtmp.c:5064:18: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_read.buf = NULL;
#
^
#
rtmp.c:5065:21: warning: assignment from incompatible pointer type [enabled by default]
#
r->m_read.bufpos = NULL;
#
^
#
rtmp.c: In function 'RTMP_Write':
#
rtmp.c:5161:7: warning: incompatible implicit declaration of built-in function 'memcpy' [enabled by default]
#
memcpy(enc, buf, num);
#
^
#
In file included from handshake.h:86:0,
#
from rtmp.c:152:
#
rtmp.c: At top level:
#
dh.h:197:1: warning: 'isValidPublicKey' defined but not used [-Wunused-function]
#
isValidPublicKey(MP_t y, MP_t p, MP_t q)
#
^
#
In file included from rtmp.c:152:0:
#
handshake.h:629:13: warning: 'bf_setkey' defined but not used [-Wunused-function]
#
static void bf_setkey(const unsigned char *kp, int keybytes, bf_key *key)
#
^
#
make[1]: *** [: rtmp.o] Error 1
#
make[1]: Leaving directory '/tmp/rtmpdump/src/rtmpdump/librtmp'
#
make: *** [Makefile:76: librtmp/librtmp.a] Error 2
#
==> ERROR: A failure occurred in build().
#
Aborting...