added errors, removed util.c, and sperated install and build in make

This commit is contained in:
2025-05-12 08:46:32 -04:00
parent b4c24be141
commit 469abf8839
3 changed files with 25 additions and 13 deletions

View File

@ -24,7 +24,9 @@ SUBDIRECTORIES =
# -- Make Recipes --
# DO NOT TOUCH BELOW UNLESS YOU KNOW WHAT YOU ARE DOING :)
all: $(NAME)
all: $(BUILD_DIR)/$(NAME)
install: $(NAME)
re: fclean all

View File

@ -147,7 +147,7 @@ int main(int argc, char** argv) {
int timeout = 3000;
struct timespec recvt;
struct addrinfo hints = {0};
struct addrinfo *res = NULL;
struct addrinfo* res = NULL;
struct pollfd fds[1];
double min = INT32_MAX;
double max = 0;
@ -182,10 +182,20 @@ int main(int argc, char** argv) {
inet_ntop(res->ai_family, &destination.sin_addr, ip_str, INET_ADDRSTRLEN);
}
sock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
struct protoent *proto = getprotobyname("icmp");
if (!proto) {
dprintf (STDERR_FILENO, "%s: unknown protocol icmp.\n", argv[0]);
exit(1);
}
sock = socket(AF_INET, SOCK_RAW, proto->p_proto);
if (sock < 0) {
dprintf(STDERR_FILENO, "%s: socket() failed: %s\n", argv[0], strerror(errno));
if (errno == EPERM || errno == EACCES || errno == EPROTONOSUPPORT) {
dprintf(STDERR_FILENO, "%s: Lacking privilege for icmp socket.\n", argv[0]);
} else {
dprintf(STDERR_FILENO, "%s: %s\n", argv[0], strerror(errno));
}
exit(1);
}
@ -268,10 +278,9 @@ int main(int argc, char** argv) {
}
} else if (ret == 0) {
printf("No reply received within the timeout period\n");
} else {
perror("Poll failed");
}
// else {
// perror("Poll failed");
// }
pause();
}
@ -281,7 +290,13 @@ int main(int argc, char** argv) {
if (rept) {
printf("+%zu duplicates, ", rept);
}
printf("%zu%% packet loss\n", (xmit - recvd) / xmit * 100);
if (xmit) {
if (recvd > xmit) {
printf("-- somebody is printing forged packets!\n");
} else {
printf("%zu%% packet loss\n", (xmit - recvd) / xmit * 100);
}
}
double total = recvd + rept;
avg /= total;
stddev = stddev / total - avg * avg;

View File

@ -1,5 +0,0 @@
//
// Created by jrathelo on 2/24/25.
//
#include <main.h>