aboutsummaryrefslogtreecommitdiff
path: root/Semestr 4/sieci/pracownia2/router/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'Semestr 4/sieci/pracownia2/router/utils.h')
-rw-r--r--Semestr 4/sieci/pracownia2/router/utils.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/Semestr 4/sieci/pracownia2/router/utils.h b/Semestr 4/sieci/pracownia2/router/utils.h
index 3d36aed..63ad6fb 100644
--- a/Semestr 4/sieci/pracownia2/router/utils.h
+++ b/Semestr 4/sieci/pracownia2/router/utils.h
@@ -2,22 +2,35 @@
#define UTILS_H
#define UTILS_H
+#include "config.h"
#include <stdint.h>
#include <time.h>
#include <poll.h>
-#include "router_addr.h"
+#include "network_addr.h"
#define NS_TO_MS(X) ((long)(X) / (long)1000000)
#define S_TO_MS(X) ((long)(X) * (long)1000)
+/* Returns a UDP socket. */
int get_socket();
+/* Binds socket to given port and set the broadcast permission. */
void bind_to_port(int sockfd, uint16_t port);
+/* Computes the time elapsed between start and finish in miliseconds. */
long get_time_interval(struct timespec start, struct timespec finish);
+/* Polls given socket with given timeout and changes the timeout accordingly. */
int poll_socket_modify_timeout(int sockfd, int *timeout);
-void recv_and_print(int sockfd, int networks_number, struct router_addr *networks);
+/* For debug purposes only. Recieves and prints UDP message. */
+void recv_and_print(int sockfd, int networks_number, struct network_addr *networks);
+
+/* Sends message in buffer of length buffer_len to addr through given socket.
+ * IT DOES NOT TERMINATE THE PROGRAM IF SENDTO RETURNS ANY ERRORS!
+ * One must handle the errors on their own.
+ */
+size_t send_message(int sockfd, char *buffer, int buffer_len, struct in_addr addr);
+
#endif \ No newline at end of file