master
John Wiseman 5 days ago
parent af79b9bbbf
commit 4b7a47b62b

2
.gitignore vendored

@ -1,4 +1,6 @@
*.ncb
*.suo
*.bsc
*.user
.svn/*
.vs/*

@ -12,7 +12,7 @@
#undef APSTUDIO_HIDDEN_SYMBOLS
#define CHAT
#define IDC_STATIC -1
#include "..\CommonSource\Versions.h"
#include "Versions.h"
/////////////////////////////////////////////////////////////////////////////

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectGuid>{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}</ProjectGuid>
<RootNamespace>BPQChat</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<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" />
</ImportGroup>
<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" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<CustomBuildStep>
<Command />
</CustomBuildStep>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>Win32bits;..\BPQSource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>Win32bits\bpq32.lib;wsock32.lib;comctl32.lib;winmm.lib;Win32bits\libconfig.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQChat.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>$(IntDir)BBSListings\BPQChat.map</MapFileName>
<MapExports>true</MapExports>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command />
</PreBuildEvent>
<CustomBuildStep>
<Command />
</CustomBuildStep>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>Win32bits;..\BPQSource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<AssemblerOutput>All</AssemblerOutput>
<AssemblerListingLocation>$(IntDir)BBSListings\</AssemblerListingLocation>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat />
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>Win32bits\bpq32.lib;wsock32.lib;comctl32.lib;Win32bits\libconfig.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQChat.exe</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>$(IntDir)BBSListings\BPQChat.map</MapFileName>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<LinkTimeCodeGeneration />
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="bpqchat.c">
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
</ClCompile>
<ClCompile Include="ChatDebug.c">
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
</ClCompile>
<ClCompile Include="ChatHTMLConfig.c">
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
</ClCompile>
<ClCompile Include="ChatMonitor.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</XMLDocumentationFileName>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="ChatMultiConsole.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</XMLDocumentationFileName>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="ChatUtilities.c">
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
</ClCompile>
<ClCompile Include="ChatUtils.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</XMLDocumentationFileName>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="HanksRT.c">
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
</ClCompile>
<ClCompile Include="HTMLCommonCode.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)</XMLDocumentationFileName>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</XMLDocumentationFileName>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="BPQChat.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -1168,6 +1168,7 @@
// Allow lower case SMTP/POP3 commands (39)
// Fix Webmail Send Reply with SMTP server messages (39)
// Fix paging in PG server (39)
// Fix crash in Webmail display message if message doesn't exist or isn't for you (41)
#include "bpqmail.h"

@ -16,7 +16,7 @@
#include "AFXRES.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#define MAILCHAT
#include "..\CommonSource\Versions.h"
#include "Versions.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

@ -0,0 +1,208 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectGuid>{3766AA10-C777-4ED8-A83D-F1452DE9B665}</ProjectGuid>
<RootNamespace>TelnetServer</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<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" />
</ImportGroup>
<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" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<CustomBuildStep>
<Command />
</CustomBuildStep>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\BPQSource\Win32bits;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;NOMQTT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>Win32bits\bpq32.lib;wsock32.lib;comctl32.lib;winmm.lib;Win32bits\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>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PreBuildEvent>
<Command />
</PreBuildEvent>
<CustomBuildStep>
<Command />
</CustomBuildStep>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>Win32bits;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;NOMQTT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>Win32bits\bpq32.lib;wsock32.lib;comctl32.lib;winmm.lib;Win32bits\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 />
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="Alloc.c" />
<ClCompile Include="BBSHTMLConfig.c" />
<ClCompile Include="BBSUtilities.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="BPQMail.c" />
<ClCompile Include="BPQMailConfig.c" />
<ClCompile Include="CMSAuth.c" />
<ClCompile Include="FBBRoutines.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="Housekeeping.c" />
<ClCompile Include="HTMLCommonCode.c" />
<ClCompile Include="LzFind.c" />
<ClCompile Include="lzhuf32.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput>
<AssemblerListingLocation Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</AssemblerListingLocation>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="LzmaDec.c" />
<ClCompile Include="LzmaEnc.c" />
<ClCompile Include="LzmaLib.c" />
<ClCompile Include="mailapi.c" />
<ClCompile Include="MailCommands.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="MailDataDefs.c" />
<ClCompile Include="MailRouting.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="MailTCP.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="MBLRoutines.c" />
<ClCompile Include="Monitor.c" />
<ClCompile Include="Multicast.c" />
<ClCompile Include="MultiConsole.c" />
<ClCompile Include="NNTPRoutines.c" />
<ClCompile Include="UIRoutines.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
<ClCompile Include="utf8Routines.c" />
<ClCompile Include="WebMail.c" />
<ClCompile Include="WPRoutines.c">
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.obj</ObjectFileName>
<XMLDocumentationFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)%(Filename)1.xdc</XMLDocumentationFileName>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="bpqmailrc.h" />
<ClInclude Include="Versions.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="BPQMail.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -214,3 +214,4 @@ VOID SendNRRecordRoute(struct DEST_LIST * DEST, TRANSPORTENTRY * Session)
C_Q_ADD(&DEST->DEST_Q, Msg);
}

@ -0,0 +1,90 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by BPQTermTCP.rc
//
#define IDR_MENU1 101
#define BPQMENU 101
#define BPQDISCONNECT 103
#define IDD_CONFIG 104
#define IDD_FONT 105
#define IDD_ALERTDLG 106
#define IDD_LISTEN 107
#define MONITOR_ADDPORT 400
#define IDC_HOST 1004
#define IDC_PORT 1005
#define IDC_USER 1006
#define IDC_PASS 1007
#define IDC_FONTWIDTH 1008
#define IDC_FONTNAME 1009
#define IDC_CODEPAGE 1010
#define IDC_CHARSET 1011
#define IDC_FONTSIZE 1012
#define IDC_AUTO 1013
#define IDC_1251 1014
#define IDC_1252 1015
#define IDC_437 1016
#define IDC_UTF8 1017
#define IDC_Send1251 1018
#define IDC_Send1252 1019
#define IDC_ALERTINTERVAL 1020
#define IDC_RADIO1 1021
#define IDC_RADIO2 1022
#define IDC_ALERTFILENAME 1023
#define IDC_PLAYFILENAME 1023
#define IDC_FREQ 1024
#define IDC_DURATION 1025
#define IDC_USEKEYWORDS 1026
#define IDC_ALERTKEYNAME 1027
#define IDC_LISTENPORT 1028
#define BPQMTX 1164
#define BPQMCOM 1165
#define BPQCOPYMON 1166
#define BPQCOPYOUT 1167
#define BPQCLEARMON 1168
#define BPQCLEAROUT 1169
#define BPQBELLS 1170
#define BPQCHAT 1171
#define BPQHELP 1172
#define BPQStripLF 1173
#define BPQLogOutput 1174
#define BPQLogMonitor 1175
#define BPQSendDisconnected 1176
#define BPQMNODES 1177
#define MONCOLOUR 1178
#define CHATTERM 1179
#define MUIONLY 1180
#define BPQPORT 1181
#define BPQENABLE 1182
#define YAPPSEND 1200
#define YAPPDIR 1201
#define BPQAUTOCONNECT 40001
#define BPQAPPL1 40002
#define BPQAPPL2 40003
#define BPQAPPL3 40004
#define BPQAPPL4 40005
#define BPQAPPL6 40006
#define BPQAPPL7 40007
#define BPQAPPL8 40008
#define BPQAPPL5 40009
#define BPQFLAGS1 40010
#define BPQFLAGS2 40011
#define BPQFLAGS3 40012
#define BPQFLAGS4 40013
#define ID_SETUP_FONT 40025
#define ID_SETUP_ALERTSETUP 40026
#define BPQCONNECT1 40101
#define IDC_HOST1 40201
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 107
#define _APS_NEXT_COMMAND_VALUE 40027
#define _APS_NEXT_CONTROL_VALUE 1027
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif

@ -0,0 +1,20 @@
[Session 1]
PortMask=0
Bells=0
StripLF=0
MTX=1
MCOM=1
MUIONLY=0
Split=50
MONColour=0
MonNODES=1
MonPorts=0
ChatMode=0
CurrentHost=0
Size=34,650,47,669
FontName=Courier New
CharSet=0
CodePage=437
FontSize=20
FontWidth=8
AlertInterval=3600

@ -0,0 +1,336 @@
//Microsoft Developer Studio generated resource script.
//
#define TermTCP
#include "bpqtermTCP.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "afxres.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "winver.h"
#define BPQBASE 1100
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ALERTDLG DIALOG DISCARDABLE 0, 0, 250, 121
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Alert Settings"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,62,100,50,14
PUSHBUTTON "Cancel",IDCANCEL,137,100,50,14
LTEXT "Alert After Interval",IDC_STATIC,7,9,65,9,
SS_CENTERIMAGE
EDITTEXT IDC_ALERTINTERVAL,83,8,29,13,ES_AUTOHSCROLL
CONTROL "Beep",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,7,27,33,15
CONTROL "Play File",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,7,50,
52,14
EDITTEXT IDC_ALERTFILENAME,83,49,151,15,ES_AUTOHSCROLL
LTEXT "Freq",IDC_STATIC,47,30,15,8
LTEXT "Duration",IDC_STATIC,120,30,28,8
EDITTEXT IDC_FREQ,83,28,29,13,ES_AUTOHSCROLL
EDITTEXT IDC_DURATION,154,28,29,13,ES_AUTOHSCROLL
CONTROL "Use Keyword File",IDC_USEKEYWORDS,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,7,73,71,10
EDITTEXT IDC_ALERTKEYNAME,83,72,151,15,ES_AUTOHSCROLL
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_ALERTDLG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 243
TOPMARGIN, 7
BOTTOMMARGIN, 114
END
END
#endif // APSTUDIO_INVOKED
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
BPQMAINWINDOW DIALOG DISCARDABLE 17, 25, 300, 300
STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "BPQTerminal Version 1.0.0"
MENU MENU_1
CLASS "BPQMAINWINDOW"
FONT 8, "FixedSys"
BEGIN
LISTBOX 116,5,6,290,134,LBS_MULTIPLESEL | LBS_OWNERDRAWFIXED |
LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL |
WS_HSCROLL
EDITTEXT 118,5,280,440,15,ES_AUTOHSCROLL | ES_NOHIDESEL
CTEXT "",119,0,145,300,5,SS_NOTIFY
END
IDD_CONFIG DIALOG DISCARDABLE 0, 0, 181, 129
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP Host Config"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "Host",IDC_STATIC,7,15,24,9
EDITTEXT IDC_HOST,46,13,114,12,ES_AUTOHSCROLL
LTEXT "Port",IDC_STATIC,7,32,24,9
EDITTEXT IDC_PORT,46,30,53,12,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "User",IDC_STATIC,7,49,24,9
EDITTEXT IDC_USER,46,47,89,12,ES_AUTOHSCROLL
LTEXT "Password",IDC_STATIC,7,66,39,9
EDITTEXT IDC_PASS,46,64,90,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "Save",IDOK,33,91,50,14
PUSHBUTTON "Cancel",IDCANCEL,95,91,50,14
END
IDD_LISTEN DIALOG DISCARDABLE 0, 0, 181, 129
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP Listen Config"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "Port",IDC_STATIC,7,32,24,9
EDITTEXT IDC_LISTENPORT,46,30,53,12,ES_AUTOHSCROLL | ES_NUMBER
DEFPUSHBUTTON "Save",IDOK,33,91,50,14
PUSHBUTTON "Cancel",IDCANCEL,95,91,50,14
END
IDD_FONT DIALOG DISCARDABLE 0, 0, 187, 206
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font Setup"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "Save",IDOK,39,182,50,14
PUSHBUTTON "Cancel",IDCANCEL,92,182,50,14
LTEXT "Font Width",IDC_STATIC,7,166,41,9
EDITTEXT IDC_FONTWIDTH,53,164,39,12,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_FONTSIZE,53,149,38,12,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "Font Size",IDC_STATIC,7,151,44,9
LTEXT "Interpret non-UTF8 input as",IDC_STATIC,7,10,96,11
CONTROL "Auto",IDC_AUTO,"Button",BS_AUTORADIOBUTTON,15,25,31,10
CONTROL "CP1251 (Cyrillic)",IDC_1251,"Button",BS_AUTORADIOBUTTON,
15,40,67,10
CONTROL "CP1252 (Western Europe)",IDC_1252,"Button",
BS_AUTORADIOBUTTON,15,55,99,10
CONTROL "CP437 (Windows Line Draw)",IDC_437,"Button",
BS_AUTORADIOBUTTON,15,70,107,10
LTEXT "Send as",IDC_STATIC,7,85,27,8
CONTROL "UTF8",IDC_UTF8,"Button",BS_AUTORADIOBUTTON | WS_GROUP,
15,100,34,10
CONTROL "CP1251",IDC_Send1251,"Button",BS_AUTORADIOBUTTON,15,115,
41,10
CONTROL "CP1252",IDC_Send1252,"Button",BS_AUTORADIOBUTTON,15,130,
41,10
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_CONFIG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 174
TOPMARGIN, 6
BOTTOMMARGIN, 122
END
IDD_FONT, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 180
TOPMARGIN, 7
BOTTOMMARGIN, 199
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"bpqtermTCP.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""..\\cinclude\\afxres.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""winver.h""\r\n"
"#define BPQBASE 1100\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""..\\CommonSource\\Versions.h""\r\n"
"#include ""..\\StdVer.inc""\r\n"
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_DRAGSIZE CURSOR DISCARDABLE "DragSize.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
MENU_1 MENU DISCARDABLE
BEGIN
POPUP "Connect"
BEGIN
MENUITEM "Host 1", BPQCONNECT1
MENUITEM "Host 2", 40102
MENUITEM "Host 3", 40103
MENUITEM "Host 4", 40104
MENUITEM "Host 5", 40105
MENUITEM "Host 6", 40106
MENUITEM "Host 7", 40107
MENUITEM "Host 8", 40108
MENUITEM "Host 9", 40109
MENUITEM "Host 10", 40110
MENUITEM "Host 11", 40111
MENUITEM "Host 12", 40112
MENUITEM "Host 13", 40113
MENUITEM "Host 14", 40114
MENUITEM "Host 15", 40115
MENUITEM "Host 16", 40116
END
MENUITEM "Disconnect", BPQDISCONNECT
POPUP "Listen"
BEGIN
MENUITEM "Enable", BPQENABLE
MENUITEM "Port", BPQPORT
END
POPUP "Setup"
BEGIN
POPUP "TCP Hosts"
BEGIN
MENUITEM "Host 1", IDC_HOST1
MENUITEM "Host 2", 40202
MENUITEM "Host 3", 40203
MENUITEM "Host 4", 40204
MENUITEM "Host 5", 40205
MENUITEM "Host 6", 40206
MENUITEM "Host 7", 40207
MENUITEM "Host 8", 40208
MENUITEM "Host 9", 40209
MENUITEM "Host 10", 40210
MENUITEM "Host 11", 40211
MENUITEM "Host 12", 40212
MENUITEM "Host 13", 40213
MENUITEM "Host 14", 40214
MENUITEM "Host 15", 40215
MENUITEM "Host 16", 40216
END
MENUITEM "Font Setup", ID_SETUP_FONT
MENUITEM "Enable Bells", BPQBELLS
MENUITEM "Strip Linefeeds", BPQStripLF
MENUITEM "Log Monitor", BPQLogMonitor
MENUITEM "Log Output", BPQLogOutput
MENUITEM "Chat Terminal Mode", CHATTERM
MENUITEM "Alert Setup", ID_SETUP_ALERTSETUP
END
POPUP "Monitor"
BEGIN
MENUITEM "Monitor TX", BPQMTX
MENUITEM "Monitor Supervisory", BPQMCOM
MENUITEM "Only monitor UI frames", MUIONLY
MENUITEM "Monitor NODES", BPQMNODES
MENUITEM "Enable Colour", MONCOLOUR
MENUITEM "Add Port", MONITOR_ADDPORT
END
POPUP "Edit"
BEGIN
MENUITEM "Copy Monitor Window", BPQCOPYMON
MENUITEM "Copy Output Window", BPQCOPYOUT
MENUITEM "Clear Monitor Window", BPQCLEARMON
MENUITEM "Clear Output Window", BPQCLEAROUT
END
POPUP "YAPP"
BEGIN
MENUITEM "Send File", YAPPSEND
MENUITEM "Set Receive Directory", YAPPDIR
END
END
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "Versions.h"
#include "StdVer.inc"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="BPQTermTCP"
ProjectGUID="{99625C77-CABA-469A-A5A7-ECB4EE354225}"
RootNamespace="BPQTermTCP"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="C:\Dev\Msdev2005\Intermed\BPQTermTCP\Debug"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
BrowseInformation="1"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib winmm.lib "
OutputFile="c:\DevProgs\bpq32\BPQTermTCPYapp.exe"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="C:\Dev\Msdev2005\Intermed\BPQTermTCP\Release"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
AdditionalIncludeDirectories="./"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
BrowseInformation="1"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="ws2_32.lib winmm.lib "
OutputFile="c:\DevProgs\bpq32\BPQTermTCP.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\bpqtermTCP.c"
>
</File>
<File
RelativePath=".\BPQTermTCP.rc"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectGuid>{99625C77-CABA-469A-A5A7-ECB4EE354225}</ProjectGuid>
<RootNamespace>BPQTermTCP</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<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" />
</ImportGroup>
<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" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>c:\DevProgs\bpq32\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\BPQTermTCP\Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\BPQTermTCP\Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>./;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<BrowseInformation>true</BrowseInformation>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQTermTCP.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>Full</Optimization>
<AdditionalIncludeDirectories>./;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<BrowseInformation>true</BrowseInformation>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>ws2_32.lib;winmm.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQTermTCP.exe</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="bpqtermTCP.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="BPQTermTCP.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,77 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by BPQTerminal.rc
//
#define BPQICON 2
#define IDR_MENU1 101
#define BPQMENU 101
#define BPQCONNECT 102
#define BPQDISCONNECT 103
#define IDD_FONT 105
#define IDC_FONTWIDTH 1008
#define IDC_FONTNAME 1009
#define IDC_CODEPAGE 1010
#define IDC_CHARSET 1011
#define IDC_FONTSIZE 1012
#define BPQMTX 1164
#define BPQMCOM 1165
#define BPQCOPYMON 1166
#define BPQCOPYOUT 1167
#define BPQCLEARMON 1168
#define BPQCLEAROUT 1169
#define BPQBELLS 1170
#define BPQHELP 1172
#define BPQStripLF 1173
#define BPQLogOutput 1174
#define BPQLogMonitor 1175
#define BPQSendDisconnected 1176
#define BPQMNODES 1177
#define MONCOLOUR 1178
#define CHATTERM 1179
#define IDM_CLOSEWINDOW 1180
#define MUIONLY 1181
#define RTFCOPY 40000
#define BPQAUTOCONNECT 40001
#define BPQAPPL1 40002
#define BPQAPPL2 40003
#define BPQAPPL3 40004
#define BPQAPPL4 40005
#define BPQAPPL6 40006
#define BPQAPPL7 40007
#define BPQAPPL8 40008
#define BPQAPPL5 40009
#define BPQFLAGS1 40010
#define BPQFLAGS2 40011
#define BPQFLAGS3 40012
#define BPQFLAGS4 40013
#define ID_SETUP_FONT 40025
#define ID_ACTION_RESETWINDOWSPLIT 40026
#define IDC_STATIC -1
#define IDR_MAINFRAME_MENU 191
#define TERM_MENU 192
#define MON_MENU 193
#define IDI_SIGMA_MAIN_ICON 104
#define IDI_SYSTEM_INFO 106
#define IDI_SYSTEM_INFO 106
#define ID_INFORMATION_SYSTEMINFORMATION 40001
#define ID_HELP_ABOUT 40006
#define ID_WINDOWS_CASCADE 40007
#define ID_FILE_EXIT 40008
#define ID_WINDOWS_TILE 40004
#define ID_NEWWINDOW 40005
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 104
#define _APS_NEXT_COMMAND_VALUE 40027
#define _APS_NEXT_CONTROL_VALUE 1004
#define _APS_NEXT_SYMED_VALUE 104
#endif
#endif

@ -0,0 +1,164 @@
//Microsoft Developer Studio generated resource script.
//
#include "bpqterminal.h"
#define BPQTerm
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "winver.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"bpqterminal.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""winver.h""\r\n"
"\0"
END
3 TEXTINCLUDE MOVEABLE PURE
BEGIN
"#include ""..\\CommonSource\\Versions.h""\r\n"
"#include ""..\\StdVer.inc""\r\n"
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
BPQMAINWINDOW DIALOG DISCARDABLE 17, 25, 300, 300
STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "BPQTerminal Version 1.0.0"
MENU MENU_1
CLASS "BPQMAINWINDOW"
FONT 8, "Fixedsys"
BEGIN
LISTBOX 116,5,6,290,134,LBS_MULTIPLESEL | LBS_OWNERDRAWFIXED |
LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL |
WS_HSCROLL
EDITTEXT 118,5,280,440,15,ES_AUTOHSCROLL | ES_NOHIDESEL
CTEXT "",119,0,145,300,5,SS_NOTIFY
END
IDD_FONT DIALOG DISCARDABLE 0, 0, 186, 113
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Font Setup"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "Save",IDOK,39,93,50,14
PUSHBUTTON "Cancel",IDCANCEL,92,93,50,14
LTEXT "Name",IDC_STATIC,7,10,24,9
LTEXT "Code Page",IDC_STATIC,6,70,44,9
EDITTEXT IDC_CODEPAGE,53,68,39,12,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "Font Width",IDC_STATIC,7,40,41,9
EDITTEXT IDC_FONTNAME,53,8,89,12,ES_AUTOHSCROLL
LTEXT "Char Set",IDC_STATIC,7,55,39,9
EDITTEXT IDC_CHARSET,53,53,40,12,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_FONTWIDTH,53,38,39,12,ES_AUTOHSCROLL | ES_NUMBER
EDITTEXT IDC_FONTSIZE,53,23,38,12,ES_AUTOHSCROLL | ES_NUMBER
LTEXT "Font Size",IDC_STATIC,7,25,44,9
END
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
MENU_1 MENU DISCARDABLE
BEGIN
POPUP "Action"
BEGIN
MENUITEM "Connect", BPQCONNECT
MENUITEM "Disconnect", BPQDISCONNECT, GRAYED
MENUITEM "Reset Window Split", ID_ACTION_RESETWINDOWSPLIT
END
POPUP "Monitor"
BEGIN
MENUITEM "Monitor TX", BPQMTX
MENUITEM "Monitor Supervisory", BPQMCOM
MENUITEM "Only monitor UI frames", MUIONLY
MENUITEM "Monitor NODES", BPQMNODES
MENUITEM "Enable Colour", MONCOLOUR
END
POPUP "Config"
BEGIN
MENUITEM "Font", ID_SETUP_FONT
MENUITEM "AutoConnect", BPQAUTOCONNECT, CHECKED
MENUITEM "Enable Bells", BPQBELLS
MENUITEM "Strip Linefeeds", BPQStripLF
MENUITEM "Log Monitor", BPQLogMonitor
MENUITEM "Log Output", BPQLogOutput
MENUITEM "Chat Terminal Mode", CHATTERM
MENUITEM "Send Disconnected", BPQSendDisconnected
END
POPUP "Edit"
BEGIN
MENUITEM "Copy Monitor Window", BPQCOPYMON
MENUITEM "Copy Output Window", BPQCOPYOUT
MENUITEM "Clear Monitor Window", BPQCLEARMON
MENUITEM "Clear Output Window", BPQCLEAROUT
END
MENUITEM "Help", BPQHELP
END
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_DRAGSIZE CURSOR DISCARDABLE "DragSize.cur"
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "Versions.h"
#include "StdVer.inc"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

@ -0,0 +1,279 @@
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="BPQTerminal"
ProjectGUID="{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}"
Keyword="Win32Proj"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="Debug"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="./"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
BrowseInformation="1"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="4"
DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="S:\DEV\Source\BPQ32\cInclude"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Win32Bits\bpq32.lib htmlhelp.lib"
OutputFile="c:\DevProgs\bpq32\BPQTerminal.exe"
LinkIncremental="2"
GenerateManifest="true"
ManifestFile="c:\bpq32\BPQTerminal.exe.manifest"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
EmbedManifest="true"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="./"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="S:\DEV\Source\BPQ32\Include"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Win32Bits\bpq32.lib htmlhelp.lib"
OutputFile="c:\DevProgs\bpq32\BPQTerminal.exe"
LinkIncremental="2"
GenerateManifest="true"
ManifestFile="c:\bpq32\BPQTerminal.exe.manifest"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="0"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
EmbedManifest="true"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Relase Static|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="..\Commonsource"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
DisableSpecificWarnings="4244"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="S:\DEV\Source\BPQ32\Include"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="..\lib\bpq32.lib htmlhelp.lib"
OutputFile="c:\DevProgs\bpq32\BPQTerminal.exe"
LinkIncremental="1"
GenerateManifest="true"
ManifestFile="c:\bpq32\BPQTerminal.exe.manifest"
GenerateDebugInformation="false"
GenerateMapFile="true"
MapFileName="c:\DevProgs\bpq32\BPQTerminal.map"
SubSystem="2"
OptimizeReferences="0"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
EmbedManifest="true"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\BPQTerminal.c"
>
</File>
<File
RelativePath=".\BPQTerminal.rc"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Relase Static|Win32">
<Configuration>Relase Static</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectGuid>{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Relase Static|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Relase Static|Win32'" 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)'=='Release|Win32'" 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">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>Debug\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>Release\</OutDir>
<IntDir>Release\</IntDir>
<LinkIncremental>true</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Relase Static|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>true</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>./;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader />
<BrowseInformation>true</BrowseInformation>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>S:\DEV\Source\BPQ32\cInclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>Win32Bits\bpq32.lib;htmlhelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQTerminal.exe</OutputFile>
<ManifestFile>c:\bpq32\BPQTerminal.exe.manifest</ManifestFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>./;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>S:\DEV\Source\BPQ32\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>Win32Bits\bpq32.lib;htmlhelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQTerminal.exe</OutputFile>
<ManifestFile>c:\bpq32\BPQTerminal.exe.manifest</ManifestFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences />
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Relase Static|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>..\Commonsource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<DisableSpecificWarnings>4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
<ResourceCompile>
<AdditionalIncludeDirectories>S:\DEV\Source\BPQ32\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
<Link>
<AdditionalDependencies>..\lib\bpq32.lib;htmlhelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\BPQTerminal.exe</OutputFile>
<ManifestFile>c:\bpq32\BPQTerminal.exe.manifest</ManifestFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\DevProgs\bpq32\BPQTerminal.map</MapFileName>
<SubSystem>Windows</SubSystem>
<OptimizeReferences />
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="BPQTerminal.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="BPQTerminal.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -80,22 +80,26 @@ VOID WriteMiniDump()
#endif
}
SYMBOL_INFO * symbol;
HANDLE process;
void printStack(void)
void printStack()
{
#ifdef WIN32
//#ifdef _DEBUG // So we can use on 98/2K
unsigned int i;
void * stack[ 100 ];
unsigned int i, n;
void * stack[ 100 ];
unsigned short frames;
DWORD dwDisplacement;
IMAGEHLP_LINE64 line;
char * fptr;
Debugprintf("Stack Backtrace");
char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR)];
PSYMBOL_INFO symbol = (PSYMBOL_INFO)buffer;
symbol->SizeOfStruct = sizeof(SYMBOL_INFO);
symbol->MaxNameLen = MAX_SYM_NAME;
Debugprintf("Stack Backtrace\r\n");
process = GetCurrentProcess();
@ -106,42 +110,24 @@ void printStack(void)
for( i = 0; i < frames; i++ )
{
SymGetLineFromAddr64(process, (DWORD64)stack[i], &dwDisplacement, &line);
SymFromAddr( process, ( DWORD64 )( stack[ i ] ), 0, symbol );
fptr = line.FileName + (int)strlen(line.FileName); // remove path
while (*fptr != '\\' && *fptr != '/')
fptr--;
fptr++;
n = SymGetLineFromAddr64(process, (DWORD64)stack[i], &dwDisplacement, &line);
n = SymFromAddr( process, ( DWORD64 )( stack[ i ] ), 0, symbol );
Debugprintf( "%i: %s - %s Line %d Addr %p", frames - i - 1, symbol->Name, fptr, line.LineNumber, symbol->Address );
}
if (line.FileName)
{
fptr = line.FileName + (int)strlen(line.FileName); // remove path
while (*fptr != '\\' && *fptr != '/')
fptr--;
free(symbol);
fptr++;
//#endif
#endif
}
int filter(unsigned int code, struct _EXCEPTION_POINTERS *ep)
{
Debugprintf("in filter.");
printStack();
if (code == EXCEPTION_ACCESS_VIOLATION)
{
Debugprintf("caught AV as expected.");
return EXCEPTION_EXECUTE_HANDLER;
}
else
{
Debugprintf("didn't catch AV, unexpected.");
return EXCEPTION_CONTINUE_SEARCH;
}
Debugprintf("%i: %s - %s Line %d Addr %p", frames - i - 1, symbol->Name, fptr, line.LineNumber, symbol->Address );
}
}
}
int inErrorhandling = 0;
LONG WINAPI UnhandledExcepFilter(PEXCEPTION_POINTERS pExcepPointers)
{
@ -149,27 +135,58 @@ LONG WINAPI UnhandledExcepFilter(PEXCEPTION_POINTERS pExcepPointers)
IMAGEHLP_LINE64 line;
char * fptr;
time_t T;
struct tm * tm;
char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR)];
PSYMBOL_INFO symbol = (PSYMBOL_INFO)buffer;
symbol->SizeOfStruct = sizeof(SYMBOL_INFO);
symbol->MaxNameLen = MAX_SYM_NAME;
T = time(NULL);
tm = gmtime(&T);
if (inErrorhandling)
{
MessageBox(NULL,"Program Error in error handler - program closing. See Debug Log for details","BPQ32",MB_ICONSTOP);
exit(0);
}
inErrorhandling = 1;
if(pExcepPointers->ExceptionRecord->ExceptionCode == DBG_PRINTEXCEPTION_C)
return EXCEPTION_CONTINUE_EXECUTION;
SymFromAddr( process, ((DWORD)pExcepPointers->ExceptionRecord->ExceptionAddress), 0, symbol );
Debugprintf("Program error trapped\r\n");
Debugprintf("\r\n\r\nProgram error trapped at %02d:%02d:%02d\r\n", tm->tm_hour, tm->tm_min, tm->tm_sec);
SymGetLineFromAddr64(process, (DWORD)pExcepPointers->ExceptionRecord->ExceptionAddress, &dwDisplacement, &line);
fptr = line.FileName + (int)strlen(line.FileName); // remove path
while (*fptr != '\\' && *fptr != '/')
fptr--;
if (line.FileName)
{
fptr = line.FileName + (int)strlen(line.FileName); // remove path
while (*fptr != '\\' && *fptr != '/')
fptr--;
fptr++;
fptr++;
Debugprintf("In Procedure %s - %s Line %d Addr %p\r\n", symbol->Name, fptr, line.LineNumber, symbol->Address );
Debugprintf("In Procedure %s - %s Line %d Addr %p\r\n", symbol->Name, fptr, line.LineNumber, symbol->Address );
}
printStack();
CloseDebugLog();
MessageBox(NULL,"Program Error - program closing. See Debug Log for details","BPQ32",MB_ICONSTOP);
RealCloseAllPrograms();
Sleep(1000);
CloseDebugLog();
exit(0);
}
@ -195,10 +212,6 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLi
SymSetOptions(SYMOPT_LOAD_LINES);
SymInitialize( process, NULL, TRUE );
symbol = ( SYMBOL_INFO * )calloc( sizeof( SYMBOL_INFO ) + 256 * sizeof( char ), 1 );
symbol->MaxNameLen = 255;
symbol->SizeOfStruct = sizeof( SYMBOL_INFO );
AddVectoredExceptionHandler(1, UnhandledExcepFilter);
if (_stricmp(lpCmdLine, "Wait") == 0) // If AutoRestart then Delay 5 Secs

@ -2,7 +2,7 @@
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="BPQWinAPP"
Name="BPQ32.EXE"
ProjectGUID="{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}"
RootNamespace="BPQWinAPP"
>
@ -143,8 +143,8 @@
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
Optimization="1"
InlineFunctionExpansion="0"
AdditionalIncludeDirectories="C:\Users\johnw\OneDrive\Dev\Source\bpq32\Commonsource"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
@ -156,6 +156,7 @@
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
@ -170,11 +171,12 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="..\lib\bpq32.lib DbgHelp.lib"
AdditionalDependencies="Win32bits\bpq32.lib DbgHelp.lib"
OutputFile="c:\DevProgs\bpq32\bpq32.exe"
LinkIncremental="1"
LinkIncremental="2"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/bpq32.pdb"
GenerateDebugInformation="true"
ProgramDatabaseFile="c:\DevProgs\bpq32\bpq32app.pdb"
GenerateMapFile="true"
MapFileName="c:\DevProgs\bpq32\bpq32app.map"
SubSystem="2"
@ -218,6 +220,14 @@
<File
RelativePath=".\BPQWinAPP.c"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\BPQWinAPP.rc"

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectName>BPQ32.EXE</ProjectName>
<ProjectGuid>{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}</ProjectGuid>
<RootNamespace>BPQWinAPP</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
</ImportGroup>
<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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>c:\DevProgs\BPQ32VS2026\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Debug/BPQWinAPP.tlb</TypeLibraryName>
<HeaderFileName />
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>C:\Users\johnw\OneDrive\Dev\Source\bpq32\Commonsource;C:\Users\johnw\OneDrive\Dev\Source\bpq32\CInclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\Debug/BPQWinAPP.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>Win32bits\bpq32.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\BPQ32VS2026\bpq32.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Debug/bpq32.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<SubSystem>Windows</SubSystem>
<StackReserveSize>0</StackReserveSize>
<StackCommitSize>0</StackCommitSize>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Debug/BPQWinAPP.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Release/BPQWinAPP.tlb</TypeLibraryName>
<HeaderFileName />
</Midl>
<ClCompile>
<Optimization>MinSpace</Optimization>
<InlineFunctionExpansion>Default</InlineFunctionExpansion>
<AdditionalIncludeDirectories>C:\Users\johnw\OneDrive\Dev\Source\bpq32\Commonsource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>C:\msdev2005\Intermed\Release/BPQWinAPP.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>Win32bits\bpq32.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\bpq32.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>c:\DevProgs\bpq32\bpq32app.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\DevProgs\bpq32\bpq32app.map</MapFileName>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Release/BPQWinAPP.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="BPQWinAPP.c">
<Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Disabled</Optimization>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="BPQWinAPP.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -0,0 +1,86 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/sgml;charset=utf-8">
<style type="text/css">
body {background: white;color: black}
h1 {color: #c33;background: none;font-weight: bold;text-align: center}
h2 {color: #00008b;background: none;font-weight: bold}
h3 {color: #006400;background: none;margin-left: 4%;margin-right: 4%;font-weight: bold}
h4 {margin-left: 8%;margin-right: 8%;font-weight: bold}
h5 {margin-left: 6%;margin-right: 6%;font-weight: bold}
div {margin-left: 10%;margin-right: 10%;}
ul, ol, dl, p {margin-left: 6%;margin-right: 6%}
pre {margin-left: 10%;white-space: pre}
</style><title>Building LinBPQ from source</title>
</head>
<body alink="#ff0000" bgcolor="#ffffff" link="#0000ff" text="#000000" vlink="#800080">
<a href="index.html">BPQ Home</a>&nbsp;&nbsp;&nbsp;<a href="BPQ32.html">BPQ32 Home</a>
<h1>Building LinBPQ from source.</h1>
<p>
I provide binaries for Linux on 32 and 64 bit ARM and Intel x86 processors but if you want to run on other Unix like operating systems you can build it from source. You will need to install some dependencies and download the source. The instructions below are for a Debian like system using apt as its package manager - you may need to alter the command for other systems.
<br><br>
To download dependencies run:
<br>
<pre>sudo apt install build-essential git libminiupnpc-dev libconfig-dev libpcap-dev zlib1g-dev libcap2-bin libjansson-dev libpaho-mqtt-dev libbacktrace-dev
</pre>
<p>
Some distributions may not include libpaho-mqtt-dev and/or libbacktrace-dev. The former is used for the MQTT reporting interface. If you don't need that you can build without MQTT support. If you do you can build libpaho-mqtt-dev from source:
<pre>
sudo apt install cmake
git clone https://github.com/eclipse/paho.mqtt.c.git
cd paho.mqtt.c
cmake -Bbuild -H. -DPAHO_ENABLE_TESTING=OFF -DPAHO_BUILD_STATIC=ON -DPAHO_WITH_SSL=OFF -DPAHO_HIGH_PERFORMANCE=ON -DCMAKE_INSTALL_PREFIX=../install
cd build
cmake --build . --target install
You need to copy libpaho-mqtt3a.a to your lib directory.
The commands below work on my ARM and Intel systems but you may need to change if your lib is in a different place.
sudo cp src/libpaho-mqtt3a.a /usr/lib/arm-linux-gnueabihf
or
sudo cp src/libpaho-mqtt3a.a /usr/lib/i386-linux-gnu/
</pre><p>
If libbacktrace isn't available you can build it:
<pre>
git clone https://github.com/ianlancetaylor/libbacktrace.git
cd libbacktrace
mkdir build
cd build
../configure
make
sudo make install
</pre><p>
To download the LinBPQ source run:
<pre>
git clone https://github.com/g8bpq/linbpq.git
cd linbpq</pre>
<p>
To build with MQTT support enter:
<pre>
make
</pre>
<p>
To build without MQTT support enter:
<pre>
make nomqtt
</pre><p>
This should create linbpq in the current directory.
<br><br>
</P>
John Wiseman G8BPQ<br>
April 2025<br>
Updated September 2026<br>
</body>
</html>

@ -1340,6 +1340,11 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// More fixes for timer problem introduced in v33 (38)
// Changes to INP3 poison reverse and alias reporting (39)
// L4 Connect Ack now sent via routing table (39)
// Debug info is now written to a log file rather than syslog (Linux) or Debugview (Windows) (40)
// Backtrace now includes source file info and is written to Debug log (40)
// Add Telnet Server config option "noWebSocks" to disable use of Websocks for Terminal and Driver windows (41)
// Log outpur from running disconnect script (41)
// Prevent Rigcontrol scan from changing frequency when PTT is active (41)
#define CKernel
@ -1723,7 +1728,7 @@ int VECTORLENGTH = sizeof (struct _BPQVECSTRUC);
int FirstEntry = 1;
BOOL CloseLast = TRUE; // If the user started BPQ32.exe, don't close it when other programs close
BOOL Closing = FALSE; // Set if Close All called - prevents respawning bpq32.exe
extern BOOL Closing = FALSE; // Set if Close All called - prevents respawning bpq32.exe
BOOL BPQ32_EXE; // Set if Process is running BPQ32.exe. Not initialised.
// Used to Kill surplus BPQ32.exe processes
@ -1841,7 +1846,6 @@ void LoadToolHelperRoutines()
{
HINSTANCE ExtDriver=0;
int err;
char msg[100];
ExtDriver=LoadLibrary("kernel32.dll");
@ -2125,6 +2129,10 @@ VOID MonitorTimerThread(int x)
VOID WritetoTraceSupport(struct TNCINFO * TNC, char * Msg, int Len);
VOID * _Q_REM_NP(VOID *PQ, char * File, int Line);
#define Q_REM_NP(s) _Q_REM_NP(s, __FILE__, __LINE__)
void Semaphored100msCode()
{
// code that doesn't need to run every tick - run every 100 mS
@ -2156,9 +2164,9 @@ void Semaphored100msCode()
while (WritetoConsoleQ)
{
UINT * Buffer = Q_REM(&WritetoConsoleQ);
UINT * Buffer = Q_REM_NP(&WritetoConsoleQ);
WritetoConsoleSupport((char *)&Buffer[2]);
RelBuff(Buffer);
free(Buffer);
}
@ -2753,9 +2761,6 @@ Tell_Sessions()
BOOL APIENTRY DllMain(HANDLE hInst, DWORD ul_reason_being_called, LPVOID lpReserved)
{
DWORD n;
char buf[350];
int i;
unsigned int ProcessID;
@ -3120,7 +3125,6 @@ SkipInit:
{
if (PIDArray[i] == ProcessID)
{
char Log[80];
hWndArray[i] = 0;
DeleteMenu(trayMenu,TRAYBASEID+i,MF_BYCOMMAND);
}
@ -3567,8 +3571,6 @@ HANDLE OpenConfigFile(char *fn)
UCHAR Value[MAX_PATH];
FILETIME LastWriteTime;
SYSTEMTIME Time;
char Msg[256];
// If no directory, use current
if (BPQDirectory[0] == 0)
@ -5546,24 +5548,23 @@ DllExport int APIENTRY WritetoConsole(char * buff)
DllExport VOID * APIENTRY GetBuff();
int C_Q_ADD_NP(VOID *PQ, VOID *PBUFF);
int WritetoConsoleLocal(char * buff)
{
int len=strlen(buff);
UINT * buffptr;
if (Semaphore.Flag == 0)
return WritetoConsoleSupport(buff);
buffptr = GetBuff();
buffptr = (UINT *)zalloc(512);
if (buffptr == 0) // No buffers, so send direct
return WritetoConsoleSupport(buff);
return 0;
if (len > 300)
len = 300;
memcpy(&buffptr[2], buff, len + 1);
C_Q_ADD(&WritetoConsoleQ, buffptr);
C_Q_ADD_NP(&WritetoConsoleQ, buffptr);
return 0;
}
@ -6337,7 +6338,6 @@ DllExport BOOL APIENTRY SaveReg(char * KeyIn, HANDLE hFile)
{
if (len > 76)
{
len += sprintf(&RegLine[len], "\\\r\n", RegLine);
strcat(RegLine, "\\\r\n");
WriteFile(hFile, RegLine, len, &written, NULL);
strcpy(RegLine, " ");

@ -13,36 +13,65 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CBPQ32", "CBPQ32.vcproj", "
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQChat", "BPQChat.vcproj", "{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQTerminal", "BPQTerminal.vcproj", "{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQTermTCP", "BPQTermTCP.vcproj", "{99625C77-CABA-469A-A5A7-ECB4EE354225}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Relase Static|Win32 = Relase Static|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Debug|Win32.ActiveCfg = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Debug|Win32.Build.0 = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Relase Static|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Relase Static|Win32.Build.0 = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Release|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Release|Win32.Build.0 = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Debug|Win32.ActiveCfg = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Debug|Win32.Build.0 = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Relase Static|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Relase Static|Win32.Build.0 = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Release|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Release|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Debug|Win32.ActiveCfg = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Debug|Win32.Build.0 = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Relase Static|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Relase Static|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Release|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Release|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Debug|Win32.ActiveCfg = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Debug|Win32.Build.0 = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Relase Static|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Relase Static|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Release|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Release|Win32.Build.0 = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Debug|Win32.ActiveCfg = Debug|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Debug|Win32.Build.0 = Debug|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Relase Static|Win32.ActiveCfg = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Relase Static|Win32.Build.0 = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Release|Win32.ActiveCfg = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Release|Win32.Build.0 = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Debug|Win32.ActiveCfg = Debug|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Debug|Win32.Build.0 = Debug|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Relase Static|Win32.ActiveCfg = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Relase Static|Win32.Build.0 = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Release|Win32.ActiveCfg = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Release|Win32.Build.0 = Release|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Debug|Win32.ActiveCfg = Debug|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Debug|Win32.Build.0 = Debug|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Relase Static|Win32.ActiveCfg = Relase Static|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Relase Static|Win32.Build.0 = Relase Static|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Release|Win32.ActiveCfg = Release|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Release|Win32.Build.0 = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Debug|Win32.ActiveCfg = Debug|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Debug|Win32.Build.0 = Debug|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Relase Static|Win32.ActiveCfg = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Relase Static|Win32.Build.0 = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Release|Win32.ActiveCfg = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

@ -2,7 +2,7 @@
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="CBPQ32"
Name="BPQ32.DLL"
ProjectGUID="{8EFA1E59-8654-4A23-8102-AA77A074D57C}"
RootNamespace="CBPQ32"
Keyword="Win32Proj"

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
@ -11,22 +11,24 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectName>BPQ32.DLL</ProjectName>
<ProjectGuid>{8EFA1E59-8654-4A23-8102-AA77A074D57C}</ProjectGuid>
<RootNamespace>CBPQ32</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>false</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
@ -40,16 +42,17 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>15.0.28127.55</_ProjectFileVersion>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(Configuration)\</IntDir>
<OutDir>c:\DevProgs\BPQ32VS2026\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>bpq32</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(Configuration)\</IntDir>
<OutDir>Win32bits\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@ -60,8 +63,8 @@
</MASM>
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\CInclude;..\CommonSource;..\CKernel;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BPQ32_EXPORTS;MDIKERNEL;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\BPQSource\Win32bits;..\BPQSource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BPQ32_EXPORTS;MDIKERNEL;_USE_32BIT_TIME_T;BPQ32;NOMQTT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@ -74,11 +77,11 @@
</ClCompile>
<Link>
<AdditionalOptions> /section:_BPQDATA,srw %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>WS2_32.Lib;winmm.lib;DbgHelp.lib;comctl32.lib;Iphlpapi.lib;setupapi.lib;..\lib\libconfig.lib;miniupnpc.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\BPQ32\bpq32.dll</OutputFile>
<AdditionalDependencies>WS2_32.Lib;winmm.lib;DbgHelp.lib;comctl32.lib;Iphlpapi.lib;setupapi.lib;C:\OneDrive\Dev\Source\bpq32\libconfig\Release\libconfig.LIB;C:\Users\johnw\Downloads\upnpc-exe-win32-20220515\miniupnpc.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\BPQ32VS2026\bpq32.dll</OutputFile>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<IgnoreSpecificDefaultLibraries>LIBCMTD.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<ModuleDefinitionFile>..\CommonSource\bpq32.def</ModuleDefinitionFile>
<ModuleDefinitionFile>..\BPQSource\bpq32.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\DevProgs\BPQ32\bpqdev.map</MapFileName>
@ -89,7 +92,7 @@
<EnableCOMDATFolding>false</EnableCOMDATFolding>
<EntryPointSymbol />
<BaseAddress>0x42000000</BaseAddress>
<ImportLibrary>..\lib\bpq32.lib</ImportLibrary>
<ImportLibrary>Win32bits\bpq32.lib</ImportLibrary>
<TargetMachine>MachineX86</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
@ -114,8 +117,8 @@
<AdditionalOptions>/D "MDIKERNEL" %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>..\CInclude;..\CommonSource;..\CKernel;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BPQ32_EXPORTS;MDIKERNEL;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>..\BPQSource\Win32bits;..\BPQSource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BPQ32_EXPORTS;MDIKERNEL;_USE_32BIT_TIME_T;NOMQTT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<AssemblerOutput>All</AssemblerOutput>
@ -125,9 +128,9 @@
</ClCompile>
<Link>
<AdditionalOptions> /section:_BPQDATA,srw %(AdditionalOptions)</AdditionalOptions>
<AdditionalDependencies>WS2_32.Lib;winmm.lib;DbgHelp.lib;comctl32.lib;setupapi.lib;..\lib\libconfig.lib;miniupnpc.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>C:\DevProgs\BPQ32\bpq32.dll</OutputFile>
<ModuleDefinitionFile>..\CommonSource\bpq32.def</ModuleDefinitionFile>
<AdditionalDependencies>WS2_32.Lib;winmm.lib;comctl32.lib;setupapi.lib;Win32bits\libconfig.lib;miniupnpc.lib;zlibstat.lib;DbgHelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\BPQ32\bpq32.dll</OutputFile>
<ModuleDefinitionFile>..\BPQSource\bpq32.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>c:\DevProgs\BPQ32\bpq32.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
@ -149,14 +152,17 @@
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="6pack.c" />
<ClCompile Include="adif.c" />
<ClCompile Include="AEAPactor.c" />
<ClCompile Include="AGWAPI.c" />
<ClCompile Include="AGWMoncode.c" />
<ClCompile Include="AISCommon.c" />
<ClCompile Include="APRSCode.c" />
<ClCompile Include="APRSIconData.c" />
<ClCompile Include="APRSStdPages.c" />
<ClCompile Include="ARDOP.c" />
<ClCompile Include="base64.c" />
<ClCompile Include="Bpq32.c" />
<ClCompile Include="bpqaxip.c" />
<ClCompile Include="bpqether.c" />
@ -167,14 +173,23 @@
<ClCompile Include="BPQtoAGW.c" />
<ClCompile Include="bpqvkiss.c" />
<ClCompile Include="cMain.c" />
<ClCompile Include="Cmd.c" />
<ClCompile Include="CMSAuth.c" />
<ClCompile Include="Cmd.c">
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</AssemblerOutput>
</ClCompile>
<ClCompile Include="CMSAuth.c">
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</AssemblerOutput>
</ClCompile>
<ClCompile Include="CommonCode.c" />
<ClCompile Include="compatbits.c" />
<ClCompile Include="config.c" />
<ClCompile Include="datadefs.c" />
<ClCompile Include="DOSAPI.c" />
<ClCompile Include="DRATS.c" />
<ClCompile Include="Events.c" />
<ClCompile Include="FLDigi.c" />
<ClCompile Include="FreeDATA.c" />
<ClCompile Include="HALDriver.c" />
<ClCompile Include="HFCommon.c" />
<ClCompile Include="hid.c" />
@ -189,8 +204,29 @@
<ClCompile Include="L4Code.c" />
<ClCompile Include="md5.c" />
<ClCompile Include="Moncode.c" />
<ClCompile Include="mqtt.c">
<CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsC</CompileAs>
</ClCompile>
<ClCompile Include="MULTIPSK.c" />
<ClCompile Include="NETROMTCP.c" />
<ClCompile Include="nodeapi.c" />
<ClCompile Include="png.c" />
<ClCompile Include="pngerror.c" />
<ClCompile Include="pngget.c" />
<ClCompile Include="pngmem.c" />
<ClCompile Include="pngread.c" />
<ClCompile Include="pngrio.c" />
<ClCompile Include="pngrtran.c" />
<ClCompile Include="pngrutil.c" />
<ClCompile Include="pngset.c" />
<ClCompile Include="pngtrans.c" />
<ClCompile Include="pngvcrd.c" />
<ClCompile Include="pngwio.c" />
<ClCompile Include="pngwrite.c" />
<ClCompile Include="pngwtran.c" />
<ClCompile Include="pngwutil.c" />
<ClCompile Include="PortMapper.c" />
<ClCompile Include="RHP.c" />
<ClCompile Include="RigControl.c" />
<ClCompile Include="SCSPactor.c" />
<ClCompile Include="SCSTrackeMulti.c" />
@ -214,7 +250,7 @@
<ItemGroup>
<ClInclude Include="..\CKernel\kernelresource.h" />
<ClInclude Include="asmstrucs.h" />
<ClInclude Include="CHeaders.h" />
<ClInclude Include="cheaders.h" />
<ClInclude Include="compatbits.h" />
<ClInclude Include="Versions.h" />
</ItemGroup>

@ -0,0 +1,84 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
VisualStudioVersion = 18.10.12201.205 stable
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQ32.EXE", "BPQWinAPP.vcxproj", "{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinmorControl", "WinmorControl.vcxproj", "{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQMail", "BPQMail.vcxproj", "{3766AA10-C777-4ED8-A83D-F1452DE9B665}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LinBPQ", "MailNode.vcxproj", "{3766AA10-C777-4ED8-A83D-F1452DE9B666}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQ32.DLL", "CBPQ32.vcxproj", "{8EFA1E59-8654-4A23-8102-AA77A074D57C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQChat", "BPQChat.vcxproj", "{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQTerminal", "BPQTerminal.vcxproj", "{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BPQTermTCP", "BPQTermTCP.vcxproj", "{99625C77-CABA-469A-A5A7-ECB4EE354225}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Relase Static|Win32 = Relase Static|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Debug|Win32.ActiveCfg = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Debug|Win32.Build.0 = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Relase Static|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Relase Static|Win32.Build.0 = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Release|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B81}.Release|Win32.Build.0 = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Debug|Win32.ActiveCfg = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Debug|Win32.Build.0 = Debug|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Relase Static|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Relase Static|Win32.Build.0 = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Release|Win32.ActiveCfg = Release|Win32
{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}.Release|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Debug|Win32.ActiveCfg = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Debug|Win32.Build.0 = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Relase Static|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Relase Static|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Release|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B665}.Release|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Debug|Win32.ActiveCfg = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Debug|Win32.Build.0 = Debug|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Relase Static|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Relase Static|Win32.Build.0 = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Release|Win32.ActiveCfg = Release|Win32
{3766AA10-C777-4ED8-A83D-F1452DE9B666}.Release|Win32.Build.0 = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Debug|Win32.ActiveCfg = Debug|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Debug|Win32.Build.0 = Debug|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Relase Static|Win32.ActiveCfg = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Relase Static|Win32.Build.0 = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Release|Win32.ActiveCfg = Release|Win32
{8EFA1E59-8654-4A23-8102-AA77A074D57C}.Release|Win32.Build.0 = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Debug|Win32.ActiveCfg = Debug|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Debug|Win32.Build.0 = Debug|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Relase Static|Win32.ActiveCfg = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Relase Static|Win32.Build.0 = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Release|Win32.ActiveCfg = Release|Win32
{2BDD2C8A-2B4A-496C-A2EA-6B49AA0670B1}.Release|Win32.Build.0 = Release|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Debug|Win32.ActiveCfg = Debug|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Debug|Win32.Build.0 = Debug|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Relase Static|Win32.ActiveCfg = Relase Static|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Relase Static|Win32.Build.0 = Relase Static|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Release|Win32.ActiveCfg = Release|Win32
{04F2B9AD-4369-49EA-82EC-3C701C97C6D8}.Release|Win32.Build.0 = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Debug|Win32.ActiveCfg = Debug|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Debug|Win32.Build.0 = Debug|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Relase Static|Win32.ActiveCfg = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Relase Static|Win32.Build.0 = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Release|Win32.ActiveCfg = Release|Win32
{99625C77-CABA-469A-A5A7-ECB4EE354225}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {FB815A29-A2DD-470A-B0AF-7188AA0F4C7F}
EndGlobalSection
EndGlobal

@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.18)
project(LinBPQ)
# Our Project
set(CMAKE_C_FLAGS "-DLINBPQ -g -fcommon -fasynchronous-unwind-tables")
set(SOURCE_FILES
pngwtran.c pngrtran.c pngset.c pngrio.c pngwio.c pngtrans.c pngrutil.c pngwutil.c
pngread.c pngwrite.c png.c pngerror.c pngget.c pngmem.c APRSIconData.c AISCommon.c
upnp.c APRSStdPages.c HSMODEM.c WinRPR.c KISSHF.c TNCEmulators.c bpqhdlc.c SerialPort.c
adif.c WebMail.c utf8Routines.c VARA.c LzFind.c Alloc.c LzmaDec.c LzmaEnc.c LzmaLib.c
Multicast.c ARDOP.c IPCode.c FLDigi.c linether.c CMSAuth.c APRSCode.c BPQtoAGW.c KAMPactor.c
AEAPactor.c HALDriver.c MULTIPSK.c BBSHTMLConfig.c ChatHTMLConfig.c BBSUtilities.c bpqaxip.c
BPQINP3.c BPQNRR.c cMain.c Cmd.c CommonCode.c HTMLCommonCode.c compatbits.c config.c datadefs.c
FBBRoutines.c HFCommon.c Housekeeping.c HTTPcode.c kiss.c L2Code.c L3Code.c L4Code.c lzhuf32.c
MailCommands.c MailDataDefs.c LinBPQ.c MailRouting.c MailTCP.c MBLRoutines.c md5.c Moncode.c
NNTPRoutines.c RigControl.c TelnetV6.c WINMOR.c TNCCode.c UZ7HODrv.c WPRoutines.c
SCSTrackeMulti.c SCSPactor.c SCSTracker.c HanksRT.c UIRoutines.c AGWAPI.c AGWMoncode.c
DRATS.c FreeDATA.c base64.c Events.c nodeapi.c mailapi.c mqtt.c RHP.c NETROMTCP.c)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})

40
Cmd.c

@ -4326,6 +4326,45 @@ VOID NRRCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct C
return;
}
VOID SendNRPing(struct DEST_LIST * DEST, TRANSPORTENTRY * Session);
VOID NRPING(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD)
{
// Send Paula's NCMP PING command = Netrom Ping
char * ptr, *Context;
struct DEST_LIST * Dest = DESTS;
int count = MAXDESTS;
ptr = strtok_s(CmdTail, " ", &Context);
if (ptr)
{
UCHAR AXCall[8];
int count;
ConvToAX25(ptr, AXCall);
strcat(ptr, " ");
for (count = 0; count < MAXDESTS; count++)
{
if (memcmp(Dest->DEST_ALIAS, ptr, 6) == 0 || CompareCalls(Dest->DEST_CALL, AXCall))
{
SendNRPing(Dest, Session);
memcpy(Bufferptr, OKMSG, 3);
Bufferptr += 3;
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
return;
}
Dest++;
}
}
Bufferptr = Cmdprintf(Session, Bufferptr, "Not found\r");
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
return;
}
int CHECKINTERLOCK(struct PORTCONTROL * OURPORT)
{
// See if any Interlocked ports are Busy
@ -4884,6 +4923,7 @@ struct CMDX COMMANDS[] =
"AXMHEARD ",3,AXMHEARD,0,
"TELSTATUS ",3,SHOWTELNET,0,
"NRR ",1,NRRCMD,0,
"NPING ",1,NRPING,0,
"PING ",2,PING,0,
"AGWSTATUS ",3,SHOWAGW,0,
"ARP ",3,SHOWARP,0,

@ -3829,6 +3829,7 @@ int __sync_lock_test_and_set(int * ptr, int val)
#define GetSemaphore(Semaphore,ID) _GetSemaphore(Semaphore, ID, __FILE__, __LINE__)
BOOL Closing;
void _GetSemaphore(struct SEM * Semaphore, int ID, char * File, int Line)
{
@ -3843,7 +3844,7 @@ void _GetSemaphore(struct SEM * Semaphore, int ID, char * File, int Line)
loop1:
while (Semaphore->Flag != 0)
while (Semaphore->Flag != 0 && Closing == 0)
{
Sleep(10);
}
@ -3904,41 +3905,54 @@ USHORT WINAPI RtlCaptureStackBackTrace(
*/
#endif
void printStack(void)
void printStack()
{
#ifdef WIN32
#ifdef _DEBUG // So we can use on 98/2K
unsigned int i;
void * stack[ 100 ];
#ifdef BPQ32
unsigned int i, n;
void * stack[ 100 ];
unsigned short frames;
SYMBOL_INFO * symbol;
HANDLE process;
Debugprintf("Stack Backtrace");
DWORD dwDisplacement;
IMAGEHLP_LINE64 line;
char * fptr;
HANDLE process;
char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR)];
PSYMBOL_INFO symbol = (PSYMBOL_INFO)buffer;
symbol->SizeOfStruct = sizeof(SYMBOL_INFO);
symbol->MaxNameLen = MAX_SYM_NAME;
Debugprintf("Stack Backtrace\r\n");
process = GetCurrentProcess();
SymSetOptions(SYMOPT_LOAD_LINES);
SymInitialize( process, NULL, TRUE );
frames = RtlCaptureStackBackTrace( 0, 60, stack, NULL );
symbol = ( SYMBOL_INFO * )calloc( sizeof( SYMBOL_INFO ) + 256 * sizeof( char ), 1 );
symbol->MaxNameLen = 255;
symbol->SizeOfStruct = sizeof( SYMBOL_INFO );
frames = RtlCaptureStackBackTrace(0, 60, stack, NULL );
for( i = 0; i < frames; i++ )
{
SymFromAddr( process, ( DWORD64 )( stack[ i ] ), 0, symbol );
n = SymGetLineFromAddr64(process, (DWORD64)stack[i], &dwDisplacement, &line);
n = SymFromAddr( process, ( DWORD64 )( stack[ i ] ), 0, symbol );
Debugprintf( "%i: %s - %p", frames - i - 1, symbol->Name, symbol->Address );
}
if (line.FileName)
{
fptr = line.FileName + (int)strlen(line.FileName); // remove path
while (*fptr != '\\' && *fptr != '/')
fptr--;
free(symbol);
fptr++;
#endif
Debugprintf("%i: %s - %s Line %d Addr %p", frames - i - 1, symbol->Name, fptr, line.LineNumber, symbol->Address );
}
}
#endif
}
pthread_t ResolveUpdateThreadId = 0;
char NodeMapServer[80] = "update.g8bpq.net";

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

@ -885,7 +885,7 @@ VOID HTTPTimer()
OutBuffer = &Msg[0];
}
// If secure session enable an hidden controls
// If secure session enable any hidden controls
if (sock->WebSecure)
{
@ -2026,7 +2026,7 @@ int InnerProcessHTTPMessage(struct ConnectionInfo * conn)
strcpy(URL, MsgPtr);
WebSock = strstr(MsgPtr, "Upgrade: websocket");
WebSock = stristr(MsgPtr, "Upgrade: websocket");
encPtr = stristr(MsgPtr, "Accept-Encoding:");
@ -2035,7 +2035,7 @@ int InnerProcessHTTPMessage(struct ConnectionInfo * conn)
else
Encoding[0] = 0;
ptr = strstr(MsgPtr, "BPQSessionCookie=N");
ptr = stristr(MsgPtr, "BPQSessionCookie=N");
if (ptr)
{
@ -2080,7 +2080,7 @@ int InnerProcessHTTPMessage(struct ConnectionInfo * conn)
// "Sec-WebSocket-Protocol: chat\r\n"
"\r\n";
ptr = strstr(MsgPtr, "Sec-WebSocket-Key:");
ptr = stristr(MsgPtr, "Sec-WebSocket-Key:");
if (ptr)
{
@ -3398,18 +3398,18 @@ doHeader:
" if (\"WebSocket\" in window)"
" {"
" // Let us open a web socket. Get address from URL\r\n"
" var proto = (window.location.protocol === 'https:') ? 'wss://' : 'ws://';\r\n"
" ws = new WebSocket(proto + window.location.host + '/RIGCTL');\r\n"
" ws.onopen = function() {\r\n"
" // Web Socket is connected\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'Websock Connected'\r\n"
" };\r\n"
" ws.onmessage = function (evt)"
" {"
" var received_msg = evt.data;\r\n"
@ -3442,7 +3442,7 @@ doHeader:
"<div id = 'div'>Waiting for data...</div>\r\n"
"</body></html>\r\n";
char NoRigCtl[] =
"<html><meta http-equiv=expires content=0>\r\n"
"<head><title>Rigcontrol</title></head>\r\n"
@ -3459,72 +3459,87 @@ doHeader:
else if (_stricmp(NodeURL, "/Node/DevicePage") == 0)
{
char Part1[] =
"<html><meta http-equiv=expires content=0>\r\n"
"<head><title>Device</title></head>\r\n"
"<script type = \"text/javascript\">\r\n"
"var ws;"
"function Action(data){\r\n"
"req = new XMLHttpRequest();\r\n"
"req.open('POST', 'PortAction?%d', true);\r\n"
"req.send(data);alert(data + ' Sent');}\r\n"
"function freqOffset(data){\r\n"
"req = new XMLHttpRequest();\r\n"
"req.open('POST', 'freqOffset?%d', true);\r\n"
"req.send(data);}\r\n"
"function OpenWebSocket()"
"{"
" if (\"WebSocket\" in window)"
" {"
" // open a web socket. Get address from URL\r\n"
" var proto = (window.location.protocol === 'https:') ? 'wss://' : 'ws://';\r\n"
" ws = new WebSocket(proto + window.location.host + '/DEVICE%d');\r\n"
" ws.onopen = function() {\r\n"
" // Web Socket is connected\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'Websock Connected'\r\n};\r\n"
" ws.onmessage = function (evt)"
" {"
" var received_msg = evt.data;\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = received_msg\r\n"
" const text = document.getElementById('textarea');\r\n"
" text.scrollTop = text.scrollHeight;\r\n"
" };\r\n"
" ws.onclose = function()"
" {"
" // websocket is closed.\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'Websock Connection Lost'\r\n"
" };"
" }"
" else"
" {"
" // The browser doesn't support WebSocket\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'WebSocket not supported by your Browser - Device Page not availible'\r\n"
" }"
"}"
"</script>\r\n"
"</head>\r\n"
"<body height: 600px; onload=OpenWebSocket()>\r\n"
"<div id = 'div'>Waiting for data...</div>\r\n"
"</body></html>\r\n";
if (TCP->noWebSocks == 0)
{
char Part1[] =
"<html><meta http-equiv=expires content=0>\r\n"
"<head><title>Device</title></head>\r\n"
"<script type = \"text/javascript\">\r\n"
"var ws;"
"function Action(data){\r\n"
"req = new XMLHttpRequest();\r\n"
"req.open('POST', 'PortAction?%d', true);\r\n"
"req.send(data);alert(data + ' Sent');}\r\n"
"function freqOffset(data){\r\n"
"req = new XMLHttpRequest();\r\n"
"req.open('POST', 'freqOffset?%d', true);\r\n"
"req.send(data);}\r\n"
"function OpenWebSocket()"
"{"
" if (\"WebSocket\" in window)"
" {"
" // open a web socket. Get address from URL\r\n"
" var proto = (window.location.protocol === 'https:') ? 'wss://' : 'ws://';\r\n"
" ws = new WebSocket(proto + window.location.host + '/DEVICE%d');\r\n"
" ws.onopen = function() {\r\n"
" // Web Socket is connected\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'Websock Connected'\r\n};\r\n"
" ws.onmessage = function (evt)"
" {"
" var received_msg = evt.data;\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = received_msg\r\n"
" const text = document.getElementById('textarea');\r\n"
" text.scrollTop = text.scrollHeight;\r\n"
" };\r\n"
" ws.onclose = function()"
" {"
" // websocket is closed.\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'Websock Connection Lost'\r\n"
" };"
" }"
" else"
" {"
" // The browser doesn't support WebSocket\r\n"
" const div = document.getElementById('div');\r\n"
" div.innerHTML = 'WebSocket not supported by your Browser - Device Page not availible'\r\n"
" }"
"}"
"</script>\r\n"
"</head>\r\n"
"<body height: 600px; onload=OpenWebSocket()>\r\n"
"<div id = 'div'>Waiting for data...</div>\r\n"
"</body></html>\r\n";
int Port = atoi(Context);
int xxx;
ReplyLen = sprintf(_REPLYBUFFER, Part1, Port, Port, Port);
xxx = ReplyLen;
}
else
{
int port = atoi(Context);
int Port = atoi(Context);
int xxx;
if (port > 0 && port <= MaxBPQPortNo)
{
struct TNCINFO * TNC = TNCInfo[port];
ReplyLen = sprintf(_REPLYBUFFER, Part1, Port, Port, Port);
xxx = ReplyLen;
if (TNC && TNC->WebWindowProc)
ReplyLen = TNC->WebWindowProc(TNC, _REPLYBUFFER, LOCAL);
}
}
}
else if (_stricmp(NodeURL, "/Node/ShowLog.html") == 0)
@ -4550,7 +4565,12 @@ CMDS60:
}}}
*/
else if (_stricmp(NodeURL, "/Node/Terminal.html") == 0)
else if (_stricmp(NodeURL, "/Node/WebSockTerm.html") == 0 && TCP->noWebSocks == 0)
{
ReplyLen = DoWebSockTerm(Session, conn, _REPLYBUFFER, LOCAL, COOKIE, Context, sock);
}
else if (_stricmp(NodeURL, "/Node/Terminal.html" ) == 0 || (_stricmp(NodeURL, "/Node/WebSockTerm.html") == 0 && TCP->noWebSocks))
{
if (COOKIE && Session)
{
@ -4604,11 +4624,6 @@ CMDS60:
ReplyLen = sprintf(_REPLYBUFFER, TermSignon, Mycall, Mycall, Context, "");
}
else if (_stricmp(NodeURL, "/Node/WebSockTerm.html") == 0)
{
ReplyLen = DoWebSockTerm(Session, conn, _REPLYBUFFER, LOCAL, COOKIE, Context, sock);
}
else if (_stricmp(NodeURL, "/Node/Signon.html") == 0)
{
ReplyLen = sprintf(_REPLYBUFFER, NodeSignon, Mycall, Mycall, Context);
@ -6150,6 +6165,8 @@ int DoWebSockTerm(struct HTTPConnectionInfo * Session, struct ConnectionInfo * c
" var proto = (window.location.protocol === 'https:') ? 'wss://' : 'ws://';\r\n"
" ws = new WebSocket(proto + window.location.host + '/WEBTERM?%s&%s&%s&%d');\r\n"
// " alert(window.location.href);"
// " alert(proto + window.location.host);"
" ws.onopen = function() // Web Socket is connected\r\n"
" {\r\n"
" const div = document.getElementById('div');\r\n"

@ -99,13 +99,43 @@ int sessionStatusInterval = 300; // 5 mins
extern APPLCALLS * APPL;
void SendNCMPDestunreachable(L3MESSAGEBUFFER * L3MSG, int Code)
{
// Return NCMP Dest Unreachable TTL Exceeded
struct DEST_LIST * DEST = 0;
UCHAR ORIG[28];
memcpy(ORIG, L3MSG->L3SRCE, 28); // First 28 bytes of unrouteable message
L3MSG->L3TTL = L3LIVES;
L3MSG->LENGTH = MSGHDDRLEN + 21 + 28; // Include PID 20 L3/4 Header 28 Orig Datagram
memcpy(L3MSG->L3DEST, L3MSG->L3SRCE, 7);
memcpy(L3MSG->L3SRCE, MYCALL, 7);
L3MSG->L4INDEX = 0x0f;
L3MSG->L4ID = 0x00;
L3MSG->L4TXNO = 5; // Unreachable
L3MSG->L4RXNO = Code;
L3MSG->L4FLAGS = 0;
memcpy(L3MSG->L4DATA, ORIG, 28); // PID + L3 Header
if (FindDestination(L3MSG->L3DEST, &DEST))
{
C_Q_ADD(&DEST->DEST_Q, (UINT *)L3MSG);
return;
}
ReleaseBuffer(L3MSG);
return;
}
VOID NETROMMSG(struct _LINKTABLE * LINK, L3MESSAGEBUFFER * L3MSG)
{
// MAKE SURE PID IS 0CF - IN CASE SOMEONE IS SENDING L2 STUFF ON WHAT
// WE THINK IS A _NODE-_NODE LINK
struct DEST_LIST * DEST;
struct DEST_LIST * DEST = 0;
int n;
if (L3MSG->L3PID != 0xCF)
@ -188,7 +218,9 @@ VOID NETROMMSG(struct _LINKTABLE * LINK, L3MESSAGEBUFFER * L3MSG)
if (L3MSG->L3TTL == 0)
{
ReleaseBuffer(L3MSG);
// Return NCMP Dest Unreachable TTL Exceeded (5)
SendNCMPDestunreachable(L3MSG, 5);
return;
}
@ -226,10 +258,14 @@ VOID NETROMMSG(struct _LINKTABLE * LINK, L3MESSAGEBUFFER * L3MSG)
if (FindDestination(L3MSG->L3DEST, &DEST) == 0)
{
ReleaseBuffer(L3MSG); // CANT FIND DESTINATION
// Return NCMP Dest Unreachable Host Ubknown (0)
SendNCMPDestunreachable(L3MSG, 0);
return;
}
// IF MESSAGE ORIGINTED HERE, THERE MUST BE A ROUTING LOOP -
// THERE IS LITTLE POINT SENDING IT OVER THE SAME ROUTE AGAIN,
// SO SET ANOTHER ROUTE ACTIVE IF POSSIBLE
@ -2862,13 +2898,214 @@ Type Purpose
4 Routing Information Unicast
5 Destination Unreachable
0 Host Unknown The router does not know the destination
node.
1 Host Unreachable The destination node is known, but there
are no viable routes at this time, due to
obsolescence or link failure.
2 Net Unreachable The number of hops to the target system is
more than the remaining Time To Live.
3 Proto Unreachable The destination host does not know how to
handle the requested protocol.
4 Service Unreach The requested service is not implemented at
the destination host.
5 TTL Exceeded The datagram could not be routed any
further because the Layer 3 Time to Live
has reached zero.
6 Frag Required The datagram is too large for the outgoing
link, and the link does not support
fragmentation.
7 Source Quench The datagram could not be handled at this
time due to insufficient resources. This
situation is temporary. Upon receipt of
this message, the sender should reduce the
sending rate.
*/
char NCMPTypes[6][28] = {
"Probe Request",
"Probe Reply",
"Echo Request",
"Echo Reply",
"Routing Information Unicast",
"Destination Unreachable"};
char Reasons[8][24] = {
"Host Unknown",
"Host Unreachable",
"Net Unreachable",
"Proto Unreachabl",
"Service Unreachable",
"TTL Exceeded",
"Fragmentation Required",
"Source Quench"};
void ProcessNCMPMsg(L3MESSAGEBUFFER * L3MSG)
{
struct DEST_LIST * DEST;
L3MESSAGEBUFFER OLDMSG;
TRANSPORTENTRY * L4;
TRANSPORTENTRY * Partner;
char Nodename[20];
int n;
struct DATAMESSAGE * Msg;
UCHAR * ptr1;
uint16_t NOW = (uint16_t)GetTickCount() & 0xffff;
uint16_t RTT;
int Hops;
switch(L3MSG->L4TXNO & 15)
{
case 0:
n = 1;
break;
case 1:
n = 1;
break;
case 2: // Echo
// Return an Echo Response
L3MSG->L4TXNO = 3;
L3SWAPADDRESSES(L3MSG);
// L3RXNO has originator's TTL
// We return the TTL from the originating message in L3RXNO
L3MSG->L4RXNO = L3MSG->L3TTL;
L3MSG->L3TTL = L3LIVES;
if (FindDestination(L3MSG->L3DEST, &DEST))
{
C_Q_ADD(&DEST->DEST_Q, (UINT *)L3MSG);
return;
}
break;
case 3: // Echo Reply
RTT = NOW - ((L3MSG->L4DATA[2] << 8) + L3MSG->L4DATA[3]);
Hops = L3LIVES + 1 - L3MSG->L4RXNO;
L4 = L4TABLE + (L3MSG->L4DATA[0] << + 8) + L3MSG->L4DATA[1];
Nodename[DecodeNodeName(L3MSG->L3SRCE, Nodename)] = 0; // null terminate
Msg = (PDATAMESSAGE)L3MSG; // reuse input buffer
Msg->PID = 0xf0;
ptr1 = SetupNodeHeader(Msg);
ptr1 += sprintf(ptr1, "Echo reply from %s: rtt %d msec, %d hop(s)\r", Nodename, RTT, Hops);
Msg->LENGTH = (int)(ptr1 - (UCHAR *)Msg);
C_Q_ADD(&L4->L4TX_Q, Msg);
PostDataAvailable(L4);
return;
case 4: // Routing info
break;
case 5: // Destination Unreachable
// Most useful in response to a connect request to tell user of a problem
// Maybe also on an established session, perhaps to select another route or tell user
// Pick out the unrouted datagram (in the INFO field) Should be 28 bytes. Use an L3MESSAGEBUFFER struct
memcpy(OLDMSG.L3SRCE, L3MSG->L4DATA, 28);
// if the original message is an NCMP Probe or Echo, processs Unreachables
if (OLDMSG.L4INDEX == 15 && OLDMSG.L4ID ==0 && OLDMSG.L4TXNO == 2)
{
// Process like Ping Response but with different message
L4 = L4TABLE + (OLDMSG.L4DATA[0] << + 8) + OLDMSG.L4DATA[1];
Nodename[DecodeNodeName(L3MSG->L3SRCE, Nodename)] = 0; // null terminate
Msg = (PDATAMESSAGE)L3MSG; // reuse input buffer
Msg->PID = 0xf0;
ptr1 = SetupNodeHeader(Msg);
ptr1 += sprintf(ptr1, "Destination Unreachable(%s) returned from %s to Echo Request\r", Reasons[L3MSG->L4RXNO], Nodename);
Msg->LENGTH = (int)(ptr1 - (UCHAR *)Msg);
C_Q_ADD(&L4->L4TX_Q, Msg);
PostDataAvailable(L4);
return;
}
// Find the connection
n = MAXCIRCUITS;
L4 = L4TABLE;
while (n--)
{
// if ((L4->L4USER[0] && L4->FARID == OLDMSG.L4RXNO && L4->FARINDEX == OLDMSG.L4TXNO) || // Paula returns session in RX/TXNO, I sent in ID/INDEX
if (L4->L4USER[0] && L4->CIRCUITID == OLDMSG.L4ID && L4->CIRCUITINDEX == OLDMSG.L4INDEX)
{
// Check calls as well
if (memcmp(L4->L4TARGET.DEST->DEST_CALL, &OLDMSG.L3DEST, 7) == 0)
{
if ((OLDMSG.L4FLAGS & 15) != L4CREQ) // for now only on Connect Request
{
ReleaseBuffer(L3MSG);
return;
}
Partner = L4->L4CROSSLINK;
DEST = L4->L4TARGET.DEST;
CLEARSESSIONENTRY(L4);
if (Partner)
Partner->L4CROSSLINK = NULL; // CLEAR CROSSLINK
if (Partner == 0)
{
ReleaseBuffer(L3MSG);
return;
}
Nodename[DecodeNodeName(L3MSG->L3SRCE, Nodename)] = 0; // null terminate
Msg = (PDATAMESSAGE)L3MSG; // reuse input buffer
Msg->PID = 0xf0;
ptr1 = SetupNodeHeader(Msg);
ptr1 += sprintf(ptr1, "Destination Unreachable(%s) from %s\r", Reasons[L3MSG->L4RXNO], Nodename);
Msg->LENGTH = (int)(ptr1 - (UCHAR *)Msg);
C_Q_ADD(&Partner->L4TX_Q, Msg);
PostDataAvailable(Partner);
return;
}
}
L4++;
}
break;
}
@ -2876,3 +3113,50 @@ void ProcessNCMPMsg(L3MESSAGEBUFFER * L3MSG)
return;
}
VOID SendNRPing(struct DEST_LIST * DEST, TRANSPORTENTRY * Session)
{
L3MESSAGEBUFFER * Msg = GetBuff();
int SessID;
uint16_t NOW = (uint16_t)GetTickCount() & 0xffff;
if (Msg == NULL)
return;
SessID = (Session - L4TABLE); // Save Session Pointer for reply
Msg->Port = 0;
Msg->L3PID = NRPID;
memcpy(Msg->L3DEST, DEST->DEST_CALL, 7);
memcpy(Msg->L3SRCE, MYCALL, 7);
/*
-----------------------------------------------------------
| 0F | 00 | Type=2 | TTL | 00 | ID | Seq | Optional payload |
-----------------------------------------------------------
"TTL" is the initial Layer 3 TTL
"ID" is a unique 16 bit identifier, sent high octet first,
allowing the originator to match responses with the requests.
"Seq" is a 16 bit sequence number, sent high octet first.
Usually carries a timestamp, allowing the RTT to be computed.
if (L3MSG->L4ID == 0x00 && L3MSG->L4INDEX == 0x0f) // Paula's NCMP
*/
Msg->L3TTL = L3LIVES;
Msg->L4INDEX = 0x0f;
Msg->L4ID = 0;
Msg->L4TXNO = 2;
Msg->L4RXNO = L3LIVES;
Msg->L4FLAGS = 0;
Msg->L4DATA[0] = SessID >> 8;
Msg->L4DATA[1] = SessID & 0xff;
Msg->L4DATA[2] = NOW >> 8;
Msg->L4DATA[3] = NOW & 0xff;
Msg->LENGTH = 25 + MSGHDDRLEN;
C_Q_ADD(&DEST->DEST_Q, Msg);
}

@ -1153,7 +1153,73 @@ void UnSemaphored100msCode()
Slowtimer = 0;
}
#ifndef WIN32
#ifdef WIN32
#include "DbgHelp.h"
HANDLE process;
int inErrorhandling = 0;
LONG WINAPI UnhandledExcepFilter(PEXCEPTION_POINTERS pExcepPointers)
{
DWORD dwDisplacement;
IMAGEHLP_LINE64 line;
char * fptr;
time_t T;
struct tm * tm;
char buffer[sizeof(SYMBOL_INFO) + MAX_SYM_NAME * sizeof(TCHAR)];
PSYMBOL_INFO symbol = (PSYMBOL_INFO)buffer;
symbol->SizeOfStruct = sizeof(SYMBOL_INFO);
symbol->MaxNameLen = MAX_SYM_NAME;
T = time(NULL);
tm = gmtime(&T);
if (inErrorhandling)
{
MessageBox(NULL,"Program Error in error handler - program closing. See Debug Log for details","BPQ32",MB_ICONSTOP);
exit(0);
}
inErrorhandling = 1;
if(pExcepPointers->ExceptionRecord->ExceptionCode == DBG_PRINTEXCEPTION_C)
return EXCEPTION_CONTINUE_EXECUTION;
SymFromAddr( process, ((DWORD)pExcepPointers->ExceptionRecord->ExceptionAddress), 0, symbol );
Debugprintf("\r\n\r\nProgram error trapped at %02d:%02d:%02d\r\n", tm->tm_hour, tm->tm_min, tm->tm_sec);
SymGetLineFromAddr64(process, (DWORD)pExcepPointers->ExceptionRecord->ExceptionAddress, &dwDisplacement, &line);
if (line.FileName)
{
fptr = line.FileName + (int)strlen(line.FileName); // remove path
while (*fptr != '\\' && *fptr != '/')
fptr--;
fptr++;
Debugprintf("In Procedure %s - %s Line %d Addr %p\r\n", symbol->Name, fptr, line.LineNumber, symbol->Address );
}
printStack();
CloseDebugLog();
MessageBox(NULL,"Program Error - program closing. See Debug Log for details","BPQ32",MB_ICONSTOP);
exit(0);
}
#endif
@ -1186,6 +1252,14 @@ int main(int argc, char * argv[])
}
}
process = GetCurrentProcess();
SymSetOptions(SYMOPT_LOAD_LINES);
SymInitialize(process, NULL, TRUE );
AddVectoredExceptionHandler(1, UnhandledExcepFilter);
#else
state = backtrace_create_state(argv[0], 0, error_callback, NULL);

@ -507,7 +507,7 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
if (buffptr)
{
buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0],
"MPSK} Error - Call missing from C command\r", STREAM->MyCall, STREAM->RemoteCall);
"MPSK} Error - Call missing from C command\r");
C_Q_ADD(&STREAM->PACTORtoBPQ_Q, buffptr);
}

@ -123,13 +123,15 @@
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
WholeProgramOptimization="false"
AdditionalIncludeDirectories="Win32bits;..\BPQSource"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;LINBPQ;_USE_32BIT_TIME_T;NOMQTT"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="false"
DebugInformationFormat="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"

@ -0,0 +1,221 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectName>LinBPQ</ProjectName>
<ProjectGuid>{3766AA10-C777-4ED8-A83D-F1452DE9B666}</ProjectGuid>
<RootNamespace>MailNode</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<CharacterSet>NotSet</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<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" />
</ImportGroup>
<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" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>Win32bits;..\BPQSource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;LINBPQ;_USE_32BIT_TIME_T;NOMQTT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;WS2_32.Lib;Win32bits\libconfigd.lib;DbgHelp.lib;setupapi.lib;miniupnpc.lib;zlibstat.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>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>Win32bits;..\BPQSource;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;LINBPQ;_USE_32BIT_TIME_T;NOMQTT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>kernel32.lib;WS2_32.Lib;Win32bits\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>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="adif.c" />
<ClCompile Include="AEAPactor.c" />
<ClCompile Include="AGWAPI.c" />
<ClCompile Include="AGWMoncode.c" />
<ClCompile Include="AISCommon.c" />
<ClCompile Include="Alloc.c" />
<ClCompile Include="APRSCode.c" />
<ClCompile Include="APRSIconData.c" />
<ClCompile Include="APRSStdPages.c" />
<ClCompile Include="ARDOP.c" />
<ClCompile Include="base64.c" />
<ClCompile Include="BBSHTMLConfig.c" />
<ClCompile Include="BBSUtilities.c">
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</AssemblerOutput>
<AssemblerOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">All</AssemblerOutput>
<ObjectFileName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)</ObjectFileName>
</ClCompile>
<ClCompile Include="bpqaxip.c" />
<ClCompile Include="bpqether.c" />
<ClCompile Include="bpqhdlc.c" />
<ClCompile Include="BPQINP3.c" />
<ClCompile Include="BPQNRR.c" />
<ClCompile Include="BPQtoAGW.c" />
<ClCompile Include="bpqvkiss.c" />
<ClCompile Include="ChatHTMLConfig.c" />
<ClCompile Include="cMain.c" />
<ClCompile Include="Cmd.c" />
<ClCompile Include="CMSAuth.c" />
<ClCompile Include="CommonCode.c" />
<ClCompile Include="compatbits.c" />
<ClCompile Include="config.c" />
<ClCompile Include="datadefs.c" />
<ClCompile Include="DRATS.c" />
<ClCompile Include="Events.c" />
<ClCompile Include="FBBRoutines.c" />
<ClCompile Include="FLDigi.c" />
<ClCompile Include="FreeDATA.c" />
<ClCompile Include="getopt.c" />
<ClCompile Include="HALDriver.c" />
<ClCompile Include="HanksRT.c" />
<ClCompile Include="HFCommon.c" />
<ClCompile Include="hid.c" />
<ClCompile Include="Housekeeping.c" />
<ClCompile Include="HSMODEM.c" />
<ClCompile Include="HTMLCommonCode.c" />
<ClCompile Include="HTTPcode.c" />
<ClCompile Include="IPCode.c" />
<ClCompile Include="KAMPactor.c" />
<ClCompile Include="kiss.c" />
<ClCompile Include="KISSHF.c" />
<ClCompile Include="L2Code.c" />
<ClCompile Include="L3Code.c" />
<ClCompile Include="L4Code.c" />
<ClCompile Include="LinBPQ.c" />
<ClCompile Include="LzFind.c" />
<ClCompile Include="lzhuf32.c" />
<ClCompile Include="LzmaDec.c" />
<ClCompile Include="LzmaEnc.c" />
<ClCompile Include="LzmaLib.c" />
<ClCompile Include="mailapi.c" />
<ClCompile Include="MailCommands.c" />
<ClCompile Include="MailDataDefs.c" />
<ClCompile Include="MailRouting.c" />
<ClCompile Include="MailTCP.c" />
<ClCompile Include="MBLRoutines.c" />
<ClCompile Include="md5.c" />
<ClCompile Include="Moncode.c" />
<ClCompile Include="mqtt.c" />
<ClCompile Include="Multicast.c" />
<ClCompile Include="MULTIPSK.c" />
<ClCompile Include="NETROMTCP.c" />
<ClCompile Include="NNTPRoutines.c" />
<ClCompile Include="nodeapi.c" />
<ClCompile Include="pibits.c" />
<ClCompile Include="png.c" />
<ClCompile Include="pngerror.c" />
<ClCompile Include="pnggccrd.c" />
<ClCompile Include="pngget.c" />
<ClCompile Include="pngmem.c" />
<ClCompile Include="pngpread.c" />
<ClCompile Include="pngread.c" />
<ClCompile Include="pngrio.c" />
<ClCompile Include="pngrtran.c" />
<ClCompile Include="pngrutil.c" />
<ClCompile Include="pngset.c" />
<ClCompile Include="pngtrans.c" />
<ClCompile Include="pngvcrd.c" />
<ClCompile Include="pngwio.c" />
<ClCompile Include="pngwrite.c" />
<ClCompile Include="pngwtran.c" />
<ClCompile Include="pngwutil.c" />
<ClCompile Include="RHP.c" />
<ClCompile Include="RigControl.c" />
<ClCompile Include="SCSPactor.c" />
<ClCompile Include="SCSTrackeMulti.c" />
<ClCompile Include="SCSTracker.c" />
<ClCompile Include="SerialPort.c" />
<ClCompile Include="TelnetV6.c" />
<ClCompile Include="TNCCode.c" />
<ClCompile Include="TNCEmulators.c" />
<ClCompile Include="UIRoutines.c" />
<ClCompile Include="upnp.c" />
<ClCompile Include="utf8Routines.c" />
<ClCompile Include="UZ7HODrv.c" />
<ClCompile Include="V4.c" />
<ClCompile Include="VARA.c" />
<ClCompile Include="WebMail.c" />
<ClCompile Include="WINMOR.c" />
<ClCompile Include="WinRPR.c" />
<ClCompile Include="WPRoutines.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="png.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -34,6 +34,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include "cheaders.h"
#include "tncinfo.h"
extern char NCMPTypes[6][28];
// MSGFLAG contains CMD/RESPONSE BITS
#define CMDBIT 4 // CURRENT MESSAGE IS A COMMAND
@ -869,7 +871,7 @@ char * DISPLAY_NETROM(MESSAGE * ADJBUFFER, UCHAR * Output, int MsgLen)
if (Index == 0x0F) // NCMP
{
Output += sprintf((char *)Output, " NCMP %x %x Type %x Code %x", Index, ID, TXNO, RXNO);
Output += sprintf((char *)Output, " NCMP Type %s Code %x", NCMPTypes[TXNO & 15], RXNO);
MsgLen = MsgLen - (19 + sizeof(void *));

@ -2470,10 +2470,9 @@ DllExport BOOL APIENTRY Rig_Init()
if (RIG->NumberofBands)
CheckTimeBands(RIG); // Set initial timeband
#ifdef WIN32
if (RIG->PTTCATPort[0]) // Serial port RTS to CAT
_beginthread(PTTCATThread,0,RIG);
#endif
if (RIG->HAMLIBPORT)
{
// Open listening socket
@ -3218,6 +3217,14 @@ int GetPermissionToChange(struct RIGPORTINFO * PORT, struct RIGINFO *RIG)
// Get Permission to change
if (RIG->PTTTimer) // Dont allow change if PTT ia active
{
if (RIG->RIG_DEBUG)
Debugprintf("GetPermissionToChange - Blocked by active PTT");
return 0;
}
if (RIG->RIG_DEBUG)
Debugprintf("GetPermissionToChange - WaitingForPermission = %d", RIG->WaitingForPermission);
@ -6075,6 +6082,8 @@ CheckOtherParams:
ptr = strtok_s(NULL, " \t\n\r", &Context);
#ifdef WIN32
while (memcmp(ptr, "COM", 3) == 0)
{
char * tncport = strlop(ptr, '/');
@ -6092,6 +6101,14 @@ CheckOtherParams:
if (ptr == NULL)
break;
}
#else
strcpy(RIG->PTTCATPort[0], _strlwr(ptr));
ptr = strtok_s(NULL, " \t\n\r", &Context);
#endif
if (ptr == NULL)
break;
else
@ -7710,6 +7727,56 @@ WaitAgain:
}
}
*/
#else
// Linux Version. Use with tty0tty Kernel Module. Only supports one device for now
VOID PTTCATThread(void * Param)
{
struct RIGINFO * RIG = (struct RIGINFO *)Param;
EndPTTCATThread = FALSE;
Debugprintf("RigControl Opening %s for RTS PTT\n", RIG->PTTCATPort[0]);
int fd = open(RIG->PTTCATPort[0], O_RDWR | O_NOCTTY);
if (fd < 0)
{
perror("Error opening serial port");
return;
}
while (1)
{
// 2. Block until the CTS line changes status
// The hardware interrupt wakes the driver, which wakes this ioctl
if (ioctl(fd, TIOCMIWAIT, TIOCM_CTS) < 0)
{
perror("ioctl TIOCMIWAIT failed");
close(fd);
return;
}
// 3. Determine if it went HIGH or LOW
int status;
ioctl(fd, TIOCMGET, &status);
if (status & TIOCM_CTS)
{
Rig_PTTEx(RIG, TRUE, RIG->PTTCATTNC[0]);
}
else
{
Rig_PTTEx(RIG, FALSE, RIG->PTTCATTNC[0]);
}
}
close(fd);
EndPTTCATThread = FALSE;
return;
}
#endif
// HAMLIB Support Code

@ -532,6 +532,9 @@ int ProcessLine(char * buf, int Port)
else if (_stricmp(param,"SecureTelnet") == 0)
TCP->SecureTelnet = atoi(value);
else if (_stricmp(param,"noWebSocks") == 0)
TCP->noWebSocks = atoi(value);
else if (_stricmp(param,"CloseOnDisconnect") == 0)
TCP->DisconnectOnClose = atoi(value);
@ -547,6 +550,8 @@ int ProcessLine(char * buf, int Port)
else if (_stricmp(param,"HTTPPORT") == 0)
HTTPPort = TCP->HTTPPort = atoi(value);
else if (_stricmp(param,"NETROMPORT") == 0)
TCP->NETROMPort = atoi(value);

@ -1166,7 +1166,7 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
if (buffptr)
{
buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0],
"UZ7HO} Error - Call missing from C command\r", STREAM->MyCall, STREAM->RemoteCall);
"UZ7HO} Error - Call missing from C command\r");
C_Q_ADD(&STREAM->PACTORtoBPQ_Q, buffptr);
}

@ -9,8 +9,8 @@
#endif
#define KVers 6,0,25,40
#define KVerstring "6.0.25.40\0"
#define KVers 6,0,25,41
#define KVerstring "6.0.25.41\0"
#ifdef CKernel

@ -1006,7 +1006,7 @@ int ViewWebMailMessage(struct HTTPConnectionInfo * Session, char * Reply, int Nu
if (Msg == NULL)
{
ptr += sprintf(ptr, "Message %d not found\r\n", Number);
return sprintf(Reply, WebMailTemplate, BBSName, User->Call, Key, Key, Key, Key, Key, Key, Key, Message);
return sprintf(Reply, WebMailTemplate, BBSName, User->Call, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key, Message);
}
// New Display so free any old values
@ -1019,7 +1019,7 @@ int ViewWebMailMessage(struct HTTPConnectionInfo * Session, char * Reply, int Nu
if (!CheckUserMsg(Msg, User->Call, User->flags & F_SYSOP))
{
ptr += sprintf(ptr, "Message %d not for you\r", Number);
return sprintf(Reply, WebMailTemplate, BBSName, User->Call, Key, Key, Key, Key, Key, Key, Key, Message);
return sprintf(Reply, WebMailTemplate, BBSName, User->Call, Key, Key, Key, Key, Key, Key, Key, Key, Key, Key, Message);
}
if (_stricmp(Msg->to, "RMS") == 0)

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -25,7 +25,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#define BPQICON 400
BPQICON ICON DISCARDABLE "..\BPQIcon.ICO"
BPQICON ICON DISCARDABLE "BPQIcon.ICO"
//
// Version

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>18.0</VCProjectVersion>
<ProjectGuid>{005A91EA-3A00-4FB4-ADD9-EB78DBFA2B82}</ProjectGuid>
<RootNamespace>WinmorControl</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v145</PlatformToolset>
<UseOfMfc>false</UseOfMfc>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
</ImportGroup>
<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="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>18.0.12106.202</_ProjectFileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>c:\DevProgs\bpq32\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>C:\Dev\Msdev2005\$(SolutionName)\$(ProjectName)\$(Configuration)\</OutDir>
<IntDir>C:\Dev\Msdev2005\Intermed\$(SolutionName)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Midl>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Debug/WinmorControl.tlb</TypeLibraryName>
<HeaderFileName />
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeaderOutputFile>.\Debug/WinmorControl.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>WS2_32.Lib;Psapi.lib;Win32bits\bpq32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\WinmorControl.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\Debug/bpq32.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\devprogs\bpq32\bpqpp.map</MapFileName>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Debug/WinmorControl.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Midl>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MkTypLibCompatible>true</MkTypLibCompatible>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TargetEnvironment>Win32</TargetEnvironment>
<TypeLibraryName>.\Release/WinmorControl.tlb</TypeLibraryName>
<HeaderFileName />
</Midl>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<AdditionalIncludeDirectories>..\cinclude;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>C:\msdev2005\Intermed\Release/WinmorControl.pch</PrecompiledHeaderOutputFile>
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
<ObjectFileName>$(IntDir)</ObjectFileName>
<ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>WS2_32.Lib;Psapi.lib;Win32bits\bpq32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>c:\DevProgs\bpq32\WinmorControl.exe</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ProgramDatabaseFile>.\Release/WinmorControl.pdb</ProgramDatabaseFile>
<GenerateMapFile>true</GenerateMapFile>
<MapFileName>c:\devprogs\bpq32\WinmorControl.map</MapFileName>
<SubSystem>Windows</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<Bscmake>
<SuppressStartupBanner>true</SuppressStartupBanner>
<OutputFile>.\Release/WinmorControl.bsc</OutputFile>
</Bscmake>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="WinmorControl.c" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="WinmorControl.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

@ -56,7 +56,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include <process.h>
#include "pcap.h"
#include "../CommonSource/bpq32.h"
#include "bpq32.h"
//#include "packet32.h"
//#include "ntddndis.h"

File diff suppressed because it is too large Load Diff

@ -517,6 +517,8 @@ Loop:
Session.CIRCUITINDEX = -1;
Buffer->LENGTH = sprintf(Buffer->L2DATA, "%s\r", TNC->DisconnectScript[n++]) + (sizeof(void *) + 4);
CommandHandler(&Session, Buffer);
strlop(Buffer->L2DATA, 13);
Debugprintf("Disconnect Script Output %s", Buffer->L2DATA);
};
}
}

@ -18,5 +18,5 @@ Chat :
MonitorSize = "828,1644,148,770";
DebugSize = "0,0,0,0";
WindowSize = "231,835,254,602";
Version = "6,0,24,81";
Version = "6,0,25,40";
};

Binary file not shown.

@ -22,7 +22,7 @@ OBJS = pngwtran.o pngrtran.o pngset.o pngrio.o pngwio.o pngtrans.o pngrutil.o pn
LDFLAGS = -Xlinker -Map=output.map -lrt
all: CFLAGS = -DLINBPQ -MMD -g -fcommon -fasynchronous-unwind-tables $(EXTRA_CFLAGS)
all: LIBS = -lpaho-mqtt3a -ljansson -lminiupnpc -lm -lz -lpthread -lconfig -lpcap
all: LIBS = -lpaho-mqtt3a -ljansson -lminiupnpc -lm -lz -lpthread -lconfig -lpcap -lbacktrace
all: linbpq
#other OS

@ -193,6 +193,7 @@ struct TCPINFO
HWND hCMSWnd;
int SecureTelnet;
int noWebSocks;
int ReportRelayTraffic; // Send WL2K Reports for Relay Traffic
char * WebTermCSS; // css override for web terminal

Loading…
Cancel
Save

Powered by TurnKey Linux.