provide local info, fix redirect example

This commit is contained in:
Sergio R. Caprile
2026-02-09 14:42:31 -03:00
parent 18cea946f1
commit 205d4c6832
3 changed files with 9 additions and 4 deletions
+1 -1
View File
@@ -10769,7 +10769,7 @@ static void accept_conn(struct mg_mgr *mgr, struct mg_connection *lsn) {
setsockopts(c);
c->is_accepted = 1;
c->is_hexdumping = lsn->is_hexdumping;
c->loc = lsn->loc;
setlocaddr(fd, &c->loc); // set local addr to where the client connected to
c->pfn = lsn->pfn;
c->pfn_data = lsn->pfn_data;
c->fn = lsn->fn;
+1 -1
View File
@@ -475,7 +475,7 @@ static void accept_conn(struct mg_mgr *mgr, struct mg_connection *lsn) {
setsockopts(c);
c->is_accepted = 1;
c->is_hexdumping = lsn->is_hexdumping;
c->loc = lsn->loc;
setlocaddr(fd, &c->loc); // set local addr to where the client connected to
c->pfn = lsn->pfn;
c->pfn_data = lsn->pfn_data;
c->fn = lsn->fn;
+7 -2
View File
@@ -52,8 +52,13 @@ static void http_ev_handler(struct mg_connection *c, int ev, void *ev_data) {
if (ev == MG_EV_HTTP_MSG) {
struct mg_http_message *hm = (struct mg_http_message *) ev_data;
char buf[256];
mg_snprintf(buf, sizeof(buf), "Location: %s%.*s\r\n", s_https_addr,
hm->uri.len, hm->uri.buf);
mg_snprintf(buf, sizeof(buf), "Location: https://%M:%u%.*s\r\n",
mg_print_ip, &c->loc, mg_url_port(s_https_addr), hm->uri.len,
hm->uri.buf);
// If you want to redirect to a name, you must provide a redirection URL:
// - static const char *s_https_redirect_addr = "https://yourname:port"
// - mg_snprintf(buf, sizeof(buf), "Location: %s%.*s\r\n",
// s_https_redirect_addr, hm->uri.len, hm->uri.buf);
mg_http_reply(c, 302, buf, "%s", buf); // 302 redirect
}
}