add: preload
This commit is contained in:
17
src/main.c
17
src/main.c
@ -77,6 +77,7 @@ static int get_setting(char * const *av, struct setting *setting)
|
|||||||
{NULL, "n", OPTION, false},
|
{NULL, "n", OPTION, false},
|
||||||
{"ttl", NULL, ARGUMENT, "116"},
|
{"ttl", NULL, ARGUMENT, "116"},
|
||||||
{NULL, "s", ARGUMENT, "56"},
|
{NULL, "s", ARGUMENT, "56"},
|
||||||
|
{NULL, "p", ARGUMENT, "0"},
|
||||||
{NULL, NULL, 0, NULL},
|
{NULL, NULL, 0, NULL},
|
||||||
};
|
};
|
||||||
char *hostname = parsing(av, parameters);
|
char *hostname = parsing(av, parameters);
|
||||||
@ -90,9 +91,11 @@ static int get_setting(char * const *av, struct setting *setting)
|
|||||||
size_t ttl;
|
size_t ttl;
|
||||||
if (parsing_number(parameters[3].value, 0, 255, &ttl))
|
if (parsing_number(parameters[3].value, 0, 255, &ttl))
|
||||||
return 2;
|
return 2;
|
||||||
|
setting->ttl = ttl;
|
||||||
if (parsing_number(parameters[4].value, 0, 2147483647, &setting->payload_size))
|
if (parsing_number(parameters[4].value, 0, 2147483647, &setting->payload_size))
|
||||||
return 3;
|
return 3;
|
||||||
setting->ttl = ttl;
|
if (parsing_number(parameters[5].value, 0, 2147483647, &setting->preload))
|
||||||
|
return 4;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,6 +183,17 @@ int main(int ac, char **av)
|
|||||||
bzero(&stats, sizeof(struct statistics));
|
bzero(&stats, sizeof(struct statistics));
|
||||||
print_header(&settings);
|
print_header(&settings);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < settings.payload_size; i++)
|
||||||
|
{
|
||||||
|
if (sendto(sockfd, packet, packet_size, 0, (struct sockaddr *) &settings.dest.ip, sizeof(settings.dest.ip)) == -1)
|
||||||
|
{
|
||||||
|
print_err("error: send packet failed.");
|
||||||
|
free(packet);
|
||||||
|
close(sockfd);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (loop) {
|
while (loop) {
|
||||||
|
|
||||||
struct timeval stop, start;
|
struct timeval stop, start;
|
||||||
@ -198,7 +212,6 @@ int main(int ac, char **av)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
buffer[0] = 0;
|
|
||||||
ret = recvfrom(sockfd, buffer, packet_size, 0, (struct sockaddr *) &sender, &len) < 0;
|
ret = recvfrom(sockfd, buffer, packet_size, 0, (struct sockaddr *) &sender, &len) < 0;
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -16,4 +16,5 @@ struct setting
|
|||||||
uint8_t ttl;
|
uint8_t ttl;
|
||||||
size_t payload_size;
|
size_t payload_size;
|
||||||
struct hostenv dest;
|
struct hostenv dest;
|
||||||
|
size_t preload;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user