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},
|
||||
{"ttl", NULL, ARGUMENT, "116"},
|
||||
{NULL, "s", ARGUMENT, "56"},
|
||||
{NULL, "p", ARGUMENT, "0"},
|
||||
{NULL, NULL, 0, NULL},
|
||||
};
|
||||
char *hostname = parsing(av, parameters);
|
||||
@ -90,9 +91,11 @@ static int get_setting(char * const *av, struct setting *setting)
|
||||
size_t ttl;
|
||||
if (parsing_number(parameters[3].value, 0, 255, &ttl))
|
||||
return 2;
|
||||
setting->ttl = ttl;
|
||||
if (parsing_number(parameters[4].value, 0, 2147483647, &setting->payload_size))
|
||||
return 3;
|
||||
setting->ttl = ttl;
|
||||
if (parsing_number(parameters[5].value, 0, 2147483647, &setting->preload))
|
||||
return 4;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -180,6 +183,17 @@ int main(int ac, char **av)
|
||||
bzero(&stats, sizeof(struct statistics));
|
||||
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) {
|
||||
|
||||
struct timeval stop, start;
|
||||
@ -198,7 +212,6 @@ int main(int ac, char **av)
|
||||
int ret = 0;
|
||||
do
|
||||
{
|
||||
buffer[0] = 0;
|
||||
ret = recvfrom(sockfd, buffer, packet_size, 0, (struct sockaddr *) &sender, &len) < 0;
|
||||
if (ret == -1)
|
||||
{
|
||||
|
||||
@ -16,4 +16,5 @@ struct setting
|
||||
uint8_t ttl;
|
||||
size_t payload_size;
|
||||
struct hostenv dest;
|
||||
size_t preload;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user