mirror of
https://github.com/curl/curl.git
synced 2026-04-11 12:01:42 +08:00
tool_setopt: reduce use of "code hiding" macros
CODEx, DATAx, CLEANx, DECLx, REM3, CHKRET are all removed now. Closes #16709
This commit is contained in:
parent
212f9a9742
commit
acdb48272a
@ -37,13 +37,13 @@
|
||||
|
||||
/* global variable definitions, for easy-interface source code generation */
|
||||
|
||||
struct slist_wc *easysrc_decl = NULL; /* Variable declarations */
|
||||
struct slist_wc *easysrc_data = NULL; /* Build slists, forms etc. */
|
||||
struct slist_wc *easysrc_code = NULL; /* Setopt calls */
|
||||
struct slist_wc *easysrc_toohard = NULL; /* Unconvertible setopt */
|
||||
struct slist_wc *easysrc_clean = NULL; /* Clean up allocated data */
|
||||
int easysrc_mime_count = 0;
|
||||
int easysrc_slist_count = 0;
|
||||
struct slist_wc *easysrc_decl; /* Variable declarations */
|
||||
struct slist_wc *easysrc_data; /* Build slists, forms etc. */
|
||||
struct slist_wc *easysrc_code; /* Setopt calls */
|
||||
struct slist_wc *easysrc_toohard; /* Unconvertible setopt */
|
||||
struct slist_wc *easysrc_clean; /* Clean up allocated data */
|
||||
int easysrc_mime_count;
|
||||
int easysrc_slist_count;
|
||||
|
||||
static const char *const srchead[]={
|
||||
"/********* Sample code generated by the curl command line tool **********",
|
||||
@ -123,51 +123,53 @@ CURLcode easysrc_addf(struct slist_wc **plist, const char *fmt, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define CHKRET(v) do {CURLcode ret = (v); if(ret) return ret;} while(0)
|
||||
|
||||
CURLcode easysrc_init(void)
|
||||
{
|
||||
CHKRET(easysrc_add(&easysrc_code,
|
||||
"hnd = curl_easy_init();"));
|
||||
return CURLE_OK;
|
||||
return easysrc_add(&easysrc_code, "hnd = curl_easy_init();");
|
||||
}
|
||||
|
||||
CURLcode easysrc_perform(void)
|
||||
{
|
||||
CURLcode ret = CURLE_OK;
|
||||
/* Note any setopt calls which we could not convert */
|
||||
if(easysrc_toohard) {
|
||||
int i;
|
||||
struct curl_slist *ptr;
|
||||
const char *c;
|
||||
CHKRET(easysrc_add(&easysrc_code, ""));
|
||||
ret = easysrc_add(&easysrc_code, "");
|
||||
/* Preamble comment */
|
||||
for(i = 0; ((c = srchard[i]) != NULL); i++)
|
||||
CHKRET(easysrc_add(&easysrc_code, c));
|
||||
for(i = 0; srchard[i] && !ret; i++)
|
||||
ret = easysrc_add(&easysrc_code, srchard[i]);
|
||||
/* Each unconverted option */
|
||||
if(easysrc_toohard) {
|
||||
for(ptr = easysrc_toohard->first; ptr; ptr = ptr->next)
|
||||
CHKRET(easysrc_add(&easysrc_code, ptr->data));
|
||||
if(easysrc_toohard && !ret) {
|
||||
for(ptr = easysrc_toohard->first; ptr && !ret; ptr = ptr->next)
|
||||
ret = easysrc_add(&easysrc_code, ptr->data);
|
||||
}
|
||||
CHKRET(easysrc_add(&easysrc_code, ""));
|
||||
CHKRET(easysrc_add(&easysrc_code, "*/"));
|
||||
if(!ret)
|
||||
ret = easysrc_add(&easysrc_code, "");
|
||||
if(!ret)
|
||||
ret = easysrc_add(&easysrc_code, "*/");
|
||||
|
||||
slist_wc_free_all(easysrc_toohard);
|
||||
easysrc_toohard = NULL;
|
||||
}
|
||||
|
||||
CHKRET(easysrc_add(&easysrc_code, ""));
|
||||
CHKRET(easysrc_add(&easysrc_code, "ret = curl_easy_perform(hnd);"));
|
||||
CHKRET(easysrc_add(&easysrc_code, ""));
|
||||
if(!ret)
|
||||
ret = easysrc_add(&easysrc_code, "");
|
||||
if(!ret)
|
||||
ret = easysrc_add(&easysrc_code, "ret = curl_easy_perform(hnd);");
|
||||
if(!ret)
|
||||
ret = easysrc_add(&easysrc_code, "");
|
||||
|
||||
return CURLE_OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
CURLcode easysrc_cleanup(void)
|
||||
{
|
||||
CHKRET(easysrc_add(&easysrc_code, "curl_easy_cleanup(hnd);"));
|
||||
CHKRET(easysrc_add(&easysrc_code, "hnd = NULL;"));
|
||||
CURLcode ret = easysrc_add(&easysrc_code, "curl_easy_cleanup(hnd);");
|
||||
if(!ret)
|
||||
ret = easysrc_add(&easysrc_code, "hnd = NULL;");
|
||||
|
||||
return CURLE_OK;
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dumpeasysrc(struct GlobalConfig *config)
|
||||
|
||||
@ -168,47 +168,7 @@ static const struct NameValue setopt_nv_CURLNONZERODEFAULTS[] = {
|
||||
NVEND
|
||||
};
|
||||
|
||||
/* Format and add code; jump to nomem on malloc error */
|
||||
#define ADD(args) do { \
|
||||
ret = easysrc_add args; \
|
||||
if(ret) \
|
||||
goto nomem; \
|
||||
} while(0)
|
||||
#define ADDF(args) do { \
|
||||
ret = easysrc_addf args; \
|
||||
if(ret) \
|
||||
goto nomem; \
|
||||
} while(0)
|
||||
#define NULL_CHECK(p) do { \
|
||||
if(!p) { \
|
||||
ret = CURLE_OUT_OF_MEMORY; \
|
||||
goto nomem; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/* #define DECL0(s) ADD((&easysrc_decl, s)) */
|
||||
#define DECL1(f,a) ADDF((&easysrc_decl, f,a))
|
||||
|
||||
/* #define DATA0(s) ADD((&easysrc_data, s)) */
|
||||
#define DATA1(f,a) ADDF((&easysrc_data, f,a))
|
||||
/* #define DATA2(f,a,b) ADDF((&easysrc_data, f,a,b)) */
|
||||
#define DATA3(f,a,b,c) ADDF((&easysrc_data, f,a,b,c))
|
||||
|
||||
#define CODE0(s) ADD((&easysrc_code, s))
|
||||
#define CODE1(f,a) ADDF((&easysrc_code, f,a))
|
||||
#define CODE2(f,a,b) ADDF((&easysrc_code, f,a,b))
|
||||
#define CODE3(f,a,b,c) ADDF((&easysrc_code, f,a,b,c))
|
||||
|
||||
/* #define CLEAN0(s) ADD((&easysrc_clean, s)) */
|
||||
#define CLEAN1(f,a) ADDF((&easysrc_clean, f,a))
|
||||
|
||||
/* #define REM0(s) ADD((&easysrc_toohard, s)) */
|
||||
/* #define REM1(f,a) ADDF((&easysrc_toohard, f,a)) */
|
||||
#define REM3(f,a,b,c) ADDF((&easysrc_toohard, f,a,b,c))
|
||||
|
||||
/* Escape string to C string syntax. Return NULL if out of memory.
|
||||
* Is this correct for those wacky EBCDIC guys? */
|
||||
|
||||
/* Escape string to C string syntax. Return NULL if out of memory. */
|
||||
#define MAX_STRING_LENGTH_OUTPUT 2000
|
||||
#define ZERO_TERMINATED -1
|
||||
|
||||
@ -289,10 +249,12 @@ CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config,
|
||||
/* If no definition was found, output an explicit value.
|
||||
* This could happen if new values are defined and used
|
||||
* but the NameValue list is not updated. */
|
||||
CODE2("curl_easy_setopt(hnd, %s, %ldL);", name, lval);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, %ldL);",
|
||||
name, lval);
|
||||
}
|
||||
else {
|
||||
CODE2("curl_easy_setopt(hnd, %s, (long)%s);", name, nv->name);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, (long)%s);",
|
||||
name, nv->name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -300,7 +262,6 @@ CURLcode tool_setopt_enum(CURL *curl, struct GlobalConfig *config,
|
||||
if(ret)
|
||||
warnf(config, "option %s returned error (%d)", name, (int)ret);
|
||||
#endif
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -332,11 +293,13 @@ CURLcode tool_setopt_SSLVERSION(CURL *curl, struct GlobalConfig *config,
|
||||
/* If no definition was found, output an explicit value.
|
||||
* This could happen if new values are defined and used
|
||||
* but the NameValue list is not updated. */
|
||||
CODE2("curl_easy_setopt(hnd, %s, %ldL);", name, lval);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, %ldL);",
|
||||
name, lval);
|
||||
}
|
||||
else {
|
||||
CODE3("curl_easy_setopt(hnd, %s, (long)(%s | %s));",
|
||||
name, nv->name, nv2->name);
|
||||
ret = easysrc_addf(&easysrc_code,
|
||||
"curl_easy_setopt(hnd, %s, (long)(%s | %s));",
|
||||
name, nv->name, nv2->name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -344,7 +307,6 @@ CURLcode tool_setopt_SSLVERSION(CURL *curl, struct GlobalConfig *config,
|
||||
if(ret)
|
||||
warnf(config, "option %s returned error (%d)", name, (int)ret);
|
||||
#endif
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -354,10 +316,8 @@ CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config,
|
||||
const struct NameValueUnsigned *nvlist,
|
||||
long lval)
|
||||
{
|
||||
CURLcode ret = CURLE_OK;
|
||||
bool skip = FALSE;
|
||||
|
||||
ret = curl_easy_setopt(curl, tag, lval);
|
||||
CURLcode ret = curl_easy_setopt(curl, tag, lval);
|
||||
if(!lval)
|
||||
skip = TRUE;
|
||||
|
||||
@ -372,9 +332,9 @@ CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config,
|
||||
if((nv->value & ~ rest) == 0) {
|
||||
/* all value flags contained in rest */
|
||||
rest &= ~ nv->value; /* remove bits handled here */
|
||||
CODE3("%s(long)%s%s",
|
||||
preamble, nv->name, rest ? " |" : ");");
|
||||
if(!rest)
|
||||
ret = easysrc_addf(&easysrc_code, "%s(long)%s%s",
|
||||
preamble, nv->name, rest ? " |" : ");");
|
||||
if(!rest || ret)
|
||||
break; /* handled them all */
|
||||
/* replace with all spaces for continuation line */
|
||||
msnprintf(preamble, sizeof(preamble), "%*s", (int)strlen(preamble),
|
||||
@ -384,11 +344,10 @@ CURLcode tool_setopt_bitmask(CURL *curl, struct GlobalConfig *config,
|
||||
/* If any bits have no definition, output an explicit value.
|
||||
* This could happen if new bits are defined and used
|
||||
* but the NameValue list is not updated. */
|
||||
if(rest)
|
||||
CODE2("%s%luUL);", preamble, rest);
|
||||
if(rest && !ret)
|
||||
ret = easysrc_addf(&easysrc_code, "%s%luUL);", preamble, rest);
|
||||
}
|
||||
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -396,26 +355,30 @@ nomem:
|
||||
static CURLcode libcurl_generate_slist(struct curl_slist *slist, int *slistno)
|
||||
{
|
||||
CURLcode ret = CURLE_OK;
|
||||
char *escaped = NULL;
|
||||
|
||||
/* May need several slist variables, so invent name */
|
||||
*slistno = ++easysrc_slist_count;
|
||||
|
||||
DECL1("struct curl_slist *slist%d;", *slistno);
|
||||
DATA1("slist%d = NULL;", *slistno);
|
||||
CLEAN1("curl_slist_free_all(slist%d);", *slistno);
|
||||
CLEAN1("slist%d = NULL;", *slistno);
|
||||
for(; slist; slist = slist->next) {
|
||||
free(escaped);
|
||||
escaped = c_escape(slist->data, ZERO_TERMINATED);
|
||||
ret = easysrc_addf(&easysrc_decl, "struct curl_slist *slist%d;", *slistno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_data, "slist%d = NULL;", *slistno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_clean, "curl_slist_free_all(slist%d);",
|
||||
*slistno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_clean, "slist%d = NULL;", *slistno);
|
||||
if(ret)
|
||||
return ret;
|
||||
for(; slist && !ret; slist = slist->next) {
|
||||
char *escaped = c_escape(slist->data, ZERO_TERMINATED);
|
||||
if(!escaped)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
DATA3("slist%d = curl_slist_append(slist%d, \"%s\");",
|
||||
*slistno, *slistno, escaped);
|
||||
ret = easysrc_addf(&easysrc_data,
|
||||
"slist%d = curl_slist_append(slist%d, \"%s\");",
|
||||
*slistno, *slistno, escaped);
|
||||
free(escaped);
|
||||
}
|
||||
|
||||
nomem:
|
||||
curlx_safefree(escaped);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -432,49 +395,57 @@ static CURLcode libcurl_generate_mime_part(CURL *curl,
|
||||
{
|
||||
CURLcode ret = CURLE_OK;
|
||||
int submimeno = 0;
|
||||
char *escaped = NULL;
|
||||
const char *data = NULL;
|
||||
const char *filename = part->filename;
|
||||
|
||||
/* Parts are linked in reverse order. */
|
||||
if(part->prev) {
|
||||
if(part->prev)
|
||||
ret = libcurl_generate_mime_part(curl, config, part->prev, mimeno);
|
||||
if(ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Create the part. */
|
||||
CODE2("part%d = curl_mime_addpart(mime%d);", mimeno, mimeno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_code, "part%d = curl_mime_addpart(mime%d);",
|
||||
mimeno, mimeno);
|
||||
if(ret)
|
||||
return ret;
|
||||
|
||||
switch(part->kind) {
|
||||
case TOOLMIME_PARTS:
|
||||
ret = libcurl_generate_mime(curl, config, part, &submimeno);
|
||||
if(!ret) {
|
||||
CODE2("curl_mime_subparts(part%d, mime%d);", mimeno, submimeno);
|
||||
CODE1("mime%d = NULL;", submimeno); /* Avoid freeing in CLEAN. */
|
||||
ret = easysrc_addf(&easysrc_code, "curl_mime_subparts(part%d, mime%d);",
|
||||
mimeno, submimeno);
|
||||
if(!ret)
|
||||
/* Avoid freeing in CLEAN. */
|
||||
ret = easysrc_addf(&easysrc_code,
|
||||
"mime%d = NULL;", submimeno);
|
||||
}
|
||||
break;
|
||||
|
||||
case TOOLMIME_DATA:
|
||||
data = part->data;
|
||||
if(!ret) {
|
||||
char *escaped = c_escape(data, ZERO_TERMINATED);
|
||||
ret =
|
||||
easysrc_addf(&easysrc_code,
|
||||
"curl_mime_data(part%d, \"%s\", CURL_ZERO_TERMINATED);",
|
||||
mimeno, escaped);
|
||||
free(escaped);
|
||||
escaped = c_escape(data, ZERO_TERMINATED);
|
||||
NULL_CHECK(escaped);
|
||||
CODE2("curl_mime_data(part%d, \"%s\", CURL_ZERO_TERMINATED);",
|
||||
mimeno, escaped);
|
||||
}
|
||||
break;
|
||||
|
||||
case TOOLMIME_FILE:
|
||||
case TOOLMIME_FILEDATA:
|
||||
escaped = c_escape(part->data, ZERO_TERMINATED);
|
||||
NULL_CHECK(escaped);
|
||||
CODE2("curl_mime_filedata(part%d, \"%s\");", mimeno, escaped);
|
||||
if(part->kind == TOOLMIME_FILEDATA && !filename) {
|
||||
CODE1("curl_mime_filename(part%d, NULL);", mimeno);
|
||||
case TOOLMIME_FILEDATA: {
|
||||
char *escaped = c_escape(part->data, ZERO_TERMINATED);
|
||||
ret = easysrc_addf(&easysrc_code,
|
||||
"curl_mime_filedata(part%d, \"%s\");", mimeno, escaped);
|
||||
if(part->kind == TOOLMIME_FILEDATA && !filename && !ret) {
|
||||
ret = easysrc_addf(&easysrc_code,
|
||||
"curl_mime_filename(part%d, NULL);", mimeno);
|
||||
}
|
||||
free(escaped);
|
||||
break;
|
||||
}
|
||||
|
||||
case TOOLMIME_STDIN:
|
||||
if(!filename)
|
||||
@ -482,9 +453,11 @@ static CURLcode libcurl_generate_mime_part(CURL *curl,
|
||||
FALLTHROUGH();
|
||||
case TOOLMIME_STDINDATA:
|
||||
/* Can only be reading stdin in the current context. */
|
||||
CODE1("curl_mime_data_cb(part%d, -1, (curl_read_callback) fread, \\",
|
||||
mimeno);
|
||||
CODE0(" (curl_seek_callback) fseek, NULL, stdin);");
|
||||
ret = easysrc_addf(&easysrc_code, "curl_mime_data_cb(part%d, -1, "
|
||||
"(curl_read_callback) fread, \\", mimeno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_code, " "
|
||||
"(curl_seek_callback) fseek, NULL, stdin);");
|
||||
break;
|
||||
default:
|
||||
/* Other cases not possible in this context. */
|
||||
@ -492,31 +465,31 @@ static CURLcode libcurl_generate_mime_part(CURL *curl,
|
||||
}
|
||||
|
||||
if(!ret && part->encoder) {
|
||||
char *escaped = c_escape(part->encoder, ZERO_TERMINATED);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_mime_encoder(part%d, \"%s\");",
|
||||
mimeno, escaped);
|
||||
free(escaped);
|
||||
escaped = c_escape(part->encoder, ZERO_TERMINATED);
|
||||
NULL_CHECK(escaped);
|
||||
CODE2("curl_mime_encoder(part%d, \"%s\");", mimeno, escaped);
|
||||
}
|
||||
|
||||
if(!ret && filename) {
|
||||
char *escaped = c_escape(filename, ZERO_TERMINATED);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_mime_filename(part%d, \"%s\");",
|
||||
mimeno, escaped);
|
||||
free(escaped);
|
||||
escaped = c_escape(filename, ZERO_TERMINATED);
|
||||
NULL_CHECK(escaped);
|
||||
CODE2("curl_mime_filename(part%d, \"%s\");", mimeno, escaped);
|
||||
}
|
||||
|
||||
if(!ret && part->name) {
|
||||
char *escaped = c_escape(part->name, ZERO_TERMINATED);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_mime_name(part%d, \"%s\");",
|
||||
mimeno, escaped);
|
||||
free(escaped);
|
||||
escaped = c_escape(part->name, ZERO_TERMINATED);
|
||||
NULL_CHECK(escaped);
|
||||
CODE2("curl_mime_name(part%d, \"%s\");", mimeno, escaped);
|
||||
}
|
||||
|
||||
if(!ret && part->type) {
|
||||
char *escaped = c_escape(part->type, ZERO_TERMINATED);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_mime_type(part%d, \"%s\");",
|
||||
mimeno, escaped);
|
||||
free(escaped);
|
||||
escaped = c_escape(part->type, ZERO_TERMINATED);
|
||||
NULL_CHECK(escaped);
|
||||
CODE2("curl_mime_type(part%d, \"%s\");", mimeno, escaped);
|
||||
}
|
||||
|
||||
if(!ret && part->headers) {
|
||||
@ -524,13 +497,15 @@ static CURLcode libcurl_generate_mime_part(CURL *curl,
|
||||
|
||||
ret = libcurl_generate_slist(part->headers, &slistno);
|
||||
if(!ret) {
|
||||
CODE2("curl_mime_headers(part%d, slist%d, 1);", mimeno, slistno);
|
||||
CODE1("slist%d = NULL;", slistno); /* Prevent CLEANing. */
|
||||
ret = easysrc_addf(&easysrc_code,
|
||||
"curl_mime_headers(part%d, slist%d, 1);",
|
||||
mimeno, slistno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_code,
|
||||
"slist%d = NULL;", slistno); /* Prevent CLEANing. */
|
||||
}
|
||||
}
|
||||
|
||||
nomem:
|
||||
curlx_safefree(escaped);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -544,19 +519,24 @@ static CURLcode libcurl_generate_mime(CURL *curl,
|
||||
|
||||
/* May need several mime variables, so invent name. */
|
||||
*mimeno = ++easysrc_mime_count;
|
||||
DECL1("curl_mime *mime%d;", *mimeno);
|
||||
DATA1("mime%d = NULL;", *mimeno);
|
||||
CODE1("mime%d = curl_mime_init(hnd);", *mimeno);
|
||||
CLEAN1("curl_mime_free(mime%d);", *mimeno);
|
||||
CLEAN1("mime%d = NULL;", *mimeno);
|
||||
ret = easysrc_addf(&easysrc_decl, "curl_mime *mime%d;", *mimeno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_data, "mime%d = NULL;", *mimeno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_code, "mime%d = curl_mime_init(hnd);",
|
||||
*mimeno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_clean, "curl_mime_free(mime%d);", *mimeno);
|
||||
if(!ret)
|
||||
ret = easysrc_addf(&easysrc_clean, "mime%d = NULL;", *mimeno);
|
||||
|
||||
if(toolmime->subparts) {
|
||||
DECL1("curl_mimepart *part%d;", *mimeno);
|
||||
ret = libcurl_generate_mime_part(curl, config,
|
||||
toolmime->subparts, *mimeno);
|
||||
if(toolmime->subparts && !ret) {
|
||||
ret = easysrc_addf(&easysrc_decl, "curl_mimepart *part%d;", *mimeno);
|
||||
if(!ret)
|
||||
ret = libcurl_generate_mime_part(curl, config,
|
||||
toolmime->subparts, *mimeno);
|
||||
}
|
||||
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -573,10 +553,10 @@ CURLcode tool_setopt_mimepost(CURL *curl, struct GlobalConfig *config,
|
||||
config->current->mimeroot, &mimeno);
|
||||
|
||||
if(!ret)
|
||||
CODE2("curl_easy_setopt(hnd, %s, mime%d);", name, mimeno);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, mime%d);",
|
||||
name, mimeno);
|
||||
}
|
||||
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -594,10 +574,10 @@ CURLcode tool_setopt_slist(CURL *curl, struct GlobalConfig *config,
|
||||
|
||||
ret = libcurl_generate_slist(list, &i);
|
||||
if(!ret)
|
||||
CODE2("curl_easy_setopt(hnd, %s, slist%d);", name, i);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, slist%d);",
|
||||
name, i);
|
||||
}
|
||||
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -621,9 +601,9 @@ CURLcode tool_setopt_long(CURL *curl, struct GlobalConfig *global,
|
||||
ret = curl_easy_setopt(curl, tag, lval);
|
||||
if((lval != defval) && global->libcurl && !ret) {
|
||||
/* we only use this for real if --libcurl was used */
|
||||
CODE2("curl_easy_setopt(hnd, %s, %ldL);", name, lval);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, %ldL);",
|
||||
name, lval);
|
||||
}
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -638,10 +618,10 @@ CURLcode tool_setopt_offt(CURL *curl, struct GlobalConfig *global,
|
||||
ret = curl_easy_setopt(curl, tag, lval);
|
||||
if(global->libcurl && !ret && lval) {
|
||||
/* we only use this for real if --libcurl was used */
|
||||
CODE2("curl_easy_setopt(hnd, %s, (curl_off_t)%"
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, (curl_off_t)%"
|
||||
CURL_FORMAT_CURL_OFF_T ");", name, lval);
|
||||
}
|
||||
nomem:
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -676,8 +656,9 @@ CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *global,
|
||||
/* function pointers are never printable */
|
||||
const char *remark = (tag >= CURLOPTTYPE_FUNCTIONPOINT) ?
|
||||
"function" : "object";
|
||||
REM3("%s was set to a%s %s pointer", name,
|
||||
(*remark == 'o' ? "n" : ""), remark);
|
||||
ret = easysrc_addf(&easysrc_toohard,
|
||||
"%s was set to a%s %s pointer", name,
|
||||
(*remark == 'o' ? "n" : ""), remark);
|
||||
}
|
||||
else {
|
||||
curl_off_t len = ZERO_TERMINATED;
|
||||
@ -686,13 +667,13 @@ CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *global,
|
||||
len = curlx_dyn_len(&config->postdata);
|
||||
escaped = c_escape(pval, len);
|
||||
if(escaped) {
|
||||
CODE2("curl_easy_setopt(hnd, %s, \"%s\");", name, escaped);
|
||||
ret = easysrc_addf(&easysrc_code, "curl_easy_setopt(hnd, %s, \"%s\");",
|
||||
name, escaped);
|
||||
free(escaped);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nomem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user