Commit dca6313
committed
libtailscale: do not close old TUNs during reconfig, except on ChromeOS
Back in 2020, to work around a ChromeOS bug, we started
closing previous tunnels, breaking TCP sessions on reconfig,
in 8dbac87.
This behavior has been preserved during the android app rewrite
in 98a72c2, but we never actually
needed it on Android.
In c290ccf, the author of the original
commit said: "note that seamless VPN tunnel handover works on Android
But not on ChromeOS, and I haven't found a robust way to detect
ChromeOS.".
The isChromeOS method was added in a7dfea2
for an unrelated reason, but we never stopped closing the tunnels on Android.
In this PR, we update (*backend).updateTUN to avoid closing the old tunnels
unless we're running on ChromeOS or have an empty config.
Updates tailscale/tailscale#19591
Signed-off-by: Nick Khyl <nickk@tailscale.com>1 parent 34265e1 commit dca6313
1 file changed
Lines changed: 31 additions & 26 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | 83 | | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
109 | 113 | | |
110 | | - | |
| 114 | + | |
111 | 115 | | |
112 | 116 | | |
| 117 | + | |
113 | 118 | | |
114 | 119 | | |
115 | 120 | | |
| |||
0 commit comments