From e482a63238d3085e96fa698b1c45cf54357038b4 Mon Sep 17 00:00:00 2001 From: james Date: Thu, 29 Jun 2006 18:57:21 +0000 Subject: Added two new management states: OPENVPN_STATE_RESOLVE -- DNS lookup */ OPENVPN_STATE_TCP_CONNECT -- Connecting to TCP server Echo management state change to log. git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@1068 e7ae566f-a301-0410-adde-c780ea21d3b5 --- socket.c | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'socket.c') diff --git a/socket.c b/socket.c index 6fd2673..96e0562 100644 --- a/socket.c +++ b/socket.c @@ -37,6 +37,7 @@ #include "gremlin.h" #include "plugin.h" #include "ps.h" +#include "manage.h" #include "memdbg.h" @@ -112,6 +113,18 @@ getaddr (unsigned int flags, goto done; } +#ifdef ENABLE_MANAGEMENT + if (flags & GETADDR_UPDATE_MANAGEMENT_STATE) + { + if (management) + management_set_state (management, + OPENVPN_STATE_RESOLVE, + NULL, + (in_addr_t)0, + (in_addr_t)0); + } +#endif + /* * Resolve hostname */ @@ -243,7 +256,7 @@ update_remote (const char* host, if (host && addr) { const in_addr_t new_addr = getaddr ( - GETADDR_RESOLVE, + GETADDR_RESOLVE|GETADDR_UPDATE_MANAGEMENT_STATE, host, 1, NULL, @@ -817,6 +830,15 @@ socket_connect (socket_descriptor_t *sd, { int status; +#ifdef ENABLE_MANAGEMENT + if (management) + management_set_state (management, + OPENVPN_STATE_TCP_CONNECT, + NULL, + (in_addr_t)0, + (in_addr_t)0); +#endif + status = openvpn_connect (*sd, remote, connect_timeout, signal_received); get_signal (signal_received); @@ -962,13 +984,12 @@ resolve_remote (struct link_socket *sock, if (sock->remote_host) { - unsigned int flags = 0; + unsigned int flags = GETADDR_RESOLVE|GETADDR_UPDATE_MANAGEMENT_STATE; int retry = 0; bool status = false; if (remote_list_len (sock->remote_list) > 1 && sock->resolve_retry_seconds == RESOLV_RETRY_INFINITE) { - flags = GETADDR_RESOLVE; if (phase == 2) flags |= (GETADDR_TRY_ONCE | GETADDR_FATAL); retry = 0; @@ -977,12 +998,11 @@ resolve_remote (struct link_socket *sock, { if (sock->resolve_retry_seconds) { - flags = GETADDR_RESOLVE; retry = 0; } else { - flags = GETADDR_RESOLVE | GETADDR_FATAL | GETADDR_MENTION_RESOLVE_RETRY; + flags |= (GETADDR_FATAL | GETADDR_MENTION_RESOLVE_RETRY); retry = 0; } } @@ -990,7 +1010,7 @@ resolve_remote (struct link_socket *sock, { if (sock->resolve_retry_seconds) { - flags = GETADDR_RESOLVE | GETADDR_FATAL; + flags |= GETADDR_FATAL; retry = sock->resolve_retry_seconds; } else -- cgit v1.2.3