void * cli_input (void *d) { struct cli_state *state = NULL; int ret = 0; char cmdbuf[CMDBUFSIZ]; char *cmd = NULL; size_t len = 0; state = d; for (;;) { printf ("%s", state->prompt); cmd = fgets (cmdbuf, CMDBUFSIZ, stdin); if (!cmd) break; len = strlen(cmd); if (len > 0 && cmd[len - 1] == '\n') //strip trailing \n cmd[len - 1] = '\0'; ret = cli_cmd_process_line (state, cmd); if (ret == -1 && state->mode & GLUSTER_MODE_ERR_FATAL) break; } exit (ret); return NULL; }
void cli_rl_process_line (char *line) { struct cli_state *state = NULL; int ret = 0; state = global_state; state->rl_processing = 1; { ret = cli_cmd_process_line (state, line); if (ret) gf_log (THIS->name, GF_LOG_WARNING, "failed to process line"); add_history (line); } state->rl_processing = 0; }