summaryrefslogtreecommitdiff
path: root/toxcore/ping_array.c
diff options
context:
space:
mode:
Diffstat (limited to 'toxcore/ping_array.c')
-rw-r--r--toxcore/ping_array.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/toxcore/ping_array.c b/toxcore/ping_array.c
index 142640dd..9130254e 100644
--- a/toxcore/ping_array.c
+++ b/toxcore/ping_array.c
@@ -109,12 +109,12 @@ void ping_array_kill(Ping_Array *array)
109 109
110/* Clear timed out entries. 110/* Clear timed out entries.
111 */ 111 */
112static void ping_array_clear_timedout(Ping_Array *array) 112static void ping_array_clear_timedout(Ping_Array *array, const Mono_Time *mono_time)
113{ 113{
114 while (array->last_deleted != array->last_added) { 114 while (array->last_deleted != array->last_added) {
115 uint32_t index = array->last_deleted % array->total_size; 115 uint32_t index = array->last_deleted % array->total_size;
116 116
117 if (!is_timeout(array->entries[index].time, array->timeout)) { 117 if (!mono_time_is_timeout(mono_time, array->entries[index].time, array->timeout)) {
118 break; 118 break;
119 } 119 }
120 120
@@ -128,9 +128,9 @@ static void ping_array_clear_timedout(Ping_Array *array)
128 * return ping_id on success. 128 * return ping_id on success.
129 * return 0 on failure. 129 * return 0 on failure.
130 */ 130 */
131uint64_t ping_array_add(Ping_Array *array, const uint8_t *data, uint32_t length) 131uint64_t ping_array_add(Ping_Array *array, const Mono_Time *mono_time, const uint8_t *data, uint32_t length)
132{ 132{
133 ping_array_clear_timedout(array); 133 ping_array_clear_timedout(array, mono_time);
134 uint32_t index = array->last_added % array->total_size; 134 uint32_t index = array->last_added % array->total_size;
135 135
136 if (array->entries[index].data != nullptr) { 136 if (array->entries[index].data != nullptr) {
@@ -146,7 +146,7 @@ uint64_t ping_array_add(Ping_Array *array, const uint8_t *data, uint32_t length)
146 146
147 memcpy(array->entries[index].data, data, length); 147 memcpy(array->entries[index].data, data, length);
148 array->entries[index].length = length; 148 array->entries[index].length = length;
149 array->entries[index].time = unix_time(); 149 array->entries[index].time = mono_time_get(mono_time);
150 ++array->last_added; 150 ++array->last_added;
151 uint64_t ping_id = random_u64(); 151 uint64_t ping_id = random_u64();
152 ping_id /= array->total_size; 152 ping_id /= array->total_size;
@@ -169,7 +169,7 @@ uint64_t ping_array_add(Ping_Array *array, const uint8_t *data, uint32_t length)
169 * return length of data copied on success. 169 * return length of data copied on success.
170 * return -1 on failure. 170 * return -1 on failure.
171 */ 171 */
172int32_t ping_array_check(Ping_Array *array, uint8_t *data, size_t length, uint64_t ping_id) 172int32_t ping_array_check(Ping_Array *array, const Mono_Time *mono_time, uint8_t *data, size_t length, uint64_t ping_id)
173{ 173{
174 if (ping_id == 0) { 174 if (ping_id == 0) {
175 return -1; 175 return -1;
@@ -181,7 +181,7 @@ int32_t ping_array_check(Ping_Array *array, uint8_t *data, size_t length, uint64
181 return -1; 181 return -1;
182 } 182 }
183 183
184 if (is_timeout(array->entries[index].time, array->timeout)) { 184 if (mono_time_is_timeout(mono_time, array->entries[index].time, array->timeout)) {
185 return -1; 185 return -1;
186 } 186 }
187 187