2 +--------------------------------------------------------------------+
3 | libmemcached - C/C++ Client Library for memcached |
4 +--------------------------------------------------------------------+
5 | Redistribution and use in source and binary forms, with or without |
6 | modification, are permitted under the terms of the BSD license. |
7 | You should have received a copy of the license in a bundled file |
8 | named LICENSE; in case you did not receive a copy you can review |
9 | the terms online at: https://opensource.org/licenses/BSD-3-Clause |
10 +--------------------------------------------------------------------+
11 | Copyright (c) 2006-2014 Brian Aker https://datadifferential.com/ |
12 | Copyright (c) 2020 Michael Wallner <mike@php.net> |
13 +--------------------------------------------------------------------+
16 #include "libmemcached/common.h"
23 static memcached_return_t
_set_verbosity(const Memcached
*, const memcached_instance_st
*server
,
25 libmemcached_io_vector_st
*vector
= (libmemcached_io_vector_st
*) context
;
28 Memcached
*memc_ptr
= memcached_create(&local_memc
);
30 memcached_return_t rc
=
31 memcached_server_add(memc_ptr
, memcached_server_name(server
), memcached_server_port(server
));
33 if (rc
== MEMCACHED_SUCCESS
) {
34 memcached_instance_st
*instance
= memcached_instance_fetch(memc_ptr
, 0);
36 rc
= memcached_vdo(instance
, vector
, 2, true);
38 if (rc
== MEMCACHED_SUCCESS
) {
39 char buffer
[MEMCACHED_DEFAULT_COMMAND_SIZE
];
40 rc
= memcached_response(instance
, buffer
, sizeof(buffer
), NULL
);
44 memcached_free(memc_ptr
);
49 memcached_return_t
memcached_verbosity(memcached_st
*shell
, uint32_t verbosity
) {
50 Memcached
*ptr
= memcached2Memcached(shell
);
51 memcached_return_t rc
;
52 if (memcached_failed(rc
= initialize_query(ptr
, false))) {
56 memcached_server_fn callbacks
[1];
58 char buffer
[MEMCACHED_DEFAULT_COMMAND_SIZE
];
60 int send_length
= snprintf(buffer
, sizeof(buffer
), "verbosity %u\r\n", verbosity
);
61 if (send_length
>= MEMCACHED_DEFAULT_COMMAND_SIZE
or send_length
< 0) {
62 return memcached_set_error(*ptr
, MEMCACHED_MEMORY_ALLOCATION_FAILURE
, MEMCACHED_AT
,
63 memcached_literal_param("snprintf(MEMCACHED_DEFAULT_COMMAND_SIZE)"));
66 libmemcached_io_vector_st vector
[] = {
68 {buffer
, size_t(send_length
)},
71 callbacks
[0] = _set_verbosity
;
73 return memcached_server_cursor(ptr
, callbacks
, vector
, 1);