summaryrefslogtreecommitdiff
path: root/librabbitmq/amqp_time.c
diff options
context:
space:
mode:
Diffstat (limited to 'librabbitmq/amqp_time.c')
-rw-r--r--librabbitmq/amqp_time.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/librabbitmq/amqp_time.c b/librabbitmq/amqp_time.c
index b069be9..d3343f6 100644
--- a/librabbitmq/amqp_time.c
+++ b/librabbitmq/amqp_time.c
@@ -199,7 +199,7 @@ int amqp_time_ms_until(amqp_time_t time) {
return left_ms;
}
-int amqp_time_tv_until(amqp_time_t time, const struct timeval *in,
+int amqp_time_tv_until(amqp_time_t time, struct timeval *in,
struct timeval **out) {
uint64_t now_ns;
uint64_t delta_ns;
@@ -210,8 +210,9 @@ int amqp_time_tv_until(amqp_time_t time, const struct timeval *in,
return AMQP_STATUS_OK;
}
if (0 == time.time_point_ns) {
- (*out)->tv_sec = 0;
- (*out)->tv_usec = 0;
+ in->tv_sec = 0;
+ in->tv_usec = 0;
+ *out = in;
return AMQP_STATUS_OK;
}
@@ -221,14 +222,16 @@ int amqp_time_tv_until(amqp_time_t time, const struct timeval *in,
}
if (now_ns >= time.time_point_ns) {
- (*out)->tv_sec = 0;
- (*out)->tv_usec = 0;
+ in->tv_sec = 0;
+ in->tv_usec = 0;
+ *out = in;
return AMQP_STATUS_OK;
}
delta_ns = time.time_point_ns - now_ns;
- (*out)->tv_sec = (int)(delta_ns / AMQP_NS_PER_S);
- (*out)->tv_usec = (int)((delta_ns % AMQP_NS_PER_S) / AMQP_NS_PER_US);
+ in->tv_sec = (int)(delta_ns / AMQP_NS_PER_S);
+ in->tv_usec = (int)((delta_ns % AMQP_NS_PER_S) / AMQP_NS_PER_US);
+ *out = in;
return AMQP_STATUS_OK;
}