-
Notifications
You must be signed in to change notification settings - Fork 1
/
changelog.txt
247 lines (228 loc) · 21.6 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
v1.3.7 - (October 20, 2024)
- PATCH: Modified code to handle scenarios where getting the "city exit" value returns an empty/NULL string.
- PATCH: Modified code to ignore invalid key presses within the main loop.
- PATCH: Added code to prevent updating the timer prematurely within the main loop due to repeatedly fast
key presses.
- PATCH: Modified code to get elapsed time percentage values with 1 decimal place (e.g. 0.5%). This allows
displaying non-integer values for percentages of the elapsed time.
- More minor coding improvements & fine-tuning.
- PATCH: Fixed the Y/N prompts so they now require you to hit <enter> after typing either y or n. This
changes its behavior from automatically moving on and possibly causing issues from people also using the
enter key accidentally.
v1.3.6 - (October 12, 2024)
- PATCH: After selecting menu option 1 ("Number of VPN Client Slots available"), if the user simply pressed
the <Enter> key without entering any new value, the currently selected value was reset to "1 2 3 4 5"
regardless of the current setting.
- PATCH: After selecting menu option 2 ("Custom PING host to determine VPN health"), if the user simply
pressed the <Enter> key without entering any new value, the currently selected value was set to empty/NULL
regardless of the current setting.
- PATCH: When selecting menu option 2 ("Custom PING host to determine VPN health"), any user input was
accepted for the IP address because there was no IPv4 address format validation.
- PATCH: After selecting menu option 3 ("Custom Event Log size (rows)"), if the user simply pressed the
<Enter> key without entering any new value, the currently selected value was reset to "2000" regardless of
the current setting. In addition, the error message "[: 0: unknown operand" was generated.
- PATCH: After selecting menu option 5 ("Refresh Custom Server Lists on -RESET Switch"), if the user simply
pressed the <Enter> key without entering any new value, the currently selected value was reset to
"Enabled" regardless of the current setting. In addition, the error message "[: 0: unknown operand" was
generated.
- PATCH: After selecting menu option 6 ("Provide additional WAN/Dual WAN monitoring"), if the user simply
pressed the <Enter> key without entering any new value, the currently selected value was reset to
"Enabled" regardless of the current setting. In addition, the error message "[: 0: unknown operand" was
generated.
- PATCH: After selecting menu option 7 ("Whitelist VPN Server IP Lists in Skynet"), if the user simply
pressed the <Enter> key without entering any new value, the currently selected value was reset to
"Disabled" regardless of the current setting. In addition, the error message "[: 0: unknown operand" was
generated.
- PATCH: Added user input validation for Cron Job hours & minutes
- PATCH: Adjusted display format of the number of servers to avoid left-padding with zeros while still
maintaining table alignment.
- PATCH: Adjusted display format of ping values to avoid left-padding with zeros while still maintaining
table alignment.
- PATCH: Adjusted display format of IPv4 addresses to avoid left-padding with zeros while still maintaining
table alignment.
- PATCH: Various other coding improvements & fine-tuning.
v1.3.5 - (May 11, 2024)
- PATCH: Small bugfix after looking into issues with the vr3timers.txt file. Seems that there was a variable
and a function both named the same thing, which could cause an issue down the road, and made sure these
were formally separated into their own entities from this point forward.
- PATCH: When the script has detected an issue with the WAN, and falls back into its waiting loop, I seem to
have mistakenly put in an email notification during this time. I thought it was helpful. Guess not,
because it doesn't work when the internet is down, and just throws errors, so I've removed this particular
email notification. ;)
v1.3.3 - (April 2, 2024)
- PATCH: Fixed a small issue that was present in BACKUPMON and also affected VPNMON-R3 where it was creating
success/failure emails in the /tmp/var/tmp folder and was not deleting these tmp email files if you opted
not to receive success or failure emails. Thanks to the keen eye of @ExtremeFiretop watching his precious
disk space slowly but surely getting eaten up with unsent emails that weren't deleting, this has now been
patched! Also, huge props to him for testing out the fix in record time!
- PATCH: Made some small eye-candy improvements to incorporate a little splash-screen effect when running
"vpnmon-r3 -setup", or when hitting the (e)xit key... just to keep the OG logo around a little longer. ;)
v1.3.1 - (March 16, 2024)
- MINOR: AMTM Email Notification capabilities have been added thanks to @Martinski's shared email functions
library that he has made available. Once AMTM email (AMTM->em) has been configured, you can activate this
feature in VPNMON-R3. You have the ability to distinguish between receiving either success, failures or
both types of emails as it pertains to your WAN/VPN connectivity. An operations menu item has also been
added to quickly enable/disable this feature when needed.
- PATCH: Minor logic correction to a function that determined max server ping would every so often run
into issues with the info it got back from the ping command, and would display invalid operand errors.
v1.2.3 - (March 8, 2024)
- PATCH: Change to the logic for switching back and forth between the number of available slots. Will now
recreate the vr3timers.txt and vr3clients.txt, as they were not being refreshed when different selections
were being made. General fixes and optimizations made as being found and identified.
- PATCH: Added verbiage in the Unbound integration configuration menu item to give a visual warning that
as of Mar 1 2024, the NordVPN service no longer works with the Unbound integration due to some apparent
blocking on their end. Hopefully at some point in the future, we can remove this and carry on with Nord.
v1.2.1 - (February 23, 2024)
- MINOR: Added a new configuration menu item that allows you to enable/disable the ability to import your
VPN Server IP lists directly into the Skynet Firewall for whitelisting purposes. This is another feature
coming over from VPNMON-R2, as there have been instances in the past where the Skynet blacklist would
prevent a connection to a perfectly legitimate VPN Server that belongs to your VPN provider. This
function will fire off each time you execute a VPN Server List automation under option (U), and will
also run each time a "vpnmon-r3 -reset" command is executed. Please note: Skynet must already have been
installed (using AMTM) and working/functional.
- PATCH: The update logic now pulls the vpnmon-r3.sh directly from github starting from versions after
1.2.1, instead of the vpnmon-r3-X.Y.Z.sh file based on the version number from the version.txt file.
v1.1.5 - (February 7, 2024)
- PATCH: Changed the versioning logic to align with the general accepted way of versioning, using the
notation: major.minor.patch ... finally, right? After seeing @thelonelycoder changing his ways, I
figured it was probably time for me as well. All my scripts moving forward will go this route. Change
log wording is now changed to conform to the major/minor/patch standards. So previously, FIXED now
conforms to PATCH, ADDED conforms to MINOR, and MAJOR stays the same!
- PATCH: Found a situation where if someone was still using older VPN Slot allocations (like "1 2 3") and
didn't update to the newer "1 2" or "1 2 3 4 5" slot allocations, then it would prevent the operations
menu from showing, since it is geared towards either one of these two options. VPNMON now has some logic
added that will force a "1 2 3" configuration to "1 2", and will require you to select which slots need
to be monitored. Thanks to @TITAN for finding this one and working with me on the diagnosis! :)
- PATCH: Minor spacing and verbiage changes to make the experience more consistent.
v1.12 - (February 2, 2024)
- ADDED: Another feature request coming over from R2 -- Reset VPN if ping across tunnel is > than X ms.
Configurable from the Operations Menu, using hotkey "P", you are able to change this value. Example
Usage: If this setting is set to 100ms, and the ping value for this tunnel exceeds 100ms, then R3 will
reset the connection in favor of a new connection with a lower ping value. Settling on a server with a
lower ping should help with speed, latency and performance issues. Thanks to @TITAN for the request!
- FIXED: Just realized my mistake that certain older models (like the AC68U) actually only have a max of 2
VPN client slots, not 3. Fixed the configs and menus to allow for up to 2 VPN client slots for this
particular older router limitation.
v1.11 - (January 27, 2024)
- ADDED: New commandline switch "-now" to be used in conjunction with "-screen" that will allow you to
bypass the screen timer and instructions, and will launch VPNMON-R3 directly into the screen environment
without having to wait. (Usage example: vpnmon-r3 -screen -now) Thanks @TITAN for the request.
- FIXED: Changed a few legacy items so it conforms with AMTM standards. ;)
v1.10 - (January 23, 2024)
- MAJOR: VPNMON-R2 sunset notification banner is added if found that R2 is still installed. I have made the
difficult decision to sunset R2, and drive adoption of R3 so that I may focus on developing it further.
When pressing the (X) key, users will be driven to an R2 uninstall menu, allowing you to uninstall all
R2 files and components directly from R3. Similarly, in R2, an update banner will be prominently displayed
at all times, driving people to the update menu, to upgrade to R3 directly from within R2. In the near
future, new installs of R2 will no longer be possible, and will be driven to install R3.
v1.04b6 - (January 21, 2024)
- ADDED: Under the Run Automations operations menu item, the ability to import your custom VPN Slot lists
into Skynet is now a possibility! In the past, certain blocklists would also prevent you from connecting to
certain VPN servers because they were actively being blocked. From this menu, pressing s1-s5 will import
the contents directly to Skynet, giving you peace of mind that your VPN server endpoints are whitelisted.
- FIXED: The timing on connecting, stopping and settling have been dropped slightly. Also, shaved more time
by not spending 10 seconds forcing a service_stop on a connection that has already stopped. Likewise,
checking for VPN slots in an error (-1) state, and force stopping these, then forcing an NVRAM state
reset on them to change them back to 0 (disconnected).
v1.04b5 - (January 19, 2024)
- FIXED: WAN checks were still happening even when disabled. Thanks to @salvo! Fixed!
v1.04b4 - (January 19, 2024)
- ADDED: More checks while determining vpn health, and adding more logic around failed connections, including
an indicator showing the number of attempts a certain vpn slot has undergone if it comes back failing the
ping and curl tests.
- ADDED: Also, timing delays to allow for tunnels to connect, disconnect and settle have been extended. No,
your router hasn't slowed down. I'm just making sure processes aren't stepping over each other to give you
the most stable monitoring experience.
- ADDED: When a VPN connection fails, an intermediate 5 second counter will appear allowing you to (P}ause
execution. This allows you to enter the Operations Menu, should you need to make any adjustments. I found
that with successive failures, it was nearly impossible to get to the Operations menu in order to exclude
a certain slot that was causing issues.
- FIXED: When the -reset switch is thrown, VPNMON-R3 will immediately drop to the waiting screen. Thanks to
@salvo for noticing!
v1.04b2 - (January 13, 2024)
- MAJOR: In one of the recent storms that brough down my WAN connection, I quickly found out that VPNMON-R3
does not like that, and caused the script to hang for some unknown reason. Thinking it might be a good idea
to break out the WAN monitoring functionality from R2, this has now been incorporated as a selectable
option. When enabled, VPNMON-R3 will test the WAN on each cycle, and if determined that the WAN is down,
will kill your VPN connections, and fall back into a graceful loop where it periodically tests the WAN
connection in order to start the VPN connection(s) back up. As with R2, this will look at both WAN0 and
WAN1, and should be able to correctly display the necessary information for those running those fancy
Dual-WAN configurations. This has been tested on a single WAN0 connection where I completely powered off
the modem, simulating a WAN outage, and bringing back up to ensure R3 was able to recover correctly.
- ADDED: Few more log entries for various reset conditions were added.
- FIXED: Minor corrections to wording or other on-screen layouts to make the UI more pleasing to the eye.
- FIXED: Made some revisions to how variables were used in order to cut down on some Unknown Operand errors
that were initially captured by @Ripshod. Thank you!
v1.03 - (January 6, 2024)
- ADDED: When VPNMON-R3 is executing a scheduled -RESET, the main UI will enter a 'pause' state, giving some
feedback that a vpn reset is currently underway, and will retry to resume normal operations every 15 secs.
Thanks to @salvo for the suggestion!
- ADDED: More checks and stability added to ensuring values returning from the ping functions are valid, and
hoping to catch any errors before returning the occasional 'unexpected token' error as found by @salvo.
- FIXED: Noticed that the timer loop was actually taking 2x as long to complete... I knew seconds couldn't
take that long, and wasn't going crazy afterall. Fixed.
v1.01 - (December 24, 2023)
- FINAL RELEASE: Merry Christmas! ;)
v0.7b - ADDED: Now including the total time a VPN connection has remained connected. This info is displayed on the
main UI next to the exit city name. Time is tracked when the VPN drops and reconnects, and will only be
displayed for VPN Client Slots that are actively being monitored.
- MINOR: Changed the Unbound stat on the main UI in an effort to shorten. This has now been changed from a
Red/Yellow/Green "- [SYNC]", to a Red/Yellow/Green "-X[UB]" "-?[UB]" and "->[UB]" giving an indication of
the Unbound [UB] sync state.
- FIXED: There was an issue with the logic behind the function that allowed you to pick how many seconds you
would like the timer to run for. Apparently it's not so easy when asking for alpha and numeric input up to
3 characters. Patched it up. Good to go! Thanks to @pchtz for catching this one! :)
v0.6b - ADDED: New menu item under the setup/configuration menu: "Refresh Custom Server Lists on -RESET Switch",
with thanks to @salvo for the suggestion. This option will refresh any custom VPN Client Slot Server Lists
you have defined, and will refresh these when running a VPNMON-R3 with a -reset command. This is typically
done through a CRON job, but can be run manually at any time as well depending on your needs.
- FIXED: Various cleanup and inconsistencies as well as spacing here & there...
v0.5b - ADDED: Created a new row under the Operations Menu to allow you to quickly stop + unmonitor a VPN Slot.
This was added to give you some more control over a VPN Client Slot that might be giving you trouble, or
don't want to have to go into the router UI to forcefully stop a VPN Client Slot. Performing this action
will also remove it from the monitored list, so it doesn't immediately try to reconnect it.
- ADDED: Created a thread with tutorials and examples on how to craft custom CURL+JQ statements in order to
query specific city and/or country IP address list from various VPN providers using their APIs. This is
thread is available here: https://www.snbforums.com/threads/vpnmon-r3-custom-server-list-generation-tutorials-and-examples.88022/
- FIXED: Added some validation on obtaining the public VPN IP address in case NVRAM could not produce it, and
icanhazip.com comes back with an error message. Thanks to @TITAN for bringing this up.
- FIXED: General cleanup of inconsistencies that kept bugging me. ;)
v0.4b - ADDED: Relented and included a single PING indicator across the VPN tunnel to at least show some stats of
what's going on with the connection. Formatted to handle 4 digits and 3 decimals, we should be good for the
worse of worsest situations. On the fence of supporting a > amount ping reset condition.
- FIXED: Eliminated many script restarts after exiting various menus and allows you to return to the main UI
without interference to the VPN city and Unbound Sync lookups.
- FIXED: Based on the timezone code length, the main UI bar now fixes its size so it stays a uniform length.
v0.3b - ADDED: Brought over the "Unbound-over-VPN" functionality that was originally introduced in VPNMON-R2. Out of
all the integrations that were present in VPNMON-R2, I felt that this was one of the most important ones, and
one that I wanted to be completely functional in VPNMON-R3 if I am going to be using this full-time. Unbound
by default allows you to become your own DNS resolver, however, "Unbound-over-VPN" goes a step further and
encrypts your unencrypted DNS resolver traffic all the way through to your public VPN IP address, after which
it traverses unencrypted to the DNS Root Servers. This excellent feature prevents your ISP or other monitoring
services from snooping in on your otherwise unencrypted DNS resolver traffic that normally happens when
running Unbound. Since you are your own encrypted DNS resolver, no ISPs, or other DNS services (like Quad9,
Cloudfare or Google, etc) will be able to snoop on your traffic. The only entity here that could possibly
snoop on this traffic would be your VPN provider, or any nefarious services monitoring inbound/outbound VPN
traffic at the VPN provider level. PLEASE NOTE: "Unbound-over-VPN" is only able to bind to 1 VPN Client Slot.
If you are running other VPN connections, this will continue to work, however it is not guaranteed that the
other VPN connections will be able to take advantage of Unbound. Definitely something that needs to be tested.
Also, if other VPN connections are reset, the VPN Client Slot tied to "Unbound-over-VPN" will go out of sync,
and will attempt to reset itself. This connection will always need to be the last one to reset itself, else it
will continue to stay out-of-sync.
- FIXED: Apparently I overlooked making sure JQuery was being properly referenced as required during the setup
process. Thanks to @kuki68ster for noticing this! The script will now catch this and guide you through the
Entware component install process.
- FIXED: In certain situations, the autostart functionality would not save a setting back to the vpnmon-r3.cfg
file, and show that it was enabled. If you have this issue, simply re-save your choice, and it will make the
correct changes to the .cfg file now.
v0.2b - ADDED: Included "VPN Client Slot Server List Automation" functionality which allows you to free-form enter in
various carefully crafted CURL statements which are designed to point to your VPN Provider's API functionality
in order to export out a single list of VPN Server IPs/Hostnames to be imported into your VPN Client Slot
Server List files assigned to each VPN slot. These lists are used by VPNMON-R3 to randomly reconnect to one of
the hosts in the list. A separate thread will be created on SNBForums.com that will give specific examples on
how to format the CURL statements in order to pull VPN Server IPs for specific countries, or cities. Please
note that not all VPN providers make this easy, or have an API to pull information from. Examples for NordVPN,
Surfshark, AirVPN, WeVPN and PerfectPrivacy will be provided. This item is available under the Quick Access
Operations Menu using the (U) key.
- MINOR: A few visual fixes here and there to standardize look & feel across screens
v0.1b - Initial Release!