You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.1 KiB

#include "common.h"
#include "config.h"
#include "buf.h"
#include "log.h"
#include "commands.h"
#include "csocket.h"
static int run = 1;
void
cmd_handler(const f2b_cmd_t *cmd, f2b_buf_t *res) {
fprintf(stdout, "[handler] received cmd with type %d and %d args:\n", cmd->type, cmd->argc);
for (int i = 0; i < cmd->argc; i++) {
fprintf(stdout, "[handler] arg %d : %s\n", i + 1, cmd->args[i]);
}
if (cmd->type == CMD_HELP) {
f2b_buf_append(res, f2b_cmd_help(), 0);
} else {
f2b_buf_append(res, "+ok\n", 0);
}
return;
}
int main(int argc, const char **argv) {
f2b_config_t config;
if (argc < 2) {
puts("Usage: csocket-test <csocket.conf>");
exit(EXIT_FAILURE);
}
f2b_log_set_level("debug");
f2b_log_to_stderr();
memset(&config, 0x0, sizeof(config));
if (!f2b_config_load(&config, argv[1], false)) {
f2b_log_msg(log_fatal, "can't load config");
return EXIT_FAILURE;
}
if (!f2b_csocket_create(config.csocket)) {
perror("f2b_csocket_create()");
exit(EXIT_FAILURE);
}
while (run) {
f2b_csocket_poll(cmd_handler);
sleep(1);
}
f2b_csocket_destroy();
return 0;
}