int ft_get_list_cmd(t_dat *t_d) { t_cmd cmd; int out; cmd.cbin = ft_lst_get_env(&t_d->t_env, "PATH"); if (cmd.cbin == NULL) cmd.cbin = "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin"; cmd.bin = ft_strsplit(cmd.cbin, ':'); cmd.i = 0; out = 0; while (cmd.bin[cmd.i]) { if ((cmd.dir = opendir(cmd.bin[cmd.i])) != NULL) { while ((cmd.dp = readdir(cmd.dir)) != NULL) { if (ft_path_bin(t_d, cmd.dp, cmd.bin[cmd.i]) == 1) out = 1; } closedir(cmd.dir); } free(cmd.bin[cmd.i]); cmd.i++; } free(cmd.bin); return (ft_send_cmd(out, t_d)); }
/* * Handle request in the command thread. */ static void ft_exec_req(struct ft_cmd *cmd) { FT_IO_DBG("cmd state %x\n", cmd->state); switch (cmd->state) { case FC_CMD_ST_NEW: ft_send_cmd(cmd); break; default: break; } }