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\
|
-W, --linger=N Number of seconds to wait for response\n\
|
||||||
-v, --verbose Enable verbose mode\n\
|
-v, --verbose Enable verbose mode\n\
|
||||||
\n\
|
\n\
|
||||||
-h, --help Print this usage info\n"
|
-h, -?, --help Print this usage info\n"
|
||||||
|
|
||||||
extern int g_stop;
|
extern int g_stop;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
|
/* By: tomoron <tomoron@student.42angouleme.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/04/26 17:01:53 by tomoron #+# #+# */
|
/* 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"
|
#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)
|
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);
|
fprintf(stderr, "%s: option value too small: %d\n", name, set->ttl);
|
||||||
return(0);
|
return(0);
|
||||||
@ -65,17 +65,18 @@ int check_values(t_settings *set, char *name)
|
|||||||
return(0);
|
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);
|
fprintf(stderr, "%s: option value is too small: %g\n", name, set->interval);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
return(1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_settings(t_settings *set)
|
void init_settings(t_settings *set)
|
||||||
{
|
{
|
||||||
char *tmp;
|
char *tmp;
|
||||||
|
|
||||||
tmp = set->name;
|
tmp = set->name;
|
||||||
bzero(set, sizeof(t_settings));
|
bzero(set, sizeof(t_settings));
|
||||||
set->name = tmp;
|
set->name = tmp;
|
||||||
@ -100,6 +101,14 @@ int parse_args(int argc, char **argv, t_settings *set)
|
|||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
for(int i = 1; i < argc; i++)
|
||||||
|
{
|
||||||
|
if(!strcmp(argv[i], "-?"))
|
||||||
|
{
|
||||||
|
show_help(set);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
unsetenv("POSIXLY_CORRECT");
|
unsetenv("POSIXLY_CORRECT");
|
||||||
init_settings(set);
|
init_settings(set);
|
||||||
@ -126,26 +135,26 @@ int parse_args(int argc, char **argv, t_settings *set)
|
|||||||
case 'h':
|
case 'h':
|
||||||
case '?':
|
case '?':
|
||||||
show_help(set);
|
show_help(set);
|
||||||
return(1);
|
return (1);
|
||||||
default :
|
default :
|
||||||
break;
|
break ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while(optind < argc)
|
while (optind < argc)
|
||||||
{
|
{
|
||||||
if(!add_host(set, argv[optind]))
|
if (!add_host(set, argv[optind]))
|
||||||
{
|
{
|
||||||
set->err = 1;
|
set->err = 1;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
optind++;
|
optind++;
|
||||||
}
|
}
|
||||||
if(!set->hosts)
|
if (!set->hosts)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s: missing host operand\n", set->name);
|
fprintf(stderr, "%s: missing host operand\n", set->name);
|
||||||
set->err = 1;
|
set->err = 1;
|
||||||
return(1);
|
return (1);
|
||||||
}
|
}
|
||||||
if (!set->err)
|
if (!set->err)
|
||||||
set->err = !check_values(set, argv[0]);
|
set->err = !check_values(set, argv[0]);
|
||||||
|
Reference in New Issue
Block a user