master 24.8
John Wiseman 2 years ago
parent 084ecb74f6
commit 34b5c728c0

@ -8844,7 +8844,7 @@ int GetAPRSPageInfo(char * Buffer, double N, double S, double W, double E, int a
if (lastLat != ptr->Lat) if (lastLat != ptr->Lat)
Len += sprintf(&Buffer[Len],"%.4f,%.4f,\r\n|", ptr->Lat, ptr->Lon); //Add current position to end of track Len += sprintf(&Buffer[Len],"%.4f,%.4f,\r\n|", ptr->Lat, ptr->Lon); //Add current position to end of track
else else
Len += sprintf(&Buffer[Len],"\r\n|", ptr->Lat, ptr->Lon); Len += sprintf(&Buffer[Len],"\r\n|");
} }
} }
} }

@ -1681,6 +1681,85 @@ VOID ProcessConfUpdate(struct HTTPConnectionInfo * Session, char * MsgPtr, char
HoldAt = GetMultiStringInput(input, "Hat="); HoldAt = GetMultiStringInput(input, "Hat=");
HoldBID = GetMultiStringInput(input, "HBID="); HoldBID = GetMultiStringInput(input, "HBID=");
// Look for fbb style filters
input = strstr(input, "&Action=");
// delete old list
while(Filters && Filters->Next)
{
FBBFilter * next = Filters->Next;
free(Filters);
Filters = next;
}
free(Filters);
Filters = NULL;
while (input)
{
// extract and validate before saving
FBBFilter Filter;
FBBFilter * PFilter;
memset(&Filter, 0, sizeof(FBBFilter));
Filter.Action = toupper(input[8]);
input = strstr(input, "&Type=");
if (Filter.Action == 'H' || Filter.Action == 'R')
{
Filter.Type = toupper(input[6]);
input = strstr(input, "&From=");
memcpy(Filter.From, &input[6], 10);
input = strstr(input, "&TO=");
strlop(Filter.From, '&');
_strupr(Filter.From);
memcpy(Filter.TO, &input[4], 10);
input = strstr(input, "&AT=");
strlop(Filter.TO, '&');
_strupr(Filter.TO);
memcpy(Filter.AT, &input[4], 10);
input = strstr(input, "&BID=");
strlop(Filter.AT, '&');
_strupr(Filter.AT);
memcpy(Filter.BID, &input[5], 10);
input = strstr(input, "&MaxLen=");
strlop(Filter.BID, '&');
_strupr(Filter.BID);
Filter.MaxLen = atoi(&input[8]);
if (Filter.Type == '&') Filter.Type = '*';
if (Filter.From[0] == 0) strcpy(Filter.From, "*");
if (Filter.TO[0] == 0) strcpy(Filter.TO, "*");
if (Filter.AT[0] == 0) strcpy(Filter.AT, "*");
if (Filter.BID[0] == 0) strcpy(Filter.BID, "*");
// add to list
PFilter = zalloc(sizeof(FBBFilter));
memcpy(PFilter, &Filter, sizeof(FBBFilter));
if (Filters == 0)
Filters = PFilter;
else
{
FBBFilter * p = Filters;
while (p->Next)
p = p->Next;
p->Next = PFilter;
}
}
input = strstr(input, "&Action=");
}
SaveConfig(ConfigName); SaveConfig(ConfigName);
GetConfig(ConfigName); GetConfig(ConfigName);
} }
@ -2437,7 +2516,7 @@ VOID SendFwdDetails(struct UserInfo * User, char * Reply, int * ReplyLen, char *
VOID SendConfigPage(char * Reply, int * ReplyLen, char * Key) VOID SendConfigPage(char * Reply, int * ReplyLen, char * Key)
{ {
int Len; int Len, i;
char HF[2048] = ""; char HF[2048] = "";
char HT[2048] = ""; char HT[2048] = "";
@ -2449,6 +2528,12 @@ VOID SendConfigPage(char * Reply, int * ReplyLen, char * Key)
char RB[2048] = ""; char RB[2048] = "";
char WPTO[10000] = ""; char WPTO[10000] = "";
char FBBFilters[100000] = "";
char * ptr = FBBFilters;
FBBFilter * Filter = Filters;
SetMultiStringValue(RejFrom, RF); SetMultiStringValue(RejFrom, RF);
SetMultiStringValue(RejTo, RT); SetMultiStringValue(RejTo, RT);
SetMultiStringValue(RejAt, RA); SetMultiStringValue(RejAt, RA);
@ -2459,7 +2544,44 @@ VOID SendConfigPage(char * Reply, int * ReplyLen, char * Key)
SetMultiStringValue(HoldBID, HB); SetMultiStringValue(HoldBID, HB);
SetMultiStringValue(SendWPAddrs, WPTO); SetMultiStringValue(SendWPAddrs, WPTO);
// set up FB style fiters
ptr += sprintf(ptr,
"<table><tr><th>Action</th><th>Type</th><th>From</th><th>To</th><th>@BBS</th><th>Bid</th><th>Max Size</th></tr>");
while(Filter)
{
ptr += sprintf(ptr, "<tr>"
"<td><input type=text name=Action style=\"text-transform: uppercase\"maxlength=2 size=2 value=%c></td>"
"<td><input type=text name=Type style=\"text-transform: uppercase\"maxlength=2 size=2 value=%c></td>"
"<td><input type=text name=From style=\"text-transform: uppercase\" maxlength=7 size=7 value=%s></td>"
"<td><input type=text name=TO style=\"text-transform: uppercase\" maxlength=7 size=7 value=%s></td>"
"<td><input type=text name=AT style=\"text-transform: uppercase\" maxlength=7 size=7 value=%s></td>"
"<td><input type=text name=BID style=\"text-transform: uppercase\" maxlength=13 size=13 value=%s></td>"
"<td><input type=text name=MaxLen maxlength=6 size=6 value=%d></td></tr>",
Filter->Action, Filter->Type, Filter->From, Filter->TO, Filter->AT, Filter->BID, Filter->MaxLen);
Filter = Filter->Next;
}
// Add a few blank entries for input
for (i = 0; i < 5; i++)
{
ptr += sprintf(ptr, "<tr>"
"<td><input type=text name=Action style=\"text-transform: uppercase\"maxlength=2 size=2 value=%c></td>"
"<td><input type=text name=Type style=\"text-transform: uppercase\"maxlength=2 size=2 value=%c></td>"
"<td><input type=text name=From style=\"text-transform: uppercase\" maxlength=7 size=7 value=%s></td>"
"<td><input type=text name=TO style=\"text-transform: uppercase\" maxlength=7 size=7 value=%s></td>"
"<td><input type=text name=AT style=\"text-transform: uppercase\" maxlength=7 size=7 value=%s></td>"
"<td><input type=text name=BID style=\"text-transform: uppercase\" maxlength=13 size=13 value=%s></td>"
"<td><input type=text name=MaxLen maxlength=6 size=6 value=%d></td></tr>", ' ', ' ', "", "", "", "", 0);
}
ptr += sprintf(ptr, "</table>");
Debugprintf("%d", strlen(FBBFilters));
Len = sprintf(Reply, ConfigTemplate, Len = sprintf(Reply, ConfigTemplate,
BBSName, Key, Key, Key, Key, Key, Key, Key, Key, Key, BBSName, Key, Key, Key, Key, Key, Key, Key, Key, Key,
BBSName, SYSOPCall, HRoute, BBSName, SYSOPCall, HRoute,
@ -2490,7 +2612,7 @@ VOID SendConfigPage(char * Reply, int * ReplyLen, char * Key)
(SendWPType == 0) ? CHKD : UNC, (SendWPType == 0) ? CHKD : UNC,
(SendWPType == 1) ? CHKD : UNC, (SendWPType == 1) ? CHKD : UNC,
WPTO, WPTO,
RF, RT, RA, RB, HF, HT, HA, HB); RF, RT, RA, RB, HF, HT, HA, HB, FBBFilters);
*ReplyLen = Len; *ReplyLen = Len;
} }

@ -45,6 +45,7 @@ BOOL OpenMon;
int reportNewMesageEvents = 0; int reportNewMesageEvents = 0;
FBBFilter * Filters = NULL;
extern struct ConsoleInfo BBSConsole; extern struct ConsoleInfo BBSConsole;
@ -2078,10 +2079,37 @@ int CountConnectionsOnPort(int CheckPort)
return Count; return Count;
} }
/*
REJECT.SYS (\FBB\SYSTEM).
This file is in SYSTEM-directory. With this file it is possible to reject or
hold certain types or sizes of messages.
The first letter of each valid line specifies the action :
R = Reject : The message will not be received.
H = Hold : The message will be received but held until the sysop reviews.
L = Local Hold : Only messages created on this BBS will be held.
# File for rejecting messages. They are rejected with N-BID:
#
# Type, from, @BBS, to, BID, maximum size:
#
# * and ? can be used as wildcards (as in MS-DOS)
#
R B TOTO ALL TATA * 0
R B * * VENTE * 0
R B * VENTE * * 0
H * P1RAT * * * 0
L B * * * * 0
*/
BOOL CheckRejFilters(char * From, char * To, char * ATBBS, char * BID, char Type)
BOOL CheckRejFilters(char * From, char * To, char * ATBBS, char * BID, char Type, int Len)
{ {
char ** Calls; char ** Calls;
FBBFilter * p = Filters;
char ToCopy[256];
if (Type == 'B' && FilterWPBulls && _stricmp(To, "WP") == 0) if (Type == 'B' && FilterWPBulls && _stricmp(To, "WP") == 0)
return TRUE; return TRUE;
@ -2145,6 +2173,43 @@ BOOL CheckRejFilters(char * From, char * To, char * ATBBS, char * BID, char Type
Calls++; Calls++;
} }
} }
// check fbb reject.sys type filters
strcpy(ToCopy, To);
_strupr(ToCopy);
while (p)
{
if (p->Action != 'R')
goto Continue;
if (p->Type != Type && p->Type != '*')
goto Continue;
if (wildcardcompare(From, p->From) == 0)
goto Continue;
if (wildcardcompare(ToCopy, p->TO) == 0)
goto Continue;
if (ATBBS)
if (wildcardcompare(ATBBS, p->AT) == 0)
goto Continue;
if (BID)
if (wildcardcompare(BID, p->BID) == 0)
goto Continue;
if (p->MaxLen && Len < p->MaxLen)
goto Continue;
return TRUE; // Hold
Continue:
p = p->Next;
}
return FALSE; // Ok to accept return FALSE; // Ok to accept
} }
@ -2175,9 +2240,12 @@ BOOL CheckValidCall(char * From)
return FALSE; return FALSE;
} }
BOOL CheckHoldFilters(char * From, char * To, char * ATBBS, char * BID) BOOL wildcardcompare(char * Target, char * Match);
BOOL CheckHoldFilters(struct MsgInfo * Msg, char * From, char * To, char * ATBBS, char * BID)
{ {
char ** Calls; char ** Calls;
FBBFilter * p = Filters;
if (HoldFrom && From) if (HoldFrom && From)
{ {
@ -2238,6 +2306,38 @@ BOOL CheckHoldFilters(char * From, char * To, char * ATBBS, char * BID)
Calls++; Calls++;
} }
} }
// check fbb reject.sys type filters
while (p)
{
if (p->Action != 'H')
goto Continue;
if (p->Type != Msg->type && p->Type != '*')
goto Continue;
if (wildcardcompare(Msg->from, p->From) == 0)
goto Continue;
if (wildcardcompare(Msg->to, p->TO) == 0)
goto Continue;
if (wildcardcompare(Msg->via, p->AT) == 0)
goto Continue;
if (wildcardcompare(Msg->bid, p->BID) == 0)
goto Continue;
if (p->MaxLen && Msg->length < p->MaxLen)
goto Continue;
return TRUE; // Hold
Continue:
p = p->Next;
}
return FALSE; // Ok to accept return FALSE; // Ok to accept
} }
@ -5361,7 +5461,7 @@ BOOL CreateMessage(CIRCUIT * conn, char * From, char * ToCall, char * ATBBS, cha
} }
else else
{ {
if (CheckRejFilters(From, ToCall, ATBBS, BID, MsgType)) if (CheckRejFilters(From, ToCall, ATBBS, BID, MsgType, 0))
{ {
if ((conn->BBSFlags & BBS)) if ((conn->BBSFlags & BBS))
{ {
@ -6169,7 +6269,7 @@ nextline:
HoldReason = "Bad word in title or body"; HoldReason = "Bad word in title or body";
} }
if (CheckHoldFilters(Msg->from, Msg->to, Msg->via, Msg->bid)) if (CheckHoldFilters(Msg, Msg->from, Msg->to, Msg->via, Msg->bid))
{ {
Msg->status = 'H'; Msg->status = 'H';
HoldReason = "Matched Hold Filters"; HoldReason = "Matched Hold Filters";
@ -9441,6 +9541,9 @@ VOID SaveConfig(char * ConfigName)
char Size[80]; char Size[80];
struct BBSForwardingInfo DummyForwardingInfo; struct BBSForwardingInfo DummyForwardingInfo;
char Line[1024]; char Line[1024];
char FBBString[8192]= "";
FBBFilter * p = Filters;
char * ptr = FBBString;
if (configSaved == 0) if (configSaved == 0)
{ {
@ -9566,6 +9669,18 @@ VOID SaveConfig(char * ConfigName)
SaveMultiStringValue(group, "HoldAt", HoldAt); SaveMultiStringValue(group, "HoldAt", HoldAt);
SaveMultiStringValue(group, "HoldBID", HoldBID); SaveMultiStringValue(group, "HoldBID", HoldBID);
// Save FBB Filters
while (p)
{
ptr += sprintf(ptr, "%c|%c|%s|%s|%s|%s|%d|",
p->Action, p->Type, p->From, p->TO, p->AT, p->BID, p->MaxLen);
p = p->Next;
}
SaveStringValue(group, "FBBFilters", FBBString);
SaveIntValue(group, "SendWP", SendWP); SaveIntValue(group, "SendWP", SendWP);
SaveIntValue(group, "SendWPType", SendWPType); SaveIntValue(group, "SendWPType", SendWPType);
SaveIntValue(group, "FilterWPBulls", FilterWPBulls); SaveIntValue(group, "FilterWPBulls", FilterWPBulls);
@ -9964,7 +10079,8 @@ BOOL GetConfig(char * ConfigName)
char Size[80]; char Size[80];
config_setting_t *setting; config_setting_t *setting;
const char * ptr; const char * ptr;
char FBBString[8192]= "";
FBBFilter f;
config_init(&cfg); config_init(&cfg);
/* Read the file. If there is an error, report it and exit. */ /* Read the file. If there is an error, report it and exit. */
@ -10161,6 +10277,89 @@ BOOL GetConfig(char * ConfigName)
HoldAt = GetMultiStringValue(group, "HoldAt"); HoldAt = GetMultiStringValue(group, "HoldAt");
HoldBID = GetMultiStringValue(group, "HoldBID"); HoldBID = GetMultiStringValue(group, "HoldBID");
// Get FBB Filters
GetStringValue(group, "FBBFilters", FBBString);
ptr = FBBString;
// delete old list
while(Filters && Filters->Next)
{
FBBFilter * next = Filters->Next;
free(Filters);
Filters = next;
}
free(Filters);
Filters = NULL;
while (ptr && ptr[0])
{
FBBFilter * PFilter;
f.Action = ptr[0];
f.Type = ptr[2];
ptr = &ptr[4];
memcpy(f.From, ptr, 10);
strlop(f.From, '|');
ptr = strlop(ptr, '|');
memcpy(f.TO, ptr, 10);
strlop(f.TO, '|');
ptr = strlop(ptr, '|');
memcpy(f.AT, ptr, 10);
strlop(f.AT, '|');
ptr = strlop(ptr, '|');
memcpy(f.BID, ptr, 10);
strlop(f.BID, '|');
ptr = strlop(ptr, '|');
f.MaxLen = atoi(ptr);
// add to list
f.Next = 0;
PFilter = zalloc(sizeof(FBBFilter));
memcpy(PFilter, &f, sizeof(FBBFilter));
if (Filters == 0)
Filters = PFilter;
else
{
FBBFilter * p = Filters;
while (p->Next)
p = p->Next;
p->Next = PFilter;
}
ptr = strlop(ptr, '|');
}
//f.Action, f.Type, f.From, f.TO, f.AT, f.BID, &f.MaxLen);
/* while (p)
{
ptr += sprintf(ptr, "%c|%c|%s|%s|%s|%s|%d|",
p->Action, p->Type, p->From, p->TO, p->AT, p->BID, p->MaxLen);
p = p->Next;
}
*/
// Send WP Params // Send WP Params
SendWP = GetIntValue(group, "SendWP"); SendWP = GetIntValue(group, "SendWP");

Binary file not shown.

@ -1118,6 +1118,9 @@
// Fix recently introduced crash when "Don't allow new users" is set (81) // Fix recently introduced crash when "Don't allow new users" is set (81)
// Skip comments before TIMES at start of Connect Script (83) // Skip comments before TIMES at start of Connect Script (83)
// 6.0.25.1 ??
// Aff FBB reject.sys style filters (3)
#include "bpqmail.h" #include "bpqmail.h"
#include "winstdint.h" #include "winstdint.h"

@ -254,7 +254,7 @@ END
IDD_USEREDIT DIALOGEX 20, 20, 293, 281 IDD_USEREDIT DIALOGEX 20, 20, 293, 281
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Edit User" CAPTION "Edit User"
FONT 8, "System" FONT 8, "System", 0, 0, 0x1
BEGIN BEGIN
COMBOBOX 5000,7,10,57,123,CBS_SIMPLE | CBS_SORT | CBS_UPPERCASE | COMBOBOX 5000,7,10,57,123,CBS_SIMPLE | CBS_SORT | CBS_UPPERCASE |
WS_VSCROLL | WS_TABSTOP WS_VSCROLL | WS_TABSTOP
@ -1072,39 +1072,45 @@ BEGIN
ES_AUTOHSCROLL ES_AUTOHSCROLL
END END
FILTERS DIALOG DISCARDABLE 26, 5, 382, 287 FILTERS DIALOG DISCARDABLE 26, 5, 382, 371
STYLE WS_CHILD | WS_VISIBLE STYLE WS_CHILD | WS_VISIBLE
FONT 8, "System" FONT 8, "System"
BEGIN BEGIN
LTEXT "Reject Messages:",IDC_STATIC,162,29,70,10 LTEXT "Reject Messages:",IDC_STATIC,162,26,70,10
LTEXT "From",IDC_STATIC,83,155,28,10 LTEXT "From",IDC_STATIC,83,137,28,10
EDITTEXT IDC_HOLDFROM,58,167,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_HOLDFROM,58,149,64,83,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "To",IDC_STATIC,152,155,27,10 LTEXT "To",IDC_STATIC,152,137,27,10
EDITTEXT IDC_HOLDTO,126,167,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_HOLDTO,126,149,64,83,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "At",IDC_STATIC,223,155,15,10 LTEXT "At",IDC_STATIC,223,137,15,10
EDITTEXT IDC_HOLDAT,194,167,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_HOLDAT,194,149,64,83,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
DEFPUSHBUTTON "Save",IDC_FILTERSAVE,171,266,50,14,BS_CENTER | DEFPUSHBUTTON "Save",IDC_FILTERSAVE,171,341,50,14,BS_CENTER |
BS_VCENTER BS_VCENTER
LTEXT "From",IDC_STATIC,83,40,28,10 LTEXT "From",IDC_STATIC,83,40,28,10
EDITTEXT IDC_REJFROM,58,52,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_REJFROM,58,52,64,67,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "To",IDC_STATIC,154,40,27,10 LTEXT "To",IDC_STATIC,154,40,27,10
EDITTEXT IDC_REJTO,126,52,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_REJTO,126,52,64,68,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "At",IDC_STATIC,223,40,15,10 LTEXT "At",IDC_STATIC,223,40,15,10
EDITTEXT IDC_REJAT,194,52,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_REJAT,194,52,64,68,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "Message Filtering Setup.",IDC_STATIC,152,10,95,15 LTEXT "Message Filtering Setup.",IDC_STATIC,152,10,95,15
LTEXT "Hold Messages:",IDC_STATIC,166,143,60,9 LTEXT "Hold Messages:",IDC_STATIC,166,128,60,9
EDITTEXT IDC_REJBID,262,52,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_REJBID,262,52,64,68,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
EDITTEXT IDC_HOLDBID,262,167,64,83,ES_MULTILINE | ES_UPPERCASE | EDITTEXT IDC_HOLDBID,262,149,64,83,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "BID",IDC_STATIC,289,155,15,10 LTEXT "BID",IDC_STATIC,289,137,15,10
LTEXT "BID",IDC_STATIC,289,41,15,10 LTEXT "BID",IDC_STATIC,289,41,15,10
EDITTEXT IDC_REJSYS,58,265,270,66,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN
LTEXT "Composite Rules (like fbb reject.sys)",IDC_STATIC,152,
236,134,9
LTEXT "Action, Type, from, @BBS, to, BID, maximum size",
IDC_STATIC,59,251,247,9
END END
WPUPDATE DIALOG DISCARDABLE 26, 5, 382, 287 WPUPDATE DIALOG DISCARDABLE 26, 5, 382, 287
@ -1258,6 +1264,7 @@ BEGIN
"FILTERS", DIALOG "FILTERS", DIALOG
BEGIN BEGIN
RIGHTMARGIN, 377 RIGHTMARGIN, 377
BOTTOMMARGIN, 355
END END
IDD_RMSBULLDLG, DIALOG IDD_RMSBULLDLG, DIALOG
@ -1444,6 +1451,11 @@ BEGIN
0x0000 0x0000
END END
FILTERS AFX_DIALOG_LAYOUT MOVEABLE PURE
BEGIN
0x0000
END
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //

@ -68,7 +68,7 @@
<Tool <Tool
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="..\lib\bpq32.lib wsock32.lib comctl32.lib winmm.lib ..\lib\libconfig.lib DbgHelp.lib" AdditionalDependencies="..\lib\bpq32.lib wsock32.lib comctl32.lib winmm.lib ..\lib\libconfig.lib DbgHelp.lib"
OutputFile="c:\DevProgs\bpq32\BPQMail.exe" OutputFile="d:\DevProgs\bpq32\BPQMail.exe"
LinkIncremental="2" LinkIncremental="2"
IgnoreAllDefaultLibraries="false" IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="LIBCMT" IgnoreDefaultLibraryNames="LIBCMT"

@ -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="DESKTOP-MHE5LO8"
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="DESKTOP-MHE5LO8"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
</Configurations>
</VisualStudioUserFile>

@ -5,23 +5,16 @@
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{3766AA10-C777-4ED8-A83D-F1452DE9B665}</ProjectGuid> <ProjectGuid>{3766AA10-C777-4ED8-A83D-F1452DE9B665}</ProjectGuid>
<RootNamespace>TelnetServer</RootNamespace> <RootNamespace>TelnetServer</RootNamespace>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@ -30,39 +23,21 @@
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
<UseOfMfc>false</UseOfMfc> <UseOfMfc>false</UseOfMfc>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>15.0.28307.799</_ProjectFileVersion> <_ProjectFileVersion>15.0.28307.799</_ProjectFileVersion>
@ -72,17 +47,11 @@
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir> <IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir> <OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir> <IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<CustomBuildStep> <CustomBuildStep>
<Command /> <Command />
@ -117,40 +86,6 @@
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<CustomBuildStep>
<Command>
</Command>
</CustomBuildStep>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\CKernel;..\CInclude;..\CommonSource;..\BPQMail;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>..\lib\bpq32.lib;wsock32.lib;comctl32.lib;winmm.lib;..\lib\libconfig.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQMail.exe</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<IgnoreSpecificDefaultLibraries>LIBCMT;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>$(IntDir)BBSListings\bpqmail.map</MapFileName>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent> <PreBuildEvent>
<Command /> <Command />
@ -186,124 +121,58 @@
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PreBuildEvent>
<Command>
</Command>
</PreBuildEvent>
<CustomBuildStep>
<Command>
</Command>
</CustomBuildStep>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\CKernel;..\CInclude;..\CommonSource;..\BPQMail;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>..\lib\bpq32.lib;wsock32.lib;comctl32.lib;winmm.lib;..\lib\libconfig.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQMail.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>c:\DevProgs\bpq32\BPQMail.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\DevProgs\bpq32\BPQMail.map</MapFileName>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration>
</LinkTimeCodeGeneration>
</Link>
</ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="Alloc.c" /> <ClCompile Include="Alloc.c" />
<ClCompile Include="BBSHTMLConfig.c" /> <ClCompile Include="BBSHTMLConfig.c" />
<ClCompile Include="BBSUtilities.c"> <ClCompile Include="BBSUtilities.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput> <AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'">All</AssemblerOutput>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation> <AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="BPQMail.c" /> <ClCompile Include="BPQMail.c" />
<ClCompile Include="BPQMailConfig.c" /> <ClCompile Include="BPQMailConfig.c" />
<ClCompile Include="CMSAuth.c" /> <ClCompile Include="CMSAuth.c" />
<ClCompile Include="FBBRoutines.c"> <ClCompile Include="FBBRoutines.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="Housekeeping.c" /> <ClCompile Include="Housekeeping.c" />
<ClCompile Include="HTMLCommonCode.c" /> <ClCompile Include="HTMLCommonCode.c" />
<ClCompile Include="LzFind.c" /> <ClCompile Include="LzFind.c" />
<ClCompile Include="lzhuf32.c"> <ClCompile Include="lzhuf32.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput> <AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'">All</AssemblerOutput>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation> <AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="LzmaDec.c" /> <ClCompile Include="LzmaDec.c" />
<ClCompile Include="LzmaEnc.c" /> <ClCompile Include="LzmaEnc.c" />
<ClCompile Include="LzmaLib.c" /> <ClCompile Include="LzmaLib.c" />
<ClCompile Include="MailCommands.c"> <ClCompile Include="MailCommands.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="MailDataDefs.c" /> <ClCompile Include="MailDataDefs.c" />
<ClCompile Include="MailRouting.c"> <ClCompile Include="MailRouting.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="MailTCP.c"> <ClCompile Include="MailTCP.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="MBLRoutines.c" /> <ClCompile Include="MBLRoutines.c" />
<ClCompile Include="Monitor.c" /> <ClCompile Include="Monitor.c" />
@ -312,25 +181,17 @@
<ClCompile Include="NNTPRoutines.c" /> <ClCompile Include="NNTPRoutines.c" />
<ClCompile Include="UIRoutines.c"> <ClCompile Include="UIRoutines.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
<ClCompile Include="utf8Routines.c" /> <ClCompile Include="utf8Routines.c" />
<ClCompile Include="WebMail.c" /> <ClCompile Include="WebMail.c" />
<ClCompile Include="WPRoutines.c"> <ClCompile Include="WPRoutines.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName> <XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

@ -255,6 +255,8 @@
#define IDC_REJFROM 7077 #define IDC_REJFROM 7077
#define IDC_REJTO 7078 #define IDC_REJTO 7078
#define IDC_REJAT 7079 #define IDC_REJAT 7079
#define IDC_HOLDFROM2 7080
#define IDC_REJSYS 7080
#define IDM_HOUSEKEEPING 9000 #define IDM_HOUSEKEEPING 9000
#define IDM_PR 9001 #define IDM_PR 9001
#define IDM_PUR 9002 #define IDM_PUR 9002
@ -322,7 +324,7 @@
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 30012 #define _APS_NEXT_RESOURCE_VALUE 30013
#define _APS_NEXT_COMMAND_VALUE 40027 #define _APS_NEXT_COMMAND_VALUE 40027
#define _APS_NEXT_CONTROL_VALUE 1093 #define _APS_NEXT_CONTROL_VALUE 1093
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101

@ -1183,6 +1183,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// Version 6.0.25.? // Version 6.0.25.?
// Fix 64 bit compatibility problems in SCSTracker and UZ7HO drivers // Fix 64 bit compatibility problems in SCSTracker and UZ7HO drivers
// Add Chat PACLEN config (5)
// Fix NC to Application Call (6)
#define CKernel #define CKernel

@ -20,7 +20,7 @@
<Configurations> <Configurations>
<Configuration <Configuration
Name="Debug|Win32" Name="Debug|Win32"
OutputDirectory="C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(ConfigurationName)" OutputDirectory="d:\devprogs\bpq32"
IntermediateDirectory="C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(ConfigurationName)" IntermediateDirectory="C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(ConfigurationName)"
ConfigurationType="2" ConfigurationType="2"
CharacterSet="0" CharacterSet="0"

@ -9,7 +9,7 @@
Name="Debug|Win32" Name="Debug|Win32"
> >
<DebugSettings <DebugSettings
Command="" Command="c:\devprogs\bpq32\bpq32.exe"
WorkingDirectory="" WorkingDirectory=""
CommandArguments="" CommandArguments=""
Attach="false" Attach="false"
@ -22,7 +22,7 @@
SQLDebugging="" SQLDebugging=""
Environment="" Environment=""
EnvironmentMerge="true" EnvironmentMerge="true"
DebuggerFlavor="" DebuggerFlavor="0"
MPIRunCommand="" MPIRunCommand=""
MPIRunArguments="" MPIRunArguments=""
MPIRunWorkingDirectory="" MPIRunWorkingDirectory=""

@ -37,6 +37,7 @@ extern char OurNode[10];
extern char PassError[]; extern char PassError[];
extern char BusyError[]; extern char BusyError[];
extern int chatPaclen;
extern char NodeTail[]; extern char NodeTail[];
extern BOOL APRSApplConnected; extern BOOL APRSApplConnected;
@ -317,6 +318,10 @@ VOID SaveChatInfo(struct HTTPConnectionInfo * Session, char * MsgPtr, char * Rep
ChatApplNum = atoi(Temp); ChatApplNum = atoi(Temp);
GetParam(input, "Streams=", Temp); GetParam(input, "Streams=", Temp);
MaxChatStreams = atoi(Temp); MaxChatStreams = atoi(Temp);
GetParam(input, "Paclen=", Temp);
chatPaclen = atoi(Temp);
if (chatPaclen < 60)
chatPaclen = 60;
GetParam(input, "nodes=", Nodes); GetParam(input, "nodes=", Nodes);
@ -503,7 +508,7 @@ scan:
Len = sprintf(Reply, ChatConfigTemplate, Len = sprintf(Reply, ChatConfigTemplate,
OurNode, Key, Key, Key, OurNode, Key, Key, Key,
ChatApplNum, MaxChatStreams, Nodes, Position, ChatApplNum, MaxChatStreams, Nodes, chatPaclen, Position,
(PopupMode) ? UNC : CHKD, (PopupMode) ? UNC : CHKD,
(PopupMode) ? CHKD : UNC, Text, ptr2); (PopupMode) ? CHKD : UNC, Text, ptr2);

@ -16,6 +16,7 @@ extern int NumberofChatStreams;
extern char ChatConfigName[MAX_PATH]; extern char ChatConfigName[MAX_PATH];
extern char Session[20]; extern char Session[20];
extern int chatPaclen;
extern struct SEM ChatSemaphore; extern struct SEM ChatSemaphore;
extern struct SEM AllocSemaphore; extern struct SEM AllocSemaphore;
@ -67,7 +68,7 @@ int Connected(int Stream)
if (conn->rtcflags == p_linkini) if (conn->rtcflags == p_linkini)
{ {
conn->paclen = 236; conn->paclen = chatPaclen;
// Run first line of connect script // Run first line of connect script
@ -86,8 +87,10 @@ int Connected(int Stream)
conn->Secure_Session = GetConnectionInfo(Stream, callsign, conn->Secure_Session = GetConnectionInfo(Stream, callsign,
&port, &conn->SessType, &paclen, &maxframe, &l4window); &port, &conn->SessType, &paclen, &maxframe, &l4window);
conn->paclen = paclen; if (paclen > chatPaclen || paclen == 0)
paclen = chatPaclen;
conn->paclen = paclen;
strlop(callsign, ' '); // Remove trailing spaces strlop(callsign, ' '); // Remove trailing spaces
memcpy(conn->Callsign, callsign, 10); memcpy(conn->Callsign, callsign, 10);

@ -68,8 +68,11 @@ VOID WriteMiniDump();
void printStack(void); void printStack(void);
char * FormatMH(PMHSTRUC MH, char Format); char * FormatMH(PMHSTRUC MH, char Format);
void WriteConnectLog(char * fromCall, char * toCall, UCHAR * Mode); void WriteConnectLog(char * fromCall, char * toCall, UCHAR * Mode);
void SendDataToPktMap(char *Msg);
extern BOOL LogAllConnects; extern BOOL LogAllConnects;
extern VOID * ENDBUFFERPOOL; extern VOID * ENDBUFFERPOOL;
@ -3302,6 +3305,8 @@ VOID SendLocation()
SendReportMsg((char *)&AXMSG.DEST, Len + 16); SendReportMsg((char *)&AXMSG.DEST, Len + 16);
SendDataToPktMap("");
return; return;
} }
@ -4749,6 +4754,229 @@ void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CM
Debugprintf("CTEXT Read for ports %s\r", &PortList[1]); Debugprintf("CTEXT Read for ports %s\r", &PortList[1]);
} }
SOCKET OpenHTTPSock(char * Host)
{
SOCKET sock = 0;
struct sockaddr_in destaddr;
struct sockaddr_in sinx;
int addrlen=sizeof(sinx);
struct hostent * HostEnt;
int err;
u_long param=1;
BOOL bcopt=TRUE;
destaddr.sin_family = AF_INET;
destaddr.sin_port = htons(80);
// Resolve name to address
HostEnt = gethostbyname (Host);
if (!HostEnt)
{
err = WSAGetLastError();
Debugprintf("Resolve Failed for %s %d %x", "api.winlink.org", err, err);
return 0 ; // Resolve failed
}
memcpy(&destaddr.sin_addr.s_addr,HostEnt->h_addr,4);
// Allocate a Socket entry
sock = socket(AF_INET,SOCK_STREAM,0);
if (sock == INVALID_SOCKET)
return 0;
setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, (const char FAR *)&bcopt,4);
sinx.sin_family = AF_INET;
sinx.sin_addr.s_addr = INADDR_ANY;
sinx.sin_port = 0;
if (bind(sock, (struct sockaddr *) &sinx, addrlen) != 0 )
return FALSE;
if (connect(sock,(struct sockaddr *) &destaddr, sizeof(destaddr)) != 0)
{
err=WSAGetLastError();
closesocket(sock);
return 0;
}
return sock;
}
static char HeaderTemplate[] = "POST %s HTTP/1.1\r\n"
"Accept: application/json\r\n"
// "Accept-Encoding: gzip,deflate,gzip, deflate\r\n"
"Content-Type: application/json\r\n"
"Host: %s:%d\r\n"
"Content-Length: %d\r\n"
//r\nUser-Agent: BPQ32(G8BPQ)\r\n"
// "Expect: 100-continue\r\n"
"\r\n{%s}";
VOID SendWebRequest(SOCKET sock, char * Host, char * Request, char * Params, int Len, char * Return)
{
int InputLen = 0;
int inptr = 0;
char Buffer[2048];
char Header[2048];
char * ptr, * ptr1;
int Sent;
sprintf(Header, HeaderTemplate, Request, Host, 80, Len + 2, Params);
Sent = send(sock, Header, (int)strlen(Header), 0);
if (Sent == -1)
{
int Err = WSAGetLastError();
Debugprintf("Error %d from Web Update send()", Err);
return;
}
while (InputLen != -1)
{
InputLen = recv(sock, &Buffer[inptr], 2048 - inptr, 0);
if (InputLen == -1 || InputLen == 0)
{
int Err = WSAGetLastError();
Debugprintf("Error %d from Web Update recv()", Err);
return;
}
// As we are using a persistant connection, can't look for close. Check
// for complete message
inptr += InputLen;
Buffer[inptr] = 0;
ptr = strstr(Buffer, "\r\n\r\n");
if (ptr)
{
// got header
int Hddrlen = (int)(ptr - Buffer);
ptr1 = strstr(Buffer, "Content-Length:");
if (ptr1)
{
// Have content length
int ContentLen = atoi(ptr1 + 16);
if (ContentLen + Hddrlen + 4 == inptr)
{
// got whole response
if (strstr(Buffer, " 200 OK"))
{
if (Return)
{
memcpy(Return, ptr + 4, ContentLen);
Return[ContentLen] = 0;
}
else
Debugprintf("Map Database update ok");
}
else
{
strlop(Buffer, 13);
Debugprintf("Map Update Params - %s", Params);
Debugprintf("Map Update failed - %s", Buffer);
}
return;
}
}
else
{
ptr1 = strstr(_strlwr(Buffer), "transfer-encoding:");
if (ptr1)
{
// Just accept anything until I've sorted things with Lee
Debugprintf("%s", ptr1);
Debugprintf("Web Database update ok");
return;
}
}
}
}
}
// https://packetnodes.spots.radio/api/NodeData/{callsign}
//SendHTTPRequest(sock, "/account/exists", Message, Len, Response);
extern char MYALIASLOPPED[10];
void SendDataToPktMap(char *Msg)
{
SOCKET sock;
char Return[256];
char Request[64];
char Params[16384];
char * ptr = Params;
sprintf(Request, "/api/NodeData/%s", MYNODECALL);
// This builds the request and sends it
// Minimum header seems to be
// "nodeAlias": "BPQ",
// "location": {"locator": "IO68VL"},
// "software": {"name": "BPQ32","version": "6.0.24.3"},
ptr += sprintf(ptr, "\"nodeAlias\": \"%s\",\r\n", MYALIASLOPPED);
ptr += sprintf(ptr, "\"locator\": \"%s\",\r\n", LOCATOR);
#ifdef LINBPQ
ptr += sprintf(ptr, "\"software\": \"LinBPQ\",\"version\": \"%s\",\r\n", VersionString);
#else
ptr += sprintf(ptr, "\"software\": \"BPQ32\",\"version\": \"%s\",\r\n", VersionString);
#endif
// "contact": "string",
// "neighbours": [{"node": "G7TAJ","port": "30"}]
return;
sock = OpenHTTPSock("packetnodes.spots.radio");
SendWebRequest(sock, "packetnodes.spots.radio", Request, Params, strlen(Params), Return);
closesocket(sock);
}
// ="{\"neighbours\": [{\"node\": \"G7TAJ\",\"port\": \"30\"}]}";
//'POST' \
// 'https://packetnodes.spots.radio/api/NodeData/GM8BPQ' \
// -H 'accept: */*' \
// -H 'Content-Type: application/json' \
// -d '{
// "nodeAlias": "BPQ",
// "location": {"locator": "IO68VL"},
// "software": {"name": "BPQ32","version": "6.0.24.3"},
// "contact": "string",
// "neighbours": [{"node": "G7TAJ","port": "30"}]
//}'

@ -472,7 +472,7 @@ ok:
// Check Filters // Check Filters
if (CheckRejFilters(FBBHeader->From, FBBHeader->To, FBBHeader->ATBBS, FBBHeader->BID, FBBHeader->MsgType)) if (CheckRejFilters(FBBHeader->From, FBBHeader->To, FBBHeader->ATBBS, FBBHeader->BID, FBBHeader->MsgType, FBBHeader->Size))
{ {
memset(FBBHeader, 0, sizeof(struct FBBHeaderLine)); // Clear header memset(FBBHeader, 0, sizeof(struct FBBHeaderLine)); // Clear header
conn->FBBReplyChars[conn->FBBReplyIndex++] = '-'; conn->FBBReplyChars[conn->FBBReplyIndex++] = '-';
@ -604,7 +604,7 @@ ok:
char * To = strtok_s(NULL, seps, &Context); char * To = strtok_s(NULL, seps, &Context);
char * Type = strtok_s(NULL, seps, &Context); char * Type = strtok_s(NULL, seps, &Context);
if (From && To && ATBBS && Type && CheckRejFilters(From, To, ATBBS, NULL, *Type)) if (From && To && ATBBS && Type && CheckRejFilters(From, To, ATBBS, NULL, *Type, FBBHeader->Size))
{ {
memset(FBBHeader, 0, sizeof(struct FBBHeaderLine)); // Clear header memset(FBBHeader, 0, sizeof(struct FBBHeaderLine)); // Clear header
conn->FBBReplyChars[conn->FBBReplyIndex++] = '-'; conn->FBBReplyChars[conn->FBBReplyIndex++] = '-';

@ -75,6 +75,7 @@ char ChatWelcomeMsg[1000];
char Position[81] = ""; char Position[81] = "";
char PopupText[260] = ""; char PopupText[260] = "";
int PopupMode = 0; int PopupMode = 0;
int chatPaclen = 236;
char RtKnown[MAX_PATH] = "RTKnown.txt"; char RtKnown[MAX_PATH] = "RTKnown.txt";
char RtUsr[MAX_PATH] = "STUsers.txt"; char RtUsr[MAX_PATH] = "STUsers.txt";
@ -97,6 +98,7 @@ int ChatTmr = 0;
BOOL NeedStatus = FALSE; BOOL NeedStatus = FALSE;
char Verstring[80]; char Verstring[80];
static void node_dec(CHATNODE *node); static void node_dec(CHATNODE *node);
@ -3863,7 +3865,7 @@ int ChatConnected(int Stream)
if (conn->rtcflags == p_linkini) if (conn->rtcflags == p_linkini)
{ {
conn->paclen = 236; conn->paclen = chatPaclen;
// Run first line of connect script // Run first line of connect script
@ -3883,6 +3885,9 @@ int ChatConnected(int Stream)
if (paclen == 0) if (paclen == 0)
paclen = 256; paclen = 256;
if (paclen > chatPaclen)
paclen = chatPaclen;
conn->paclen = paclen; conn->paclen = paclen;
strlop(callsign, ' '); // Remove trailing spaces strlop(callsign, ' '); // Remove trailing spaces
@ -4163,12 +4168,19 @@ BOOL GetChatConfig(char * ConfigName)
ChatApplNum = GetIntValue(group, "ApplNum"); ChatApplNum = GetIntValue(group, "ApplNum");
MaxChatStreams = GetIntValue(group, "MaxStreams"); MaxChatStreams = GetIntValue(group, "MaxStreams");
chatPaclen = GetIntValue(group, "chatPaclen");
GetStringValue(group, "OtherChatNodes", OtherNodesList); GetStringValue(group, "OtherChatNodes", OtherNodesList);
GetStringValue(group, "ChatWelcomeMsg", ChatWelcomeMsg); GetStringValue(group, "ChatWelcomeMsg", ChatWelcomeMsg);
GetStringValue(group, "MapPosition", Position); GetStringValue(group, "MapPosition", Position);
GetStringValue(group, "MapPopup", PopupText); GetStringValue(group, "MapPopup", PopupText);
PopupMode = GetIntValue(group, "PopupMode"); PopupMode = GetIntValue(group, "PopupMode");
if (chatPaclen == 0)
chatPaclen = 236;
if (chatPaclen < 60)
chatPaclen = 60;
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
@ -4187,6 +4199,7 @@ VOID SaveChatConfigFile(char * ConfigName)
SaveIntValue(group, "ApplNum", ChatApplNum); SaveIntValue(group, "ApplNum", ChatApplNum);
SaveIntValue(group, "MaxStreams", MaxChatStreams); SaveIntValue(group, "MaxStreams", MaxChatStreams);
SaveIntValue(group, "chatPaclen", chatPaclen);
SaveStringValue(group, "OtherChatNodes", OtherNodesList); SaveStringValue(group, "OtherChatNodes", OtherNodesList);
SaveStringValue(group, "ChatWelcomeMsg", ChatWelcomeMsg); SaveStringValue(group, "ChatWelcomeMsg", ChatWelcomeMsg);

@ -965,6 +965,11 @@ VOID ProcessXIDCommand(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT, MESS
L2SWAPADDRESSES(Buffer); // SWAP ADDRESSES AND SET RESP BITS L2SWAPADDRESSES(Buffer); // SWAP ADDRESSES AND SET RESP BITS
// We need to save APPLMASK and ALIASPTR so following SABM connects to application
LINK->APPLMASK = APPLMASK;
LINK->ALIASPTR = ALIASPTR;
PUT_ON_PORT_Q(PORT, Buffer); PUT_ON_PORT_Q(PORT, Buffer);
return; return;
} }
@ -1089,6 +1094,9 @@ VOID L2LINKACTIVE(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT, MESSAGE *
if (LINK->L2STATE == 1) // Sent XID? if (LINK->L2STATE == 1) // Sent XID?
{ {
APPLMASK = LINK->APPLMASK;
ALIASPTR = LINK->ALIASPTR;
L2SABM(LINK, PORT, Buffer, ADJBUFFER, MSGFLAG); // Process the SABM L2SABM(LINK, PORT, Buffer, ADJBUFFER, MSGFLAG); // Process the SABM
return; return;
} }
@ -1351,7 +1359,7 @@ VOID L2SABM(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT, MESSAGE * Buffe
{ {
Msg->PID = 0xf0; Msg->PID = 0xf0;
memcpy(Msg->L2DATA, APPL->APPLCMD, 12); memcpy(Msg->L2DATA, ALIASPTR, 12);
Msg->L2DATA[12] = 13; Msg->L2DATA[12] = 13;
Msg->LENGTH = MSGHDDRLEN + 12 + 2; // 2 for PID and CR Msg->LENGTH = MSGHDDRLEN + 12 + 2; // 2 for PID and CR

Binary file not shown.

@ -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="DESKTOP-MHE5LO8"
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="DESKTOP-MHE5LO8"
RemoteCommand=""
HttpUrl=""
PDBPath=""
SQLDebugging=""
Environment=""
EnvironmentMerge="true"
DebuggerFlavor=""
MPIRunCommand=""
MPIRunArguments=""
MPIRunWorkingDirectory=""
ApplicationCommand=""
ApplicationArguments=""
ShimCommand=""
MPIAcceptMode=""
MPIAcceptFilter=""
/>
</Configuration>
</Configurations>
</VisualStudioUserFile>

@ -5,24 +5,17 @@
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Win32</Platform> <Platform>Win32</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectName>LinBPQ</ProjectName> <ProjectName>LinBPQ</ProjectName>
<ProjectGuid>{3766AA10-C777-4ED8-A83D-F1452DE9B666}</ProjectGuid> <ProjectGuid>{3766AA10-C777-4ED8-A83D-F1452DE9B666}</ProjectGuid>
<RootNamespace>MailNode</RootNamespace> <RootNamespace>MailNode</RootNamespace>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
@ -31,37 +24,20 @@
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType> <ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset> <PlatformToolset>v141</PlatformToolset>
<CharacterSet>NotSet</CharacterSet> <CharacterSet>NotSet</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup> <PropertyGroup>
<_ProjectFileVersion>15.0.28307.799</_ProjectFileVersion> <_ProjectFileVersion>15.0.28307.799</_ProjectFileVersion>
@ -71,17 +47,11 @@
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir> <IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental> <LinkIncremental>true</LinkIncremental>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir> <OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir> <IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental> <LinkIncremental>false</LinkIncremental>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
@ -106,30 +76,6 @@
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\CKernel;..\CommonSource;..\CInclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;LINBPQ;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;WS2_32.Lib;C:\OneDrive\Dev\Source\bpq32\libconfig\x64\Release\libconfig.lib;DbgHelp.lib;setupapi.lib;C:\OneDrive\Dev\Source\miniupnpc-2.2.3\msvc\x64\Debug\miniupnpc.lib;C:\Users\johnw\Downloads\zlib-1.2.11-binaries-x64-release\zlib-1.2.11\binaries\x64\Release\zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\LINBPQ\$(ProjectName).exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\linbpq\linmail.map</MapFileName>
<SubSystem>Console</SubSystem>
<StackReserveSize>4000000</StackReserveSize>
<StackCommitSize>0</StackCommitSize>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile> <ClCompile>
<AdditionalIncludeDirectories>..\CKernel;..\CommonSource;..\CInclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\CKernel;..\CommonSource;..\CInclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -151,27 +97,6 @@
<TargetMachine>MachineX86</TargetMachine> <TargetMachine>MachineX86</TargetMachine>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<AdditionalIncludeDirectories>..\CKernel;..\CommonSource;..\CInclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;LINBPQ;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;WS2_32.Lib;..\lib\libconfig.lib;DbgHelp.lib;Setupapi.lib;miniupnpc.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\devprogs\bpq32\LinBPQ.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<HeapReserveSize>5000000</HeapReserveSize>
<StackReserveSize>10000000</StackReserveSize>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="adif.c" /> <ClCompile Include="adif.c" />
<ClCompile Include="AEAPactor.c" /> <ClCompile Include="AEAPactor.c" />
@ -188,12 +113,8 @@
<ClCompile Include="BBSUtilities.c"> <ClCompile Include="BBSUtilities.c">
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</AssemblerOutput> </AssemblerOutput>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</AssemblerOutput>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput> <AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'">All</AssemblerOutput>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName> <ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)</ObjectFileName>
</ClCompile> </ClCompile>
<ClCompile Include="bpqaxip.c" /> <ClCompile Include="bpqaxip.c" />
<ClCompile Include="bpqether.c" /> <ClCompile Include="bpqether.c" />

File diff suppressed because it is too large Load Diff

@ -2207,6 +2207,7 @@ int TidyString(char * Address)
size_t len; size_t len;
_strupr(Address); _strupr(Address);
Debugprintf(Address);
ptr1 = strchr(Address, '<'); ptr1 = strchr(Address, '<');
@ -2260,6 +2261,10 @@ int TidyString(char * Address)
ptr1=ptr2; ptr1=ptr2;
} }
if (ptr1 == 0)
return 0;
if (*ptr1 == '<') ptr1++; if (*ptr1 == '<') ptr1++;
ptr2 = strlop(ptr1, '>'); ptr2 = strlop(ptr1, '>');

@ -10,14 +10,14 @@
#endif #endif
#define KVers 6,0,24,2 #define KVers 6,0,24,6
#define KVerstring "6.0.24.2\0" #define KVerstring "6.0.24.6\0"
#ifdef CKernel #ifdef CKernel
#define Vers KVers #define Vers KVers
#define Verstring KVerstring #define Verstring KVerstring
#define Datestring "August 2023" #define Datestring "Sepember 2023"
#define VerComments "G8BPQ Packet Switch (C Version)" KVerstring #define VerComments "G8BPQ Packet Switch (C Version)" KVerstring
#define VerCopyright "Copyright © 2001-2023 John Wiseman G8BPQ\0" #define VerCopyright "Copyright © 2001-2023 John Wiseman G8BPQ\0"
#define VerDesc "BPQ32 Switch\0" #define VerDesc "BPQ32 Switch\0"

@ -890,6 +890,9 @@ typedef struct _LINKTABLE
UCHAR SESSACTIVE; // SET WHEN WE ARE SURE SESSION IS UP UCHAR SESSACTIVE; // SET WHEN WE ARE SURE SESSION IS UP
UINT APPLMASK; // Used when XIR processed
VOID * ALIASPTR;
USHORT KILLTIMER; // TIME TO KILL IDLE LINK USHORT KILLTIMER; // TIME TO KILL IDLE LINK
VOID * CIRCUITPOINTER; // POINTER TO L4 CIRCUIT TABLE ENTRY VOID * CIRCUITPOINTER; // POINTER TO L4 CIRCUIT TABLE ENTRY

@ -941,6 +941,23 @@ typedef struct SocketConnectionInfo
} SocketConn; } SocketConn;
// FBB reject.sys like filters
typedef struct FBBFILTER
{
struct FBBFILTER * Next;
char Action;
char Type;
char From[10];
char AT[10];
char TO[10];
char BID[16];
int MaxLen;
} FBBFilter;
extern FBBFilter * Filters;
typedef struct KEYVALUES typedef struct KEYVALUES
{ {
char * Key; char * Key;
@ -1210,8 +1227,8 @@ BOOL ConnecttoBBS (struct UserInfo * user);
BOOL SetupNewBBS(struct UserInfo * user); BOOL SetupNewBBS(struct UserInfo * user);
VOID CreateRegBackup(); VOID CreateRegBackup();
VOID SaveFilters(HWND hDlg); VOID SaveFilters(HWND hDlg);
BOOL CheckRejFilters(char * From, char * To, char * ATBBS, char * BID, char Type); BOOL CheckRejFilters(char * From, char * To, char * ATBBS, char * BID, char Type, int Len);
BOOL CheckHoldFilters(char * From, char * To, char * ATBBS, char * BID); BOOL CheckHoldFilters(struct MsgInfo * Msg, char * From, char * To, char * ATBBS, char * BID);
BOOL CheckifLocalRMSUser(char * FullTo); BOOL CheckifLocalRMSUser(char * FullTo);
VOID DoWPLookup(ConnectionInfo * conn, struct UserInfo * user, char Type, char *Context); VOID DoWPLookup(ConnectionInfo * conn, struct UserInfo * user, char Type, char *Context);
BOOL wildcardcompare(char * Target, char * Match); BOOL wildcardcompare(char * Target, char * Match);

@ -2927,7 +2927,7 @@ BOOL ProcessAPPLDef(char * buf)
Appl = atoi(Param[0]); Appl = atoi(Param[0]);
if (Appl < 1 || Appl > 32) return FALSE; if (Appl < 1 || Appl > NumberofAppls) return FALSE;
App = &xxcfg.C_APPL[Appl - 1]; // Recs from zero App = &xxcfg.C_APPL[Appl - 1]; // Recs from zero

@ -420,6 +420,7 @@ char * MainConfigtxt()
"<style type=\"text/css\">" "<style type=\"text/css\">"
"input.btn:active {background:black;color:white;} " "input.btn:active {background:black;color:white;} "
"submit.btn:active {background:black;color:white;} " "submit.btn:active {background:black;color:white;} "
"table, th, td {border: 1px solid black;border-collapse: collapse;}"
"</style>" "</style>"
"<script type=\"text/javascript\"> \r\n" "<script type=\"text/javascript\"> \r\n"
" \r\n" " \r\n"
@ -454,7 +455,7 @@ char * MainConfigtxt()
"<br>\r\n" "<br>\r\n"
"<div style=\"text-align: center;\"><font size=\"+1\"><span style=\"font-family: monospace; font-weight: bold;\">Main Configuration</span></font></div>\r\n" "<div style=\"text-align: center;\"><font size=\"+1\"><span style=\"font-family: monospace; font-weight: bold;\">Main Configuration</span></font></div>\r\n"
"\r\n" "\r\n"
"<div id=\"main\" style=\"border: 2px solid ; overflow: auto; position: relative; top: 10px; height: 980px; width: 740px; left: 86px;\">\r\n" "<div id=\"main\" style=\"border: 2px solid ; overflow: auto; position: relative; top: 10px; height: 1180px; width: 740px; left: 86px;\">\r\n"
"<form border=\"1\" style=\"font-family: monospace;\" method=\"post\" action=\"/Mail/Config?%s\">\r\n" "<form border=\"1\" style=\"font-family: monospace;\" method=\"post\" action=\"/Mail/Config?%s\">\r\n"
" <h3>&nbsp;BBS Params</h3>\r\n" " <h3>&nbsp;BBS Params</h3>\r\n"
"&nbsp;BBS Call&nbsp;&nbsp;<input value=\"%s\" name=\"BBSCall\">&nbsp;SYSOP\r\n" "&nbsp;BBS Call&nbsp;&nbsp;<input value=\"%s\" name=\"BBSCall\">&nbsp;SYSOP\r\n"
@ -510,8 +511,13 @@ char * MainConfigtxt()
"<textarea cols=\"8\" rows=\"5\" name=\"Hto\">%s</textarea> \r\n" "<textarea cols=\"8\" rows=\"5\" name=\"Hto\">%s</textarea> \r\n"
"<textarea cols=\"8\" rows=\"5\" name=\"Hat\">%s</textarea>\r\n" "<textarea cols=\"8\" rows=\"5\" name=\"Hat\">%s</textarea>\r\n"
"<textarea cols=\"8\" rows=\"5\" name=\"HBID\">%s</textarea>\r\n" "<textarea cols=\"8\" rows=\"5\" name=\"HBID\">%s</textarea>\r\n"
"\r\n" "<p></p>"
"<div style=\"position: absolute; left: 290px; top: 950px;\"><input class='btn' name=\"Save\" value=\"Save\" type=submit class='btn'> <input class='btn' name=\"Cancel\" value=\"Cancel\" type=submit class='btn'></div>\r\n" "&nbsp;FBB reject.sys type filters (all fields must match, wildcards allowed)\r\n"
"<p></p>"
"<div style='position: absolute; left: 20px;height: 120px; overflow:auto;'>%s</div>"
"<div style='position: absolute; top: 1100px;left: 300px; overflow:auto;'>"
"<input class='btn' name=\"Save\" value=\"Save\" type=submit class='btn'> <input class='btn' name=\"Cancel\" value=\"Cancel\" type=submit class='btn'>"
"</div>"
"</form>\r\n" "</form>\r\n"
"</div>\r\n"; "</div>\r\n";
@ -1438,8 +1444,10 @@ char * ChatConfigtxt()
"<br><br>The Callsign of the Chat Node is not defined here - it is obtained from the bpq32.cfg APPLICATION line corresponding to the Chat Appl Number.<br>\r\n" "<br><br>The Callsign of the Chat Node is not defined here - it is obtained from the bpq32.cfg APPLICATION line corresponding to the Chat Appl Number.<br>\r\n"
"<br></div>\n" "<br></div>\n"
"Nodes to link to<br>"
"&nbsp;<textarea cols=\"70\" rows=\"5\" name=\"nodes\">%s</textarea><br>\r\n" "&nbsp;<textarea cols=\"70\" rows=\"5\" name=\"nodes\">%s</textarea><br>\r\n"
"<br>\r\n" "<span style=\"font-family: monospace;\"></span>Node to Node Link PACLEN \r\n"
"&nbsp;&nbsp; <input value=\"%d\" size=\"3\" name=\"Paclen\"><br><br>\r\n"
"&nbsp;Map Position <input onchange=CheckLen() maxlength=\"80\" value=\"%s\" size=\"20\" name=\"Posn\" id=pos> <br>\r\n" "&nbsp;Map Position <input onchange=CheckLen() maxlength=\"80\" value=\"%s\" size=\"20\" name=\"Posn\" id=pos> <br>\r\n"
"<br>\r\n" "<br>\r\n"
"&nbsp;Popup Type &nbsp;&nbsp; Hover <input %s name=\"PopType\" value=\"Hover\"\r\n" "&nbsp;Popup Type &nbsp;&nbsp; Hover <input %s name=\"PopType\" value=\"Hover\"\r\n"
@ -1452,7 +1460,7 @@ char * ChatConfigtxt()
"<textarea cols=\"80\" rows=\"5\" name=\"welcome\">%s</textarea><br>\r\n" "<textarea cols=\"80\" rows=\"5\" name=\"welcome\">%s</textarea><br>\r\n"
"<br>\r\n" "<br>\r\n"
"\r\n" "\r\n"
"<div style=\"position: absolute; left: 150px; top: 550px;\">\r\n" "<div style=\"position: absolute; left: 150px; top: 600px;\">\r\n"
"<input name=\"Save\" value=\"Save\" type=submit class='btn'> \r\n" "<input name=\"Save\" value=\"Save\" type=submit class='btn'> \r\n"
"<input name=\"UpdateMap\" value=\"Update Map\" type=submit class='btn'> \r\n" "<input name=\"UpdateMap\" value=\"Update Map\" type=submit class='btn'> \r\n"
"<input name=\"Restart\" value=\"Restart Links\" type=submit class='btn'> \r\n" "<input name=\"Restart\" value=\"Restart Links\" type=submit class='btn'> \r\n"

@ -0,0 +1 @@
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution".
Loading…
Cancel
Save

Powered by TurnKey Linux.