2 * (c) 1987-2016 by Art Cancro and citadel.org
3 * This program is open source software, released under the terms of the GNU General Public License v3.
4 * It runs really well on the Linux operating system.
5 * We love open source software but reject Richard Stallman's linguistic fascism.
11 int show_full_config(int server_socket)
15 sock_puts(server_socket, "CONF listval");
16 sock_getln(server_socket, buf, sizeof buf);
18 printf("%s\n", &buf[4]);
19 return (cmdret_error);
22 while (sock_getln(server_socket, buf, sizeof buf), strcmp(buf, "000")) {
24 char *p = strchr(buf, '|');
30 printf("%-30s = %s\n", buf, val);
37 int show_single_config(int server_socket, char *keyname)
41 sock_printf(server_socket, "CONF getval|%s\n", keyname);
42 sock_getln(server_socket, buf, sizeof buf);
46 while (t = strrchr(v, '|'), t != NULL)
48 printf("%-30s = %s\n", keyname, v);
52 return (cmdret_error);
57 int set_single_config(int server_socket, char *keyname, char *val)
61 sock_printf(server_socket, "CONF putval|%s|%s\n", keyname, val);
62 sock_getln(server_socket, buf, sizeof buf);
65 return (cmdret_error);
67 return (show_single_config(server_socket, keyname));
71 int cmd_config(int server_socket, char *cmdbuf)
75 strncpy(buf, cmdbuf, sizeof buf);
76 char *k = strchr(buf, ' ');
78 return show_full_config(server_socket);
85 return show_full_config(server_socket);
89 printf("config Print values of all configuration keys\n");
90 printf("config ? Display this message\n");
91 printf("config [key] Print value of configuration key 'key'\n");
92 printf("config [key] [value] Set configuration key 'key' to 'value'\n");
96 char *v = strchr(k, ' ');
98 return show_single_config(server_socket, k);
106 if (strlen(v) == 0) {
107 return show_single_config(server_socket, k);
110 return set_single_config(server_socket, k, v);