From 39e2d2ad55ed763fd56f7abd573b7e405604daac Mon Sep 17 00:00:00 2001 From: Sergey Lyubka <valenok@gmail.com> Date: Tue, 4 Mar 2014 15:01:05 +0000 Subject: [PATCH] Appending query_string to the URI when redirecting on HTTP error --- mongoose.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mongoose.c b/mongoose.c index 96227ac41..09602334d 100644 --- a/mongoose.c +++ b/mongoose.c @@ -849,6 +849,7 @@ struct ns_connection *ns_connect(struct ns_server *server, const char *host, struct ns_connection *conn = NULL; int connect_ret_val; + (void) use_ssl; if (host == NULL || (he = gethostbyname(host)) == NULL || (sock = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { DBG(("gethostbyname(%s) failed: %s", host, strerror(errno))); @@ -1486,11 +1487,12 @@ static void send_http_error(struct connection *conn, int code, // Handle error code rewrites while ((rewrites = next_option(rewrites, &a, &b)) != NULL) { if ((match_code = atoi(a.ptr)) > 0 && match_code == code) { - conn->mg_conn.status_code = 302; - mg_printf(&conn->mg_conn, "HTTP/1.1 %d Moved\r\n" - "Location: %.*s?code=%d&orig_uri=%s\r\n\r\n", - conn->mg_conn.status_code, b.len, b.ptr, code, - conn->mg_conn.uri); + struct mg_connection *c = &conn->mg_conn; + c->status_code = 302; + mg_printf(c, "HTTP/1.1 %d Moved\r\n" + "Location: %.*s?code=%d&orig_uri=%s&query_string=%s\r\n\r\n", + c->status_code, b.len, b.ptr, code, c->uri, + c->query_string == NULL ? "" : c->query_string); close_local_endpoint(conn); return; } -- GitLab