HS 2.0R2: Add wrapper functions for libcurl
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
2cb8f96789
commit
1cb3eda954
2 changed files with 1445 additions and 0 deletions
62
src/utils/http-utils.h
Normal file
62
src/utils/http-utils.h
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* HTTP wrapper
|
||||||
|
* Copyright (c) 2012-2013, Qualcomm Atheros, Inc.
|
||||||
|
*
|
||||||
|
* This software may be distributed under the terms of the BSD license.
|
||||||
|
* See README for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef HTTP_UTILS_H
|
||||||
|
#define HTTP_UTILS_H
|
||||||
|
|
||||||
|
struct http_ctx;
|
||||||
|
|
||||||
|
struct http_othername {
|
||||||
|
char *oid;
|
||||||
|
u8 *data;
|
||||||
|
size_t len;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define HTTP_MAX_CERT_LOGO_HASH 32
|
||||||
|
|
||||||
|
struct http_logo {
|
||||||
|
char *alg_oid;
|
||||||
|
u8 *hash;
|
||||||
|
size_t hash_len;
|
||||||
|
char *uri;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct http_cert {
|
||||||
|
char **dnsname;
|
||||||
|
unsigned int num_dnsname;
|
||||||
|
struct http_othername *othername;
|
||||||
|
unsigned int num_othername;
|
||||||
|
struct http_logo *logo;
|
||||||
|
unsigned int num_logo;
|
||||||
|
};
|
||||||
|
|
||||||
|
int soap_init_client(struct http_ctx *ctx, const char *address,
|
||||||
|
const char *ca_fname, const char *username,
|
||||||
|
const char *password, const char *client_cert,
|
||||||
|
const char *client_key);
|
||||||
|
int soap_reinit_client(struct http_ctx *ctx);
|
||||||
|
xml_node_t * soap_send_receive(struct http_ctx *ctx, xml_node_t *node);
|
||||||
|
|
||||||
|
struct http_ctx * http_init_ctx(void *upper_ctx, struct xml_node_ctx *xml_ctx);
|
||||||
|
void http_ocsp_set(struct http_ctx *ctx, int val);
|
||||||
|
void http_deinit_ctx(struct http_ctx *ctx);
|
||||||
|
|
||||||
|
int http_download_file(struct http_ctx *ctx, const char *url,
|
||||||
|
const char *fname, const char *ca_fname);
|
||||||
|
char * http_post(struct http_ctx *ctx, const char *url, const char *data,
|
||||||
|
const char *content_type, const char *ext_hdr,
|
||||||
|
const char *ca_fname,
|
||||||
|
const char *username, const char *password,
|
||||||
|
const char *client_cert, const char *client_key,
|
||||||
|
size_t *resp_len);
|
||||||
|
void http_set_cert_cb(struct http_ctx *ctx,
|
||||||
|
int (*cb)(void *ctx, struct http_cert *cert),
|
||||||
|
void *cb_ctx);
|
||||||
|
const char * http_get_err(struct http_ctx *ctx);
|
||||||
|
|
||||||
|
#endif /* HTTP_UTILS_H */
|
1383
src/utils/http_curl.c
Normal file
1383
src/utils/http_curl.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue