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 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->TXBuffer[2] = 0;
TNC->Toggle = 0; TNC->Toggle = 0;

View File

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

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 // Don't close/reopen logs every time
if ((LT - LastLogTime[Flags]) > 60) // if ((LT - LastLogTime[Flags]) > 60)
{ {
LastLogTime[Flags] = LT; LastLogTime[Flags] = LT;
fclose(LogHandle[Flags]); fclose(LogHandle[Flags]);
@ -1005,7 +1005,12 @@ Next:
user = UserRecPtr[i]; user = UserRecPtr[i];
if (user->flags & F_BBS) if (user->flags & F_BBS)
{
if (user->BBSNumber == 0)
user->BBSNumber = FindFreeBBSNumber();
CheckBBSNumber(user->BBSNumber); CheckBBSNumber(user->BBSNumber);
}
} }
SortBBSChain(); SortBBSChain();
@ -9846,7 +9851,7 @@ BOOL GetConfig(char * ConfigName)
return(EXIT_FAILURE); return(EXIT_FAILURE);
} }
#ifdef FREEBSD #if IBCONFIG_VER_MINOR > 4
config_set_option(&cfg, CONFIG_OPTION_AUTOCONVERT, 1); config_set_option(&cfg, CONFIG_OPTION_AUTOCONVERT, 1);
#else #else
config_set_auto_convert (&cfg, 1); 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" #include "chatrc.h"
@ -19,19 +19,21 @@
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// English (United States) resources // English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252) #pragma code_page(1252)
#endif //_WIN32
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Dialog // Dialog
// //
IDD_PROPPAGE_LARGE DIALOG 0, 0, 235, 156 IDD_PROPPAGE_LARGE DIALOG DISCARDABLE 0, 0, 235, 156
STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Property Page" CAPTION "Property Page"
FONT 8, "MS Sans Serif" FONT 8, "MS Sans Serif"
BEGIN BEGIN
@ -44,7 +46,7 @@ END
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO GUIDELINES DESIGNINFO MOVEABLE PURE
BEGIN BEGIN
IDD_PROPPAGE_LARGE, DIALOG IDD_PROPPAGE_LARGE, DIALOG
BEGIN BEGIN
@ -56,29 +58,33 @@ BEGIN
END END
#endif // APSTUDIO_INVOKED #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) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252) #pragma code_page(1252)
#endif //_WIN32
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Dialog // Dialog
// //
BPQMAILCHAT DIALOG 120, 50, 294, 165 BPQMAILCHAT DIALOG DISCARDABLE 120, 50, 294, 165
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "G8BPQ Chat Server 1.0.0.10 Beta July 2009" CAPTION "G8BPQ Chat Server 1.0.0.10 Beta July 2009"
CLASS "BPQMailChat" CLASS "BPQMailChat"
FONT 8, "FixedSys" FONT 8, "FixedSys"
BEGIN 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 "UTC",IDC_STATIC,197,5,15,10
LTEXT "Local",IDC_STATIC,241,5,21,10 LTEXT "Local",IDC_STATIC,241,5,21,10
LTEXT "",IDC_UTC,215,5,25,10 LTEXT "",IDC_UTC,215,5,25,10
@ -96,8 +102,9 @@ BEGIN
LTEXT "0",IDC_CONSEM,274,135,20,10 LTEXT "0",IDC_CONSEM,274,135,20,10
END END
CONSOLEWINDOW DIALOG 17, 25, 400, 301 CONSOLEWINDOW DIALOG DISCARDABLE 17, 25, 400, 301
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Chat Console" CAPTION "Chat Console"
MENU CONSOLEMENU MENU CONSOLEMENU
CLASS "CONSOLEWINDOW" CLASS "CONSOLEWINDOW"
@ -106,108 +113,134 @@ BEGIN
EDITTEXT 118,24,228,348,15,ES_AUTOHSCROLL | ES_NOHIDESEL EDITTEXT 118,24,228,348,15,ES_AUTOHSCROLL | ES_NOHIDESEL
END END
BPQMONWINDOW DIALOG 17, 25, 400, 300 BPQMONWINDOW DIALOG DISCARDABLE 17, 25, 400, 300
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Chat Monitor" CAPTION "Chat Monitor"
MENU MENU_2 MENU MENU_2
CLASS "BPQMONWINDOW" CLASS "BPQMONWINDOW"
FONT 8, "FixedSys" FONT 8, "FixedSys"
BEGIN 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 END
BPQDEBUGWINDOW DIALOG 17, 25, 400, 300 BPQDEBUGWINDOW DIALOG DISCARDABLE 17, 25, 400, 300
STYLE DS_SETFONT | DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME STYLE DS_3DLOOK | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Chat Debug Window" CAPTION "Chat Debug Window"
MENU MENU_3 MENU MENU_3
CLASS "BPQDEBUGWINDOW" CLASS "BPQDEBUGWINDOW"
FONT 8, "FixedSys" FONT 8, "FixedSys"
BEGIN 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 END
CHAT_CONFIG DIALOGEX 0, 0, 371, 296 CHAT_CONFIG DIALOG DISCARDABLE 0, 0, 372, 318
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Configuration" CAPTION "Configuration"
FONT 8, "System", 0, 0, 0x0 FONT 8, "System"
BEGIN BEGIN
LTEXT "Chat Appl Number",IDC_STATIC,91,85,61,8 LTEXT "Chat Appl Number",IDC_STATIC,91,110,61,8
EDITTEXT ID_CHATAPPL,159,83,29,14 EDITTEXT ID_CHATAPPL,159,108,29,14
LTEXT "Nodes to link to",IDC_STATIC,159,106,53,8 LTEXT "Nodes to link to",IDC_STATIC,159,126,53,8
EDITTEXT ID_CHATNODES,29,119,313,60,ES_MULTILINE | ES_UPPERCASE | ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL EDITTEXT ID_CHATNODES,29,141,313,60,ES_MULTILINE | ES_UPPERCASE |
DEFPUSHBUTTON "Save",SAVENODES,160,183,50,14,BS_CENTER | BS_VCENTER ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL
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 DEFPUSHBUTTON "Save",SAVENODES,160,204,50,14,BS_CENTER | BS_VCENTER
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 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.",
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 IDC_STATIC,10,10,353,18
LTEXT "Streams",IDC_STATIC,199,85,34,8 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.",
EDITTEXT ID_STREAMS,236,83,29,14 IDC_STATIC,10,31,355,22
LTEXT "Chat Welcome Message",IDC_STATIC,142,202,82,8 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.",
EDITTEXT IDM_CHATUSERMSG,15,214,340,54,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_WANTRETURN | WS_VSCROLL IDC_STATIC,10,76,360,21
DEFPUSHBUTTON "Save Welcome Message",SAVEWELCOME,140,274,91,14,BS_CENTER | BS_VCENTER 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 END
IDD_USERADDED_BOX DIALOG 176, 132, 129, 68 IDD_USERADDED_BOX DIALOG DISCARDABLE 176, 132, 129, 68
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME STYLE DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
FONT 8, "System" FONT 8, "System"
BEGIN BEGIN
DEFPUSHBUTTON "Ok",0,47,48,36,17,BS_CENTER | BS_VCENTER DEFPUSHBUTTON "Ok",0,47,48,36,17,BS_CENTER | BS_VCENTER
LTEXT "Label0",5050,5,10,117,32 LTEXT "Label0",5050,5,10,117,32
END END
WELCOMEMSG DIALOG 26, 5, 381, 266 WELCOMEMSG DIALOG DISCARDABLE 26, 5, 381, 266
STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE STYLE WS_CHILD | WS_VISIBLE
FONT 8, "System" FONT 8, "System"
BEGIN BEGIN
LTEXT "Normal User Welcome Message",IDC_STATIC,5,7,130,8 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 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 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 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 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 "$U : Callsign of the user $I : First name of the user $X Messages for user $x Unread messages",
LTEXT "$L : Number of the latest message $N : Number of active messages. $Z : Last message read by user",IDC_STATIC,5,238,365,10 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 END
IDD_CHATCOLCONFIG DIALOG 0, 0, 224, 120 IDD_CHATCOLCONFIG DIALOG DISCARDABLE 0, 0, 224, 120
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Chat Colour Configuration" CAPTION "Chat Colour Configuration"
FONT 8, "System" FONT 8, "System"
BEGIN BEGIN
DEFPUSHBUTTON "Save",IDOK,50,95,50,14 DEFPUSHBUTTON "Save",IDOK,50,95,50,14
PUSHBUTTON "Close",IDCANCEL,120,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_CHATCALLS,10,5,100,60,CBS_DROPDOWNLIST | CBS_SORT |
COMBOBOX IDC_CHATCOLOURS,115,5,100,60,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_CHATCOLOURS,115,5,100,60,CBS_DROPDOWNLIST |
CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
END END
IDD_UPDATECHATMAP DIALOG 0, 0, 274, 146 IDD_UPDATECHATMAP DIALOG DISCARDABLE 0, 0, 274, 146
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Update Chat Map" CAPTION "Update Chat Map"
FONT 8, "System" FONT 8, "System"
BEGIN 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 DEFPUSHBUTTON "? Help",IDC_MAPHELP,220,10,33,11,BS_CENTER | BS_VCENTER
LTEXT "Position",IDC_STATIC,5,30,35,10 LTEXT "Position",IDC_STATIC,5,30,35,10
EDITTEXT IDC_MAPPOSITION,5,45,145,15,ES_AUTOHSCROLL EDITTEXT IDC_MAPPOSITION,5,45,145,15,ES_AUTOHSCROLL
LTEXT "Popup Box Text. ",IDC_STATIC,5,65,70,9 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 LTEXT "Popup Mode",IDC_STATIC,215,80,49,10
CONTROL "Hover",IDC_HOVER,"Button",BS_AUTORADIOBUTTON,219,92,45,10 CONTROL "Hover",IDC_HOVER,"Button",BS_AUTORADIOBUTTON,219,92,45,
CONTROL "Click",IDC_CLICK,"Button",BS_AUTORADIOBUTTON,219,104,45,10 10
CONTROL "Click",IDC_CLICK,"Button",BS_AUTORADIOBUTTON,219,104,45,
10
DEFPUSHBUTTON "Send to Map System",IDSENDTOMAP,5,125,90,14 DEFPUSHBUTTON "Send to Map System",IDSENDTOMAP,5,125,90,14
DEFPUSHBUTTON "Save",IDOK,100,125,35,14 DEFPUSHBUTTON "Save",IDOK,100,125,35,14
PUSHBUTTON "Cancel",IDCANCEL,140,125,40,14 PUSHBUTTON "Cancel",IDCANCEL,140,125,40,14
END END
IDD_HRHELP DIALOG 0, 0, 415, 182 IDD_HRHELP DIALOG DISCARDABLE 0, 0, 415, 182
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hierarchical Forwarding Help" CAPTION "Hierarchical Forwarding Help"
FONT 8, "System" FONT 8, "System"
BEGIN BEGIN
DEFPUSHBUTTON "OK",IDOK,182,158,50,14 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 END
@ -217,7 +250,7 @@ END
// //
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO GUIDELINES DESIGNINFO MOVEABLE PURE
BEGIN BEGIN
"BPQMAILCHAT", DIALOG "BPQMAILCHAT", DIALOG
BEGIN BEGIN
@ -226,6 +259,8 @@ BEGIN
CHAT_CONFIG, DIALOG CHAT_CONFIG, DIALOG
BEGIN BEGIN
RIGHTMARGIN, 371
BOTTOMMARGIN, 296
END END
"IDD_USERADDED_BOX", DIALOG "IDD_USERADDED_BOX", DIALOG
@ -249,7 +284,7 @@ END
// Menu // Menu
// //
IDC_BPQMailChat MENU IDC_BPQMailChat MENU DISCARDABLE
BEGIN BEGIN
POPUP "Actions" POPUP "Actions"
BEGIN BEGIN
@ -278,7 +313,7 @@ BEGIN
END END
END END
CONSOLEMENU MENU CONSOLEMENU MENU DISCARDABLE
BEGIN BEGIN
POPUP "Options" POPUP "Options"
BEGIN BEGIN
@ -298,7 +333,7 @@ BEGIN
END END
END END
MENU_2 MENU MENU_2 MENU DISCARDABLE
BEGIN BEGIN
POPUP "Monitor" POPUP "Monitor"
BEGIN BEGIN
@ -311,7 +346,7 @@ BEGIN
END END
END END
MENU_3 MENU MENU_3 MENU DISCARDABLE
BEGIN BEGIN
POPUP "Edit" POPUP "Edit"
BEGIN BEGIN
@ -326,7 +361,7 @@ END
// Accelerator // Accelerator
// //
IDC_TELNETSERVER ACCELERATORS IDC_TELNETSERVER ACCELERATORS MOVEABLE PURE
BEGIN BEGIN
"?", IDM_ABOUT, ASCII, ALT "?", IDM_ABOUT, ASCII, ALT
"/", IDM_ABOUT, ASCII, ALT "/", IDM_ABOUT, ASCII, ALT
@ -339,12 +374,12 @@ END
// TEXTINCLUDE // TEXTINCLUDE
// //
1 TEXTINCLUDE 1 TEXTINCLUDE MOVEABLE PURE
BEGIN BEGIN
"chatrc.h\0" "chatrc.h\0"
END END
2 TEXTINCLUDE 2 TEXTINCLUDE MOVEABLE PURE
BEGIN BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n" "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n" "#include ""windows.h""\r\n"
@ -356,18 +391,18 @@ BEGIN
"\0" "\0"
END END
3 TEXTINCLUDE 3 TEXTINCLUDE MOVEABLE PURE
BEGIN BEGIN
"#include ""..\\StdVer.inc""\r\n" "#include ""..\\StdVer.inc""\r\n"
"\0" "\0"
END END
1 TEXTINCLUDE 1 TEXTINCLUDE MOVEABLE PURE
BEGIN BEGIN
"resource.h\0" "resource.h\0"
END END
3 TEXTINCLUDE 3 TEXTINCLUDE MOVEABLE PURE
BEGIN BEGIN
"#include ""..\\StdVer.inc""\r\n" "#include ""..\\StdVer.inc""\r\n"
"\r\n" "\r\n"
@ -382,9 +417,9 @@ END
// AFX_DIALOG_LAYOUT // AFX_DIALOG_LAYOUT
// //
CHAT_CONFIG AFX_DIALOG_LAYOUT CHAT_CONFIG AFX_DIALOG_LAYOUT MOVEABLE PURE
BEGIN BEGIN
0 0x0000
END END
@ -393,13 +428,13 @@ END
// String Table // String Table
// //
STRINGTABLE STRINGTABLE DISCARDABLE
BEGIN BEGIN
IDS_APP_TITLE "BPQMailChat" IDS_APP_TITLE "BPQMailChat"
IDC_BPQMailChat "BPQMailChat" IDC_BPQMailChat "BPQMailChat"
END 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) // Change web buttons to white on black when pressed (10)
// Add auto-refresh option to Webmail index page (25) // Add auto-refresh option to Webmail index page (25)
// Fix displaying help and info files with crlf line endings on Linux (28) // 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" #include "bpqmail.h"
#define MAIL #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) // Add APRS Igate RXOnly option (29)
// Fix RMC message handling with prefixes other than GP (29) // Fix RMC message handling with prefixes other than GP (29)
// Add GPSD support for APRS (30) // 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 #define CKernel

View File

@ -37,7 +37,7 @@
Name="Release|Win32" Name="Release|Win32"
> >
<DebugSettings <DebugSettings
Command="" Command="C:\Devprogs\BPQ32\bpq32.exe"
WorkingDirectory="" WorkingDirectory=""
CommandArguments="" CommandArguments=""
Attach="false" 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 #else
DllExport int APIENTRY RunEventProgram(char * Program, char * Param) DllExport void APIENTRY RunEventProgram(char * Program, char * Param)
{ {
int n = 0; int n = 0;
char cmdLine[256]; char cmdLine[256];
@ -87,7 +87,7 @@ DllExport int APIENTRY RunEventProgram(char * Program, char * Param)
PROCESS_INFORMATION PInfo; // pointer to PROCESS_INFORMATION PROCESS_INFORMATION PInfo; // pointer to PROCESS_INFORMATION
if (EventsEnabled == 0) if (EventsEnabled == 0)
return 0; return;
SInfo.cb=sizeof(SInfo); SInfo.cb=sizeof(SInfo);
@ -105,5 +105,5 @@ DllExport int APIENTRY RunEventProgram(char * Program, char * Param)
#endif #endif
return 0; return;
} }

View File

@ -552,7 +552,6 @@ ok:
// FC EM A3EDD4P00P55 377 281 0 // FC EM A3EDD4P00P55 377 281 0
/* /*
FC Proposal code. Requires B2 SID feature. FC Proposal code. Requires B2 SID feature.
@ -576,7 +575,7 @@ ok:
if (ptr == NULL) goto badparam2; 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, '@'); MPS = strlop(ptr, '@');
if (MPS) if (MPS)
@ -605,7 +604,7 @@ ok:
char * To = strtok_s(NULL, seps, &Context); char * To = strtok_s(NULL, seps, &Context);
char * Type = strtok_s(NULL, seps, &Context); char * Type = strtok_s(NULL, seps, &Context);
if (From && To && ATBBS && 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 memset(FBBHeader, 0, sizeof(struct FBBHeaderLine)); // Clear header
conn->FBBReplyChars[conn->FBBReplyIndex++] = '-'; 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

1423
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; UCHAR * MsgPtr;
unsigned char TXMsg[500]; unsigned char TXMsg[500];
buffptr = (UINT * )STREAM->BPQtoPACTOR_Q; buffptr = (PMSGWITHLEN)STREAM->BPQtoPACTOR_Q;
datalen=buffptr->Len; datalen = buffptr->Len;
MsgPtr = (UCHAR *)buffptr->Data; MsgPtr = buffptr->Data;
if (STREAM->Connected) 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); BOOL ToLOC(double Lat, double Lon , char * Locator);
int GetPosnFromAPRS(char * Call, double * Lat, double * Lon); int GetPosnFromAPRS(char * Call, double * Lat, double * Lon);
char * stristr (char *ch1, char *ch2);
static RECT Rect; static RECT Rect;
@ -210,7 +211,8 @@ LRESULT CALLBACK PacWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPara
{ {
if (TNC->ProgramPath) 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_RESTART, MF_BYCOMMAND | MF_ENABLED);
EnableMenuItem(TNC->hMenu, WINMOR_KILL, 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: case WM_HSCROLL:
{ {
DWORD dwPos; // current position of slider
char value[16]; char value[16];
switch (LOWORD(wParam)) 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; return TRUE;
if (ADIF->StartTime == 0 || ADIF->ServerSID[0] == 0) if (ADIF->StartTime == 0 || ADIF->ServerSID[0] == 0 || ADIF->CMSCall[0] == 0)
return TRUE; return TRUE;
T = time(NULL); T = time(NULL);
@ -1853,6 +1854,9 @@ int standardParams(struct TNCINFO * TNC, char * buf)
TNC->LISTENCALLS = _strdup(&buf[8]); TNC->LISTENCALLS = _strdup(&buf[8]);
strlop(TNC->LISTENCALLS, '\r'); 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) else if (_memicmp(buf, "FREQUENCY", 9) == 0)
TNC->Frequency = _strdup(&buf[10]); TNC->Frequency = _strdup(&buf[10]);
else if (_memicmp(buf, "SendTandRtoRelay", 16) == 0) 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); user->lastrealmsgtime = user->lastmsgtime = time(NULL);
text_tellu(user, f1, NULL, o_topic); text_tellu(user, f1, NULL, o_topic);
HistoryCount = AddtoHistory(user, f1);
for (ckt_to = circuit_hd; ckt_to; ckt_to = ckt_to->next) 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->HOSTSTATE = 0;
TNC->Timeout = 0; TNC->Timeout = 0;
TNC->RXLen = 0; TNC->RXLen = 0;
TNC->TermReinitCount = 0;
return; 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 // 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 if (TNC->HostMode == 0 || TNC->ReinitState == 10) // 10 is Recovery Mode
// { {
// DoTermModeTimeout(TNC); TNC->TermReinitCount++;
// return;
// } if (TNC->TermReinitCount == 10)
goto reinit;
DoTermModeTimeout(TNC);
return;
}
// Timed out in host mode - Clear any connection and reinit the TNC // Timed out in host mode - Clear any connection and reinit the TNC
Debugprintf("DEDHOST - Link to TNC Lost Port %d", TNC->Port); Debugprintf("DEDHOST - Link to TNC Lost Port %d", TNC->Port);
reinit:
TNC->TNCOK = FALSE; TNC->TNCOK = FALSE;
sprintf(TNC->WEB_COMMSSTATE, "%s Open but TNC not responding", TNC->PortRecord->PORTCONTROL.SerialPortName); 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->HostMode = 0;
TNC->ReinitState = 0; TNC->ReinitState = 0;
TNC->TermReinitCount = 0;
CloseCOMPort(TNC->hDevice); CloseCOMPort(TNC->hDevice);
OpenCOMMPort(TNC, TNC->PortRecord->PORTCONTROL.SerialPortName, TNC->PortRecord->PORTCONTROL.BAUDRATE, TRUE); OpenCOMMPort(TNC, TNC->PortRecord->PORTCONTROL.SerialPortName, TNC->PortRecord->PORTCONTROL.BAUDRATE, TRUE);
@ -1388,7 +1398,7 @@ VOID DEDPoll(int Port)
} }
Poll[2] = datalen - 1; Poll[2] = datalen - 1;
memcpy(&Poll[3], buffptr + 2, datalen); memcpy(&Poll[3], buffptr->Data, datalen);
ReleaseBuffer(buffptr); ReleaseBuffer(buffptr);
@ -1612,6 +1622,7 @@ VOID DoTermModeTimeout(struct TNCINFO * TNC)
TNC->hDevice =(HANDLE)0; TNC->hDevice =(HANDLE)0;
TNC->ReopenTimer = 290; TNC->ReopenTimer = 290;
TNC->HostMode = FALSE; TNC->HostMode = FALSE;
TNC->TermReinitCount = 0;
return; return;
} }
@ -1623,6 +1634,7 @@ VOID DoTermModeTimeout(struct TNCINFO * TNC)
TNC->HostMode = TRUE; TNC->HostMode = TRUE;
TNC->IntCmdDelay = 10; TNC->IntCmdDelay = 10;
TNC->TermReinitCount = 0;
return; return;
} }
@ -1698,6 +1710,7 @@ VOID TrkProcessTermModeResponse(struct TNCINFO * TNC)
{ {
TNC->HostMode = TRUE; TNC->HostMode = TRUE;
TNC->Timeout = 0; TNC->Timeout = 0;
TNC->TermReinitCount = 0;
} }
return; return;
} }
@ -1726,6 +1739,7 @@ VOID TrkProcessDEDFrame(struct TNCINFO * TNC)
TNC->ReinitState = 0; TNC->ReinitState = 0;
TNC->RXLen = 0; TNC->RXLen = 0;
TNC->HOSTSTATE = 0; TNC->HOSTSTATE = 0;
TNC->TermReinitCount = 0;
Debugprintf("TRK - Resync Complete"); Debugprintf("TRK - Resync Complete");
return; 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", 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); tm->tm_year +1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min);
MySetWindowText(TNC->xIDC_RESTARTTIME, Time); //MySetWindowText(TNC->xIDC_RESTARTTIME, Time);
strcpy(TNC->WEB_RESTARTTIME, Time); //strcpy(TNC->WEB_RESTARTTIME, Time);
sprintf_s(Time, sizeof(Time),"%d", TNC->Restarts); sprintf_s(Time, sizeof(Time),"%d", TNC->Restarts);
MySetWindowText(TNC->xIDC_RESTARTS, Time); MySetWindowText(TNC->xIDC_RESTARTS, Time);

View File

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

View File

@ -49,6 +49,38 @@ WPRec * AllocateWPRecord()
return WP; 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; extern config_t cfg;
VOID GetWPDatabase() VOID GetWPDatabase()
@ -267,31 +299,7 @@ WPOK:;
if (strchr(WPRec.callsign, ':')) if (strchr(WPRec.callsign, ':'))
continue; continue;
if (_stricmp(WPRec.callsign, "RMS") == 0) if (BadCall(WPRec.callsign))
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)
continue; continue;
WP = LookupWP(WPRec.callsign); WP = LookupWP(WPRec.callsign);
@ -354,31 +362,7 @@ Next:
if (strchr(WPRec.callsign, ':')) if (strchr(WPRec.callsign, ':'))
goto Next; goto Next;
if (_stricmp(WPRec.callsign, "RMS") == 0) if (BadCall(WPRec.callsign))
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)
goto Next; goto Next;
WP = LookupWP(WPRec.callsign); WP = LookupWP(WPRec.callsign);
@ -800,31 +784,7 @@ VOID GetWPBBSInfo(char * Rline)
memcpy(QTH, ptr2 + 1, ptr1 - ptr2 - 1); memcpy(QTH, ptr2 + 1, ptr1 - ptr2 - 1);
} }
if (_stricmp(Call, "RMS") == 0) if (BadCall(Call))
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)
return; return;
WP = LookupWP(Call); WP = LookupWP(Call);
@ -898,6 +858,9 @@ VOID GetWPInfoFromRLine(char * From, char * FirstRLine, time_t RLineTime)
char * ptr1 = strchr(FirstRLine, '@'); char * ptr1 = strchr(FirstRLine, '@');
char * ptr2 = strchr(FirstRLine, '\r'); char * ptr2 = strchr(FirstRLine, '\r');
if (BadCall(From))
return;
if (!ptr1) if (!ptr1)
return; // Duff 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, ':')) if (strchr(Call, ':'))
break; break;
if (_stricmp(Call, "RMS") == 0) if (BadCall(Call))
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)
break; break;
WP = LookupWP(Call); WP = LookupWP(Call);
@ -1242,37 +1181,7 @@ VOID UpdateWPWithUserInfo(struct UserInfo * user)
if (strchr(user->Call, ':')) if (strchr(user->Call, ':'))
return; return;
if (_stricmp(user->Call, "RMS") == 0) if (BadCall(user->Call))
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)
return; return;
if (!WP) if (!WP)

View File

@ -245,7 +245,7 @@ static BOOL RestartTNC(struct TNCINFO * TNC)
Sleep(100); Sleep(100);
} }
if (CreateProcess(NULL, TNC->ProgramPath, NULL, NULL, FALSE,0 ,NULL ,workingDirectory, &SInfo, &PInfo)) if (CreateProcess(NULL, TNC->ProgramPath, NULL, NULL, FALSE,0, NULL, workingDirectory, &SInfo, &PInfo))
{ {
Debugprintf("Restart TNC OK"); Debugprintf("Restart TNC OK");
TNC->PID = PInfo.dwProcessId; TNC->PID = PInfo.dwProcessId;

View File

@ -64,6 +64,8 @@
// Check for and remove names set to *RTL // Check for and remove names set to *RTL
// Add option to run user program when chat user connects (27) // Add option to run user program when chat user connects (27)
// Add History (28) // Add History (28)
// Add connect scripts to config page text (31)
// Fix History (31)
#include "BPQChat.h" #include "BPQChat.h"
#include "Dbghelp.h" #include "Dbghelp.h"
@ -1010,7 +1012,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
break; break;
case IDM_CONFIG: case IDM_CONFIG:
i = DialogBox(hInst, MAKEINTRESOURCE(CHAT_CONFIG), hWnd, ConfigWndProc); i = DialogBox(hInst, MAKEINTRESOURCE(CHAT_CONFIG), hWnd, ConfigWndProc);
i = WSAGetLastError(); i = WSAGetLastError();
break; break;

View File

@ -20,7 +20,7 @@
#define _WINSOCK_DEPRECATED_NO_WARNINGS #define _WINSOCK_DEPRECATED_NO_WARNINGS
#define LIBCONFIG_STATIC #define LIBCONFIG_STATIC
#include "libconfig.h" #include <libconfig.h>
#include "compatbits.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) 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 sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep" linbpq
-include *.d -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 \ 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 \ 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 \ 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: # Configuration:
@ -28,7 +28,7 @@ noi2c: linbpq
linbpq: $(OBJS) 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 sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep" linbpq
-include *.d -include *.d

View File

@ -1422,7 +1422,7 @@ char * ChatConfigtxt()
"<div style=\"text-align: center;\"><font size=\"+1\"><span\r\n" "<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" "style=\"font-family: monospace; font-weight: bold;\">Chat Configuration</span></font></div>\r\n"
"<div id=\"main\"\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" "<form border=\"1\" style=\"font-family: monospace;\" method=\"post\"\r\n"
"action=\"/Chat/ChatConfig?%s\">\r\n" "action=\"/Chat/ChatConfig?%s\">\r\n"
"<h3>&nbsp;Chat Server Params<span style=\"font-family: monospace;\"></span></h3>\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" "<span style=\"font-family: monospace;\"></span>Streams &nbsp; &nbsp;\r\n"
"&nbsp;&nbsp; <input value=\"%d\" size=\"3\" name=\"Streams\"><br>\r\n" "&nbsp;&nbsp; <input value=\"%d\" size=\"3\" name=\"Streams\"><br>\r\n"
"&nbsp; <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 " "<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. Note these must be directly " "connections may be accepted. The format is ALIAS:CALL, eg BPQCHT:G8BPQ-4. If the node is not directly "
"connectable - ie in your NODES table.<br>\r\n" "connectable (ie is not in your NODES table) you can add a connect script. This consists of a series of commands "
"<br>\r\n" "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" "&nbsp;<textarea cols=\"70\" rows=\"5\" name=\"nodes\">%s</textarea><br>\r\n"
"<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" "&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" "<textarea cols=\"80\" rows=\"5\" name=\"welcome\">%s</textarea><br>\r\n"
"<br>\r\n" "<br>\r\n"
"\r\n" "\r\n"
"<div style=\"position: absolute; left: 150px; top: 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=\"Save\" value=\"Save\" type=submit class='btn'> \r\n"
"<input name=\"UpdateMap\" value=\"Update Map\" type=submit class='btn'> \r\n" "<input name=\"UpdateMap\" value=\"Update Map\" type=submit class='btn'> \r\n"
"<input name=\"Restart\" value=\"Restart Links\" type=submit class='btn'> \r\n" "<input name=\"Restart\" value=\"Restart Links\" type=submit class='btn'> \r\n"

View File

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