X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=uclient.h;h=ddc8b7845f9baaaee13ab766c93db706b191ff33;hb=b97593a2d7599dfb1d815e8ff20332a3a65b650f;hp=25990c06fca3a5b6e9855def09ae863cc3e3a0a8;hpb=cb7867a867e45949950e03de0ea845e483ffc6eb;p=project%2Fuclient.git diff --git a/uclient.h b/uclient.h index 25990c0..ddc8b78 100644 --- a/uclient.h +++ b/uclient.h @@ -32,6 +32,7 @@ enum uclient_error_code { UCLIENT_ERROR_CONNECT, UCLIENT_ERROR_SSL_INVALID_CERT, UCLIENT_ERROR_SSL_CN_MISMATCH, + UCLIENT_ERROR_MISSING_SSL_CONTEXT, }; union uclient_addr { @@ -40,6 +41,17 @@ union uclient_addr { struct sockaddr_in6 sin6; }; +struct uclient_url { + const struct uclient_backend *backend; + int prefix; + + const char *host; + const char *port; + const char *location; + + const char *auth; +}; + struct uclient { const struct uclient_backend *backend; const struct uclient_cb *cb; @@ -70,6 +82,7 @@ void uclient_free(struct uclient *cl); int uclient_set_url(struct uclient *cl, const char *url, const char *auth); int uclient_connect(struct uclient *cl); +void uclient_disconnect(struct uclient *cl); int uclient_read(struct uclient *cl, char *buf, int len); int uclient_write(struct uclient *cl, char *buf, int len); @@ -85,6 +98,7 @@ int uclient_http_set_header(struct uclient *cl, const char *name, const char *va int uclient_http_set_request_type(struct uclient *cl, const char *type); bool uclient_http_redirect(struct uclient *cl); -int uclient_http_set_ssl_ctx(struct uclient *cl, struct ustream_ssl_ctx *ctx, bool require_validation); +int uclient_http_set_ssl_ctx(struct uclient *cl, const struct ustream_ssl_ops *ops, + struct ustream_ssl_ctx *ctx, bool require_validation); #endif