diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-04-07 21:11:58 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-04-07 21:11:58 +0200 |
commit | cb7867a867e45949950e03de0ea845e483ffc6eb (patch) | |
tree | f3c3987753d5cd6b53d023144fcf3f2a19b7a166 /uclient.h | |
parent | 316bcc8c62e195a892813b050a922ebd3935eba2 (diff) | |
download | uclient-cb7867a867e45949950e03de0ea845e483ffc6eb.tar.gz |
add support for querying local/remote address
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'uclient.h')
-rw-r--r-- | uclient.h | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -18,6 +18,8 @@ #ifndef __LIBUBOX_UCLIENT_H #define __LIBUBOX_UCLIENT_H +#include <netinet/in.h> + #include <libubox/blob.h> #include <libubox/ustream.h> #include <libubox/ustream-ssl.h> @@ -32,10 +34,18 @@ enum uclient_error_code { UCLIENT_ERROR_SSL_CN_MISMATCH, }; +union uclient_addr { + struct sockaddr sa; + struct sockaddr_in sin; + struct sockaddr_in6 sin6; +}; + struct uclient { const struct uclient_backend *backend; const struct uclient_cb *cb; + union uclient_addr local_addr, remote_addr; + struct uclient_url *url; void *priv; @@ -65,6 +75,8 @@ int uclient_read(struct uclient *cl, char *buf, int len); int uclient_write(struct uclient *cl, char *buf, int len); int uclient_request(struct uclient *cl); +char *uclient_get_addr(char *dest, int *port, union uclient_addr *a); + /* HTTP */ extern const struct uclient_backend uclient_backend_http; |