diff options
Diffstat (limited to 'Semestr 4/sieci/pracownia2/router/router_addr.c')
-rw-r--r-- | Semestr 4/sieci/pracownia2/router/router_addr.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/Semestr 4/sieci/pracownia2/router/router_addr.c b/Semestr 4/sieci/pracownia2/router/router_addr.c deleted file mode 100644 index 1e4c086..0000000 --- a/Semestr 4/sieci/pracownia2/router/router_addr.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "router_addr.h" -#include <stdio.h> -#include <string.h> -#include <stdlib.h> - -struct in_addr get_broadcast_address(struct router_addr ra) { - struct in_addr result = ra.addr; - /* bitshift by more than 31 is UB */ - if (ra.netmask < 32) { - result.s_addr |= ~((1<<ra.netmask) - 1); - } - return result; -} - -void pretty_print(struct router_addr ra) { - char ip_addr[20]; - inet_ntop(AF_INET, &ra.addr, ip_addr, sizeof(ip_addr)); - printf("%s/%d distance %d\n", ip_addr, ra.netmask, ra.distance); -} - -/* converts string of IP with netmask in CIDR notation to router_addr */ -struct router_addr stora(char *str) { - struct router_addr result; - char addr[20]; - size_t ip_preffix = strcspn(str, "/"); - - strncpy(addr, str, strlen(str)); - addr[ip_preffix] = 0; - inet_pton(AF_INET, addr, &(result.addr)); - result.netmask = atoi(str + ip_preffix + 1); - return result; -}
\ No newline at end of file |