# define WG_SEND_BUF_SIZE 1428
#endif
+#ifndef WG_MIN_RECONNECT_INTERVAL
+# define WG_MIN_RECONNECT_INTERVAL TIME_T_TO_CDTIME_T (1)
+#endif
+
/*
* Private variables
*/
pthread_mutex_t send_lock;
c_complain_t init_complaint;
+ cdtime_t last_connect_time;
};
struct addrinfo ai_hints;
struct addrinfo *ai_list;
struct addrinfo *ai_ptr;
+ cdtime_t now;
int status;
const char *node = cb->node ? cb->node : WG_DEFAULT_NODE;
if (cb->sock_fd > 0)
return (0);
+ /* Don't try to reconnect too often. By default, one reconnection attempt
+ * is made per second. */
+ now = cdtime ();
+ if ((now - cb->last_connect_time) < WG_MIN_RECONNECT_INTERVAL)
+ return (EAGAIN);
+ cb->last_connect_time = now;
+
memset (&ai_hints, 0, sizeof (ai_hints));
#ifdef AI_ADDRCONFIG
ai_hints.ai_flags |= AI_ADDRCONFIG;