updated on Sat Jan 14 00:11:12 UTC 2012
[aur-mirror.git] / openconnect-git / on_connect.patch
blob28643a1ba64861205c0a72d119b639ef5a0cb1db
1 --- main.c.0 2009-04-03 22:35:07.235260321 -0500
2 +++ main.c 2009-04-03 23:04:29.755652593 -0500
3 @@ -76,6 +76,7 @@
4 {"passwd-on-stdin", 0, 0, '5'},
5 {"no-passwd", 0, 0, '6'},
6 {"reconnect-timeout", 1, 0, '7'},
7 + {"on-connect", 1, 0, '8'},
8 {NULL, 0, 0, 0},
9 };
11 @@ -134,8 +135,26 @@
12 *c = 0;
15 +void run_on_connect_app (const char *on_connect_app, const char *ifname, const char *vpn_addr)
17 + char cmd_text [512];
18 + const int cmd_size = sizeof (cmd_text)-1;
19 + if (NULL == on_connect_app)
20 + return;
22 + snprintf (cmd_text, cmd_size, "%s %s %s", on_connect_app, ifname, vpn_addr);
23 + cmd_text [cmd_size] = '\0';
25 + if (0 == fork ())
26 + {
27 + setsid ();
28 + exit (system (cmd_text));
29 + }
32 int main(int argc, char **argv)
34 + char *on_connect_app = NULL;
35 struct openconnect_info *vpninfo;
36 struct utsname utsbuf;
37 int cookieonly = 0;
38 @@ -205,6 +224,9 @@
39 case '7':
40 vpninfo->reconnect_timeout = atoi(optarg);
41 break;
42 + case '8':
43 + on_connect_app = optarg;
44 + break;
45 case 'C':
46 vpninfo->cookie = optarg;
47 break;
48 @@ -353,6 +375,8 @@
49 vpninfo->vpn_addr,
50 (vpninfo->dtls_fd==-1)?(vpninfo->deflate?"SSL + deflate":"SSL"):"DTLS");
52 + run_on_connect_app (on_connect_app, vpninfo->ifname, vpninfo->vpn_addr);
54 vpn_mainloop(vpninfo);
55 exit(1);