+int show_single_config(int server_socket, char *keyname)
+{
+ char buf[1024];
+
+ sock_printf(server_socket, "CONF getval|%s\n", keyname);
+ sock_getln(server_socket, buf, sizeof buf);
+ if (buf[0] == '2') {
+ char *v = &buf[4];
+ char *t = NULL;
+ while (t = strrchr(v, '|'), t != NULL)
+ t[0] = 0;
+ printf("%-30s = %s\n", keyname, v);
+ return (cmdret_ok);
+ } else {
+ printf("\n");
+ return (cmdret_error);
+ }
+}
+
+
+int set_single_config(int server_socket, char *keyname, char *val)
+{
+ char buf[1024];
+
+ sock_printf(server_socket, "CONF putval|%s|%s\n", keyname, val);
+ sock_getln(server_socket, buf, sizeof buf);
+ if (buf[0] != '2') {
+ printf("%s\n", buf);
+ return (cmdret_error);
+ }
+ return (show_single_config(server_socket, keyname));
+}
+
+
+int cmd_config(int server_socket, char *cmdbuf)
+{