diff options
author | Christian Grothoff <christian@grothoff.org> | 2009-07-24 22:04:41 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2009-07-24 22:04:41 +0000 |
commit | 70e6847205a9f9b9b660be2a173d5bc309eaa58d (patch) | |
tree | e2649865fbff3e7cbb2e85e381a6268b9aa01e0d /src/util/network.c | |
parent | 0722614037876469e205546db5ab5fc892b5cf8c (diff) | |
download | gnunet-70e6847205a9f9b9b660be2a173d5bc309eaa58d.tar.gz gnunet-70e6847205a9f9b9b660be2a173d5bc309eaa58d.zip |
quota management and better name for NO_TASK'
'
Diffstat (limited to 'src/util/network.c')
-rw-r--r-- | src/util/network.c | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/src/util/network.c b/src/util/network.c index cb8542329..9b61bd8c2 100644 --- a/src/util/network.c +++ b/src/util/network.c | |||
@@ -541,7 +541,7 @@ connect_continuation (void *cls, | |||
541 | int error; | 541 | int error; |
542 | 542 | ||
543 | /* nobody needs to wait for us anymore... */ | 543 | /* nobody needs to wait for us anymore... */ |
544 | sock->connect_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 544 | sock->connect_task = GNUNET_SCHEDULER_NO_TASK; |
545 | /* Note: write-ready does NOT mean connect succeeded, | 545 | /* Note: write-ready does NOT mean connect succeeded, |
546 | we need to use getsockopt to be sure */ | 546 | we need to use getsockopt to be sure */ |
547 | len = sizeof (error); | 547 | len = sizeof (error); |
@@ -574,7 +574,7 @@ connect_continuation (void *cls, | |||
574 | } | 574 | } |
575 | sock->connect_task = GNUNET_SCHEDULER_add_write (tc->sched, GNUNET_NO, /* abort on shutdown */ | 575 | sock->connect_task = GNUNET_SCHEDULER_add_write (tc->sched, GNUNET_NO, /* abort on shutdown */ |
576 | GNUNET_SCHEDULER_PRIORITY_KEEP, | 576 | GNUNET_SCHEDULER_PRIORITY_KEEP, |
577 | GNUNET_SCHEDULER_NO_PREREQUISITE_TASK, | 577 | GNUNET_SCHEDULER_NO_TASK, |
578 | GNUNET_NETWORK_CONNECT_RETRY_TIMEOUT, | 578 | GNUNET_NETWORK_CONNECT_RETRY_TIMEOUT, |
579 | sock->sock, | 579 | sock->sock, |
580 | &connect_continuation, | 580 | &connect_continuation, |
@@ -630,7 +630,7 @@ GNUNET_NETWORK_socket_create_from_connect (struct GNUNET_SCHEDULER_Handle | |||
630 | } | 630 | } |
631 | ret->connect_task = GNUNET_SCHEDULER_add_write (sched, GNUNET_NO, /* abort on shutdown */ | 631 | ret->connect_task = GNUNET_SCHEDULER_add_write (sched, GNUNET_NO, /* abort on shutdown */ |
632 | GNUNET_SCHEDULER_PRIORITY_KEEP, | 632 | GNUNET_SCHEDULER_PRIORITY_KEEP, |
633 | GNUNET_SCHEDULER_NO_PREREQUISITE_TASK, | 633 | GNUNET_SCHEDULER_NO_TASK, |
634 | GNUNET_NETWORK_CONNECT_RETRY_TIMEOUT, | 634 | GNUNET_NETWORK_CONNECT_RETRY_TIMEOUT, |
635 | ret->sock, | 635 | ret->sock, |
636 | &connect_continuation, ret); | 636 | &connect_continuation, ret); |
@@ -727,7 +727,7 @@ destroy_continuation (void *cls, | |||
727 | struct GNUNET_NETWORK_SocketHandle *sock = cls; | 727 | struct GNUNET_NETWORK_SocketHandle *sock = cls; |
728 | GNUNET_NETWORK_TransmitReadyNotify notify; | 728 | GNUNET_NETWORK_TransmitReadyNotify notify; |
729 | 729 | ||
730 | if (sock->write_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 730 | if (sock->write_task != GNUNET_SCHEDULER_NO_TASK) |
731 | { | 731 | { |
732 | GNUNET_SCHEDULER_add_after (sock->sched, | 732 | GNUNET_SCHEDULER_add_after (sock->sched, |
733 | GNUNET_YES, | 733 | GNUNET_YES, |
@@ -743,7 +743,7 @@ destroy_continuation (void *cls, | |||
743 | #endif | 743 | #endif |
744 | SHUTDOWN (sock->sock, SHUT_RDWR); | 744 | SHUTDOWN (sock->sock, SHUT_RDWR); |
745 | } | 745 | } |
746 | if (sock->read_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 746 | if (sock->read_task != GNUNET_SCHEDULER_NO_TASK) |
747 | { | 747 | { |
748 | GNUNET_SCHEDULER_add_after (sock->sched, | 748 | GNUNET_SCHEDULER_add_after (sock->sched, |
749 | GNUNET_YES, | 749 | GNUNET_YES, |
@@ -756,10 +756,10 @@ destroy_continuation (void *cls, | |||
756 | { | 756 | { |
757 | sock->nth.notify_ready = NULL; | 757 | sock->nth.notify_ready = NULL; |
758 | notify (sock->nth.notify_ready_cls, 0, NULL); | 758 | notify (sock->nth.notify_ready_cls, 0, NULL); |
759 | if (sock->nth.timeout_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 759 | if (sock->nth.timeout_task != GNUNET_SCHEDULER_NO_TASK) |
760 | { | 760 | { |
761 | GNUNET_SCHEDULER_cancel (sock->sched, sock->nth.timeout_task); | 761 | GNUNET_SCHEDULER_cancel (sock->sched, sock->nth.timeout_task); |
762 | sock->nth.timeout_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 762 | sock->nth.timeout_task = GNUNET_SCHEDULER_NO_TASK; |
763 | } | 763 | } |
764 | } | 764 | } |
765 | if (sock->sock != -1) | 765 | if (sock->sock != -1) |
@@ -837,7 +837,7 @@ receive_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
837 | ssize_t ret; | 837 | ssize_t ret; |
838 | GNUNET_NETWORK_Receiver receiver; | 838 | GNUNET_NETWORK_Receiver receiver; |
839 | 839 | ||
840 | sh->read_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 840 | sh->read_task = GNUNET_SCHEDULER_NO_TASK; |
841 | now = GNUNET_TIME_absolute_get (); | 841 | now = GNUNET_TIME_absolute_get (); |
842 | if ((now.value > sh->receive_timeout.value) || | 842 | if ((now.value > sh->receive_timeout.value) || |
843 | (0 != (tc->reason & GNUNET_SCHEDULER_REASON_TIMEOUT)) || | 843 | (0 != (tc->reason & GNUNET_SCHEDULER_REASON_TIMEOUT)) || |
@@ -907,9 +907,9 @@ receive_again (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
907 | struct GNUNET_NETWORK_SocketHandle *sh = cls; | 907 | struct GNUNET_NETWORK_SocketHandle *sh = cls; |
908 | struct GNUNET_TIME_Absolute now; | 908 | struct GNUNET_TIME_Absolute now; |
909 | 909 | ||
910 | sh->read_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 910 | sh->read_task = GNUNET_SCHEDULER_NO_TASK; |
911 | if ((sh->sock == -1) && | 911 | if ((sh->sock == -1) && |
912 | (sh->connect_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK)) | 912 | (sh->connect_task == GNUNET_SCHEDULER_NO_TASK)) |
913 | { | 913 | { |
914 | /* not connected and no longer trying */ | 914 | /* not connected and no longer trying */ |
915 | #if DEBUG_NETWORK | 915 | #if DEBUG_NETWORK |
@@ -930,7 +930,7 @@ receive_again (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
930 | signal_timeout (sh); | 930 | signal_timeout (sh); |
931 | return; | 931 | return; |
932 | } | 932 | } |
933 | if (sh->connect_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 933 | if (sh->connect_task != GNUNET_SCHEDULER_NO_TASK) |
934 | { | 934 | { |
935 | /* connect was retried */ | 935 | /* connect was retried */ |
936 | sh->read_task = GNUNET_SCHEDULER_add_after (tc->sched, | 936 | sh->read_task = GNUNET_SCHEDULER_add_after (tc->sched, |
@@ -965,7 +965,7 @@ receive_again (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
965 | * @param timeout maximum amount of time to wait (use -1 for "forever") | 965 | * @param timeout maximum amount of time to wait (use -1 for "forever") |
966 | * @param receiver function to call with received data | 966 | * @param receiver function to call with received data |
967 | * @param receiver_cls closure for receiver | 967 | * @param receiver_cls closure for receiver |
968 | * @return scheduler task ID used for receiving, GNUNET_SCHEDULER_NO_PREREQUISITE_TASK on error | 968 | * @return scheduler task ID used for receiving, GNUNET_SCHEDULER_NO_TASK on error |
969 | */ | 969 | */ |
970 | GNUNET_SCHEDULER_TaskIdentifier | 970 | GNUNET_SCHEDULER_TaskIdentifier |
971 | GNUNET_NETWORK_receive (struct GNUNET_NETWORK_SocketHandle *sock, | 971 | GNUNET_NETWORK_receive (struct GNUNET_NETWORK_SocketHandle *sock, |
@@ -975,7 +975,7 @@ GNUNET_NETWORK_receive (struct GNUNET_NETWORK_SocketHandle *sock, | |||
975 | { | 975 | { |
976 | struct GNUNET_SCHEDULER_TaskContext tc; | 976 | struct GNUNET_SCHEDULER_TaskContext tc; |
977 | 977 | ||
978 | GNUNET_assert ((sock->read_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) && | 978 | GNUNET_assert ((sock->read_task == GNUNET_SCHEDULER_NO_TASK) && |
979 | (sock->receiver == NULL)); | 979 | (sock->receiver == NULL)); |
980 | sock->receiver = receiver; | 980 | sock->receiver = receiver; |
981 | sock->receiver_cls = receiver_cls; | 981 | sock->receiver_cls = receiver_cls; |
@@ -1004,7 +1004,7 @@ GNUNET_NETWORK_receive_cancel (struct GNUNET_NETWORK_SocketHandle *sock, | |||
1004 | { | 1004 | { |
1005 | GNUNET_assert (sock->read_task == task); | 1005 | GNUNET_assert (sock->read_task == task); |
1006 | GNUNET_assert (sock == GNUNET_SCHEDULER_cancel (sock->sched, task)); | 1006 | GNUNET_assert (sock == GNUNET_SCHEDULER_cancel (sock->sched, task)); |
1007 | sock->read_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 1007 | sock->read_task = GNUNET_SCHEDULER_NO_TASK; |
1008 | sock->receiver = NULL; | 1008 | sock->receiver = NULL; |
1009 | return sock->receiver_cls; | 1009 | return sock->receiver_cls; |
1010 | } | 1010 | } |
@@ -1025,7 +1025,7 @@ process_notify (struct GNUNET_NETWORK_SocketHandle *sock) | |||
1025 | size_t size; | 1025 | size_t size; |
1026 | GNUNET_NETWORK_TransmitReadyNotify notify; | 1026 | GNUNET_NETWORK_TransmitReadyNotify notify; |
1027 | 1027 | ||
1028 | GNUNET_assert (sock->write_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK); | 1028 | GNUNET_assert (sock->write_task == GNUNET_SCHEDULER_NO_TASK); |
1029 | if (NULL == (notify = sock->nth.notify_ready)) | 1029 | if (NULL == (notify = sock->nth.notify_ready)) |
1030 | return GNUNET_NO; | 1030 | return GNUNET_NO; |
1031 | used = sock->write_buffer_off - sock->write_buffer_pos; | 1031 | used = sock->write_buffer_off - sock->write_buffer_pos; |
@@ -1034,10 +1034,10 @@ process_notify (struct GNUNET_NETWORK_SocketHandle *sock) | |||
1034 | if (sock->nth.notify_size > avail) | 1034 | if (sock->nth.notify_size > avail) |
1035 | return GNUNET_NO; | 1035 | return GNUNET_NO; |
1036 | sock->nth.notify_ready = NULL; | 1036 | sock->nth.notify_ready = NULL; |
1037 | if (sock->nth.timeout_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 1037 | if (sock->nth.timeout_task != GNUNET_SCHEDULER_NO_TASK) |
1038 | { | 1038 | { |
1039 | GNUNET_SCHEDULER_cancel (sock->sched, sock->nth.timeout_task); | 1039 | GNUNET_SCHEDULER_cancel (sock->sched, sock->nth.timeout_task); |
1040 | sock->nth.timeout_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 1040 | sock->nth.timeout_task = GNUNET_SCHEDULER_NO_TASK; |
1041 | } | 1041 | } |
1042 | if (sock->write_buffer_size - sock->write_buffer_off < size) | 1042 | if (sock->write_buffer_size - sock->write_buffer_off < size) |
1043 | { | 1043 | { |
@@ -1084,10 +1084,10 @@ transmit_error (struct GNUNET_NETWORK_SocketHandle *sock) | |||
1084 | { | 1084 | { |
1085 | if (sock->nth.notify_ready == NULL) | 1085 | if (sock->nth.notify_ready == NULL) |
1086 | return; /* nobody to tell about it */ | 1086 | return; /* nobody to tell about it */ |
1087 | if (sock->nth.timeout_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 1087 | if (sock->nth.timeout_task != GNUNET_SCHEDULER_NO_TASK) |
1088 | { | 1088 | { |
1089 | GNUNET_SCHEDULER_cancel (sock->sched, sock->nth.timeout_task); | 1089 | GNUNET_SCHEDULER_cancel (sock->sched, sock->nth.timeout_task); |
1090 | sock->nth.timeout_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 1090 | sock->nth.timeout_task = GNUNET_SCHEDULER_NO_TASK; |
1091 | } | 1091 | } |
1092 | transmit_timeout (sock, NULL); | 1092 | transmit_timeout (sock, NULL); |
1093 | } | 1093 | } |
@@ -1105,13 +1105,13 @@ transmit_ready (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
1105 | ssize_t ret; | 1105 | ssize_t ret; |
1106 | size_t have; | 1106 | size_t have; |
1107 | 1107 | ||
1108 | GNUNET_assert (sock->write_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK); | 1108 | GNUNET_assert (sock->write_task != GNUNET_SCHEDULER_NO_TASK); |
1109 | sock->write_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 1109 | sock->write_task = GNUNET_SCHEDULER_NO_TASK; |
1110 | if (sock->connect_task != GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 1110 | if (sock->connect_task != GNUNET_SCHEDULER_NO_TASK) |
1111 | { | 1111 | { |
1112 | /* still waiting for connect */ | 1112 | /* still waiting for connect */ |
1113 | GNUNET_assert (sock->write_task == | 1113 | GNUNET_assert (sock->write_task == |
1114 | GNUNET_SCHEDULER_NO_PREREQUISITE_TASK); | 1114 | GNUNET_SCHEDULER_NO_TASK); |
1115 | sock->write_task = | 1115 | sock->write_task = |
1116 | GNUNET_SCHEDULER_add_delayed (tc->sched, GNUNET_NO, | 1116 | GNUNET_SCHEDULER_add_delayed (tc->sched, GNUNET_NO, |
1117 | GNUNET_SCHEDULER_PRIORITY_KEEP, | 1117 | GNUNET_SCHEDULER_PRIORITY_KEEP, |
@@ -1195,12 +1195,12 @@ RETRY: | |||
1195 | return; /* all data sent! */ | 1195 | return; /* all data sent! */ |
1196 | /* not done writing, schedule more */ | 1196 | /* not done writing, schedule more */ |
1197 | SCHEDULE_WRITE: | 1197 | SCHEDULE_WRITE: |
1198 | if (sock->write_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 1198 | if (sock->write_task == GNUNET_SCHEDULER_NO_TASK) |
1199 | sock->write_task = | 1199 | sock->write_task = |
1200 | GNUNET_SCHEDULER_add_write (tc->sched, | 1200 | GNUNET_SCHEDULER_add_write (tc->sched, |
1201 | GNUNET_NO, | 1201 | GNUNET_NO, |
1202 | GNUNET_SCHEDULER_PRIORITY_KEEP, | 1202 | GNUNET_SCHEDULER_PRIORITY_KEEP, |
1203 | GNUNET_SCHEDULER_NO_PREREQUISITE_TASK, | 1203 | GNUNET_SCHEDULER_NO_TASK, |
1204 | GNUNET_TIME_absolute_get_remaining (sock->nth.transmit_timeout), | 1204 | GNUNET_TIME_absolute_get_remaining (sock->nth.transmit_timeout), |
1205 | sock->sock, &transmit_ready, sock); | 1205 | sock->sock, &transmit_ready, sock); |
1206 | } | 1206 | } |
@@ -1233,7 +1233,7 @@ GNUNET_NETWORK_notify_transmit_ready (struct GNUNET_NETWORK_SocketHandle | |||
1233 | GNUNET_assert (sock->write_buffer_size >= size); | 1233 | GNUNET_assert (sock->write_buffer_size >= size); |
1234 | 1234 | ||
1235 | if ((sock->sock == -1) && | 1235 | if ((sock->sock == -1) && |
1236 | (sock->connect_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK)) | 1236 | (sock->connect_task == GNUNET_SCHEDULER_NO_TASK)) |
1237 | { | 1237 | { |
1238 | #if DEBUG_NETWORK | 1238 | #if DEBUG_NETWORK |
1239 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1239 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -1254,17 +1254,17 @@ GNUNET_NETWORK_notify_transmit_ready (struct GNUNET_NETWORK_SocketHandle | |||
1254 | sock->nth.timeout_task = GNUNET_SCHEDULER_add_delayed (sock->sched, | 1254 | sock->nth.timeout_task = GNUNET_SCHEDULER_add_delayed (sock->sched, |
1255 | GNUNET_NO, | 1255 | GNUNET_NO, |
1256 | GNUNET_SCHEDULER_PRIORITY_KEEP, | 1256 | GNUNET_SCHEDULER_PRIORITY_KEEP, |
1257 | GNUNET_SCHEDULER_NO_PREREQUISITE_TASK, | 1257 | GNUNET_SCHEDULER_NO_TASK, |
1258 | timeout, | 1258 | timeout, |
1259 | &transmit_timeout, | 1259 | &transmit_timeout, |
1260 | sock); | 1260 | sock); |
1261 | if (sock->write_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 1261 | if (sock->write_task == GNUNET_SCHEDULER_NO_TASK) |
1262 | { | 1262 | { |
1263 | if (sock->connect_task == GNUNET_SCHEDULER_NO_PREREQUISITE_TASK) | 1263 | if (sock->connect_task == GNUNET_SCHEDULER_NO_TASK) |
1264 | sock->write_task = GNUNET_SCHEDULER_add_write (sock->sched, | 1264 | sock->write_task = GNUNET_SCHEDULER_add_write (sock->sched, |
1265 | GNUNET_NO, | 1265 | GNUNET_NO, |
1266 | GNUNET_SCHEDULER_PRIORITY_KEEP, | 1266 | GNUNET_SCHEDULER_PRIORITY_KEEP, |
1267 | GNUNET_SCHEDULER_NO_PREREQUISITE_TASK, | 1267 | GNUNET_SCHEDULER_NO_TASK, |
1268 | GNUNET_TIME_absolute_get_remaining (sock->nth.transmit_timeout), | 1268 | GNUNET_TIME_absolute_get_remaining (sock->nth.transmit_timeout), |
1269 | sock->sock, | 1269 | sock->sock, |
1270 | &transmit_ready, sock); | 1270 | &transmit_ready, sock); |
@@ -1290,7 +1290,7 @@ GNUNET_NETWORK_notify_transmit_ready_cancel (struct | |||
1290 | { | 1290 | { |
1291 | GNUNET_assert (h->notify_ready != NULL); | 1291 | GNUNET_assert (h->notify_ready != NULL); |
1292 | GNUNET_SCHEDULER_cancel (h->sh->sched, h->timeout_task); | 1292 | GNUNET_SCHEDULER_cancel (h->sh->sched, h->timeout_task); |
1293 | h->timeout_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK; | 1293 | h->timeout_task = GNUNET_SCHEDULER_NO_TASK; |
1294 | h->notify_ready = NULL; | 1294 | h->notify_ready = NULL; |
1295 | } | 1295 | } |
1296 | 1296 | ||