diff --git a/APRSStdPages.c b/APRSStdPages.c
index dc253ed..300df3c 100644
--- a/APRSStdPages.c
+++ b/APRSStdPages.c
@@ -3279,31 +3279,40 @@ char * get_aprs()
"\n"
"var myTimeout;\n"
"\n"
- "var server1 = \"http://server1.g8bpq.net:7383\"\n"
- "var server2 = \"http://server2.g8bpq.net:7383\"\n"
+
+//https://tile.openstreetmap.org/{zoom}/{x}/{y}.png
+
+// "var server1 = \"http://server1.g8bpq.net:7383\"\n"
+// "var server2 = \"http://server2.g8bpq.net:7383\"\n"
+
+ "var server1 = \"tile.openstreetmap.org\"\n"
+ "var server2 = \"tile.openstreetmap.org\"\n"
"\n"
"function getMap(p)\n"
"{\n"
- " var gl = L.maplibreGL({style: server1 + '/styles/G8BPQ/style.json'});\n"
- " gl.addTo(p);\n"
- " var maplibreMap = gl.getMaplibreMap();\n"
- "\n"
- " // if load from first server fails, switch to backup\n"
- "\n"
- " maplibreMap.on('error', e =>\n"
- " {\n"
- " console.log(e.error);\n"
- "\n"
- " if (e && e.error == 'Error: Failed to fetch')\n"
- " {\n"
- " console.log('failed to load from ' + server1 + ', trying ' + server2);\n"
- " var gl2 = L.maplibreGL({style: server2 + '/styles/G8BPQ/style.json'});\n"
- " p.removeLayer(gl)\n"
- " gl2.addTo(p);\n"
- " }\n"
- " });\n"
- "\n"
- " p.attributionControl.addAttribution('Map data from OpenStreetMap using maplibre-gl Styles based on Mapbox gl');\n"
+
+ " L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '© OpenStreetMap contributors'}).addTo(p);\r\n"
+
+ // " var gl = L.maplibreGL({style: server1 + '/styles/G8BPQ/style.json'});\n"
+ // " gl.addTo(p);\n"
+ // " var maplibreMap = gl.getMaplibreMap();\n"
+ // "\n"
+ // " // if load from first server fails, switch to backup\n"
+ // "\n"
+ // " maplibreMap.on('error', e =>\n"
+ // " {\n"
+ // " console.log(e.error);\n"
+ // "\n"
+ // " if (e && e.error == 'Error: Failed to fetch')\n"
+ // " {\n"
+ // " console.log('failed to load from ' + server1 + ', trying ' + server2);\n"
+ // " var gl2 = L.maplibreGL({style: server2 + '/styles/G8BPQ/style.json'});\n"
+ // " p.removeLayer(gl)\n"
+ // " gl2.addTo(p);\n"
+ // " }\n"
+ // " });\n"
+ // "\n"
+ // " p.attributionControl.addAttribution('Map data from OpenStreetMap using maplibre-gl Styles based on Mapbox gl');\n"
" L.control.scale().addTo(p);\n"
"}\n"
"\n"
diff --git a/BBSUtilities.c b/BBSUtilities.c
index 833d3f9..e19d48e 100644
--- a/BBSUtilities.c
+++ b/BBSUtilities.c
@@ -9185,12 +9185,14 @@ VOID FWDTimerProc()
struct BBSForwardingInfo * ForwardingInfo ;
time_t NOW = time(NULL);
+ // Entered every 2 seconds
+
for (user = BBSChain; user; user = user->BBSNext)
{
// See if any messages are queued for this BBS
ForwardingInfo = user->ForwardingInfo;
- ForwardingInfo->FwdTimer+=10;
+ ForwardingInfo->FwdTimer += 2;
if (ForwardingInfo->FwdTimer >= ForwardingInfo->FwdInterval)
{
diff --git a/BPQChat.vcproj.NOTTSDESKTOP.John.user b/BPQChat.vcproj.NOTTSDESKTOP.John.user
new file mode 100644
index 0000000..fa82c00
--- /dev/null
+++ b/BPQChat.vcproj.NOTTSDESKTOP.John.user
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/BPQMail.c b/BPQMail.c
index bbc9ece..7ecf06d 100644
--- a/BPQMail.c
+++ b/BPQMail.c
@@ -1131,6 +1131,7 @@
// Add Send P to multiple BBS's when routing on HR (30)
// Fix Traffic stats for T messages received via B2 forwarding (31)
// Fix possible failure to update last listed count when user disconnects without using B command
+// Add short random delay (<30 secs) when forward new Messages immediately is enabled (35)
#include "bpqmail.h"
#include "winstdint.h"
@@ -2160,7 +2161,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
CheckTimer();
TCPTimer();
BBSSlowTimer();
- FWDTimerProc();
if (MaintClock < NOW)
{
while (MaintClock < NOW) // in case large time step
@@ -2182,6 +2182,14 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
}
My__except_Routine("Slow Timer");
}
+ if (wParam == 3) // Forward (2 Secs)
+ {
+ __try
+ {
+ FWDTimerProc();
+ }
+ My__except_Routine("Fwd Timer");
+ }
else
__try
{
@@ -3310,6 +3318,7 @@ BOOL Initialise()
SetTimer(hWnd,1,10000,NULL); // Slow Timer (10 Secs)
SetTimer(hWnd,2,100,NULL); // Send to Node and TCP Poll (100 ms)
+ SetTimer(hWnd,3,2000,NULL); // Forward Check (2 secs)
// Calulate time to run Housekeeping
{
diff --git a/Bpq32.c b/Bpq32.c
index ea24778..53ee4e1 100644
--- a/Bpq32.c
+++ b/Bpq32.c
@@ -1212,6 +1212,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// Add NodeAPI call sendLinks and remove get from other calls (32)
// Improve validation of Web Beacon Config (33)
// Support SNMP via host ip stack as well as IPGateway (34)
+// Switch APRS Map to OSM tile servers (36)
+// Fix potential buffer overflow in Telnet login (36)
#define CKernel
diff --git a/LinBPQ.c b/LinBPQ.c
index 084ee45..438f12d 100644
--- a/LinBPQ.c
+++ b/LinBPQ.c
@@ -1557,13 +1557,15 @@ int main(int argc, char * argv[])
{
PollStreams();
+ if ((Slowtimer % 20) == 0)
+ FWDTimerProc();
+
if (Slowtimer > 100) // 10 secs
{
time_t NOW = time(NULL);
struct tm * tm;
TCPTimer();
- FWDTimerProc();
BBSSlowTimer();
if (MaintClock < NOW)
diff --git a/MailNode.vcproj.NOTTSDESKTOP.John.user b/MailNode.vcproj.NOTTSDESKTOP.John.user
index fa82c00..34131b7 100644
--- a/MailNode.vcproj.NOTTSDESKTOP.John.user
+++ b/MailNode.vcproj.NOTTSDESKTOP.John.user
@@ -10,7 +10,7 @@
>
ForwardingInfo;
- if (ForwardToMe || _stricmp(bbs->Call, BBSName) != 0) // Dont forward to ourself - already here! (unless ForwardToMe set)
+ if (ForwardToMe || _stricmp(bbs->Call, BBSName) != 0) // Don't forward to ourself - already here! (unless ForwardToMe set)
{
if ((conn == NULL) || (!(conn->BBSFlags & BBS) || (_stricmp(conn->UserPointer->Call, bbs->Call) != 0))) // Dont send back
{
set_fwd_bit(Msg->fbbs, bbs->BBSNumber);
ForwardingInfo->MsgCount++;
if (ForwardingInfo->SendNew)
- ForwardingInfo->FwdTimer = ForwardingInfo->FwdInterval;
+ ForwardingInfo->FwdTimer = ForwardingInfo->FwdInterval - (2 + (rand() % 30)); //Short delay to prevent all starting at once
}
}
else
diff --git a/TelnetV6.c b/TelnetV6.c
index a80a325..b139fad 100644
--- a/TelnetV6.c
+++ b/TelnetV6.c
@@ -3882,8 +3882,8 @@ MsgLoop:
if (strlen(MsgPtr) > 64)
{
- Debugprintf("Telnet Bad User Name %s", MsgPtr);
MsgPtr[64] = 0;
+ Debugprintf("Telnet Bad User Name %s", MsgPtr);
}
sprintf(logmsg,"%d %s User=%s\n", sockptr->Number, Addr, MsgPtr);
@@ -3958,8 +3958,8 @@ MsgLoop:
if (strlen(MsgPtr) > 64)
{
+ MsgPtr[64] = 0;
Debugprintf("Telnet Bad Password %s", MsgPtr);
- MsgPtr[64] = 0;
}
@@ -4757,8 +4757,8 @@ MsgLoop:
if (strlen(MsgPtr) > 64)
{
- Debugprintf("Telnet Bad User Name %s", MsgPtr);
MsgPtr[64] = 0;
+ Debugprintf("Telnet Bad User Name %s", MsgPtr);
}
sprintf(logmsg,"%d %s User=%s\n", sockptr->Number, Addr, MsgPtr);
@@ -4841,8 +4841,8 @@ MsgLoop:
if (strlen(MsgPtr) > 64)
{
+ MsgPtr[64] = 0;
Debugprintf("Telnet Bad Password %s", MsgPtr);
- MsgPtr[64] = 0;
}
sprintf(logmsg,"%d %s Password=%s\n", sockptr->Number, Addr, MsgPtr);
diff --git a/Versions.h b/Versions.h
index ebcdca1..35b3a92 100644
--- a/Versions.h
+++ b/Versions.h
@@ -10,8 +10,8 @@
#endif
-#define KVers 6,0,24,34
-#define KVerstring "6.0.24.34\0"
+#define KVers 6,0,24,36
+#define KVerstring "6.0.24.36\0"
#ifdef CKernel