]> git.meshlink.io Git - meshlink/commitdiff
Add meshlink_reset_timers().
authorGuus Sliepen <guus@meshlink.io>
Fri, 10 Jul 2020 20:13:23 +0000 (22:13 +0200)
committerGuus Sliepen <guus@meshlink.io>
Fri, 10 Jul 2020 20:13:23 +0000 (22:13 +0200)
This resets the outgoing connections timers and ping timers, exactly what
is done when the network intterface status changes.

src/meshlink.c
src/meshlink.h
src/meshlink.sym

index a8f8c928876b034fb169a4c92821faebd851226f..0fe7343c7ae6a789ab517f2973a6ab5920970c84 100644 (file)
@@ -4420,7 +4420,20 @@ void meshlink_set_dev_class_maxtimeout(struct meshlink_handle *mesh, dev_class_t
        pthread_mutex_unlock(&mesh->mutex);
 }
 
-extern void meshlink_set_inviter_commits_first(struct meshlink_handle *mesh, bool inviter_commits_first) {
+void meshlink_reset_timers(struct meshlink_handle *mesh) {
+       if(!mesh) {
+               return;
+       }
+
+       if(pthread_mutex_lock(&mesh->mutex) != 0) {
+               abort();
+       }
+
+       handle_network_change(mesh, true);
+       pthread_mutex_unlock(&mesh->mutex);
+}
+
+void meshlink_set_inviter_commits_first(struct meshlink_handle *mesh, bool inviter_commits_first) {
        if(!mesh) {
                meshlink_errno = EINVAL;
                return;
index e0164b7fd7e8bae111743d65484c21d35a40790b..8293da0ff6aacfa64ed0903af2f38ce84d69f60c 100644 (file)
@@ -1599,6 +1599,15 @@ void meshlink_set_dev_class_fast_retry_period(struct meshlink_handle *mesh, dev_
  */
 void meshlink_set_dev_class_maxtimeout(struct meshlink_handle *mesh, dev_class_t devclass, int maxtimeout);
 
+/// Reset all connection timers
+/** This resets all timers related to connections, causing pending outgoing connections to be retried immediately.
+ * It also sends keepalive packets on all active connections immediately.
+ *
+ *  \memberof meshlink_handle
+ *  @param mesh          A handle which represents an instance of MeshLink.
+ */
+void meshlink_reset_timers(struct meshlink_handle *mesh);
+
 /// Set which order invitations are committed
 /** This determines in which order configuration files are written to disk during an invitation.
  *  By default, the invitee saves the configuration to disk first, then the inviter.
index 7b0c91594af15a8cfd9589d1cf7096828646361b..991daa87d3d24fafe666933bd7107ca39d74ae0d 100644 (file)
@@ -61,6 +61,7 @@ meshlink_open_ephemeral
 meshlink_open_ex
 meshlink_open_params_free
 meshlink_open_params_init
+meshlink_reset_timers
 meshlink_send
 meshlink_set_canonical_address
 meshlink_set_channel_accept_cb