From: James Yonan Date: Tue, 12 Apr 2011 05:14:34 +0000 (+0000) Subject: For Mac OSX, when DARWIN_USE_IPCONFIG is defined, retry ipconfig X-Git-Tag: v2.3-alpha1~238^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e51935df0ee3984a0464bfd72afc58836cb79d99;p=thirdparty%2Fopenvpn.git For Mac OSX, when DARWIN_USE_IPCONFIG is defined, retry ipconfig command on failure once every second for up to 15 seconds. This is necessary to work around an issue observed on OSX 10.5 where the ipconfig command sometimes fails if executed immediately after the tun device open. git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@7151 e7ae566f-a301-0410-adde-c780ea21d3b5 --- diff --git a/tun.c b/tun.c index 8c94f89cf..f2dec258a 100644 --- a/tun.c +++ b/tun.c @@ -801,7 +801,17 @@ do_ifconfig (struct tuntap *tt, ); } argv_msg (M_INFO, &argv); - openvpn_execve_check (&argv, es, S_FATAL, "Mac OS X ipconfig failed"); + { + int i; + const int n = 15; + for (i = 1; i <= n; ++i) /* OSX 10.5 needs retry */ + { + if (openvpn_execve_check (&argv, es, (i == n) ? S_FATAL : 0, "Mac OS X ipconfig failed")) + break; + msg (M_INFO, "Retry #%d", i); + openvpn_sleep(1); + } + } tt->did_ifconfig = true; #else /*