6.0.23.30

This commit is contained in:
John Wiseman 2022-12-09 11:05:49 +00:00
parent e95c1f37c3
commit ebc845ec8c
47 changed files with 15676 additions and 1872 deletions

Binary file not shown.

View File

@ -4360,7 +4360,7 @@ VOID ARDOPDoTNCReinit(struct TNCINFO * TNC)
if (TNC->ReinitState == 2) // In Term State, Sending Initialisation Commands
{
Debugprintf("DOTNCReinit Complete - Entering Hostmode");
Debugprintf("DOTNCReinit %d Complete - Entering Hostmode", TNC->Port);
TNC->TXBuffer[2] = 0;
TNC->Toggle = 0;

View File

@ -1194,7 +1194,8 @@ int SendMessageDetails(struct MsgInfo * Msg, char * Reply, char * Key)
{
USER = UserRecPtr[n];
if ((USER->flags & F_BBS) && USER->BBSNumber)
if ((USER->flags & F_BBS))
if (USER->BBSNumber)
bbs[i++] = USER;
}

View File

@ -414,7 +414,7 @@ void WriteLogLine(CIRCUIT * conn, int Flag, char * Msg, int MsgLen, int Flags)
// Don't close/reopen logs every time
if ((LT - LastLogTime[Flags]) > 60)
// if ((LT - LastLogTime[Flags]) > 60)
{
LastLogTime[Flags] = LT;
fclose(LogHandle[Flags]);
@ -1005,8 +1005,13 @@ Next:
user = UserRecPtr[i];
if (user->flags & F_BBS)
{
if (user->BBSNumber == 0)
user->BBSNumber = FindFreeBBSNumber();
CheckBBSNumber(user->BBSNumber);
}
}
SortBBSChain();
}
@ -9846,7 +9851,7 @@ BOOL GetConfig(char * ConfigName)
return(EXIT_FAILURE);
}
#ifdef FREEBSD
#if IBCONFIG_VER_MINOR > 4
config_set_option(&cfg, CONFIG_OPTION_AUTOCONVERT, 1);
#else
config_set_auto_convert (&cfg, 1);

BIN
BPQChat.aps Normal file

Binary file not shown.

View File

@ -1,4 +1,4 @@
// Microsoft Visual C++ generated resource script.
//Microsoft Developer Studio generated resource script.
//
#include "chatrc.h"
@ -19,19 +19,21 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
// 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_PROPPAGE_LARGE DIALOG 0, 0, 235, 156
STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
IDD_PROPPAGE_LARGE DIALOG DISCARDABLE 0, 0, 235, 156
STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Property Page"
FONT 8, "MS Sans Serif"
BEGIN
@ -44,7 +46,7 @@ END
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
GUIDELINES DESIGNINFO MOVEABLE PURE
BEGIN
IDD_PROPPAGE_LARGE, DIALOG
BEGIN
@ -56,29 +58,33 @@ BEGIN
END
#endif // APSTUDIO_INVOKED
#endif // English (United States) resources
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (United Kingdom) 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
//
BPQMAILCHAT DIALOG 120, 50, 294, 165
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
BPQMAILCHAT DIALOG DISCARDABLE 120, 50, 294, 165
STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "G8BPQ Chat Server 1.0.0.10 Beta July 2009"
CLASS "BPQMailChat"
FONT 8, "FixedSys"
BEGIN
LTEXT " User Callsign Stream Conf Queue RTT",101,3,4,184,10
LTEXT " User Callsign Stream Conf Queue RTT",101,3,4,
184,10
LTEXT "UTC",IDC_STATIC,197,5,15,10
LTEXT "Local",IDC_STATIC,241,5,21,10
LTEXT "",IDC_UTC,215,5,25,10
@ -96,8 +102,9 @@ BEGIN
LTEXT "0",IDC_CONSEM,274,135,20,10
END
CONSOLEWINDOW DIALOG 17, 25, 400, 301
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CONSOLEWINDOW DIALOG DISCARDABLE 17, 25, 400, 301
STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Chat Console"
MENU CONSOLEMENU
CLASS "CONSOLEWINDOW"
@ -106,108 +113,134 @@ BEGIN
EDITTEXT 118,24,228,348,15,ES_AUTOHSCROLL | ES_NOHIDESEL
END
BPQMONWINDOW DIALOG 17, 25, 400, 300
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
BPQMONWINDOW DIALOG DISCARDABLE 17, 25, 400, 300
STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Chat Monitor"
MENU MENU_2
CLASS "BPQMONWINDOW"
FONT 8, "FixedSys"
BEGIN
LISTBOX 121,6,25,290,109,LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL
LISTBOX 121,6,25,290,109,LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL
END
BPQDEBUGWINDOW DIALOG 17, 25, 400, 300
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
BPQDEBUGWINDOW DIALOG DISCARDABLE 17, 25, 400, 300
STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Chat Debug Window"
MENU MENU_3
CLASS "BPQDEBUGWINDOW"
FONT 8, "FixedSys"
BEGIN
LISTBOX 122,5,156,290,109,LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_HSCROLL
LISTBOX 122,5,156,290,109,LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL
END
CHAT_CONFIG DIALOGEX 0, 0, 371, 296
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CHAT_CONFIG DIALOG DISCARDABLE 0, 0, 372, 318
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configuration"
FONT 8, "System", 0, 0, 0x0
FONT 8, "System"
BEGIN
LTEXT "Chat Appl Number",IDC_STATIC,91,85,61,8
EDITTEXT ID_CHATAPPL,159,83,29,14
LTEXT "Nodes to link to",IDC_STATIC,159,106,53,8
EDITTEXT ID_CHATNODES,29,119,313,60,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
DEFPUSHBUTTON "Save",SAVENODES,160,183,50,14,BS_CENTER | BS_VCENTER
LTEXT "The Application Number defines which BPQ32 Application gives access to the Chat Server. Note this is the APPLNumber (1-32) not an Application Mask, as uses in many BPQ32 programs.",IDC_STATIC,10,10,353,18
LTEXT "The Nodes to link to box defines which other Chat Nodes should be connected to, or from which connections may be accepted. The format is ALIAS:CALL, eg BPQCHT:G8BPQ-4. Note these must be directly connectable - ie in your NODES table.",IDC_STATIC,10,30,355,25
LTEXT "The Callsign of the Chat Node is not defined here - It is obtained from the BPQ32 APPLCALL parameter corresponding to the Chat Appl Number.",IDC_STATIC,10,60,360,25
LTEXT "Streams",IDC_STATIC,199,85,34,8
EDITTEXT ID_STREAMS,236,83,29,14
LTEXT "Chat Welcome Message",IDC_STATIC,142,202,82,8
EDITTEXT IDM_CHATUSERMSG,15,214,340,54,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL
DEFPUSHBUTTON "Save Welcome Message",SAVEWELCOME,140,274,91,14,BS_CENTER | BS_VCENTER
LTEXT "Chat Appl Number",IDC_STATIC,91,110,61,8
EDITTEXT ID_CHATAPPL,159,108,29,14
LTEXT "Nodes to link to",IDC_STATIC,159,126,53,8
EDITTEXT ID_CHATNODES,29,141,313,60,ES_MULTILINE | ES_UPPERCASE |
ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
DEFPUSHBUTTON "Save",SAVENODES,160,204,50,14,BS_CENTER | BS_VCENTER
LTEXT "The Application Number defines which BPQ32 Application gives access to the Chat Server. Note this is the APPLNumber (1-32) not an Application Mask, as uses in many BPQ32 programs.",
IDC_STATIC,10,10,353,18
LTEXT "The Nodes to link to box defines which other Chat Nodes should be connected to, or from which connections may be accepted. The format is ALIAS:CALL, eg BPQCHT:G8BPQ-4.",
IDC_STATIC,10,31,355,22
LTEXT "The Callsign of the Chat Node is not defined here - it is obtained from the BPQ32 APPLCALL parameter corresponding to the Chat Appl Number.",
IDC_STATIC,10,76,360,21
LTEXT "Streams",IDC_STATIC,199,110,34,8
EDITTEXT ID_STREAMS,236,108,29,14
LTEXT "Chat Welcome Message",IDC_STATIC,142,222,82,8
EDITTEXT IDM_CHATUSERMSG,15,235,340,54,ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN |
WS_VSCROLL
DEFPUSHBUTTON "Save Welcome Message",SAVEWELCOME,140,296,91,14,
BS_CENTER | BS_VCENTER
LTEXT " If the node is not directly connectable (ie is not in your NODES table) you can add a connect script. This consists of a series of commands seperared by |, eg NOTCHT:G8BPQ-4|C 3 GM8BPQ-9|CHAT",
IDC_STATIC,9,52,355,24
END
IDD_USERADDED_BOX DIALOG 176, 132, 129, 68
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
IDD_USERADDED_BOX DIALOG DISCARDABLE 176, 132, 129, 68
STYLE DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
FONT 8, "System"
BEGIN
DEFPUSHBUTTON "Ok",0,47,48,36,17,BS_CENTER | BS_VCENTER
LTEXT "Label0",5050,5,10,117,32
END
WELCOMEMSG DIALOG 26, 5, 381, 266
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
WELCOMEMSG DIALOG DISCARDABLE 26, 5, 381, 266
STYLE WS_CHILD | WS_VISIBLE
FONT 8, "System"
BEGIN
LTEXT "Normal User Welcome Message",IDC_STATIC,5,7,130,8
EDITTEXT IDM_USERMSG,5,20,340,45,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
EDITTEXT IDM_USERMSG,5,20,340,45,ES_MULTILINE | ES_AUTOVSCROLL |
ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Chat Welcome Message",IDC_STATIC,5,67,130,8
EDITTEXT IDM_CHATUSERMSG,5,80,340,45,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
EDITTEXT IDM_CHATUSERMSG,5,80,340,45,ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "New User Welcome Message",IDC_STATIC,5,127,130,8
EDITTEXT IDM_NEWUSERMSG,5,140,340,45,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
EDITTEXT IDM_NEWUSERMSG,5,140,340,45,ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
LTEXT "Expert User Welcome Message",IDC_STATIC,5,187,130,8
EDITTEXT IDM_EXPERTUSERMSG,5,200,340,25,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
EDITTEXT IDM_EXPERTUSERMSG,5,200,340,25,ES_MULTILINE |
ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN
DEFPUSHBUTTON "Save",IDM_MSGSAVE,166,250,50,14,BS_CENTER | BS_VCENTER
LTEXT "$U : Callsign of the user $I : First name of the user $X Messages for user $x Unread messages",IDC_STATIC,5,228,369,8
LTEXT "$L : Number of the latest message $N : Number of active messages. $Z : Last message read by user",IDC_STATIC,5,238,365,10
LTEXT "$U : Callsign of the user $I : First name of the user $X Messages for user $x Unread messages",
IDC_STATIC,5,228,369,8
LTEXT "$L : Number of the latest message $N : Number of active messages. $Z : Last message read by user",
IDC_STATIC,5,238,365,10
END
IDD_CHATCOLCONFIG DIALOG 0, 0, 224, 120
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
IDD_CHATCOLCONFIG DIALOG DISCARDABLE 0, 0, 224, 120
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Chat Colour Configuration"
FONT 8, "System"
BEGIN
DEFPUSHBUTTON "Save",IDOK,50,95,50,14
PUSHBUTTON "Close",IDCANCEL,120,95,50,14
COMBOBOX IDC_CHATCALLS,10,5,100,60,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_CHATCOLOURS,115,5,100,60,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_CHATCALLS,10,5,100,60,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_CHATCOLOURS,115,5,100,60,CBS_DROPDOWNLIST |
CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
END
IDD_UPDATECHATMAP DIALOG 0, 0, 274, 146
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
IDD_UPDATECHATMAP DIALOG DISCARDABLE 0, 0, 274, 146
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Update Chat Map"
FONT 8, "System"
BEGIN
LTEXT "Click Help for full information about the Chat Network Map",IDC_STATIC,5,10,195,15
LTEXT "Click Help for full information about the Chat Network Map",
IDC_STATIC,5,10,195,15
DEFPUSHBUTTON "? Help",IDC_MAPHELP,220,10,33,11,BS_CENTER | BS_VCENTER
LTEXT "Position",IDC_STATIC,5,30,35,10
EDITTEXT IDC_MAPPOSITION,5,45,145,15,ES_AUTOHSCROLL
LTEXT "Popup Box Text. ",IDC_STATIC,5,65,70,9
EDITTEXT IDC_POPUPTEXT,5,80,200,35,ES_MULTILINE | ES_AUTOHSCROLL | WS_HSCROLL
EDITTEXT IDC_POPUPTEXT,5,80,200,35,ES_MULTILINE | ES_AUTOHSCROLL |
WS_HSCROLL
LTEXT "Popup Mode",IDC_STATIC,215,80,49,10
CONTROL "Hover",IDC_HOVER,"Button",BS_AUTORADIOBUTTON,219,92,45,10
CONTROL "Click",IDC_CLICK,"Button",BS_AUTORADIOBUTTON,219,104,45,10
CONTROL "Hover",IDC_HOVER,"Button",BS_AUTORADIOBUTTON,219,92,45,
10
CONTROL "Click",IDC_CLICK,"Button",BS_AUTORADIOBUTTON,219,104,45,
10
DEFPUSHBUTTON "Send to Map System",IDSENDTOMAP,5,125,90,14
DEFPUSHBUTTON "Save",IDOK,100,125,35,14
PUSHBUTTON "Cancel",IDCANCEL,140,125,40,14
END
IDD_HRHELP DIALOG 0, 0, 415, 182
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
IDD_HRHELP DIALOG DISCARDABLE 0, 0, 415, 182
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hierarchical Forwarding Help"
FONT 8, "System"
BEGIN
DEFPUSHBUTTON "OK",IDOK,182,158,50,14
EDITTEXT IDC_HRTEXT,4,4,405,150,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
EDITTEXT IDC_HRTEXT,4,4,405,150,ES_MULTILINE | ES_AUTOVSCROLL |
ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_HSCROLL
END
@ -217,7 +250,7 @@ END
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
GUIDELINES DESIGNINFO MOVEABLE PURE
BEGIN
"BPQMAILCHAT", DIALOG
BEGIN
@ -226,6 +259,8 @@ BEGIN
CHAT_CONFIG, DIALOG
BEGIN
RIGHTMARGIN, 371
BOTTOMMARGIN, 296
END
"IDD_USERADDED_BOX", DIALOG
@ -249,7 +284,7 @@ END
// Menu
//
IDC_BPQMailChat MENU
IDC_BPQMailChat MENU DISCARDABLE
BEGIN
POPUP "Actions"
BEGIN
@ -278,7 +313,7 @@ BEGIN
END
END
CONSOLEMENU MENU
CONSOLEMENU MENU DISCARDABLE
BEGIN
POPUP "Options"
BEGIN
@ -298,7 +333,7 @@ BEGIN
END
END
MENU_2 MENU
MENU_2 MENU DISCARDABLE
BEGIN
POPUP "Monitor"
BEGIN
@ -311,7 +346,7 @@ BEGIN
END
END
MENU_3 MENU
MENU_3 MENU DISCARDABLE
BEGIN
POPUP "Edit"
BEGIN
@ -326,7 +361,7 @@ END
// Accelerator
//
IDC_TELNETSERVER ACCELERATORS
IDC_TELNETSERVER ACCELERATORS MOVEABLE PURE
BEGIN
"?", IDM_ABOUT, ASCII, ALT
"/", IDM_ABOUT, ASCII, ALT
@ -339,12 +374,12 @@ END
// TEXTINCLUDE
//
1 TEXTINCLUDE
1 TEXTINCLUDE MOVEABLE PURE
BEGIN
"chatrc.h\0"
END
2 TEXTINCLUDE
2 TEXTINCLUDE MOVEABLE PURE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
@ -356,18 +391,18 @@ BEGIN
"\0"
END
3 TEXTINCLUDE
3 TEXTINCLUDE MOVEABLE PURE
BEGIN
"#include ""..\\StdVer.inc""\r\n"
"\0"
END
1 TEXTINCLUDE
1 TEXTINCLUDE MOVEABLE PURE
BEGIN
"resource.h\0"
END
3 TEXTINCLUDE
3 TEXTINCLUDE MOVEABLE PURE
BEGIN
"#include ""..\\StdVer.inc""\r\n"
"\r\n"
@ -382,9 +417,9 @@ END
// AFX_DIALOG_LAYOUT
//
CHAT_CONFIG AFX_DIALOG_LAYOUT
CHAT_CONFIG AFX_DIALOG_LAYOUT MOVEABLE PURE
BEGIN
0
0x0000
END
@ -393,13 +428,13 @@ END
// String Table
//
STRINGTABLE
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "BPQMailChat"
IDC_BPQMailChat "BPQMailChat"
END
#endif // English (United Kingdom) resources
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////

View File

@ -1103,6 +1103,9 @@
// Change web buttons to white on black when pressed (10)
// Add auto-refresh option to Webmail index page (25)
// Fix displaying help and info files with crlf line endings on Linux (28)
// Impotove validation of extended FC message (32)
// Improve WP check for SYSTEM as a callsihn (33)
#include "bpqmail.h"
#define MAIL

View File

@ -1127,7 +1127,11 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// Add APRS Igate RXOnly option (29)
// Fix RMC message handling with prefixes other than GP (29)
// Add GPSD support for APRS (30)
// Attempt to tix Tracker/WinRPR reconnect code (30)
// Attempt to fix Tracker/WinRPR reconnect code (30)
// Changes to FreeDATA - Don't use deamon and add txlevel and send text commands (31)
// Fix interactive commands in tracker driver (33)
#define CKernel

View File

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

View File

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

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup />
</Project>

View File

@ -78,7 +78,7 @@ void RunEventProgram(char * Program, char * Param)
#else
DllExport int APIENTRY RunEventProgram(char * Program, char * Param)
DllExport void APIENTRY RunEventProgram(char * Program, char * Param)
{
int n = 0;
char cmdLine[256];
@ -87,7 +87,7 @@ DllExport int APIENTRY RunEventProgram(char * Program, char * Param)
PROCESS_INFORMATION PInfo; // pointer to PROCESS_INFORMATION
if (EventsEnabled == 0)
return 0;
return;
SInfo.cb=sizeof(SInfo);
@ -105,5 +105,5 @@ DllExport int APIENTRY RunEventProgram(char * Program, char * Param)
#endif
return 0;
return;
}

View File

@ -552,7 +552,6 @@ ok:
// FC EM A3EDD4P00P55 377 281 0
/*
FC Proposal code. Requires B2 SID feature.
@ -576,7 +575,7 @@ ok:
if (ptr == NULL) goto badparam2;
// Relay In RO mode adds @MPS@R to the MID. Non't know why (yet!)
// Relay In RO mode adds @MPS@R to the MID. Don't know why (yet!)
MPS = strlop(ptr, '@');
if (MPS)
@ -605,7 +604,7 @@ ok:
char * To = strtok_s(NULL, seps, &Context);
char * Type = strtok_s(NULL, seps, &Context);
if (From && To && ATBBS && CheckRejFilters(From, To, ATBBS, NULL, *Type))
if (From && To && ATBBS && Type && CheckRejFilters(From, To, ATBBS, NULL, *Type))
{
memset(FBBHeader, 0, sizeof(struct FBBHeaderLine)); // Clear header
conn->FBBReplyChars[conn->FBBReplyIndex++] = '-';

4124
FreeDATA-DESKTOP-TGEL8RC.c Normal file

File diff suppressed because it is too large Load Diff

4654
FreeDATA-HPLaptop-2.c Normal file

File diff suppressed because it is too large Load Diff

1415
FreeDATA.c

File diff suppressed because it is too large Load Diff

4631
FreeDATA.c.bak Normal file

File diff suppressed because it is too large Load Diff

View File

@ -837,9 +837,9 @@ VOID HALPoll(int Port)
UCHAR * MsgPtr;
unsigned char TXMsg[500];
buffptr = (UINT * )STREAM->BPQtoPACTOR_Q;
buffptr = (PMSGWITHLEN)STREAM->BPQtoPACTOR_Q;
datalen = buffptr->Len;
MsgPtr = (UCHAR *)buffptr->Data;
MsgPtr = buffptr->Data;
if (STREAM->Connected)
{

View File

@ -65,6 +65,7 @@ VOID FromLOC(char * Locator, double * pLat, double * pLon);
BOOL ToLOC(double Lat, double Lon , char * Locator);
int GetPosnFromAPRS(char * Call, double * Lat, double * Lon);
char * stristr (char *ch1, char *ch2);
static RECT Rect;
@ -210,7 +211,8 @@ LRESULT CALLBACK PacWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPara
{
if (TNC->ProgramPath)
{
if (strstr(TNC->ProgramPath, " TNC") || strstr(TNC->ProgramPath, "ARDOP") || strstr(TNC->ProgramPath, "VARA"))
if (strstr(TNC->ProgramPath, " TNC") || strstr(TNC->ProgramPath, "ARDOP")
|| strstr(TNC->ProgramPath, "VARA") || stristr(TNC->ProgramPath, "FREEDATA"))
{
EnableMenuItem(TNC->hMenu, WINMOR_RESTART, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(TNC->hMenu, WINMOR_KILL, MF_BYCOMMAND | MF_ENABLED);
@ -311,7 +313,6 @@ LRESULT CALLBACK PacWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPara
case WM_HSCROLL:
{
DWORD dwPos; // current position of slider
char value[16];
switch (LOWORD(wParam))
@ -765,10 +766,10 @@ IdTag (random alphanumeric, 12 chars)
}
}
if (ADIF == NULL || ADIF->LOC[0] == 0)
if (ADIF == NULL || ADIF->LOC[0] == 0 || ADIF->Call[0] == 0)
return TRUE;
if (ADIF->StartTime == 0 || ADIF->ServerSID[0] == 0)
if (ADIF->StartTime == 0 || ADIF->ServerSID[0] == 0 || ADIF->CMSCall[0] == 0)
return TRUE;
T = time(NULL);
@ -1853,6 +1854,9 @@ int standardParams(struct TNCINFO * TNC, char * buf)
TNC->LISTENCALLS = _strdup(&buf[8]);
strlop(TNC->LISTENCALLS, '\r');
}
else if (_memicmp(buf, "MAXCONREQ", 9) == 0) // Hold Time for Busy Detect
TNC->MaxConReq = atoi(&buf[9]);
else if (_memicmp(buf, "FREQUENCY", 9) == 0)
TNC->Frequency = _strdup(&buf[10]);
else if (_memicmp(buf, "SendTandRtoRelay", 16) == 0)

View File

@ -1259,6 +1259,7 @@ void chkctl(ChatCIRCUIT *ckt_from, char * Buffer, int Len)
user->lastrealmsgtime = user->lastmsgtime = time(NULL);
text_tellu(user, f1, NULL, o_topic);
HistoryCount = AddtoHistory(user, f1);
for (ckt_to = circuit_hd; ckt_to; ckt_to = ckt_to->next)
{

BIN
RCa22388 Normal file

Binary file not shown.

View File

@ -857,6 +857,7 @@ static void DEDCheckRX(struct TNCINFO * TNC)
TNC->HOSTSTATE = 0;
TNC->Timeout = 0;
TNC->RXLen = 0;
TNC->TermReinitCount = 0;
return;
}
@ -1052,15 +1053,23 @@ VOID DEDPoll(int Port)
// Can't use retries, as we have no way of detecting lost chars. Have to re-init on timeout
// if (TNC->HostMode == 0 || TNC->ReinitState == 10) // 10 is Recovery Mode
// {
// DoTermModeTimeout(TNC);
// return;
// }
if (TNC->HostMode == 0 || TNC->ReinitState == 10) // 10 is Recovery Mode
{
TNC->TermReinitCount++;
if (TNC->TermReinitCount == 10)
goto reinit;
DoTermModeTimeout(TNC);
return;
}
// Timed out in host mode - Clear any connection and reinit the TNC
Debugprintf("DEDHOST - Link to TNC Lost Port %d", TNC->Port);
reinit:
TNC->TNCOK = FALSE;
sprintf(TNC->WEB_COMMSSTATE, "%s Open but TNC not responding", TNC->PortRecord->PORTCONTROL.SerialPortName);
@ -1069,6 +1078,7 @@ VOID DEDPoll(int Port)
TNC->HostMode = 0;
TNC->ReinitState = 0;
TNC->TermReinitCount = 0;
CloseCOMPort(TNC->hDevice);
OpenCOMMPort(TNC, TNC->PortRecord->PORTCONTROL.SerialPortName, TNC->PortRecord->PORTCONTROL.BAUDRATE, TRUE);
@ -1388,7 +1398,7 @@ VOID DEDPoll(int Port)
}
Poll[2] = datalen - 1;
memcpy(&Poll[3], buffptr + 2, datalen);
memcpy(&Poll[3], buffptr->Data, datalen);
ReleaseBuffer(buffptr);
@ -1612,6 +1622,7 @@ VOID DoTermModeTimeout(struct TNCINFO * TNC)
TNC->hDevice =(HANDLE)0;
TNC->ReopenTimer = 290;
TNC->HostMode = FALSE;
TNC->TermReinitCount = 0;
return;
}
@ -1623,6 +1634,7 @@ VOID DoTermModeTimeout(struct TNCINFO * TNC)
TNC->HostMode = TRUE;
TNC->IntCmdDelay = 10;
TNC->TermReinitCount = 0;
return;
}
@ -1698,6 +1710,7 @@ VOID TrkProcessTermModeResponse(struct TNCINFO * TNC)
{
TNC->HostMode = TRUE;
TNC->Timeout = 0;
TNC->TermReinitCount = 0;
}
return;
}
@ -1726,6 +1739,7 @@ VOID TrkProcessDEDFrame(struct TNCINFO * TNC)
TNC->ReinitState = 0;
TNC->RXLen = 0;
TNC->HOSTSTATE = 0;
TNC->TermReinitCount = 0;
Debugprintf("TRK - Resync Complete");
return;

4
VARA.c
View File

@ -865,8 +865,8 @@ void CountRestarts(struct TNCINFO * TNC)
sprintf_s(Time, sizeof(Time),"%04d/%02d/%02d %02d:%02dZ",
tm->tm_year +1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min);
MySetWindowText(TNC->xIDC_RESTARTTIME, Time);
strcpy(TNC->WEB_RESTARTTIME, Time);
//MySetWindowText(TNC->xIDC_RESTARTTIME, Time);
//strcpy(TNC->WEB_RESTARTTIME, Time);
sprintf_s(Time, sizeof(Time),"%d", TNC->Restarts);
MySetWindowText(TNC->xIDC_RESTARTS, Time);

View File

@ -10,8 +10,8 @@
#endif
#define KVers 6,0,23,30
#define KVerstring "6.0.23.30\0"
#define KVers 6,0,23,33
#define KVerstring "6.0.23.33\0"
#ifdef CKernel

View File

@ -608,7 +608,7 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
}
}
if (TNC->BusyDelay)
if (TNC->ConnectCmd && TNC->BusyDelay)
{
// Still Busy?
@ -626,6 +626,8 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
SetWindowText(TNC->xIDC_TNCSTATE, TNC->WEB_TNCSTATE);
free(TNC->ConnectCmd);
TNC->ConnectCmd = 0;
TNC->BusyDelay = 0;
}
else
@ -3013,13 +3015,13 @@ BOOL RestartTNC(struct TNCINFO * TNC)
return TRUE;
}
#else
{
int n = 0;
STARTUPINFO SInfo; // pointer to STARTUPINFO
PROCESS_INFORMATION PInfo; // pointer to PROCESS_INFORMATION
// char workingDirectory[256];
char workingDirectory[256];
int i = strlen(TNC->ProgramPath);
SInfo.cb=sizeof(SInfo);
SInfo.lpReserved=NULL;
@ -3031,13 +3033,23 @@ BOOL RestartTNC(struct TNCINFO * TNC)
Debugprintf("RestartTNC Called for %s", TNC->ProgramPath);
strcpy(workingDirectory, TNC->ProgramPath);
while (i--)
{
if (workingDirectory[i] == '\\' || workingDirectory[i] == '/')
{
workingDirectory[i] = 0;
break;
}
}
while (KillOldTNC(TNC->ProgramPath) && n++ < 100)
{
Sleep(100);
}
if (CreateProcess(NULL, TNC->ProgramPath, NULL, NULL, FALSE,0 ,NULL ,NULL, &SInfo, &PInfo))
if (CreateProcess(NULL, TNC->ProgramPath, NULL, NULL, FALSE,0, NULL, workingDirectory, &SInfo, &PInfo))
{
Debugprintf("Restart TNC OK");
TNC->PID = PInfo.dwProcessId;

View File

@ -49,6 +49,38 @@ WPRec * AllocateWPRecord()
return WP;
}
int BadCall(char * Call)
{
if (_stricmp(Call, "RMS") == 0)
return 1;
if (_stricmp(Call, "SYSTEM") == 0)
return 1;
if (_stricmp(Call, "SWITCH") == 0)
return 1;
if (_stricmp(Call, "SYSOP") == 0)
return 1;
if (_memicmp(Call, "SMTP", 4) == 0)
return 1;
if (_memicmp(Call, "SMTP:", 5) == 0)
return 1;
if (_stricmp(Call, "AMPR") == 0)
return 1;
if (_stricmp(Call, "FILE") == 0)
return 1;
if (_memicmp(Call, "MCAST", 5) == 0)
return 1;
return 0;
}
extern config_t cfg;
VOID GetWPDatabase()
@ -267,31 +299,7 @@ WPOK:;
if (strchr(WPRec.callsign, ':'))
continue;
if (_stricmp(WPRec.callsign, "RMS") == 0)
continue;
if (_stricmp(WPRec.callsign, "SYSTEM") == 0)
continue;
if (_stricmp(WPRec.callsign, "SWITCH") == 0)
continue;
if (_stricmp(WPRec.callsign, "SYSOP") == 0)
continue;
if (_memicmp(WPRec.callsign, "SMTP", 4) == 0)
continue;
if (_memicmp(WPRec.callsign, "SMTP:", 5) == 0)
continue;
if (_stricmp(WPRec.callsign, "AMPR") == 0)
continue;
if (_stricmp(WPRec.callsign, "FILE") == 0)
continue;
if (_memicmp(WPRec.callsign, "MCAST", 5) == 0)
if (BadCall(WPRec.callsign))
continue;
WP = LookupWP(WPRec.callsign);
@ -354,31 +362,7 @@ Next:
if (strchr(WPRec.callsign, ':'))
goto Next;
if (_stricmp(WPRec.callsign, "RMS") == 0)
goto Next;
if (_stricmp(WPRec.callsign, "SYSTEM") == 0)
goto Next;
if (_stricmp(WPRec.callsign, "SWITCH") == 0)
goto Next;
if (_stricmp(WPRec.callsign, "SYSOP") == 0)
goto Next;
if (_memicmp(WPRec.callsign, "SMTP", 4) == 0)
goto Next;
if (_memicmp(WPRec.callsign, "SMTP:", 5) == 0)
goto Next;
if (_stricmp(WPRec.callsign, "AMPR") == 0)
goto Next;
if (_stricmp(WPRec.callsign, "FILE") == 0)
goto Next;
if (_memicmp(WPRec.callsign, "MCAST", 5) == 0)
if (BadCall(WPRec.callsign))
goto Next;
WP = LookupWP(WPRec.callsign);
@ -800,31 +784,7 @@ VOID GetWPBBSInfo(char * Rline)
memcpy(QTH, ptr2 + 1, ptr1 - ptr2 - 1);
}
if (_stricmp(Call, "RMS") == 0)
return;
if (_stricmp(Call, "SYSTEM") == 0)
return;
if (_stricmp(Call, "SWITCH") == 0)
return;
if (_stricmp(Call, "SYSOP") == 0)
return;
if (_memicmp(Call, "SMTP", 4) == 0)
return;
if (_memicmp(Call, "SMTP:", 5) == 0)
return;
if (_stricmp(Call, "AMPR") == 0)
return;
if (_stricmp(Call, "FILE") == 0)
return;
if (_memicmp(Call, "MCAST", 5) == 0)
if (BadCall(Call))
return;
WP = LookupWP(Call);
@ -898,6 +858,9 @@ VOID GetWPInfoFromRLine(char * From, char * FirstRLine, time_t RLineTime)
char * ptr1 = strchr(FirstRLine, '@');
char * ptr2 = strchr(FirstRLine, '\r');
if (BadCall(From))
return;
if (!ptr1)
return; // Duff
@ -1074,31 +1037,7 @@ it will not be replaced. This flag will be used in case the WP update messages a
if (strchr(Call, ':'))
break;
if (_stricmp(Call, "RMS") == 0)
break;
if (_stricmp(Call, "SWITCH") == 0)
break;
if (_stricmp(Call, "SYSTEM") == 0)
break;
if (_stricmp(Call, "SYSOP") == 0)
break;
if (_memicmp(Call, "SMTP", 4) == 0)
break;
if (_memicmp(Call, "SMTP:", 5) == 0)
break;
if (_stricmp(Call, "AMPR") == 0)
break;
if (_stricmp(Call, "FILE") == 0)
break;
if (_memicmp(Call, "MCAST", 5) == 0)
if (BadCall(Call))
break;
WP = LookupWP(Call);
@ -1242,37 +1181,7 @@ VOID UpdateWPWithUserInfo(struct UserInfo * user)
if (strchr(user->Call, ':'))
return;
if (_stricmp(user->Call, "RMS") == 0)
return;
if (_stricmp(user->Call, "SYSTEM") == 0)
return;
if (_stricmp(user->Call, "SWITCH") == 0)
return;
if (_stricmp(user->Call, "SYSOP") == 0)
return;
if (_memicmp(user->Call, "SMTP", 4) == 0)
return;
if (_memicmp(user->Call, "SMTP:", 5) == 0)
return;
if (_stricmp(user->Call, "AMPR") == 0)
return;
if (_stricmp(user->Call, "FILE") == 0)
return;
if (_stricmp(user->Call, "SYNC") == 0)
return;
if (_memicmp(user->Call, "MCAST", 5) == 0)
return;
if (_stricmp(user->Call, user->Name) == 0)
if (BadCall(user->Call))
return;
if (!WP)

View File

@ -64,6 +64,8 @@
// Check for and remove names set to *RTL
// Add option to run user program when chat user connects (27)
// Add History (28)
// Add connect scripts to config page text (31)
// Fix History (31)
#include "BPQChat.h"
#include "Dbghelp.h"

View File

@ -20,7 +20,7 @@
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#define LIBCONFIG_STATIC
#include "libconfig.h"
#include <libconfig.h>
#include "compatbits.h"

40
config.ini Normal file
View File

@ -0,0 +1,40 @@
[NETWORK]
#network settings
tncport = 3004
[STATION]
#station settings
mycall = GM8BPQ-2
mygrid = IO68VL
[AUDIO]
#audio settings
rx = 8
tx = 16
txaudiolevel = 125
[RADIO]
#radio settings
radiocontrol = disabled
devicename = RIG_MODEL_NETRIGCTL
deviceport = COM99
serialspeed = 19200
pttprotocol = USB
pttport = COM99
data_bits = 8
stop_bits = 1
handshake = None
rigctld_ip = 127.0.0.1
rigctld_port = 0
[TNC]
#tnc settings
scatter = False
fft = False
narrowband = True
fmin = -50.0
fmax = 50.0
qrv = True
rxbuffersize = 16
explorer = False

View File

@ -1,321 +0,0 @@
/* ----------------------------------------------------------------------------
libconfig - A library for processing structured configuration files
Copyright (C) 2005-2010 Mark A Lindner
This file is part of libconfig.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2.1 of
the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, see
<http://www.gnu.org/licenses/>.
----------------------------------------------------------------------------
*/
#ifndef __libconfig_h
#define __libconfig_h
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
#if defined(LIBCONFIG_STATIC)
#define LIBCONFIG_API
#elif defined(LIBCONFIG_EXPORTS)
#define LIBCONFIG_API __declspec(dllexport)
#else /* ! LIBCONFIG_EXPORTS */
#define LIBCONFIG_API __declspec(dllimport)
#endif /* LIBCONFIG_STATIC */
#else /* ! WIN32 */
#define LIBCONFIG_API
#endif /* WIN32 */
#define LIBCONFIG_VER_MAJOR 1
#define LIBCONFIG_VER_MINOR 4
#define LIBCONFIG_VER_REVISION 9
#include <stdio.h>
#define CONFIG_TYPE_NONE 0
#define CONFIG_TYPE_GROUP 1
#define CONFIG_TYPE_INT 2
#define CONFIG_TYPE_INT64 3
#define CONFIG_TYPE_FLOAT 4
#define CONFIG_TYPE_STRING 5
#define CONFIG_TYPE_BOOL 6
#define CONFIG_TYPE_ARRAY 7
#define CONFIG_TYPE_LIST 8
#define CONFIG_FORMAT_DEFAULT 0
#define CONFIG_FORMAT_HEX 1
#define CONFIG_OPTION_AUTOCONVERT 0x01
#define CONFIG_TRUE (1)
#define CONFIG_FALSE (0)
typedef union config_value_t
{
int ival;
long long llval;
double fval;
char *sval;
struct config_list_t *list;
} config_value_t;
typedef struct config_setting_t
{
char *name;
short type;
short format;
config_value_t value;
struct config_setting_t *parent;
struct config_t *config;
void *hook;
unsigned int line;
const char *file;
} config_setting_t;
typedef enum
{
CONFIG_ERR_NONE = 0,
CONFIG_ERR_FILE_IO = 1,
CONFIG_ERR_PARSE = 2
} config_error_t;
typedef struct config_list_t
{
unsigned int length;
config_setting_t **elements;
} config_list_t;
typedef struct config_t
{
config_setting_t *root;
void (*destructor)(void *);
unsigned short flags;
unsigned short tab_width;
short default_format;
const char *include_dir;
const char *error_text;
const char *error_file;
int error_line;
config_error_t error_type;
const char **filenames;
unsigned int num_filenames;
} config_t;
extern LIBCONFIG_API int config_read(config_t *config, FILE *stream);
extern LIBCONFIG_API void config_write(const config_t *config, FILE *stream);
extern LIBCONFIG_API void config_set_default_format(config_t *config,
short format);
extern LIBCONFIG_API void config_set_auto_convert(config_t *config, int flag);
extern LIBCONFIG_API int config_get_auto_convert(const config_t *config);
extern LIBCONFIG_API int config_read_string(config_t *config, const char *str);
extern LIBCONFIG_API int config_read_file(config_t *config,
const char *filename);
extern LIBCONFIG_API int config_write_file(config_t *config,
const char *filename);
extern LIBCONFIG_API void config_set_destructor(config_t *config,
void (*destructor)(void *));
extern LIBCONFIG_API void config_set_include_dir(config_t *config,
const char *include_dir);
extern LIBCONFIG_API void config_init(config_t *config);
extern LIBCONFIG_API void config_destroy(config_t *config);
extern LIBCONFIG_API int config_setting_get_int(
const config_setting_t *setting);
extern LIBCONFIG_API long long config_setting_get_int64(
const config_setting_t *setting);
extern LIBCONFIG_API double config_setting_get_float(
const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_get_bool(
const config_setting_t *setting);
extern LIBCONFIG_API const char *config_setting_get_string(
const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_lookup_int(
const config_setting_t *setting, const char *name, int *value);
extern LIBCONFIG_API int config_setting_lookup_int64(
const config_setting_t *setting, const char *name, long long *value);
extern LIBCONFIG_API int config_setting_lookup_float(
const config_setting_t *setting, const char *name, double *value);
extern LIBCONFIG_API int config_setting_lookup_bool(
const config_setting_t *setting, const char *name, int *value);
extern LIBCONFIG_API int config_setting_lookup_string(
const config_setting_t *setting, const char *name, const char **value);
extern LIBCONFIG_API int config_setting_set_int(config_setting_t *setting,
int value);
extern LIBCONFIG_API int config_setting_set_int64(config_setting_t *setting,
long long value);
extern LIBCONFIG_API int config_setting_set_float(config_setting_t *setting,
double value);
extern LIBCONFIG_API int config_setting_set_bool(config_setting_t *setting,
int value);
extern LIBCONFIG_API int config_setting_set_string(config_setting_t *setting,
const char *value);
extern LIBCONFIG_API int config_setting_set_format(config_setting_t *setting,
short format);
extern LIBCONFIG_API short config_setting_get_format(
const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_get_int_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API long long config_setting_get_int64_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API double config_setting_get_float_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API int config_setting_get_bool_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API const char *config_setting_get_string_elem(
const config_setting_t *setting, int idx);
extern LIBCONFIG_API config_setting_t *config_setting_set_int_elem(
config_setting_t *setting, int idx, int value);
extern LIBCONFIG_API config_setting_t *config_setting_set_int64_elem(
config_setting_t *setting, int idx, long long value);
extern LIBCONFIG_API config_setting_t *config_setting_set_float_elem(
config_setting_t *setting, int idx, double value);
extern LIBCONFIG_API config_setting_t *config_setting_set_bool_elem(
config_setting_t *setting, int idx, int value);
extern LIBCONFIG_API config_setting_t *config_setting_set_string_elem(
config_setting_t *setting, int idx, const char *value);
#define /* const char * */ config_get_include_dir(/* const config_t * */ C) \
((C)->include_dir)
#define /* int */ config_setting_type(/* const config_setting_t * */ S) \
((S)->type)
#define /* int */ config_setting_is_group(/* const config_setting_t * */ S) \
((S)->type == CONFIG_TYPE_GROUP)
#define /* int */ config_setting_is_array(/* const config_setting_t * */ S) \
((S)->type == CONFIG_TYPE_ARRAY)
#define /* int */ config_setting_is_list(/* const config_setting_t * */ S) \
((S)->type == CONFIG_TYPE_LIST)
#define /* int */ config_setting_is_aggregate( \
/* const config_setting_t * */ S) \
(((S)->type == CONFIG_TYPE_GROUP) || ((S)->type == CONFIG_TYPE_LIST) \
|| ((S)->type == CONFIG_TYPE_ARRAY))
#define /* int */ config_setting_is_number(/* const config_setting_t * */ S) \
(((S)->type == CONFIG_TYPE_INT) \
|| ((S)->type == CONFIG_TYPE_INT64) \
|| ((S)->type == CONFIG_TYPE_FLOAT))
#define /* int */ config_setting_is_scalar(/* const config_setting_t * */ S) \
(((S)->type == CONFIG_TYPE_BOOL) || ((S)->type == CONFIG_TYPE_STRING) \
|| config_setting_is_number(S))
#define /* const char * */ config_setting_name( \
/* const config_setting_t * */ S) \
((S)->name)
#define /* config_setting_t * */ config_setting_parent( \
/* const config_setting_t * */ S) \
((S)->parent)
#define /* int */ config_setting_is_root( \
/* const config_setting_t * */ S) \
((S)->parent ? CONFIG_FALSE : CONFIG_TRUE)
extern LIBCONFIG_API int config_setting_index(const config_setting_t *setting);
extern LIBCONFIG_API int config_setting_length(
const config_setting_t *setting);
extern LIBCONFIG_API config_setting_t *config_setting_get_elem(
const config_setting_t *setting, unsigned int idx);
extern LIBCONFIG_API config_setting_t *config_setting_get_member(
const config_setting_t *setting, const char *name);
extern LIBCONFIG_API config_setting_t *config_setting_add(
config_setting_t *parent, const char *name, int type);
extern LIBCONFIG_API int config_setting_remove(config_setting_t *parent,
const char *name);
extern LIBCONFIG_API int config_setting_remove_elem(config_setting_t *parent,
unsigned int idx);
extern LIBCONFIG_API void config_setting_set_hook(config_setting_t *setting,
void *hook);
#define config_setting_get_hook(S) ((S)->hook)
extern LIBCONFIG_API config_setting_t *config_lookup(const config_t *config,
const char *path);
extern LIBCONFIG_API config_setting_t *config_lookup_from(
config_setting_t *setting, const char *path);
extern LIBCONFIG_API int config_lookup_int(const config_t *config,
const char *path, int *value);
extern LIBCONFIG_API int config_lookup_int64(const config_t *config,
const char *path,
long long *value);
extern LIBCONFIG_API int config_lookup_float(const config_t *config,
const char *path, double *value);
extern LIBCONFIG_API int config_lookup_bool(const config_t *config,
const char *path, int *value);
extern LIBCONFIG_API int config_lookup_string(const config_t *config,
const char *path,
const char **value);
#define /* config_setting_t * */ config_root_setting( \
/* const config_t * */ C) \
((C)->root)
#define /* void */ config_set_default_format(/* config_t * */ C, \
/* short */ F) \
(C)->default_format = (F)
#define /* short */ config_get_default_format(/* config_t * */ C) \
((C)->default_format)
#define /* void */ config_set_tab_width(/* config_t * */ C, \
/* unsigned short */ W) \
(C)->tab_width = ((W) & 0x0F)
#define /* unsigned char */ config_get_tab_width(/* const config_t * */ C) \
((C)->tab_width)
#define /* unsigned short */ config_setting_source_line( \
/* const config_setting_t * */ S) \
((S)->line)
#define /* const char */ config_setting_source_file( \
/* const config_setting_t * */ S) \
((S)->file)
#define /* const char * */ config_error_text(/* const config_t * */ C) \
((C)->error_text)
#define /* const char * */ config_error_file(/* const config_t * */ C) \
((C)->error_file)
#define /* int */ config_error_line(/* const config_t * */ C) \
((C)->error_line)
#define /* config_error_t */ config_error_type(/* const config_t * */ C) \
((C)->error_type)
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __libconfig_h */

View File

@ -28,7 +28,7 @@ noi2c: linbpq
linbpq: $(OBJS)
gcc $(OBJS) -Xlinker -Map=output.map -l:libminiupnpc.a -lcrypto -lrt -lm -lz -lpthread -lconfig -lpcap -o linbpq
gcc $(OBJS) -Xlinker -Map=output.map -l:libminiupnpc.a -lcrypto -lrt -lm -lz -lpthread -lconfig -lpcap -lasound -o linbpq
sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep" linbpq
-include *.d

View File

@ -13,7 +13,7 @@ OBJS = pngwtran.o pngrtran.o pngset.o pngrio.o pngwio.o pngtrans.o pngrutil.o pn
MailCommands.o MailDataDefs.o LinBPQ.o MailRouting.o MailTCP.o MBLRoutines.o md5.o Moncode.o \
NNTPRoutines.o RigControl.o TelnetV6.o WINMOR.o TNCCode.o UZ7HODrv.o WPRoutines.o \
SCSTrackeMulti.o SCSPactor.o SCSTracker.o HanksRT.o UIRoutines.o AGWAPI.o AGWMoncode.o \
DRATS.o FreeDATA.o base64.o
DRATS.o FreeDATA.o base64.o Events.o
# Configuration:
@ -28,7 +28,7 @@ noi2c: linbpq
linbpq: $(OBJS)
gcc $(OBJS) -Xlinker -Map=output.map -l:libminiupnpc.a -lrt -lm -lz -lpthread -lconfig -lpcap -o linbpq
gcc $(OBJS) -Xlinker -Map=output.map -l:libminiupnpc.a -lcrypto -lrt -lm -lz -lpthread -lconfig -lpcap -o linbpq
sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep" linbpq
-include *.d

View File

@ -1422,7 +1422,7 @@ char * ChatConfigtxt()
"<div style=\"text-align: center;\"><font size=\"+1\"><span\r\n"
"style=\"font-family: monospace; font-weight: bold;\">Chat Configuration</span></font></div>\r\n"
"<div id=\"main\"\r\n"
"style=\"align: center; border: 2px solid ; overflow: auto; text-align: center; position: relative; top: 10px; height: 550px; width: 700px; left: 96.5px;\">\r\n"
"style=\"align: center; border: 2px solid ; overflow: auto; text-align: center; position: relative; top: 10px; height: 600px; width: 700px; left: 96.5px;\">\r\n"
"<form border=\"1\" style=\"font-family: monospace;\" method=\"post\"\r\n"
"action=\"/Chat/ChatConfig?%s\">\r\n"
"<h3>&nbsp;Chat Server Params<span style=\"font-family: monospace;\"></span></h3>\r\n"
@ -1431,10 +1431,13 @@ char * ChatConfigtxt()
"<span style=\"font-family: monospace;\"></span>Streams &nbsp; &nbsp;\r\n"
"&nbsp;&nbsp; <input value=\"%d\" size=\"3\" name=\"Streams\"><br>\r\n"
"&nbsp; <br>\r\n"
"&nbsp;The Nodes to link to box defines which other Chat Nodes should be connected to, or from which "
"connections may be accepted. The format is ALIAS:CALL, eg BPQCHT:G8BPQ-4. Note these must be directly "
"connectable - ie in your NODES table.<br>\r\n"
"<br>\r\n"
"<div style=\"text-align: left; width: 680px; margin: auto;\">The Nodes to link to box defines which other Chat Nodes should be connected to, or from which "
"connections may be accepted. The format is ALIAS:CALL, eg BPQCHT:G8BPQ-4. If the node is not directly "
"connectable (ie is not in your NODES table) you can add a connect script. This consists of a series of commands "
"seperared by |, eg NOTCHT:G8BPQ-4|C 3 GM8BPQ-9|CHAT"
"<br><br>The Callsign of the Chat Node is not defined here - it is obtained from the bpq32.cfg APPLICATION line corresponding to the Chat Appl Number.<br>\r\n"
"<br></div>r\n"
"&nbsp;<textarea cols=\"70\" rows=\"5\" name=\"nodes\">%s</textarea><br>\r\n"
"<br>\r\n"
"&nbsp;Map Position <input onchange=CheckLen() maxlength=\"80\" value=\"%s\" size=\"20\" name=\"Posn\" id=pos> <br>\r\n"
@ -1449,7 +1452,7 @@ char * ChatConfigtxt()
"<textarea cols=\"80\" rows=\"5\" name=\"welcome\">%s</textarea><br>\r\n"
"<br>\r\n"
"\r\n"
"<div style=\"position: absolute; left: 150px; top: 500px;\">\r\n"
"<div style=\"position: absolute; left: 150px; top: 550px;\">\r\n"
"<input name=\"Save\" value=\"Save\" type=submit class='btn'> \r\n"
"<input name=\"UpdateMap\" value=\"Update Map\" type=submit class='btn'> \r\n"
"<input name=\"Restart\" value=\"Restart Links\" type=submit class='btn'> \r\n"

View File

@ -395,6 +395,9 @@ struct FreeDataINFO
int arqstate; // 1 = Disc / 2 - connecting 3 - connected
int TuningRange; // Must be 50, 100, 150, 200, 250
int LimitBandWidth;
int TXLevel;
int Explorer; // Enable reporting to Freedata Explorer
char SSIDList[256];
};
@ -512,8 +515,6 @@ typedef struct TNCINFO
BOOL TNCCONNECTING; // For FreeData
BOOL TNCCONNECTED;
BOOL DAEMONCONNECTING;
BOOL DAEMONCONNECTED;
char NodeCall[10]; // Call we listen for (PORTCALL or NODECALL
char CurrentMYC[10]; // Save current call so we don't change it unnecessarily
@ -609,6 +610,7 @@ typedef struct TNCINFO
char * InitPtr; // Next Command
int ReinitState; // Reinit State Machine
int ReinitCount; // Count for DED Recovery
int TermReinitCount; // Count for DED Term Mode Recovery
BOOL TNCOK; // TNC is reponding
int FramesOutstanding; // Frames Queued - used for flow control
BOOL InternalCmd; // Last Command was generated internally