From a696c8945eafa419eeb5e7dd662bf7aadce0a619 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Thu, 2 Jun 2022 13:42:06 +0900 Subject: [PATCH] webclient: Don't forget to check http status before webclient_get_tunnel --- netutils/webclient/webclient.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/netutils/webclient/webclient.c b/netutils/webclient/webclient.c index 6ade1afef..3b1e32fc3 100644 --- a/netutils/webclient/webclient.c +++ b/netutils/webclient/webclient.c @@ -1390,6 +1390,28 @@ int webclient_perform(FAR struct webclient_context *ctx) if (ws->tunnel != NULL) { ret = webclient_perform(ws->tunnel); + if (ret == 0) + { + unsigned int http_status = ws->tunnel->http_status; + + if (http_status / 100 != 2) + { + nerr("HTTP-level error %u on tunnel attempt\n", + http_status); + + /* 407 Proxy Authentication Required */ + + if (http_status == 407) + { + ret = -EPERM; + } + else + { + ret = -EIO; + } + } + } + if (ret == 0) { FAR struct webclient_conn_s *tunnel_conn;