Commit 0b1ece8
fix: v0.2.3 — unconditional pre-connect route flush
The pre-connect cleanup previously only deleted the cached host route to
the VPN gateway when it looked obviously stale (nexthop differed from the
current default gateway). That skipped the failure mode a colleague hit:
after the gateway's IP rotated during a VPN upgrade, the cached route
pointed at the new IP via the current default gateway (so it "looked
correct"), yet traffic still failed with "HTTPS connection failed" 260ms
after openconnect spawn.
Since this cleanup runs before start() — when no active tunnel exists —
deleting is always safe: a healthy route is rebuilt by the kernel on the
next packet via the default gateway. Always flushing closes the gap.
Each connect now logs the flush outcome so "stuck" connections are
diagnosable from ~/Library/Logs/VPNMenuBar/vpnmenubar.log without
command-line tools.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent c64005d commit 0b1ece8
7 files changed
Lines changed: 40 additions & 33 deletions
File tree
- VPNMenuBar.app/Contents
- MacOS
- VPNMenuBar
- Core
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| |||
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
210 | 210 | | |
211 | 211 | | |
212 | 212 | | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
219 | | - | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
220 | 223 | | |
221 | 224 | | |
222 | 225 | | |
223 | 226 | | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
236 | | - | |
| 227 | + | |
237 | 228 | | |
238 | 229 | | |
239 | 230 | | |
240 | 231 | | |
241 | 232 | | |
242 | 233 | | |
243 | | - | |
244 | 234 | | |
245 | 235 | | |
246 | 236 | | |
| 237 | + | |
247 | 238 | | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
| 239 | + | |
253 | 240 | | |
254 | 241 | | |
255 | 242 | | |
256 | 243 | | |
257 | 244 | | |
258 | 245 | | |
259 | 246 | | |
260 | | - | |
| 247 | + | |
261 | 248 | | |
262 | 249 | | |
263 | 250 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
8 | 28 | | |
9 | 29 | | |
10 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
| 39 | + | |
| 40 | + | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| |||
0 commit comments