Lines Matching refs:resp
47 static void pout_string(mc_resp *resp, const char *str) { in pout_string() argument
49 bool skip = resp->skip; in pout_string()
50 assert(resp != NULL); in pout_string()
54 resp_reset(resp); in pout_string()
59 resp->skip = true; in pout_string()
72 memcpy(resp->wbuf, str, len); in pout_string()
73 memcpy(resp->wbuf + len, "\r\n", 2); in pout_string()
74 resp_add_iov(resp, resp->wbuf, len + 2); in pout_string()
80 static void pout_errstring(mc_resp *resp, const char *str) { in pout_errstring() argument
81 resp->skip = false; in pout_errstring()
82 pout_string(resp, str); in pout_errstring()
89 mc_resp *resp = io->tresp; in _storage_get_item_cb() local
106 if (miss && !resp->skip) { in _storage_get_item_cb()
107 resp->iovcnt = 1; in _storage_get_item_cb()
110 resp->iov[0].iov_len = 0; in _storage_get_item_cb()
111 resp->iov[0].iov_base = ""; in _storage_get_item_cb()
112 resp->tosend = 0; in _storage_get_item_cb()
114 resp->iov[0].iov_len = 5; in _storage_get_item_cb()
115 resp->iov[0].iov_base = "END\r\n"; in _storage_get_item_cb()
116 resp->tosend = 5; in _storage_get_item_cb()
119 resp->iov[0].iov_len = 4; in _storage_get_item_cb()
120 resp->iov[0].iov_base = "EN\r\n"; in _storage_get_item_cb()
121 resp->tosend = 5; in _storage_get_item_cb()
128 resp->iov[io->iovec_data].iov_base = ITEM_data(read_it); in _storage_get_item_cb()
140 static int proxy_storage_get(LIBEVENT_THREAD *t, item *it, mc_resp *resp, in proxy_storage_get() argument
157 io->tresp = resp; // our mc_resp is a temporary object. in proxy_storage_get()
172 io->iovec_data = resp->iovcnt; in proxy_storage_get()
173 resp_add_iov(resp, "", it->nbytes); in proxy_storage_get()
176 resp->io_pending = (io_pending_t *)io; in proxy_storage_get()
228 static void process_get_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp, bool return_cas, b… in process_get_cmd() argument
235 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_get_cmd()
243 char *p = resp->wbuf; in process_get_cmd()
249 resp_add_iov(resp, resp->wbuf, p - resp->wbuf); in process_get_cmd()
253 if (proxy_storage_get(t, it, resp, PROXY_STORAGE_GET) != 0) { in process_get_cmd()
259 proxy_out_errstring(resp, PROXY_SERVER_ERROR, "out of memory writing get response"); in process_get_cmd()
263 resp_add_iov(resp, ITEM_data(it), it->nbytes); in process_get_cmd()
265 resp_add_chunked_iov(resp, it, it->nbytes); in process_get_cmd()
269 resp_add_iov(resp, ITEM_data(it), it->nbytes); in process_get_cmd()
271 resp_add_chunked_iov(resp, it, it->nbytes); in process_get_cmd()
288 resp->item = it; in process_get_cmd()
291 resp->item = it; in process_get_cmd()
305 resp_add_iov(resp, "END\r\n", 5); in process_get_cmd()
309 static void process_update_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp, int comm, bool … in process_update_cmd() argument
318 assert(resp != NULL); in process_update_cmd()
321 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_update_cmd()
331 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_update_cmd()
340 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_update_cmd()
356 pout_string(resp, "SERVER_ERROR object too large for cache"); in process_update_cmd()
362 pout_string(resp, "SERVER_ERROR out of memory storing object"); in process_update_cmd()
393 pout_string(resp, "SERVER_ERROR out of memory storing object"); in process_update_cmd()
401 pout_string(resp, "STORED"); in process_update_cmd()
404 pout_string(resp, "EXISTS"); in process_update_cmd()
407 pout_string(resp, "NOT_FOUND"); in process_update_cmd()
410 pout_string(resp, "NOT_STORED"); in process_update_cmd()
413 pout_string(resp, "SERVER_ERROR Unhandled storage type."); in process_update_cmd()
420 static void process_arithmetic_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp, const bool … in process_arithmetic_cmd() argument
429 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_arithmetic_cmd()
434 pout_string(resp, "CLIENT_ERROR invalid numeric delta argument"); in process_arithmetic_cmd()
440 pout_string(resp, temp); in process_arithmetic_cmd()
443 pout_string(resp, "CLIENT_ERROR cannot increment or decrement non-numeric value"); in process_arithmetic_cmd()
446 pout_string(resp, "SERVER_ERROR out of memory"); in process_arithmetic_cmd()
457 pout_string(resp, "NOT_FOUND"); in process_arithmetic_cmd()
464 static void process_delete_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp) { in process_delete_cmd() argument
479 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_delete_cmd()
494 pout_string(resp, "DELETED"); in process_delete_cmd()
500 pout_string(resp, "NOT_FOUND"); in process_delete_cmd()
505 static void process_touch_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp) { in process_touch_cmd() argument
515 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_touch_cmd()
520 pout_string(resp, "CLIENT_ERROR invalid exptime argument"); in process_touch_cmd()
532 pout_string(resp, "TOUCHED"); in process_touch_cmd()
540 pout_string(resp, "NOT_FOUND"); in process_touch_cmd()
747 static void process_mget_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp) { in process_mget_cmd() argument
760 char *p = resp->wbuf; in process_mget_cmd()
767 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_mget_cmd()
773 pout_errstring(resp, "CLIENT_ERROR options flags are too long"); in process_mget_cmd()
780 pout_errstring(resp, errstr); in process_mget_cmd()
797 pout_errstring(resp, "SERVER_ERROR refcount overflow during fetch"); in process_mget_cmd()
935 resp_add_iov(resp, resp->wbuf, p - resp->wbuf); in process_mget_cmd()
940 if (proxy_storage_get(t, it, resp, PROXY_STORAGE_MG) != 0) { in process_mget_cmd()
948 resp_add_iov(resp, ITEM_data(it), it->nbytes); in process_mget_cmd()
950 resp_add_chunked_iov(resp, it, it->nbytes); in process_mget_cmd()
954 resp_add_iov(resp, ITEM_data(it), it->nbytes); in process_mget_cmd()
956 resp_add_chunked_iov(resp, it, it->nbytes); in process_mget_cmd()
966 resp->item = NULL; in process_mget_cmd()
968 resp->item = it; in process_mget_cmd()
979 resp->item = it; in process_mget_cmd()
1018 resp->skip = true; in process_mget_cmd()
1039 resp->wbytes = p - resp->wbuf; in process_mget_cmd()
1040 memcpy(resp->wbuf + resp->wbytes, "\r\n", 2); in process_mget_cmd()
1041 resp->wbytes += 2; in process_mget_cmd()
1042 resp_add_iov(resp, resp->wbuf, resp->wbytes); in process_mget_cmd()
1052 pout_errstring(resp, errstr); in process_mget_cmd()
1055 static void process_mset_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp) { in process_mset_cmd() argument
1067 char *p = resp->wbuf; in process_mset_cmd()
1073 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_mset_cmd()
1079 pout_errstring(resp, "CLIENT_ERROR options flags are too long"); in process_mset_cmd()
1174 resp->wbytes = p - resp->wbuf; in process_mset_cmd()
1183 pout_string(resp, "SERVER_ERROR out of memory storing object"); in process_mset_cmd()
1196 resp->skip = true; in process_mset_cmd()
1209 pout_errstring(resp, "SERVER_ERROR Unhandled storage type."); in process_mset_cmd()
1253 resp->wbytes = p - resp->wbuf; in process_mset_cmd()
1254 resp_add_iov(resp, resp->wbuf, resp->wbytes); in process_mset_cmd()
1262 pout_errstring(resp, errstr); in process_mset_cmd()
1265 static void process_mdelete_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp) { in process_mdelete_cmd() argument
1275 char *p = resp->wbuf + 2; in process_mdelete_cmd()
1281 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_mdelete_cmd()
1287 pout_errstring(resp, "CLIENT_ERROR options flags are too long"); in process_mdelete_cmd()
1295 pout_errstring(resp, "CLIENT_ERROR invalid or duplicate flag"); in process_mdelete_cmd()
1326 memcpy(resp->wbuf, "EX", 2); in process_mdelete_cmd()
1341 memcpy(resp->wbuf, "NS", 2); in process_mdelete_cmd()
1363 resp->skip = true; in process_mdelete_cmd()
1365 memcpy(resp->wbuf, "HD", 2); in process_mdelete_cmd()
1377 resp->skip = true; in process_mdelete_cmd()
1378 memcpy(resp->wbuf, "HD", 2); in process_mdelete_cmd()
1386 memcpy(resp->wbuf, "NF", 2); in process_mdelete_cmd()
1395 resp->wbytes = p - resp->wbuf; in process_mdelete_cmd()
1396 memcpy(resp->wbuf + resp->wbytes, "\r\n", 2); in process_mdelete_cmd()
1397 resp->wbytes += 2; in process_mdelete_cmd()
1398 resp_add_iov(resp, resp->wbuf, resp->wbytes); in process_mdelete_cmd()
1407 pout_errstring(resp, errstr); in process_mdelete_cmd()
1410 static void process_marithmetic_cmd(LIBEVENT_THREAD *t, mcp_parser_t *pr, mc_resp *resp) { in process_marithmetic_cmd() argument
1418 char *p = resp->wbuf; in process_marithmetic_cmd()
1432 pout_string(resp, "CLIENT_ERROR bad command line format"); in process_marithmetic_cmd()
1438 pout_errstring(resp, "CLIENT_ERROR options flags are too long"); in process_marithmetic_cmd()
1445 pout_errstring(resp, "CLIENT_ERROR invalid or duplicate flag"); in process_marithmetic_cmd()
1513 memcpy(resp->wbuf, "NS", 2); in process_marithmetic_cmd()
1624 resp->wbytes = p - resp->wbuf; in process_marithmetic_cmd()
1625 memcpy(resp->wbuf + resp->wbytes, "\r\n", 2); in process_marithmetic_cmd()
1626 resp->wbytes += 2; in process_marithmetic_cmd()
1627 resp_add_iov(resp, resp->wbuf, resp->wbytes); in process_marithmetic_cmd()
1634 pout_errstring(resp, errstr); in process_marithmetic_cmd()
1657 mc_resp *resp = resp_start_unlinked(rctx->c); in mcplib_internal_run() local
1660 if (resp == NULL) { in mcplib_internal_run()
1667 process_mget_cmd(t, pr, resp); in mcplib_internal_run()
1670 process_mset_cmd(t, pr, resp); in mcplib_internal_run()
1673 process_mdelete_cmd(t, pr, resp); in mcplib_internal_run()
1676 process_marithmetic_cmd(t, pr, resp); in mcplib_internal_run()
1679 process_get_cmd(t, pr, resp, _NO_CAS, _NO_TOUCH); in mcplib_internal_run()
1682 process_get_cmd(t, pr, resp, _DO_CAS, _NO_TOUCH); in mcplib_internal_run()
1685 process_get_cmd(t, pr, resp, _NO_CAS, _DO_TOUCH); in mcplib_internal_run()
1688 process_get_cmd(t, pr, resp, _DO_CAS, _DO_TOUCH); in mcplib_internal_run()
1691 process_update_cmd(t, pr, resp, NREAD_SET, _NO_CAS); in mcplib_internal_run()
1694 process_update_cmd(t, pr, resp, NREAD_ADD, _NO_CAS); in mcplib_internal_run()
1697 process_update_cmd(t, pr, resp, NREAD_APPEND, _NO_CAS); in mcplib_internal_run()
1700 process_update_cmd(t, pr, resp, NREAD_PREPEND, _NO_CAS); in mcplib_internal_run()
1703 process_update_cmd(t, pr, resp, NREAD_CAS, _DO_CAS); in mcplib_internal_run()
1706 process_update_cmd(t, pr, resp, NREAD_REPLACE, _DO_CAS); in mcplib_internal_run()
1709 process_arithmetic_cmd(t, pr, resp, true); in mcplib_internal_run()
1712 process_arithmetic_cmd(t, pr, resp, false); in mcplib_internal_run()
1715 process_delete_cmd(t, pr, resp); in mcplib_internal_run()
1718 process_touch_cmd(t, pr, resp); in mcplib_internal_run()
1721 resp_free(t, resp); in mcplib_internal_run()
1731 mcmc_parse_buf(resp->iov[0].iov_base, resp->iov[0].iov_len, &r->resp); in mcplib_internal_run()
1734 if (r->resp.type == MCMC_RESP_GET) { in mcplib_internal_run()
1736 resp->iovcnt--; in mcplib_internal_run()
1737 } else if (r->resp.type == MCMC_RESP_END) { in mcplib_internal_run()
1738 resp->skip = true; in mcplib_internal_run()
1747 r->cresp = resp; in mcplib_internal_run()
1758 if (resp->io_pending) { in mcplib_internal_run()
1762 rctx->resp->io_pending = resp->io_pending; in mcplib_internal_run()
1763 resp->io_pending = NULL; in mcplib_internal_run()
1767 io_pending_proxy_t *io = (io_pending_proxy_t *)rctx->resp->io_pending; in mcplib_internal_run()