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