git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@701 e7ae566f-a301-0410-adde-c780ea21d3b5
james authored on 2005/10/21 04:00:56... | ... |
@@ -18,6 +18,8 @@ $Id$ |
18 | 18 |
interface to provide a general interface for sending |
19 | 19 |
alerts to the end-user. Used by the PKCS#11 code |
20 | 20 |
to send Token Insertion Requests to the user. |
21 |
+* Added actual remote address used to the ">STATE" alert |
|
22 |
+ in the management interface (Rolf Fokkens). |
|
21 | 23 |
|
22 | 24 |
2005.10.17 -- Version 2.1-beta4 |
23 | 25 |
|
... | ... |
@@ -627,15 +627,18 @@ initialization_sequence_completed (struct context *c, const unsigned int flags) |
627 | 627 |
if (management) |
628 | 628 |
{ |
629 | 629 |
in_addr_t tun_local = 0; |
630 |
+ in_addr_t tun_remote = 0; /* FKS */ |
|
630 | 631 |
const char *detail = "SUCCESS"; |
631 | 632 |
if (c->c1.tuntap) |
632 | 633 |
tun_local = c->c1.tuntap->local; |
634 |
+ tun_remote = htonl (c->c1.link_socket_addr.actual.dest.sa.sin_addr.s_addr); |
|
633 | 635 |
if (flags & ISC_ERRORS) |
634 | 636 |
detail = "ERROR"; |
635 | 637 |
management_set_state (management, |
636 | 638 |
OPENVPN_STATE_CONNECTED, |
637 | 639 |
detail, |
638 |
- tun_local); |
|
640 |
+ tun_local, |
|
641 |
+ tun_remote); |
|
639 | 642 |
if (tun_local) |
640 | 643 |
management_post_tunnel_open (management, tun_local); |
641 | 644 |
} |
... | ... |
@@ -2304,6 +2307,7 @@ open_management (struct context *c) |
2304 | 2304 |
management_set_state (management, |
2305 | 2305 |
OPENVPN_STATE_CONNECTING, |
2306 | 2306 |
NULL, |
2307 |
+ (in_addr_t)0, |
|
2307 | 2308 |
(in_addr_t)0); |
2308 | 2309 |
} |
2309 | 2310 |
|
... | ... |
@@ -451,7 +451,8 @@ man_state (struct management *man, const char *parm) |
451 | 451 |
"state", |
452 | 452 |
man->persist.state, |
453 | 453 |
&man->connection.state_realtime, |
454 |
- LOG_PRINT_INT_DATE|LOG_PRINT_STATE|LOG_PRINT_LOCAL_IP); |
|
454 |
+ LOG_PRINT_INT_DATE|LOG_PRINT_STATE| |
|
455 |
+ LOG_PRINT_LOCAL_IP|LOG_PRINT_REMOTE_IP); |
|
455 | 456 |
} |
456 | 457 |
|
457 | 458 |
static void |
... | ... |
@@ -1357,7 +1358,8 @@ void |
1357 | 1357 |
management_set_state (struct management *man, |
1358 | 1358 |
const int state, |
1359 | 1359 |
const char *detail, |
1360 |
- const in_addr_t tun_local_ip) |
|
1360 |
+ const in_addr_t tun_local_ip, |
|
1361 |
+ const in_addr_t tun_remote_ip) |
|
1361 | 1362 |
{ |
1362 | 1363 |
if (man->persist.state && (!man->settings.server || state < OPENVPN_STATE_CLIENT_BASE)) |
1363 | 1364 |
{ |
... | ... |
@@ -1371,6 +1373,7 @@ management_set_state (struct management *man, |
1371 | 1371 |
e.u.state = state; |
1372 | 1372 |
e.string = detail; |
1373 | 1373 |
e.local_ip = tun_local_ip; |
1374 |
+ e.remote_ip = tun_remote_ip; |
|
1374 | 1375 |
|
1375 | 1376 |
log_history_add (man->persist.state, &e); |
1376 | 1377 |
|
... | ... |
@@ -1379,6 +1382,7 @@ management_set_state (struct management *man, |
1379 | 1379 |
| LOG_PRINT_INT_DATE |
1380 | 1380 |
| LOG_PRINT_STATE |
1381 | 1381 |
| LOG_PRINT_LOCAL_IP |
1382 |
+ | LOG_PRINT_REMOTE_IP |
|
1382 | 1383 |
| LOG_PRINT_CRLF, &gc); |
1383 | 1384 |
|
1384 | 1385 |
if (out) |
... | ... |
@@ -2087,6 +2091,8 @@ log_entry_print (const struct log_entry *e, unsigned int flags, struct gc_arena |
2087 | 2087 |
buf_printf (&out, "%s", e->string); |
2088 | 2088 |
if (flags & LOG_PRINT_LOCAL_IP) |
2089 | 2089 |
buf_printf (&out, ",%s", print_in_addr_t (e->local_ip, IA_EMPTY_IF_UNDEF, gc)); |
2090 |
+ if (flags & LOG_PRINT_REMOTE_IP) |
|
2091 |
+ buf_printf (&out, ",%s", print_in_addr_t (e->remote_ip, IA_EMPTY_IF_UNDEF, gc)); |
|
2090 | 2092 |
if (flags & LOG_PRINT_CRLF) |
2091 | 2093 |
buf_printf (&out, "\r\n"); |
2092 | 2094 |
return BSTR (&out); |
... | ... |
@@ -97,6 +97,7 @@ struct log_entry |
97 | 97 |
time_t timestamp; |
98 | 98 |
const char *string; |
99 | 99 |
in_addr_t local_ip; |
100 |
+ in_addr_t remote_ip; |
|
100 | 101 |
union log_entry_union u; |
101 | 102 |
}; |
102 | 103 |
|
... | ... |
@@ -114,6 +115,8 @@ struct log_entry |
114 | 114 |
|
115 | 115 |
#define LOG_PRINT_INTVAL (1<<9) |
116 | 116 |
|
117 |
+#define LOG_PRINT_REMOTE_IP (1<<10) |
|
118 |
+ |
|
117 | 119 |
const char *log_entry_print (const struct log_entry *e, unsigned int flags, struct gc_arena *gc); |
118 | 120 |
|
119 | 121 |
struct log_history |
... | ... |
@@ -325,7 +328,8 @@ management_query_user_pass_enabled (const struct management *man) |
325 | 325 |
void management_set_state (struct management *man, |
326 | 326 |
const int state, |
327 | 327 |
const char *detail, |
328 |
- const in_addr_t tun_local_ip); |
|
328 |
+ const in_addr_t tun_local_ip, |
|
329 |
+ const in_addr_t tun_remote_ip); |
|
329 | 330 |
|
330 | 331 |
/* |
331 | 332 |
* The management object keeps track of OpenVPN --echo |
... | ... |
@@ -314,9 +314,10 @@ The output format consists of 4 comma-separated parameters: |
314 | 314 |
(a) the integer unix date/time, |
315 | 315 |
(b) the state name, |
316 | 316 |
(c) optional descriptive string (used mostly on RECONNECTING |
317 |
- and EXITING to show the reason for the disconnect), and |
|
317 |
+ and EXITING to show the reason for the disconnect), |
|
318 | 318 |
(d) optional TUN/TAP local IP address (shown for ASSIGN_IP |
319 |
- and CONNECTED). |
|
319 |
+ and CONNECTED), and |
|
320 |
+ (e) optional address of remote server (OpenVPN 2.1 or higher). |
|
320 | 321 |
|
321 | 322 |
Real-time state notifications will have a ">STATE:" prefix |
322 | 323 |
prepended to them. |
... | ... |
@@ -2878,6 +2878,7 @@ tls_process (struct tls_multi *multi, |
2878 | 2878 |
management_set_state (management, |
2879 | 2879 |
OPENVPN_STATE_WAIT, |
2880 | 2880 |
NULL, |
2881 |
+ 0, |
|
2881 | 2882 |
0); |
2882 | 2883 |
} |
2883 | 2884 |
#endif |
... | ... |
@@ -3562,6 +3563,7 @@ tls_pre_decrypt (struct tls_multi *multi, |
3562 | 3562 |
management_set_state (management, |
3563 | 3563 |
OPENVPN_STATE_AUTH, |
3564 | 3564 |
NULL, |
3565 |
+ 0, |
|
3565 | 3566 |
0); |
3566 | 3567 |
} |
3567 | 3568 |
#endif |