add -? arg support
This commit is contained in:
@ -32,7 +32,7 @@ Send ICMP ECHO_REQUEST packets to network hosts.\n\
|
||||
-W, --linger=N Number of seconds to wait for response\n\
|
||||
-v, --verbose Enable verbose mode\n\
|
||||
\n\
|
||||
-h, --help Print this usage info\n"
|
||||
-h, -?, --help Print this usage info\n"
|
||||
|
||||
extern int g_stop;
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/04/26 17:01:53 by tomoron #+# #+# */
|
||||
/* Updated: 2025/08/15 02:16:12 by tomoron ### ########.fr */
|
||||
/* Updated: 2025/08/18 15:50:29 by tomoron ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
#include "includes/ft_ping.h"
|
||||
@ -52,9 +52,9 @@ double get_set_float(char *arg, t_settings *set)
|
||||
|
||||
int check_values(t_settings *set, char *name)
|
||||
{
|
||||
if(set->setTtl)
|
||||
if (set->setTtl)
|
||||
{
|
||||
if(set->ttl == 0)
|
||||
if (set->ttl == 0)
|
||||
{
|
||||
fprintf(stderr, "%s: option value too small: %d\n", name, set->ttl);
|
||||
return(0);
|
||||
@ -65,17 +65,18 @@ int check_values(t_settings *set, char *name)
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
if(set->interval < 0.2)
|
||||
if (set->interval < 0.2)
|
||||
{
|
||||
fprintf(stderr, "%s: option value is too small: %g\n", name, set->interval);
|
||||
return(0);
|
||||
}
|
||||
return(1);
|
||||
return (1);
|
||||
}
|
||||
|
||||
void init_settings(t_settings *set)
|
||||
{
|
||||
char *tmp;
|
||||
|
||||
tmp = set->name;
|
||||
bzero(set, sizeof(t_settings));
|
||||
set->name = tmp;
|
||||
@ -100,6 +101,14 @@ int parse_args(int argc, char **argv, t_settings *set)
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
for(int i = 1; i < argc; i++)
|
||||
{
|
||||
if(!strcmp(argv[i], "-?"))
|
||||
{
|
||||
show_help(set);
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
|
||||
unsetenv("POSIXLY_CORRECT");
|
||||
init_settings(set);
|
||||
@ -126,26 +135,26 @@ int parse_args(int argc, char **argv, t_settings *set)
|
||||
case 'h':
|
||||
case '?':
|
||||
show_help(set);
|
||||
return(1);
|
||||
return (1);
|
||||
default :
|
||||
break;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
while(optind < argc)
|
||||
while (optind < argc)
|
||||
{
|
||||
if(!add_host(set, argv[optind]))
|
||||
if (!add_host(set, argv[optind]))
|
||||
{
|
||||
set->err = 1;
|
||||
return (0);
|
||||
}
|
||||
optind++;
|
||||
}
|
||||
if(!set->hosts)
|
||||
if (!set->hosts)
|
||||
{
|
||||
fprintf(stderr, "%s: missing host operand\n", set->name);
|
||||
set->err = 1;
|
||||
return(1);
|
||||
return (1);
|
||||
}
|
||||
if (!set->err)
|
||||
set->err = !check_values(set, argv[0]);
|
||||
|
Reference in New Issue
Block a user