Update upstream source from tag 'upstream/6.0.24.30'

Update to upstream version '6.0.24.30'
with Debian dir 4f7e13431e
This commit is contained in:
Hibby 2024-02-23 21:36:42 +00:00
commit 5b1c61bd78
9 changed files with 382 additions and 167 deletions

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioUserFile
ProjectType="Visual C++"
Version="8.00"
ShowAllFiles="false"
>
<Configurations>
<Configuration
Name="Debug|Win32"
>
<DebugSettings
Command="$(TargetPath)"
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="SKIGACER"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
>
<DebugSettings
Command="$(TargetPath)"
WorkingDirectory=""
CommandArguments=""
Attach="false"
DebuggerType="3"
Remote="1"
RemoteMachine="SKIGACER"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
</Configurations>
</VisualStudioUserFile>

View File

@ -1127,6 +1127,8 @@
// Start adding json api (25)
// Fix reading nested directories when loading Standard Templates and other template bugs (25)
// Add TO and AT to "Message has nowhere to go" message (28)
// Add My Sent and My Received filter options to Webmail (30)
// Add Send P to multiple BBS's when routing on HR (30)
#include "bpqmail.h"
#include "winstdint.h"

View File

@ -37,7 +37,7 @@
Name="Release|Win32"
>
<DebugSettings
Command=""
Command="C:\Devprogs\BPQ32\bpq32.exe"
WorkingDirectory=""
CommandArguments=""
Attach="false"

View File

@ -1398,6 +1398,7 @@ NOHA:
int bestmatch = 0;
int depth;
int Matched = 0;
int MultiPDepth = 0;
for (bbs = BBSChain; bbs; bbs = bbs->BBSNext)
{
@ -1467,7 +1468,49 @@ NOHA:
}
// We should choose the BBS with most matching elements (ie match on #23.GBR better that GBR)
// If SendPtoMultiple is set I think we send to any with same mtch level
// If SendPtoMultiple is set I think we send to any with same match level
// So if SendPtoMultiple is set I think I need to find the best depth then send to all with the same depth
if (SendPtoMultiple && Msg->type == 'P')
{
Logprintf(LOG_BBS, conn, '?', "SendPtoMultiple is set. Checking for best match level");
for (bbs = BBSChain; bbs; bbs = bbs->BBSNext)
{
ForwardingInfo = bbs->ForwardingInfo;
depth = CheckBBSHElements(Msg, bbs, ForwardingInfo, ATBBS, &HElements[0]);
if (depth)
{
if (depth > MultiPDepth)
{
MultiPDepth = depth;
bestbbs = bbs;
}
}
if (MultiPDepth)
{
for (bbs = BBSChain; bbs; bbs = bbs->BBSNext)
{
ForwardingInfo = bbs->ForwardingInfo;
depth = CheckBBSHElements(Msg, bbs, ForwardingInfo, ATBBS, &HElements[0]);
if (depth == MultiPDepth)
{
Logprintf(LOG_BBS, conn, '?', "Routing Trace HR Matches BBS %s Depth %d", bbs->Call, depth);
CheckAndSend(Msg, conn, bbs);
}
}
return 1;
}
}
}
for (bbs = BBSChain; bbs; bbs = bbs->BBSNext)
{

View File

@ -10,8 +10,8 @@
#endif
#define KVers 6,0,24,29
#define KVerstring "6.0.24.29\0"
#define KVers 6,0,24,30
#define KVerstring "6.0.24.30\0"
#ifdef CKernel

105
WebMail.c
View File

@ -928,6 +928,22 @@ int SendWebMailHeaderEx(char * Reply, char * Key, struct HTTPConnectionInfo * Se
continue;
}
if (Session->WebMailMyTX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->from) != 0)
continue;
}
if (Session->WebMailMyRX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->to)!= 0)
continue;
}
if (Count++ < Session->WebMailSkip)
continue;
@ -959,7 +975,7 @@ int SendWebMailHeaderEx(char * Reply, char * Key, struct HTTPConnectionInfo * Se
if (WebMailTemplate == NULL)
WebMailTemplate = GetTemplateFromFile(6, "WebMailPage.txt");
return sprintf(Reply, WebMailTemplate, BBSName, User->Call, Key, Key, Key, Key, Key, Key, Key, Key, Messages);
return sprintf(Reply, WebMailTemplate, BBSName, User->Call, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key, Messages);
}
int ViewWebMailMessage(struct HTTPConnectionInfo * Session, char * Reply, int Number, BOOL DisplayHTML)
@ -1617,6 +1633,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailLastUsed = time(NULL);
Session->WebMailSkip = 0;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
Session->WebMailMine = FALSE;
if (WebMailTemplate)
@ -1759,6 +1777,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailSkip = 0;
Session->WebMailMine = FALSE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
@ -1769,6 +1789,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailSkip = 0;
Session->WebMailTypes[0] = 0;
Session->WebMailMine = FALSE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
@ -1779,6 +1801,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailSkip = 0;
strcpy(Session->WebMailTypes, "B");
Session->WebMailMine = FALSE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
@ -1789,6 +1813,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailSkip = 0;
strcpy(Session->WebMailTypes, "P");
Session->WebMailMine = FALSE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
@ -1799,6 +1825,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailSkip = 0;
strcpy(Session->WebMailTypes, "T");
Session->WebMailMine = FALSE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
@ -1809,6 +1837,32 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
Session->WebMailSkip = 0;
Session->WebMailTypes[0] = 0;
Session->WebMailMine = TRUE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
}
if (_stricmp(NodeURL, "/WebMail/WMtoMe") == 0)
{
Session->WebMailSkip = 0;
Session->WebMailTypes[0] = 0;
Session->WebMailMine = FALSE;
Session->WebMailMyTX = FALSE;
Session->WebMailMyRX = TRUE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
}
if (_stricmp(NodeURL, "/WebMail/WMfromMe") == 0)
{
Session->WebMailSkip = 0;
Session->WebMailTypes[0] = 0;
Session->WebMailMine = TRUE;
Session->WebMailMyTX = TRUE;
Session->WebMailMyRX = FALSE;
*RLen = SendWebMailHeader(Reply, Session->Key, Session);
return;
@ -1897,6 +1951,8 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
"<td><a href=/WebMail/WMT?%s>NTS</a></td>\r\n"
"<td><a href=/WebMail/WMALL?%s>All Types</a></td>\r\n"
"<td><a href=/WebMail/WMMine?%s>Mine</a></td>\r\n"
"<td><a href=/WebMail/WMfromMe?%s>My Sent</a></td>\r\n"
"<td><a href=/WebMail/WMtoMe?%s>My Rxed</a></td>\r\n"
"<td><a href=/WebMail/WMAuto?%s>Auto Refresh</a></td>\r\n"
"<td><a href=\"#\" onclick=\"newmsg('%s'); return false;\">Send Message</a></td>\r\n"
"<td><a href=/WebMail/WMLogout?%s>Logout</a></td>\r\n"
@ -1906,7 +1962,7 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
"<div align=left id=main style=overflow:scroll;>Waiting for data...</div>\r\n"
"</body></html>\r\n";
sprintf(Page, WebSockPage, Key, Key ,BBSName, Session->User->Call, Key, Key, Key, Key, Key, Key, Key, Key);
sprintf(Page, WebSockPage, Key, Key ,BBSName, Session->User->Call, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key);
*RLen = sprintf(Reply, "%s", Page);
return;
@ -2099,6 +2155,21 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
continue;
}
if (Session->WebMailMyTX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->from) != 0)
continue;
}
if (Session->WebMailMyRX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->to) != 0)
continue;
}
*RLen = ViewWebMailMessage(Session, Reply, m, TRUE);
return;
@ -2144,6 +2215,21 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
continue;
}
if (Session->WebMailMyTX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->from) != 0)
continue;
}
if (Session->WebMailMyRX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->to) != 0)
continue;
}
*RLen = ViewWebMailMessage(Session, Reply, m, TRUE);
return;
@ -6181,6 +6267,21 @@ int ProcessWebmailWebSock(char * MsgPtr, char * OutBuffer)
continue;
}
if (Session->WebMailMyTX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->from) != 0)
continue;
}
if (Session->WebMailMyRX)
{
// Only list if to or from me
if (strcmp(User->Call, Msg->to) != 0)
continue;
}
if (Count++ < Session->WebMailSkip)
continue;

View File

@ -38,6 +38,8 @@ struct HTTPConnectionInfo // Used for Web Server for thread-specific stuff
int WebMailSkip; // Number to skip at start of list (for paging)
char WebMailTypes[4]; // Types To List
BOOL WebMailMine; // List all meessage to or from me
BOOL WebMailMyTX; // List all meessage from me
BOOL WebMailMyRX; // List all meessage to me
time_t WebMailLastUsed;
struct TNCINFO * TNC; // Session -> TNC link
};

View File

@ -395,6 +395,8 @@ char * WebMailPagetxt()
"<td><a href=/WebMail/WMT?%s>NTS</a></td>\r\n"
"<td><a href=/WebMail/WMALL?%s>All Types</a></td>\r\n"
"<td><a href=/WebMail/WMMine?%s>Mine</a></td>\r\n"
"<td><a href=/WebMail/WMfromMe?%s>My Sent</a></td>\r\n"
"<td><a href=/WebMail/WMtoMe?%s>My Rxed</a></td>\r\n"
"<td><a href=/WebMail/WMAuto?%s>Auto Refresh</a></td>\r\n"
"<td><a href=\"#\" onclick=\"newmsg('%s'); return false;\">Send Message</a></td>\r\n"
"<td><a href=/WebMail/WMLogout?%s>Logout</a></td>\r\n"