提交 7fab8f15 authored 作者: Anthony Minessale's avatar Anthony Minessale

move func in the core to hide the need to wrap it

上级 6ef27f19
......@@ -49,7 +49,7 @@ SWITCH_DECLARE(switch_CURLcode) switch_curl_easy_setopt(CURL *handle, switch_CUR
SWITCH_DECLARE(const char *) switch_curl_easy_strerror(switch_CURLcode errornum );
SWITCH_DECLARE(void) switch_curl_init(void);
SWITCH_DECLARE(void) switch_curl_destroy(void);
SWITCH_DECLARE(switch_status_t) switch_curl_process_form_post_params(switch_event_t *event, switch_CURL *curl_handle, struct curl_httppost **formpostp);
#endif
......
......@@ -1106,58 +1106,6 @@ static void cleanup_attachments(client_t *client)
}
}
static switch_status_t process_form_post_params(client_t *client, switch_CURL *curl_handle, struct curl_httppost **formpostp)
{
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
switch_event_header_t *hp;
int go = 0;
for (hp = client->params->headers; hp; hp = hp->next) {
if (!strncasecmp(hp->name, "attach_file:", 12)) {
go = 1;
break;
}
}
if (!go) {
return SWITCH_STATUS_FALSE;
}
for (hp = client->params->headers; hp; hp = hp->next) {
if (!strncasecmp(hp->name, "attach_file:", 12)) {
char *pname = switch_core_strdup(client->pool, hp->name + 12);
char *fname = strchr(pname, ':');
if (fname && pname) {
*fname++ = '\0';
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, pname,
CURLFORM_FILENAME, fname,
CURLFORM_FILE, hp->value,
CURLFORM_END);
}
} else {
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, hp->name,
CURLFORM_COPYCONTENTS, hp->value,
CURLFORM_END);
}
}
*formpostp = formpost;
return SWITCH_STATUS_SUCCESS;
}
static switch_status_t httapi_sync(client_t *client)
{
......@@ -1208,7 +1156,7 @@ static switch_status_t httapi_sync(client_t *client)
dynamic_url = switch_event_expand_headers(client->params, url);
process_form_post_params(client, curl_handle, &formpost);
switch_curl_process_form_post_params(client->params, curl_handle, &formpost);
if (formpost) {
get_style_method = 1;
......
......@@ -73,3 +73,56 @@ SWITCH_DECLARE(void) switch_curl_destroy(void)
curl_global_cleanup();
}
SWITCH_DECLARE(switch_status_t) switch_curl_process_form_post_params(switch_event_t *event, switch_CURL *curl_handle, struct curl_httppost **formpostp)
{
struct curl_httppost *formpost=NULL;
struct curl_httppost *lastptr=NULL;
switch_event_header_t *hp;
int go = 0;
for (hp = event->headers; hp; hp = hp->next) {
if (!strncasecmp(hp->name, "attach_file:", 12)) {
go = 1;
break;
}
}
if (!go) {
return SWITCH_STATUS_FALSE;
}
for (hp = event->headers; hp; hp = hp->next) {
if (!strncasecmp(hp->name, "attach_file:", 12)) {
char *pname = strdup(hp->name + 12);
char *fname = strchr(pname, ':');
if (fname && pname) {
*fname++ = '\0';
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, pname,
CURLFORM_FILENAME, fname,
CURLFORM_FILE, hp->value,
CURLFORM_END);
}
free(pname);
} else {
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, hp->name,
CURLFORM_COPYCONTENTS, hp->value,
CURLFORM_END);
}
}
*formpostp = formpost;
return SWITCH_STATUS_SUCCESS;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论