mirror of
https://github.com/cesanta/mongoose.git
synced 2024-12-28 23:49:44 +08:00
Adding mg_vprintf and mg_vprintf_data in order to use va_list like functions
This commit is contained in:
parent
c8e88e1710
commit
c839a61fea
26
mongoose.c
26
mongoose.c
@ -1951,13 +1951,21 @@ static void write_chunk(struct connection *conn, const char *buf, int len) {
|
||||
}
|
||||
|
||||
size_t mg_printf(struct mg_connection *conn, const char *fmt, ...) {
|
||||
struct connection *c = MG_CONN_2_CONN(conn);
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
va_start(ap, fmt);
|
||||
ns_vprintf(c->ns_conn, fmt, ap);
|
||||
ret = mg_vprintf(conn, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t mg_vprintf(struct mg_connection *conn, const char *fmt, va_list ap) {
|
||||
struct connection *c = MG_CONN_2_CONN(conn);
|
||||
|
||||
ns_vprintf(c->ns_conn, fmt, ap);
|
||||
|
||||
return c->ns_conn->send_iobuf.len;
|
||||
}
|
||||
|
||||
@ -2790,16 +2798,24 @@ size_t mg_send_data(struct mg_connection *c, const void *data, int data_len) {
|
||||
}
|
||||
|
||||
size_t mg_printf_data(struct mg_connection *c, const char *fmt, ...) {
|
||||
struct connection *conn = MG_CONN_2_CONN(c);
|
||||
va_list ap;
|
||||
int ret;
|
||||
|
||||
va_start(ap, fmt);
|
||||
ret = mg_vprintf_data(c, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
size_t mg_vprintf_data(struct mg_connection *c, const char *fmt, va_list ap) {
|
||||
struct connection *conn = MG_CONN_2_CONN(c);
|
||||
int len;
|
||||
char mem[IOBUF_SIZE], *buf = mem;
|
||||
|
||||
terminate_headers(c);
|
||||
|
||||
va_start(ap, fmt);
|
||||
len = ns_avprintf(&buf, sizeof(mem), fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (len >= 0) {
|
||||
write_chunk((struct connection *) conn, buf, len);
|
||||
|
@ -104,8 +104,10 @@ void mg_send_status(struct mg_connection *, int status_code);
|
||||
void mg_send_header(struct mg_connection *, const char *name, const char *val);
|
||||
size_t mg_send_data(struct mg_connection *, const void *data, int data_len);
|
||||
size_t mg_printf_data(struct mg_connection *, const char *format, ...);
|
||||
size_t mg_vprintf_data(struct mg_connection *, const char *format, va_list ap);
|
||||
size_t mg_write(struct mg_connection *, const void *buf, size_t len);
|
||||
size_t mg_printf(struct mg_connection *conn, const char *fmt, ...);
|
||||
size_t mg_vprintf(struct mg_connection *conn, const char *fmt, va_list ap);
|
||||
|
||||
size_t mg_websocket_write(struct mg_connection *, int opcode,
|
||||
const char *data, size_t data_len);
|
||||
|
Loading…
x
Reference in New Issue
Block a user