Merge pull request #59 from moteus/master

Fix. Build with cURL 7.19.7 (Ubuntu 10.04LTS)
This commit is contained in:
Alexey Melnichuk 2015-06-15 10:30:47 +03:00
commit 578189668e
3 changed files with 378 additions and 373 deletions

View File

@ -1,182 +1,182 @@
/****************************************************************************** /******************************************************************************
* Author: Alexey Melnichuk <mimir@newmail.ru> * Author: Alexey Melnichuk <mimir@newmail.ru>
* *
* Copyright (C) 2014 Alexey Melnichuk <mimir@newmail.ru> * Copyright (C) 2014 Alexey Melnichuk <mimir@newmail.ru>
* *
* Licensed according to the included 'LICENSE' document * Licensed according to the included 'LICENSE' document
* *
* This file is part of lua-lcurl library. * This file is part of lua-lcurl library.
******************************************************************************/ ******************************************************************************/
#include "l52util.h" #include "l52util.h"
#include <memory.h> #include <memory.h>
#include <string.h> /* for memset */ #include <string.h> /* for memset */
#include <assert.h> #include <assert.h>
#if LUA_VERSION_NUM >= 502 #if LUA_VERSION_NUM >= 502
int luaL_typerror (lua_State *L, int narg, const char *tname) { int luaL_typerror (lua_State *L, int narg, const char *tname) {
const char *msg = lua_pushfstring(L, "%s expected, got %s", tname, const char *msg = lua_pushfstring(L, "%s expected, got %s", tname,
luaL_typename(L, narg)); luaL_typename(L, narg));
return luaL_argerror(L, narg, msg); return luaL_argerror(L, narg, msg);
} }
#ifndef luaL_register #ifndef luaL_register
void luaL_register (lua_State *L, const char *libname, const luaL_Reg *l){ void luaL_register (lua_State *L, const char *libname, const luaL_Reg *l){
if(libname) lua_newtable(L); if(libname) lua_newtable(L);
luaL_setfuncs(L, l, 0); luaL_setfuncs(L, l, 0);
} }
#endif #endif
#else #else
void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup){ void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup){
luaL_checkstack(L, nup, "too many upvalues"); luaL_checkstack(L, nup, "too many upvalues");
for (; l->name != NULL; l++) { /* fill the table with given functions */ for (; l->name != NULL; l++) { /* fill the table with given functions */
int i; int i;
for (i = 0; i < nup; i++) /* copy upvalues to the top */ for (i = 0; i < nup; i++) /* copy upvalues to the top */
lua_pushvalue(L, -nup); lua_pushvalue(L, -nup);
lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */ lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */
lua_setfield(L, -(nup + 2), l->name); lua_setfield(L, -(nup + 2), l->name);
} }
lua_pop(L, nup); /* remove upvalues */ lua_pop(L, nup); /* remove upvalues */
} }
void lua_rawgetp(lua_State *L, int index, const void *p){ void lua_rawgetp(lua_State *L, int index, const void *p){
index = lua_absindex(L, index); index = lua_absindex(L, index);
lua_pushlightuserdata(L, (void *)p); lua_pushlightuserdata(L, (void *)p);
lua_rawget(L, index); lua_rawget(L, index);
} }
void lua_rawsetp (lua_State *L, int index, const void *p){ void lua_rawsetp (lua_State *L, int index, const void *p){
index = lua_absindex(L, index); index = lua_absindex(L, index);
lua_pushlightuserdata(L, (void *)p); lua_pushlightuserdata(L, (void *)p);
lua_insert(L, -2); lua_insert(L, -2);
lua_rawset(L, index); lua_rawset(L, index);
} }
int luaL_getmetafield (lua_State *L, int obj, const char *event) { int luaL_getmetafield (lua_State *L, int obj, const char *event) {
if (!lua_getmetatable(L, obj)) /* no metatable? */ if (!lua_getmetatable(L, obj)) /* no metatable? */
return 0; return 0;
lua_pushstring(L, event); lua_pushstring(L, event);
lua_rawget(L, -2); lua_rawget(L, -2);
if (lua_isnil(L, -1)) { if (lua_isnil(L, -1)) {
lua_pop(L, 2); /* remove metatable and metafield */ lua_pop(L, 2); /* remove metatable and metafield */
return 0; return 0;
} }
else { else {
lua_remove(L, -2); /* remove only metatable */ lua_remove(L, -2); /* remove only metatable */
return 1; return 1;
} }
} }
int luaL_callmeta (lua_State *L, int obj, const char *event) { int luaL_callmeta (lua_State *L, int obj, const char *event) {
obj = lua_absindex(L, obj); obj = lua_absindex(L, obj);
if (!luaL_getmetafield(L, obj, event)) /* no metafield? */ if (!luaL_getmetafield(L, obj, event)) /* no metafield? */
return 0; return 0;
lua_pushvalue(L, obj); lua_pushvalue(L, obj);
lua_call(L, 1, 1); lua_call(L, 1, 1);
return 1; return 1;
} }
#endif #endif
int lutil_newmetatablep (lua_State *L, const void *p) { int lutil_newmetatablep (lua_State *L, const void *p) {
lua_rawgetp(L, LUA_REGISTRYINDEX, p); lua_rawgetp(L, LUA_REGISTRYINDEX, p);
if (!lua_isnil(L, -1)) /* name already in use? */ if (!lua_isnil(L, -1)) /* name already in use? */
return 0; /* leave previous value on top, but return 0 */ return 0; /* leave previous value on top, but return 0 */
lua_pop(L, 1); lua_pop(L, 1);
lua_newtable(L); /* create metatable */ lua_newtable(L); /* create metatable */
lua_pushvalue(L, -1); /* duplicate metatable to set*/ lua_pushvalue(L, -1); /* duplicate metatable to set*/
lua_rawsetp(L, LUA_REGISTRYINDEX, p); lua_rawsetp(L, LUA_REGISTRYINDEX, p);
return 1; return 1;
} }
void lutil_getmetatablep (lua_State *L, const void *p) { void lutil_getmetatablep (lua_State *L, const void *p) {
lua_rawgetp(L, LUA_REGISTRYINDEX, p); lua_rawgetp(L, LUA_REGISTRYINDEX, p);
} }
void lutil_setmetatablep (lua_State *L, const void *p) { void lutil_setmetatablep (lua_State *L, const void *p) {
lutil_getmetatablep(L, p); lutil_getmetatablep(L, p);
assert(lua_istable(L,-1)); assert(lua_istable(L,-1));
lua_setmetatable (L, -2); lua_setmetatable (L, -2);
} }
int lutil_isudatap (lua_State *L, int ud, const void *p) { int lutil_isudatap (lua_State *L, int ud, const void *p) {
if (lua_isuserdata(L, ud)){ if (lua_isuserdata(L, ud)){
if (lua_getmetatable(L, ud)) { /* does it have a metatable? */ if (lua_getmetatable(L, ud)) { /* does it have a metatable? */
int res; int res;
lutil_getmetatablep(L,p); /* get correct metatable */ lutil_getmetatablep(L,p); /* get correct metatable */
res = lua_rawequal(L, -1, -2); /* does it have the correct mt? */ res = lua_rawequal(L, -1, -2); /* does it have the correct mt? */
lua_pop(L, 2); /* remove both metatables */ lua_pop(L, 2); /* remove both metatables */
return res; return res;
} }
} }
return 0; return 0;
} }
void *lutil_checkudatap (lua_State *L, int ud, const void *p) { void *lutil_checkudatap (lua_State *L, int ud, const void *p) {
void *up = lua_touserdata(L, ud); void *up = lua_touserdata(L, ud);
if (up != NULL) { /* value is a userdata? */ if (up != NULL) { /* value is a userdata? */
if (lua_getmetatable(L, ud)) { /* does it have a metatable? */ if (lua_getmetatable(L, ud)) { /* does it have a metatable? */
lutil_getmetatablep(L,p); /* get correct metatable */ lutil_getmetatablep(L,p); /* get correct metatable */
if (lua_rawequal(L, -1, -2)) { /* does it have the correct mt? */ if (lua_rawequal(L, -1, -2)) { /* does it have the correct mt? */
lua_pop(L, 2); /* remove both metatables */ lua_pop(L, 2); /* remove both metatables */
return up; return up;
} }
} }
} }
luaL_typerror(L, ud, p); /* else error */ luaL_typerror(L, ud, p); /* else error */
return NULL; /* to avoid warnings */ return NULL; /* to avoid warnings */
} }
int lutil_createmetap (lua_State *L, const void *p, const luaL_Reg *methods, int nup) { int lutil_createmetap (lua_State *L, const void *p, const luaL_Reg *methods, int nup) {
if (!lutil_newmetatablep(L, p)){ if (!lutil_newmetatablep(L, p)){
lua_insert(L, -1 - nup); /* move mt prior upvalues */ lua_insert(L, -1 - nup); /* move mt prior upvalues */
return 0; return 0;
} }
lua_insert(L, -1 - nup); /* move mt prior upvalues */ lua_insert(L, -1 - nup); /* move mt prior upvalues */
luaL_setfuncs (L, methods, nup); /* define methods */ luaL_setfuncs (L, methods, nup); /* define methods */
lua_pushliteral (L, "__index"); /* define metamethods */ lua_pushliteral (L, "__index"); /* define metamethods */
lua_pushvalue (L, -2); lua_pushvalue (L, -2);
lua_settable (L, -3); lua_settable (L, -3);
return 1; return 1;
} }
void *lutil_newudatap_impl(lua_State *L, size_t size, const void *p){ void *lutil_newudatap_impl(lua_State *L, size_t size, const void *p){
void *obj = lua_newuserdata (L, size); void *obj = lua_newuserdata (L, size);
memset(obj, 0, size); memset(obj, 0, size);
lutil_setmetatablep(L, p); lutil_setmetatablep(L, p);
return obj; return obj;
} }
void lutil_pushint64(lua_State *L, int64_t v){ void lutil_pushint64(lua_State *L, int64_t v){
if(sizeof(lua_Integer) >= sizeof(int64_t)){ if(sizeof(lua_Integer) >= sizeof(int64_t)){
lua_pushinteger(L, (lua_Integer)v); lua_pushinteger(L, (lua_Integer)v);
return; return;
} }
lua_pushnumber(L, (lua_Number)v); lua_pushnumber(L, (lua_Number)v);
} }
int64_t lutil_checkint64(lua_State *L, int idx){ int64_t lutil_checkint64(lua_State *L, int idx){
if(sizeof(lua_Integer) >= sizeof(int64_t)) if(sizeof(lua_Integer) >= sizeof(int64_t))
return luaL_checkinteger(L, idx); return luaL_checkinteger(L, idx);
return (int64_t)luaL_checknumber(L, idx); return (int64_t)luaL_checknumber(L, idx);
} }
int64_t lutil_optint64(lua_State *L, int idx, int64_t v){ int64_t lutil_optint64(lua_State *L, int idx, int64_t v){
if(sizeof(lua_Integer) >= sizeof(int64_t)) if(sizeof(lua_Integer) >= sizeof(int64_t))
return luaL_optinteger(L, idx, v); return luaL_optinteger(L, idx, v);
return (int64_t)luaL_optnumber(L, idx, v); return (int64_t)luaL_optnumber(L, idx, v);
} }
void lutil_pushnvalues(lua_State *L, int n){ void lutil_pushnvalues(lua_State *L, int n){
for(;n;--n) lua_pushvalue(L, -n); for(;n;--n) lua_pushvalue(L, -n);
} }

View File

@ -1,33 +1,33 @@
/****************************************************************************** /******************************************************************************
* Author: Alexey Melnichuk <mimir@newmail.ru> * Author: Alexey Melnichuk <mimir@newmail.ru>
* *
* Copyright (C) 2014 Alexey Melnichuk <mimir@newmail.ru> * Copyright (C) 2014 Alexey Melnichuk <mimir@newmail.ru>
* *
* Licensed according to the included 'LICENSE' document * Licensed according to the included 'LICENSE' document
* *
* This file is part of lua-lcurl library. * This file is part of lua-lcurl library.
******************************************************************************/ ******************************************************************************/
#ifndef _LCERROR_H_ #ifndef _LCERROR_H_
#define _LCERROR_H_ #define _LCERROR_H_
#include "lcurl.h" #include "lcurl.h"
#define LCURL_ERROR_CURL 1 #define LCURL_ERROR_CURL 1
#define LCURL_ERROR_EASY 1 #define LCURL_ERROR_EASY 1
#define LCURL_ERROR_MULTI 2 #define LCURL_ERROR_MULTI 2
#define LCURL_ERROR_SHARE 3 #define LCURL_ERROR_SHARE 3
#define LCURL_ERROR_FORM 4 #define LCURL_ERROR_FORM 4
#define LCURL_ERROR_RETURN 1 #define LCURL_ERROR_RETURN 1
#define LCURL_ERROR_RAISE 2 #define LCURL_ERROR_RAISE 2
int lcurl_fail(lua_State *L, int error_type, int code); int lcurl_fail(lua_State *L, int error_type, int code);
int lcurl_fail_ex(lua_State *L, int mode, int error_type, int code); int lcurl_fail_ex(lua_State *L, int mode, int error_type, int code);
int lcurl_error_new(lua_State *L); int lcurl_error_new(lua_State *L);
void lcurl_error_initlib(lua_State *L, int nup); void lcurl_error_initlib(lua_State *L, int nup);
#endif #endif

View File

@ -1,158 +1,163 @@
/* Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options */ /* Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options */
FLG_ENTRY(AUTH_NONE ) FLG_ENTRY(AUTH_NONE )
FLG_ENTRY(AUTH_BASIC ) FLG_ENTRY(AUTH_BASIC )
FLG_ENTRY(AUTH_DIGEST ) FLG_ENTRY(AUTH_DIGEST )
FLG_ENTRY(AUTH_GSSNEGOTIATE ) FLG_ENTRY(AUTH_GSSNEGOTIATE )
#if LCURL_CURL_VER_GE(7,38,0) #if LCURL_CURL_VER_GE(7,38,0)
FLG_ENTRY(AUTH_NEGOTIATE ) FLG_ENTRY(AUTH_NEGOTIATE )
#endif #endif
FLG_ENTRY(AUTH_NTLM ) FLG_ENTRY(AUTH_NTLM )
#if LCURL_CURL_VER_GE(7,19,3) #if LCURL_CURL_VER_GE(7,19,3)
FLG_ENTRY(AUTH_DIGEST_IE ) FLG_ENTRY(AUTH_DIGEST_IE )
#endif #endif
#if LCURL_CURL_VER_GE(7,22,0) #if LCURL_CURL_VER_GE(7,22,0)
FLG_ENTRY(AUTH_NTLM_WB ) FLG_ENTRY(AUTH_NTLM_WB )
#endif #endif
#if LCURL_CURL_VER_GE(7,21,3) #if LCURL_CURL_VER_GE(7,21,3)
FLG_ENTRY(AUTH_ONLY ) FLG_ENTRY(AUTH_ONLY )
#endif #endif
FLG_ENTRY(AUTH_ANY ) FLG_ENTRY(AUTH_ANY )
FLG_ENTRY(AUTH_ANYSAFE ) FLG_ENTRY(AUTH_ANYSAFE )
#ifdef CURLSSH_AUTH_ANY #ifdef CURLSSH_AUTH_ANY
FLG_ENTRY(SSH_AUTH_ANY ) FLG_ENTRY(SSH_AUTH_ANY )
#endif #endif
#ifdef CURLSSH_AUTH_NONE #ifdef CURLSSH_AUTH_NONE
FLG_ENTRY(SSH_AUTH_NONE ) FLG_ENTRY(SSH_AUTH_NONE )
#endif #endif
#ifdef CURLSSH_AUTH_PUBLICKEY #ifdef CURLSSH_AUTH_PUBLICKEY
FLG_ENTRY(SSH_AUTH_PUBLICKEY ) FLG_ENTRY(SSH_AUTH_PUBLICKEY )
#endif #endif
#ifdef CURLSSH_AUTH_PASSWORD #ifdef CURLSSH_AUTH_PASSWORD
FLG_ENTRY(SSH_AUTH_PASSWORD ) FLG_ENTRY(SSH_AUTH_PASSWORD )
#endif #endif
#ifdef CURLSSH_AUTH_HOST #ifdef CURLSSH_AUTH_HOST
FLG_ENTRY(SSH_AUTH_HOST ) FLG_ENTRY(SSH_AUTH_HOST )
#endif #endif
#ifdef CURLSSH_AUTH_KEYBOARD #ifdef CURLSSH_AUTH_KEYBOARD
FLG_ENTRY(SSH_AUTH_KEYBOARD ) FLG_ENTRY(SSH_AUTH_KEYBOARD )
#endif #endif
#ifdef CURLSSH_AUTH_AGENT #ifdef CURLSSH_AUTH_AGENT
FLG_ENTRY(SSH_AUTH_AGENT ) FLG_ENTRY(SSH_AUTH_AGENT )
#endif #endif
#ifdef CURLSSH_AUTH_DEFAULT #ifdef CURLSSH_AUTH_DEFAULT
FLG_ENTRY(SSH_AUTH_DEFAULT ) FLG_ENTRY(SSH_AUTH_DEFAULT )
#endif #endif
#ifdef CURLGSSAPI_DELEGATION_NONE
FLG_ENTRY(GSSAPI_DELEGATION_NONE ) FLG_ENTRY(GSSAPI_DELEGATION_NONE )
FLG_ENTRY(GSSAPI_DELEGATION_POLICY_FLAG ) #endif
FLG_ENTRY(GSSAPI_DELEGATION_FLAG ) #ifdef CURLGSSAPI_DELEGATION_POLICY_FLAG
FLG_ENTRY(GSSAPI_DELEGATION_POLICY_FLAG )
/* Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options */ #endif
FLG_ENTRY(USESSL_NONE ) #ifdef CURLGSSAPI_DELEGATION_FLAG
FLG_ENTRY(USESSL_TRY ) FLG_ENTRY(GSSAPI_DELEGATION_FLAG )
FLG_ENTRY(USESSL_CONTROL ) #endif
FLG_ENTRY(USESSL_ALL )
#ifdef CURLSSLOPT_ALLOW_BEAST /* Bitmasks for CURLOPT_HTTPAUTH and CURLOPT_PROXYAUTH options */
FLG_ENTRY(SSLOPT_ALLOW_BEAST ) FLG_ENTRY(USESSL_NONE )
#endif FLG_ENTRY(USESSL_TRY )
FLG_ENTRY(USESSL_CONTROL )
/* parameter for the CURLOPT_FTP_SSL_CCC option */ FLG_ENTRY(USESSL_ALL )
FLG_ENTRY(FTPSSL_CCC_NONE ) #ifdef CURLSSLOPT_ALLOW_BEAST
FLG_ENTRY(FTPSSL_CCC_PASSIVE ) FLG_ENTRY(SSLOPT_ALLOW_BEAST )
FLG_ENTRY(FTPSSL_CCC_ACTIVE ) #endif
/* parameter for the CURLOPT_FTPSSLAUTH option */ /* parameter for the CURLOPT_FTP_SSL_CCC option */
FLG_ENTRY(FTPAUTH_DEFAULT ) FLG_ENTRY(FTPSSL_CCC_NONE )
FLG_ENTRY(FTPAUTH_SSL ) FLG_ENTRY(FTPSSL_CCC_PASSIVE )
FLG_ENTRY(FTPAUTH_TLS ) FLG_ENTRY(FTPSSL_CCC_ACTIVE )
/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */ /* parameter for the CURLOPT_FTPSSLAUTH option */
FLG_ENTRY(FTP_CREATE_DIR_NONE ) FLG_ENTRY(FTPAUTH_DEFAULT )
FLG_ENTRY(FTP_CREATE_DIR ) FLG_ENTRY(FTPAUTH_SSL )
FLG_ENTRY(FTP_CREATE_DIR_RETRY ) FLG_ENTRY(FTPAUTH_TLS )
FLG_ENTRY(FTP_CREATE_DIR_LAST )
/* parameter for the CURLOPT_FTP_CREATE_MISSING_DIRS option */
/* parameter for the CURLOPT_FTP_FILEMETHOD option */ FLG_ENTRY(FTP_CREATE_DIR_NONE )
FLG_ENTRY(FTPMETHOD_DEFAULT ) FLG_ENTRY(FTP_CREATE_DIR )
FLG_ENTRY(FTPMETHOD_MULTICWD ) FLG_ENTRY(FTP_CREATE_DIR_RETRY )
FLG_ENTRY(FTPMETHOD_NOCWD ) FLG_ENTRY(FTP_CREATE_DIR_LAST )
FLG_ENTRY(FTPMETHOD_SINGLECWD )
/* parameter for the CURLOPT_FTP_FILEMETHOD option */
/* bitmask defines for CURLOPT_HEADEROPT */ FLG_ENTRY(FTPMETHOD_DEFAULT )
#if LCURL_CURL_VER_GE(7,37,0) FLG_ENTRY(FTPMETHOD_MULTICWD )
FLG_ENTRY(HEADER_UNIFIED ) FLG_ENTRY(FTPMETHOD_NOCWD )
FLG_ENTRY(HEADER_SEPARATE ) FLG_ENTRY(FTPMETHOD_SINGLECWD )
#endif
/* bitmask defines for CURLOPT_HEADEROPT */
/* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */ #if LCURL_CURL_VER_GE(7,37,0)
FLG_ENTRY(PROTO_HTTP ) FLG_ENTRY(HEADER_UNIFIED )
FLG_ENTRY(PROTO_HTTPS ) FLG_ENTRY(HEADER_SEPARATE )
FLG_ENTRY(PROTO_FTP ) #endif
FLG_ENTRY(PROTO_FTPS )
FLG_ENTRY(PROTO_SCP ) /* CURLPROTO_ defines are for the CURLOPT_*PROTOCOLS options */
FLG_ENTRY(PROTO_SFTP ) FLG_ENTRY(PROTO_HTTP )
FLG_ENTRY(PROTO_TELNET ) FLG_ENTRY(PROTO_HTTPS )
FLG_ENTRY(PROTO_LDAP ) FLG_ENTRY(PROTO_FTP )
FLG_ENTRY(PROTO_LDAPS ) FLG_ENTRY(PROTO_FTPS )
FLG_ENTRY(PROTO_DICT ) FLG_ENTRY(PROTO_SCP )
FLG_ENTRY(PROTO_FILE ) FLG_ENTRY(PROTO_SFTP )
FLG_ENTRY(PROTO_TFTP ) FLG_ENTRY(PROTO_TELNET )
#ifdef CURLPROTO_IMAP FLG_ENTRY(PROTO_LDAP )
FLG_ENTRY(PROTO_IMAP ) FLG_ENTRY(PROTO_LDAPS )
#endif FLG_ENTRY(PROTO_DICT )
#ifdef CURLPROTO_IMAPS FLG_ENTRY(PROTO_FILE )
FLG_ENTRY(PROTO_IMAPS ) FLG_ENTRY(PROTO_TFTP )
#endif #ifdef CURLPROTO_IMAP
#ifdef CURLPROTO_POP3 FLG_ENTRY(PROTO_IMAP )
FLG_ENTRY(PROTO_POP3 ) #endif
#endif #ifdef CURLPROTO_IMAPS
#ifdef CURLPROTO_POP3S FLG_ENTRY(PROTO_IMAPS )
FLG_ENTRY(PROTO_POP3S ) #endif
#endif #ifdef CURLPROTO_POP3
#ifdef CURLPROTO_SMTP FLG_ENTRY(PROTO_POP3 )
FLG_ENTRY(PROTO_SMTP ) #endif
#endif #ifdef CURLPROTO_POP3S
#ifdef CURLPROTO_SMTPS FLG_ENTRY(PROTO_POP3S )
FLG_ENTRY(PROTO_SMTPS ) #endif
#endif #ifdef CURLPROTO_SMTP
#ifdef CURLPROTO_RTSP FLG_ENTRY(PROTO_SMTP )
FLG_ENTRY(PROTO_RTSP ) #endif
#endif #ifdef CURLPROTO_SMTPS
#ifdef CURLPROTO_RTMP FLG_ENTRY(PROTO_SMTPS )
FLG_ENTRY(PROTO_RTMP ) #endif
#endif #ifdef CURLPROTO_RTSP
#ifdef CURLPROTO_RTMPT FLG_ENTRY(PROTO_RTSP )
FLG_ENTRY(PROTO_RTMPT ) #endif
#endif #ifdef CURLPROTO_RTMP
#ifdef CURLPROTO_RTMPE FLG_ENTRY(PROTO_RTMP )
FLG_ENTRY(PROTO_RTMPE ) #endif
#endif #ifdef CURLPROTO_RTMPT
#ifdef CURLPROTO_RTMPTE FLG_ENTRY(PROTO_RTMPT )
FLG_ENTRY(PROTO_RTMPTE ) #endif
#endif #ifdef CURLPROTO_RTMPE
#ifdef CURLPROTO_RTMPS FLG_ENTRY(PROTO_RTMPE )
FLG_ENTRY(PROTO_RTMPS ) #endif
#endif #ifdef CURLPROTO_RTMPTE
#ifdef CURLPROTO_RTMPTS FLG_ENTRY(PROTO_RTMPTE )
FLG_ENTRY(PROTO_RTMPTS ) #endif
#endif #ifdef CURLPROTO_RTMPS
#ifdef CURLPROTO_GOPHER FLG_ENTRY(PROTO_RTMPS )
FLG_ENTRY(PROTO_GOPHER ) #endif
#endif #ifdef CURLPROTO_RTMPTS
FLG_ENTRY(PROTO_ALL ) FLG_ENTRY(PROTO_RTMPTS )
#endif
FLG_ENTRY(PROXY_HTTP ) /* added in 7.10.0 */ #ifdef CURLPROTO_GOPHER
FLG_ENTRY(PROXY_HTTP_1_0 ) /* added in 7.19.4 */ FLG_ENTRY(PROTO_GOPHER )
FLG_ENTRY(PROXY_SOCKS4 ) /* added in 7.15.2 */ #endif
FLG_ENTRY(PROXY_SOCKS5 ) /* added in 7.10.0 */ FLG_ENTRY(PROTO_ALL )
FLG_ENTRY(PROXY_SOCKS4A ) /* added in 7.18.0 */
FLG_ENTRY(PROXY_SOCKS5_HOSTNAME ) /* added in 7.18.0 */ FLG_ENTRY(PROXY_HTTP ) /* added in 7.10.0 */
FLG_ENTRY(PROXY_HTTP_1_0 ) /* added in 7.19.4 */
FLG_ENTRY(PAUSE_ALL ) /* added in 7.18.0 */ FLG_ENTRY(PROXY_SOCKS4 ) /* added in 7.15.2 */
FLG_ENTRY(PAUSE_CONT ) /* added in 7.18.0 */ FLG_ENTRY(PROXY_SOCKS5 ) /* added in 7.10.0 */
FLG_ENTRY(PAUSE_RECV ) /* added in 7.18.0 */ FLG_ENTRY(PROXY_SOCKS4A ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_RECV_CONT ) /* added in 7.18.0 */ FLG_ENTRY(PROXY_SOCKS5_HOSTNAME ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_SEND ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_SEND_CONT ) /* added in 7.18.0 */ FLG_ENTRY(PAUSE_ALL ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_CONT ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_RECV ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_RECV_CONT ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_SEND ) /* added in 7.18.0 */
FLG_ENTRY(PAUSE_SEND_CONT ) /* added in 7.18.0 */