diff options
Diffstat (limited to 'Semestr 4/sieci/pracownia2/router/utils.h')
-rw-r--r-- | Semestr 4/sieci/pracownia2/router/utils.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Semestr 4/sieci/pracownia2/router/utils.h b/Semestr 4/sieci/pracownia2/router/utils.h index 63ad6fb..3642779 100644 --- a/Semestr 4/sieci/pracownia2/router/utils.h +++ b/Semestr 4/sieci/pracownia2/router/utils.h @@ -7,6 +7,7 @@ #include <time.h> #include <poll.h> #include "network_addr.h" +#include "dist_vector.h" #define NS_TO_MS(X) ((long)(X) / (long)1000000) #define S_TO_MS(X) ((long)(X) * (long)1000) @@ -32,5 +33,17 @@ void recv_and_print(int sockfd, int networks_number, struct network_addr *networ */ size_t send_message(int sockfd, char *buffer, int buffer_len, struct in_addr addr); +/* Receive message and write it to buffer. */ +size_t recv_message(int sockfd, char *buffer, struct sockaddr_in *sender); + +/* Parse datagram into a vector item. */ +struct vector_item parse_message(char *buffer, struct sockaddr_in *sender); + +/* Propagates dv to all connected networks. */ +void propagate_distance_vector(int sockfd, int networks_number, struct network_addr *networks, uint16_t *dists, list_t *dv); + +/* Checks if given address is in network range. */ +bool is_from_network(struct in_addr ip_addr, struct network_addr network); + #endif
\ No newline at end of file |