/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_ping.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tomoron +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/04/24 00:03:56 by tomoron #+# #+# */ /* Updated: 2025/04/25 19:29:48 by tomoron ### ########.fr */ /* */ /* ************************************************************************** */ #include "includes/ft_ping.h" void show_help(t_settings *set, char *name) { set->stop = 1; write(1, "Usage: ", 7); write(1, name, strlen(name)); write(1, HELP_MESSAGE, sizeof(HELP_MESSAGE)); } void parse_opt(int *i, t_settings *set, int argc, char **argv) { (void)argc; if(!strcmp(argv[*i], "-?") || !strcmp(argv[*i], "--help")) show_help(set, *argv); if(!strcmp(argv[*i], "-c") || !strcmp(argv[*i], "--count")) get_setting(i, &set->count, argc, argv); if(!strcmp(argv[*i], "-w") || !strcmp(argv[*i], "--timeout")) get_setting(i, &set->timeout, argc, argv); if(!strcmp(argv[*i], "-f") || !strcmp(argv[*i], "--flood")) set->flood = 1; if(!strcmp(argv[*i], "-n") || !strcmp(argv[*i], "--numeric")) set->no_resolve = 1; (*i)++; } t_settings parse_args(int argc, char **argv) { int i; t_settings res; i = 1; bzero(&res, sizeof(t_settings)); while(i < argc) { if(*argv[i] == '-') parse_opt(&i, &res, argc, argv); } return(res); } int main(int argc, char **argv) { t_settings settings; settings = parse_args(argc, argv); if(settings.stop || settings.err) return((settings.err != 0) * 64); return(0); }