diff options
author | Felix Fietkau <nbd@openwrt.org> | 2014-03-25 15:39:58 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2014-03-25 15:39:58 +0100 |
commit | 25e44fc1e666fb333b3c53bcda90e44b0b74bf19 (patch) | |
tree | 862dab31924730fb0402079cad608726536281b7 /uclient.c | |
parent | 8bbe2130890db78856bb5731fa3e16a71d549bfe (diff) | |
download | uclient-25e44fc1e666fb333b3c53bcda90e44b0b74bf19.tar.gz |
implement optional SSL certificate validation (including CN host check)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Diffstat (limited to 'uclient.c')
-rw-r--r-- | uclient.c | 14 |
1 files changed, 7 insertions, 7 deletions
@@ -178,8 +178,8 @@ static void __uclient_backend_change_state(struct uloop_timeout *timeout) { struct uclient *cl = container_of(timeout, struct uclient, timeout); - if (cl->error && cl->cb->error) - cl->cb->error(cl); + if (cl->error_code && cl->cb->error) + cl->cb->error(cl, cl->error_code); else if (cl->eof && cl->cb->data_eof) cl->cb->data_eof(cl); } @@ -190,18 +190,18 @@ static void uclient_backend_change_state(struct uclient *cl) uloop_timeout_set(&cl->timeout, 1); } -void __hidden uclient_backend_set_error(struct uclient *cl) +void __hidden uclient_backend_set_error(struct uclient *cl, int code) { - if (cl->error) + if (cl->error_code) return; - cl->error = true; + cl->error_code = code; uclient_backend_change_state(cl); } void __hidden uclient_backend_set_eof(struct uclient *cl) { - if (cl->eof || cl->error) + if (cl->eof || cl->error_code) return; cl->eof = true; @@ -210,7 +210,7 @@ void __hidden uclient_backend_set_eof(struct uclient *cl) void __hidden uclient_backend_reset_state(struct uclient *cl) { - cl->error = false; cl->eof = false; + cl->error_code = 0; uloop_timeout_cancel(&cl->timeout); } |