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) {
14 sock_puts(server_socket, "CONF listval");
15 sock_getln(server_socket, buf, sizeof buf);
17 printf("%s\n", &buf[4]);
21 while (sock_getln(server_socket, buf, sizeof buf), strcmp(buf, "000")) {
23 char *p = strchr(buf, '|');
29 printf("%-30s = %s\n", buf, val);
36 int show_single_config(int server_socket, char *keyname) {
39 sock_printf(server_socket, "CONF getval|%s\n", keyname);
40 sock_getln(server_socket, buf, sizeof buf);
44 while(t = strrchr(v, '|'), t!=NULL) t[0]=0;
45 printf("%-30s = %s\n", keyname, v);
55 int set_single_config(int server_socket, char *keyname, char *val) {
58 sock_printf(server_socket, "CONF putval|%s|%s\n", keyname, val);
59 sock_getln(server_socket, buf, sizeof buf);
64 return(show_single_config(server_socket, keyname));
68 int cmd_config(int server_socket, char *cmdbuf) {
71 strncpy(buf, cmdbuf, sizeof buf);
72 char *k = strchr(buf, ' ');
74 return show_full_config(server_socket);
77 while (k[0]==' ') ++k;
80 return show_full_config(server_socket);
84 printf("config Print values of all configuration keys\n");
85 printf("config ? Display this message\n");
86 printf("config [key] Print value of configuration key 'key'\n");
87 printf("config [key] [value] Set configuration key 'key' to 'value'\n");
91 char *v = strchr(k, ' ');
93 return show_single_config(server_socket, k);
98 while (v[0]==' ') ++v;
100 if (strlen(v) == 0) {
101 return show_single_config(server_socket, k);
104 return set_single_config(server_socket, k, v);