From 7dd4ef3c7c724badfe66a027ea3289d12ec0da46 Mon Sep 17 00:00:00 2001 From: Franciszek Malinka Date: Thu, 22 Apr 2021 21:14:19 +0200 Subject: Ostatnie poprawki i testy routera --- Semestr 4/sieci/pracownia2/router/dist_vector.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'Semestr 4/sieci/pracownia2/router/dist_vector.c') diff --git a/Semestr 4/sieci/pracownia2/router/dist_vector.c b/Semestr 4/sieci/pracownia2/router/dist_vector.c index f1c8c67..15ad851 100644 --- a/Semestr 4/sieci/pracownia2/router/dist_vector.c +++ b/Semestr 4/sieci/pracownia2/router/dist_vector.c @@ -1,5 +1,7 @@ #include "dist_vector.h" #include +#include +#include bool is_connected_directly(struct vector_item item) { return item.is_connected_directly; @@ -60,10 +62,8 @@ void update_dv_new_item(list_t *distance_vector, struct vector_item new_item) { current->distance = INFINITY_DIST; current->reachable = 0; } - } else if (new_item.distance < INFINITY_DIST) { - if (current->distance >= INFINITY_DIST) { - current->distance = new_item.distance; - } + } else { + current->distance = new_item.distance; current->reachable = 0; } } @@ -73,13 +73,21 @@ void update_dv_new_item(list_t *distance_vector, struct vector_item new_item) { iterate(distance_vector); } - if (new_entry) { + if (new_entry && new_item.reachable < INFINITY_DIST) { insert(distance_vector, &new_item, sizeof(new_item)); } } void print_dv(list_t *distance_vector) { - printf("Distance vector:\n"); + time_t rawtime; + struct tm * timeinfo; + + time ( &rawtime ); + timeinfo = localtime ( &rawtime ); + char t[100]; + strcpy(t, asctime(timeinfo)); + t[strlen(t) - 1] = 0; + printf("Distance vector [%s]:\n", t); reset(distance_vector); while (distance_vector->it != NULL) { char addr[20], via_addr[20]; -- cgit v1.2.3