mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-20 11:19:56 +00:00
Remove %H %V %Q %q modifiers
This commit is contained in:
1 parent
52ed68ed24
commit
cd64bfe84b
19 files changed
+1868
-782
No files matched your search
@@ -1,4 +1,5 @@
|
||||
#include "rpc.h"
|
||||
#include "printf.h"
|
||||
|
||||
void mg_rpc_add(struct mg_rpc **head, struct mg_str method,
|
||||
void (*fn)(struct mg_rpc_req *), void *fn_data) {
|
||||
@@ -42,15 +43,16 @@ void mg_rpc_process(struct mg_rpc_req *r) {
|
||||
(off = mg_json_get(r->frame, "$.error", &len)) > 0) {
|
||||
mg_rpc_call(r, mg_str("")); // JSON response! call "" method handler
|
||||
} else {
|
||||
mg_rpc_err(r, -32700, "%.*Q", (int) r->frame.len, r->frame.ptr); // Invalid
|
||||
mg_rpc_err(r, -32700, "%m", mg_print_esc, (int) r->frame.len,
|
||||
r->frame.ptr); // Invalid
|
||||
}
|
||||
}
|
||||
|
||||
void mg_rpc_vok(struct mg_rpc_req *r, const char *fmt, va_list *ap) {
|
||||
int len, off = mg_json_get(r->frame, "$.id", &len);
|
||||
if (off > 0) {
|
||||
mg_xprintf(r->pfn, r->pfn_data, "{%Q:%.*s,%Q:", "id", len,
|
||||
&r->frame.ptr[off], "result");
|
||||
mg_xprintf(r->pfn, r->pfn_data, "{%m:%.*s,%m:", mg_print_esc, 0, "id", len,
|
||||
&r->frame.ptr[off], mg_print_esc, 0, "result");
|
||||
mg_vxprintf(r->pfn, r->pfn_data, fmt == NULL ? "null" : fmt, ap);
|
||||
mg_xprintf(r->pfn, r->pfn_data, "}");
|
||||
}
|
||||
@@ -67,10 +69,11 @@ void mg_rpc_verr(struct mg_rpc_req *r, int code, const char *fmt, va_list *ap) {
|
||||
int len, off = mg_json_get(r->frame, "$.id", &len);
|
||||
mg_xprintf(r->pfn, r->pfn_data, "{");
|
||||
if (off > 0) {
|
||||
mg_xprintf(r->pfn, r->pfn_data, "%Q:%.*s,", "id", len, &r->frame.ptr[off]);
|
||||
mg_xprintf(r->pfn, r->pfn_data, "%m:%.*s,", mg_print_esc, 0, "id", len,
|
||||
&r->frame.ptr[off]);
|
||||
}
|
||||
mg_xprintf(r->pfn, r->pfn_data, "%Q:{%Q:%d,%Q:", "error", "code", code,
|
||||
"message");
|
||||
mg_xprintf(r->pfn, r->pfn_data, "%m:{%m:%d,%m:", mg_print_esc, 0, "error",
|
||||
mg_print_esc, 0, "code", code, mg_print_esc, 0, "message");
|
||||
mg_vxprintf(r->pfn, r->pfn_data, fmt == NULL ? "null" : fmt, ap);
|
||||
mg_xprintf(r->pfn, r->pfn_data, "}}");
|
||||
}
|
||||
@@ -87,8 +90,8 @@ static size_t print_methods(mg_pfn_t pfn, void *pfn_data, va_list *ap) {
|
||||
size_t len = 0;
|
||||
for (h = *head; h != NULL; h = h->next) {
|
||||
if (h->method.len == 0) continue; // Ignore response handler
|
||||
len += mg_xprintf(pfn, pfn_data, "%s%.*Q", h == *head ? "" : ",",
|
||||
(int) h->method.len, h->method.ptr);
|
||||
len += mg_xprintf(pfn, pfn_data, "%s%m", h == *head ? "" : ",",
|
||||
mg_print_esc, (int) h->method.len, h->method.ptr);
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user