diff options
Diffstat (limited to 'src/cadet/gnunet-service-cadet_connection.c')
-rw-r--r-- | src/cadet/gnunet-service-cadet_connection.c | 51 |
1 files changed, 10 insertions, 41 deletions
diff --git a/src/cadet/gnunet-service-cadet_connection.c b/src/cadet/gnunet-service-cadet_connection.c index d11368a79..188041feb 100644 --- a/src/cadet/gnunet-service-cadet_connection.c +++ b/src/cadet/gnunet-service-cadet_connection.c | |||
@@ -1192,11 +1192,10 @@ connection_maintain (struct CadetConnection *c, int fwd) | |||
1192 | * | 1192 | * |
1193 | * @param c Connection to keep alive. | 1193 | * @param c Connection to keep alive. |
1194 | * @param fwd Direction. | 1194 | * @param fwd Direction. |
1195 | * @param shutdown Are we shutting down? (Don't send traffic) | ||
1196 | * Non-zero value for true, not necessarily GNUNET_YES. | ||
1197 | */ | 1195 | */ |
1198 | static void | 1196 | static void |
1199 | connection_keepalive (struct CadetConnection *c, int fwd, int shutdown) | 1197 | connection_keepalive (struct CadetConnection *c, |
1198 | int fwd) | ||
1200 | { | 1199 | { |
1201 | GCC_check_connections (); | 1200 | GCC_check_connections (); |
1202 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 1201 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
@@ -1207,10 +1206,6 @@ connection_keepalive (struct CadetConnection *c, int fwd, int shutdown) | |||
1207 | c->fwd_maintenance_task = NULL; | 1206 | c->fwd_maintenance_task = NULL; |
1208 | else | 1207 | else |
1209 | c->bck_maintenance_task = NULL; | 1208 | c->bck_maintenance_task = NULL; |
1210 | |||
1211 | if (GNUNET_NO != shutdown) | ||
1212 | return; | ||
1213 | |||
1214 | connection_maintain (c, fwd); | 1209 | connection_maintain (c, fwd); |
1215 | GCC_check_connections (); | 1210 | GCC_check_connections (); |
1216 | /* Next execution will be scheduled by message_sent or _maintain*/ | 1211 | /* Next execution will be scheduled by message_sent or _maintain*/ |
@@ -1225,13 +1220,11 @@ connection_keepalive (struct CadetConnection *c, int fwd, int shutdown) | |||
1225 | static void | 1220 | static void |
1226 | connection_fwd_keepalive (void *cls) | 1221 | connection_fwd_keepalive (void *cls) |
1227 | { | 1222 | { |
1228 | const struct GNUNET_SCHEDULER_TaskContext *tc; | 1223 | struct CadetConnection *c = cls; |
1229 | 1224 | ||
1230 | GCC_check_connections (); | 1225 | GCC_check_connections (); |
1231 | tc = GNUNET_SCHEDULER_get_task_context (); | 1226 | connection_keepalive (c, |
1232 | connection_keepalive ((struct CadetConnection *) cls, | 1227 | GNUNET_YES); |
1233 | GNUNET_YES, | ||
1234 | tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN); | ||
1235 | GCC_check_connections (); | 1228 | GCC_check_connections (); |
1236 | } | 1229 | } |
1237 | 1230 | ||
@@ -1244,13 +1237,11 @@ connection_fwd_keepalive (void *cls) | |||
1244 | static void | 1237 | static void |
1245 | connection_bck_keepalive (void *cls) | 1238 | connection_bck_keepalive (void *cls) |
1246 | { | 1239 | { |
1247 | const struct GNUNET_SCHEDULER_TaskContext *tc; | 1240 | struct CadetConnection *c = cls; |
1248 | 1241 | ||
1249 | GCC_check_connections (); | 1242 | GCC_check_connections (); |
1250 | tc = GNUNET_SCHEDULER_get_task_context (); | 1243 | connection_keepalive (c, |
1251 | connection_keepalive ((struct CadetConnection *) cls, | 1244 | GNUNET_NO); |
1252 | GNUNET_NO, | ||
1253 | tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN); | ||
1254 | GCC_check_connections (); | 1245 | GCC_check_connections (); |
1255 | } | 1246 | } |
1256 | 1247 | ||
@@ -1461,16 +1452,9 @@ connection_poll (void *cls) | |||
1461 | struct GNUNET_CADET_Poll msg; | 1452 | struct GNUNET_CADET_Poll msg; |
1462 | struct CadetConnection *c; | 1453 | struct CadetConnection *c; |
1463 | int fwd; | 1454 | int fwd; |
1464 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
1465 | 1455 | ||
1466 | fc->poll_task = NULL; | 1456 | fc->poll_task = NULL; |
1467 | GCC_check_connections (); | 1457 | GCC_check_connections (); |
1468 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
1469 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
1470 | { | ||
1471 | return; | ||
1472 | } | ||
1473 | |||
1474 | c = fc->c; | 1458 | c = fc->c; |
1475 | fwd = fc == &c->fwd_fc; | 1459 | fwd = fc == &c->fwd_fc; |
1476 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Polling connection %s %s\n", | 1460 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Polling connection %s %s\n", |
@@ -1592,12 +1576,8 @@ static void | |||
1592 | connection_fwd_timeout (void *cls) | 1576 | connection_fwd_timeout (void *cls) |
1593 | { | 1577 | { |
1594 | struct CadetConnection *c = cls; | 1578 | struct CadetConnection *c = cls; |
1595 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
1596 | 1579 | ||
1597 | c->fwd_maintenance_task = NULL; | 1580 | c->fwd_maintenance_task = NULL; |
1598 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
1599 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
1600 | return; | ||
1601 | GCC_check_connections (); | 1581 | GCC_check_connections (); |
1602 | connection_timeout (c, GNUNET_YES); | 1582 | connection_timeout (c, GNUNET_YES); |
1603 | GCC_check_connections (); | 1583 | GCC_check_connections (); |
@@ -1614,12 +1594,8 @@ static void | |||
1614 | connection_bck_timeout (void *cls) | 1594 | connection_bck_timeout (void *cls) |
1615 | { | 1595 | { |
1616 | struct CadetConnection *c = cls; | 1596 | struct CadetConnection *c = cls; |
1617 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
1618 | 1597 | ||
1619 | c->bck_maintenance_task = NULL; | 1598 | c->bck_maintenance_task = NULL; |
1620 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
1621 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
1622 | return; | ||
1623 | GCC_check_connections (); | 1599 | GCC_check_connections (); |
1624 | connection_timeout (c, GNUNET_NO); | 1600 | connection_timeout (c, GNUNET_NO); |
1625 | GCC_check_connections (); | 1601 | GCC_check_connections (); |
@@ -1767,13 +1743,8 @@ static void | |||
1767 | check_duplicates (void *cls) | 1743 | check_duplicates (void *cls) |
1768 | { | 1744 | { |
1769 | struct CadetConnection *c = cls; | 1745 | struct CadetConnection *c = cls; |
1770 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
1771 | 1746 | ||
1772 | c->check_duplicates_task = NULL; | 1747 | c->check_duplicates_task = NULL; |
1773 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
1774 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | ||
1775 | return; | ||
1776 | |||
1777 | if (GNUNET_YES == does_connection_exist (c)) | 1748 | if (GNUNET_YES == does_connection_exist (c)) |
1778 | { | 1749 | { |
1779 | GCT_debug (c->t, GNUNET_ERROR_TYPE_DEBUG); | 1750 | GCT_debug (c->t, GNUNET_ERROR_TYPE_DEBUG); |
@@ -1783,7 +1754,6 @@ check_duplicates (void *cls) | |||
1783 | } | 1754 | } |
1784 | 1755 | ||
1785 | 1756 | ||
1786 | |||
1787 | /** | 1757 | /** |
1788 | * Wait for enough time to let any dead connections time out and check for | 1758 | * Wait for enough time to let any dead connections time out and check for |
1789 | * any remaining duplicates. | 1759 | * any remaining duplicates. |
@@ -1797,7 +1767,6 @@ schedule_check_duplicates (struct CadetConnection *c) | |||
1797 | 1767 | ||
1798 | if (NULL != c->check_duplicates_task) | 1768 | if (NULL != c->check_duplicates_task) |
1799 | return; | 1769 | return; |
1800 | |||
1801 | delay = GNUNET_TIME_relative_multiply (refresh_connection_time, 5); | 1770 | delay = GNUNET_TIME_relative_multiply (refresh_connection_time, 5); |
1802 | c->check_duplicates_task = GNUNET_SCHEDULER_add_delayed (delay, | 1771 | c->check_duplicates_task = GNUNET_SCHEDULER_add_delayed (delay, |
1803 | &check_duplicates, | 1772 | &check_duplicates, |
@@ -1805,7 +1774,6 @@ schedule_check_duplicates (struct CadetConnection *c) | |||
1805 | } | 1774 | } |
1806 | 1775 | ||
1807 | 1776 | ||
1808 | |||
1809 | /** | 1777 | /** |
1810 | * Add the connection to the list of both neighbors. | 1778 | * Add the connection to the list of both neighbors. |
1811 | * | 1779 | * |
@@ -1903,7 +1871,8 @@ unregister_neighbors (struct CadetConnection *c) | |||
1903 | * @param disconnected Peer that disconnected. | 1871 | * @param disconnected Peer that disconnected. |
1904 | */ | 1872 | */ |
1905 | static void | 1873 | static void |
1906 | invalidate_paths (struct CadetConnection *c, struct CadetPeer *disconnected) | 1874 | invalidate_paths (struct CadetConnection *c, |
1875 | struct CadetPeer *disconnected) | ||
1907 | { | 1876 | { |
1908 | struct CadetPeer *peer; | 1877 | struct CadetPeer *peer; |
1909 | unsigned int i; | 1878 | unsigned int i; |