Exemple #1
0
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));
}
Exemple #2
0
/*
 * 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;
	}
}