]> jfr.im git - solanum.git/commitdiff
authd: add provider timeout setting API
authorElizabeth Myers <redacted>
Mon, 4 Apr 2016 09:24:49 +0000 (04:24 -0500)
committerElizabeth Myers <redacted>
Mon, 4 Apr 2016 09:24:49 +0000 (04:24 -0500)
authd/provider.c
authd/provider.h

index dd63d6a8504e0664efce3df1c8b128f393900d87..4347517034a9c70ab8c4383e77efeb7c9df2f3e5 100644 (file)
@@ -389,3 +389,17 @@ set_provider_data(struct auth_client *auth, uint32_t id, void *data)
        auth->data[(size_t)id] = data;
 }
 
+void
+set_provider_timeout_relative(struct auth_client *auth, uint32_t id, time_t timeout)
+{
+       lrb_assert(id < rb_dlink_list_length(&auth_providers));
+       auth->timeout[(size_t)id] = timeout + rb_current_time();
+}
+
+void
+set_provider_timeout_absolute(struct auth_client *auth, uint32_t id, time_t timeout)
+{
+       lrb_assert(id < rb_dlink_list_length(&auth_providers));
+       auth->timeout[(size_t)id] = timeout;
+}
+
index fdf1211e24c05f691914ed029941de9520d063d2..8e9a7863636bc4bcac4d0479501e258cc2af5bfa 100644 (file)
@@ -117,6 +117,8 @@ void handle_cancel_connection(int parc, char *parv[]);
 
 void *get_provider_data(struct auth_client *auth, uint32_t id);
 void set_provider_data(struct auth_client *auth, uint32_t id, void *data);
+void set_provider_timeout_relative(struct auth_client *auth, uint32_t id, time_t timeout);
+void set_provider_timeout_absolute(struct auth_client *auth, uint32_t id, time_t timeout);
 
 /* Provider is operating on this auth_client (set this if you have async work to do) */
 static inline void