Add mg_http_send_redirect and make examples use it

PUBLISHED_FROM=f45e06aeba1c00212078d539b6f74cb8bd054326
This commit is contained in:
Deomid Ryabkov authored and Cesanta Bot committed 2016-09-30 11:22:00 +00:00
1 parent 8f522048d8
commit 460d95afc5
12 files changed
+119 -41

No files matched your search

+1
View File
@@ -16,6 +16,7 @@ items:
- { name: mg_send_http_chunk.md }
- { name: mg_printf_http_chunk.md }
- { name: mg_send_response_line.md }
- { name: mg_http_send_redirect.md }
- { name: mg_send_head.md }
- { name: mg_printf_html_escape.md }
- { name: mg_fu_fname_fn.md }
@@ -0,0 +1,24 @@
---
title: "mg_http_send_redirect()"
decl_name: "mg_http_send_redirect"
symbol_kind: "func"
signature: |
void mg_http_send_redirect(struct mg_connection *nc, int status_code,
const struct mg_str location,
const struct mg_str extra_headers);
---
Sends a redirect response.
`status_code` should be either 301 or 302 and `location` point to the
new location.
If `extra_headers` is not empty, then `extra_headers` are also sent
after the reponse line. `extra_headers` must NOT end end with new line.
Example:
mg_send_response_line(nc, 200, "Access-Control-Allow-Origin: *");
Will result in:
HTTP/1.1 200 OK\r\n
Access-Control-Allow-Origin: *\r\n
@@ -3,7 +3,7 @@ title: "mg_send_response_line()"
decl_name: "mg_send_response_line"
symbol_kind: "func"
signature: |
void mg_send_response_line(struct mg_connection *c, int status_code,
void mg_send_response_line(struct mg_connection *nc, int status_code,
const char *extra_headers);
---
+1
View File
@@ -17,6 +17,7 @@ items:
- { name: mg_sock_addr_to_str.md }
- { name: mg_hexdump.md }
- { name: mg_hexdump_connection.md }
- { name: mg_asprintf.md }
- { name: mg_avprintf.md }
- { name: mg_is_big_endian.md }
- { name: mg_next_comma_list_entry.md }
+22
View File
@@ -0,0 +1,22 @@
---
title: "mg_asprintf()"
decl_name: "mg_asprintf"
symbol_kind: "func"
signature: |
int mg_asprintf(char **buf, size_t size, const char *fmt, ...);
---
Prints message to the buffer. If the buffer is large enough to hold the
message, it returns buffer. If buffer is to small, it allocates a large
enough buffer on heap and returns allocated buffer.
This is a supposed use case:
char buf[5], *p = buf;
mg_avprintf(&p, sizeof(buf), "%s", "hi there");
use_p_somehow(p);
if (p != buf) {
free(p);
}
The purpose of this is to avoid malloc-ing if generated strings are small.
+1 -13
View File
@@ -6,17 +6,5 @@ signature: |
int mg_avprintf(char **buf, size_t size, const char *fmt, va_list ap);
---
Prints message to the buffer. If the buffer is large enough to hold the
message, it returns buffer. If buffer is to small, it allocates a large
enough buffer on heap and returns allocated buffer.
This is a supposed use case:
char buf[5], *p = buf;
p = mg_avprintf(&p, sizeof(buf), "%s", "hi there");
use_p_somehow(p);
if (p != buf) {
free(p);
}
The purpose of this is to avoid malloc-ing if generated strings are small.
Same as mg_asprintf, but takes varargs list.