Compare commits

...

1 Commits

Author SHA1 Message Date
Hibby 87cd041888
New upstream version 6.0.24.54+repack 2024-12-17 17:45:09 +00:00
70 changed files with 9972 additions and 439 deletions

139
.rej Normal file
View File

@ -0,0 +1,139 @@
--- APRSCode.c
+++ APRSCode.c
@@ -3674,7 +3674,7 @@
if (ptr1)
*ptr1 = 0;
-// Debugprintf("Duplicate Message supressed %s", Msg);
+// Debugprintf("Duplicate Message suppressed %s", Msg);
return TRUE; // Duplicate
}
}
--- BPQChat.rc
+++ BPQChat.rc
@@ -162,7 +162,7 @@
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",
+ 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 separated by |, eg NOTCHT:G8BPQ-4|C 3 GM8BPQ-9|CHAT",
IDC_STATIC,9,52,355,24
END
--- BPQMail.rc
+++ BPQMail.rc
@@ -1045,7 +1045,7 @@
CONTROL "Delete Log and Message Files to Recycle Bin",
IDC_DELETETORECYCLE,"Button",BS_AUTOCHECKBOX |
BS_LEFTTEXT | BS_MULTILINE | WS_TABSTOP,5,142,115,20
- CONTROL "Supress Mailing of Housekeeping Results",
+ CONTROL "Suppress Mailing of Housekeeping Results",
IDC_MAINTNOMAIL,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT |
BS_MULTILINE | WS_TABSTOP,5,182,115,20
CONTROL "Generate Traffic Report",IDC_MAINTTRAFFIC,"Button",
--- HanksRT.c
+++ HanksRT.c
@@ -1186,7 +1186,7 @@
// Duplicate, so discard, but save time
DupInfo[i].DupTime = Now;
- Logprintf(LOG_CHAT, circuit, '?', "Duplicate Message From %s %s supressed", Call, Msg);
+ Logprintf(LOG_CHAT, circuit, '?', "Duplicate Message From %s %s suppressed", Call, Msg);
return TRUE; // Duplicate
}
--- RigControl.c
+++ RigControl.c
@@ -8385,7 +8385,7 @@
switch (Msg[0])
{
- case 'f': // Get Freqency
+ case 'f': // Get Frequency
HLGetFreq(Sock, RIG, sep);
return 0;
--- UZ7HODrv.c
+++ UZ7HODrv.c
@@ -374,7 +374,7 @@
{
// Read Freq
- buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Modem Freqency %d\r", AGW->CenterFreq);
+ buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Modem Frequency %d\r", AGW->CenterFreq);
return 1;
}
@@ -382,7 +382,7 @@
if (AGW->CenterFreq == 0)
{
- buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Invalid Modem Freqency\r");
+ buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Invalid Modem Frequency\r");
return 1;
}
--- WinRPRHelper.c
+++ WinRPRHelper.c
@@ -111,7 +111,7 @@
if (argc < 3)
{
- printf ("Missing paramters - you need COM port and IP Address and rigctl port of BPQ, eg \r\n"
+ printf ("Missing parameters - you need COM port and IP Address and rigctl port of BPQ, eg \r\n"
" WinRPRHelper com10 192.168.1.64:4532\r\n\r\n"
"Press any key to exit\r\n");
--- config.c
+++ config.c
@@ -649,7 +649,7 @@
if (LOCATOR[0] == 0 && LocSpecified == 0 && RFOnly == 0)
{
Consoleprintf("");
- Consoleprintf("Please enter a LOCATOR statment in your BPQ32.cfg");
+ Consoleprintf("Please enter a LOCATOR statement in your BPQ32.cfg");
Consoleprintf("If you really don't want to be on the Node Map you can enter LOCATOR=NONE");
Consoleprintf("");
--- kiss.c
+++ kiss.c
@@ -1485,7 +1485,7 @@
}
}
else
- Debugprintf("Polled KISS - response from wrong address - Polled %d Reponse %d",
+ Debugprintf("Polled KISS - response from wrong address - Polled %d Response %d",
KISS->POLLPOINTER->OURCTRL, (Port->RXMSG[0] & 0xf0));
goto SeeifMore; // SEE IF ANYTHING ELSE
--- templatedefs.c
+++ templatedefs.c
@@ -1165,7 +1165,7 @@
"Send Non-delivery Notifications<br>\r\n"
"for P and T messages <input %sname=\"SendND\" value=\"SendND\" type=\"checkbox\" /><br>\r\n"
" <br />\r\n"
- "Supress Mailing of<br>\r\n"
+ "Suppress Mailing of<br>\r\n"
"Housekeeping Result <input %sname=\"NoMail\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n"
"Generate Traffic Report<input %sname=\"GenTraffic\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n"
"<div style=\"text-align: center;\"><input class='btn' name=RunNow value=\"Run Housekeeping\" type=submit class='btn'></div>\r\n"
@@ -1454,7 +1454,7 @@
"<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"
+ "separated 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>\n"
--- WebMail.c
+++ WebMail.c
@@ -2020,7 +2020,7 @@
"document.getElementById('myform').action = '/WebMail/QuoteOriginal' + '?%s';"
" document.getElementById('myform').submit();}</script>"
"<input type=button class='btn' onclick='myfunc()' "
- "value='Include Orignal Msg'>";
+ "value='Include Original Msg'>";
char Temp[1024];
char ReplyAddr[128];

View File

@ -128,7 +128,7 @@ int DataSocket_Write(struct AGWSocketConnectionInfo * sockptr, SOCKET sock);
int AGWGetSessionKey(char * key, struct AGWSocketConnectionInfo * sockptr); int AGWGetSessionKey(char * key, struct AGWSocketConnectionInfo * sockptr);
int ProcessAGWCommand(struct AGWSocketConnectionInfo * sockptr); int ProcessAGWCommand(struct AGWSocketConnectionInfo * sockptr);
int SendDataToAppl(int Stream, byte * Buffer, int Length); int SendDataToAppl(int Stream, byte * Buffer, int Length);
int InternalAGWDecodeFrame(char * msg, char * buffer, int Stamp, int * FrameType, int useLocalTime, int doNodes); int InternalAGWDecodeFrame(char * msg, char * buffer, time_t Stamp, int * FrameType, int useLocalTime, int doNodes);
int AGWDataSocket_Disconnect( struct AGWSocketConnectionInfo * sockptr); int AGWDataSocket_Disconnect( struct AGWSocketConnectionInfo * sockptr);
int SendRawPacket(struct AGWSocketConnectionInfo * sockptr, char *txmsg, int Length); int SendRawPacket(struct AGWSocketConnectionInfo * sockptr, char *txmsg, int Length);
int ShowApps(); int ShowApps();
@ -402,7 +402,7 @@ int SetUpHostSessions()
extern struct DATAMESSAGE * REPLYBUFFER; extern struct DATAMESSAGE * REPLYBUFFER;
extern BOOL AGWActive; extern BOOL AGWActive;
VOID SHOWAGW(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SHOWAGW(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY AGW Session Status // DISPLAY AGW Session Status

View File

@ -61,7 +61,6 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#define NODES_SIG 0xFF #define NODES_SIG 0xFF
char * strlop(char * buf, char delim);
UCHAR * DisplayINP3RIF(UCHAR * ptr1, UCHAR * ptr2, int msglen); UCHAR * DisplayINP3RIF(UCHAR * ptr1, UCHAR * ptr2, int msglen);
static UCHAR * DISPLAY_NETROM(MESSAGE * ADJBUFFER, UCHAR * Output, int MsgLen, int DoNodes); static UCHAR * DISPLAY_NETROM(MESSAGE * ADJBUFFER, UCHAR * Output, int MsgLen, int DoNodes);

View File

@ -832,6 +832,7 @@ void SaveNavAidDataBase()
char FN[256]; char FN[256];
struct NAVAIDRECORD * navptr; struct NAVAIDRECORD * navptr;
if (BPQDirectory[0] == 0) if (BPQDirectory[0] == 0)
{ {
strcpy(FN, "AIS_NavAids.txt"); strcpy(FN, "AIS_NavAids.txt");
@ -2372,6 +2373,8 @@ void ProcessAISNavAidMessage()
NavAidCount++; NavAidCount++;
ProcessAISNavAidMessage(); ProcessAISNavAidMessage();
NavAidDBChanged = 1;
return; return;

View File

@ -22,7 +22,6 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// First Version, November 2011 // First Version, November 2011
#pragma data_seg("_BPQDATA") #pragma data_seg("_BPQDATA")
#define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h> #include <stdio.h>
@ -63,7 +62,6 @@ VOID __cdecl Debugprintf(const char * format, ...);
VOID __cdecl Consoleprintf(const char * format, ...); VOID __cdecl Consoleprintf(const char * format, ...);
BOOL APIENTRY Send_AX(PMESSAGE Block, DWORD Len, UCHAR Port); BOOL APIENTRY Send_AX(PMESSAGE Block, DWORD Len, UCHAR Port);
VOID Send_AX_Datagram(PDIGIMESSAGE Block, DWORD Len, UCHAR Port); VOID Send_AX_Datagram(PDIGIMESSAGE Block, DWORD Len, UCHAR Port);
char * strlop(char * buf, char delim);
int APRSDecodeFrame(char * msg, char * buffer, time_t Stamp, uint64_t Mask); // Unsemaphored DecodeFrame int APRSDecodeFrame(char * msg, char * buffer, time_t Stamp, uint64_t Mask); // Unsemaphored DecodeFrame
APRSHEARDRECORD * UpdateHeard(UCHAR * Call, int Port); APRSHEARDRECORD * UpdateHeard(UCHAR * Call, int Port);
BOOL CheckforDups(char * Call, char * Msg, int Len); BOOL CheckforDups(char * Call, char * Msg, int Len);
@ -349,7 +347,7 @@ APRSHEARDRECORD MHTABLE[MAXHEARD] = {0};
APRSHEARDRECORD * MHDATA = &MHTABLE[0]; APRSHEARDRECORD * MHDATA = &MHTABLE[0];
static SOCKET sock = (SOCKET)0; static SOCKET sock = 0;
//Duplicate suppression Code //Duplicate suppression Code
@ -3114,7 +3112,7 @@ VOID APRSISThread(void * Report)
BOOL bcopt=TRUE; BOOL bcopt=TRUE;
char Buffer[1000]; char Buffer[1000];
int InputLen = 1; // Non-zero int InputLen = 1; // Non-zero
char errmsg[100]; char errmsg[300];
char * ptr; char * ptr;
size_t inptr = 0; size_t inptr = 0;
char APRSinMsg[1000]; char APRSinMsg[1000];
@ -3675,7 +3673,7 @@ BOOL CheckforDups(char * Call, char * Msg, int Len)
if (ptr1) if (ptr1)
*ptr1 = 0; *ptr1 = 0;
// Debugprintf("Duplicate Message supressed %s", Msg); // Debugprintf("Duplicate Message suppressed %s", Msg);
return TRUE; // Duplicate return TRUE; // Duplicate
} }
} }
@ -7667,7 +7665,7 @@ VOID APRSProcessHTTPMessage(SOCKET sock, char * MsgPtr, BOOL LOCAL, BOOL COOKIE)
} }
OutputLen += sprintf(&OutBuffer[OutputLen], WebTrailer); OutputLen += sprintf(&OutBuffer[OutputLen], "%s", WebTrailer);
HeaderLen = sprintf(Header, "HTTP/1.0 200 OK\r\nContent-Length: %d\r\nContent-Type: text/html\r\n\r\n", OutputLen); HeaderLen = sprintf(Header, "HTTP/1.0 200 OK\r\nContent-Length: %d\r\nContent-Type: text/html\r\n\r\n", OutputLen);
sendandcheck(sock, Header, HeaderLen); sendandcheck(sock, Header, HeaderLen);
@ -7712,7 +7710,7 @@ VOID APRSProcessHTTPMessage(SOCKET sock, char * MsgPtr, BOOL LOCAL, BOOL COOKIE)
} }
OutputLen += sprintf(&OutBuffer[OutputLen], WebTrailer); OutputLen += sprintf(&OutBuffer[OutputLen], "%s", WebTrailer);
HeaderLen = sprintf(Header, "HTTP/1.0 200 OK\r\nContent-Length: %d\r\nContent-Type: text/html\r\n\r\n", OutputLen); HeaderLen = sprintf(Header, "HTTP/1.0 200 OK\r\nContent-Length: %d\r\nContent-Type: text/html\r\n\r\n", OutputLen);
sendandcheck(sock, Header, HeaderLen); sendandcheck(sock, Header, HeaderLen);
@ -8114,7 +8112,7 @@ extern char OrigCmdBuffer[81];
BOOL isSYSOP(TRANSPORTENTRY * Session, char * Bufferptr); BOOL isSYSOP(TRANSPORTENTRY * Session, char * Bufferptr);
VOID APRSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID APRSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// APRS Subcommands. Default for compatibility is APRSMH // APRS Subcommands. Default for compatibility is APRSMH
@ -9179,7 +9177,7 @@ void GetSavedAPRSMessages()
if ((file = fopen(FN, "r")) == NULL) if ((file = fopen(FN, "r")) == NULL)
return ; return ;
while (fgets(Line, 512, file)) while (fgets(Line, sizeof(Line), file))
{ {
Stamp = Line; Stamp = Line;
From = strlop(Stamp, ' '); From = strlop(Stamp, ' ');

9223
APRSCode.c.orig Normal file

File diff suppressed because it is too large Load Diff

139
APRSCode.c.rej Normal file
View File

@ -0,0 +1,139 @@
--- APRSCode.c
+++ APRSCode.c
@@ -3674,7 +3674,7 @@
if (ptr1)
*ptr1 = 0;
-// Debugprintf("Duplicate Message supressed %s", Msg);
+// Debugprintf("Duplicate Message suppressed %s", Msg);
return TRUE; // Duplicate
}
}
--- BPQChat.rc
+++ BPQChat.rc
@@ -162,7 +162,7 @@
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",
+ 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 separated by |, eg NOTCHT:G8BPQ-4|C 3 GM8BPQ-9|CHAT",
IDC_STATIC,9,52,355,24
END
--- BPQMail.rc
+++ BPQMail.rc
@@ -1045,7 +1045,7 @@
CONTROL "Delete Log and Message Files to Recycle Bin",
IDC_DELETETORECYCLE,"Button",BS_AUTOCHECKBOX |
BS_LEFTTEXT | BS_MULTILINE | WS_TABSTOP,5,142,115,20
- CONTROL "Supress Mailing of Housekeeping Results",
+ CONTROL "Suppress Mailing of Housekeeping Results",
IDC_MAINTNOMAIL,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT |
BS_MULTILINE | WS_TABSTOP,5,182,115,20
CONTROL "Generate Traffic Report",IDC_MAINTTRAFFIC,"Button",
--- HanksRT.c
+++ HanksRT.c
@@ -1186,7 +1186,7 @@
// Duplicate, so discard, but save time
DupInfo[i].DupTime = Now;
- Logprintf(LOG_CHAT, circuit, '?', "Duplicate Message From %s %s supressed", Call, Msg);
+ Logprintf(LOG_CHAT, circuit, '?', "Duplicate Message From %s %s suppressed", Call, Msg);
return TRUE; // Duplicate
}
--- RigControl.c
+++ RigControl.c
@@ -8385,7 +8385,7 @@
switch (Msg[0])
{
- case 'f': // Get Freqency
+ case 'f': // Get Frequency
HLGetFreq(Sock, RIG, sep);
return 0;
--- UZ7HODrv.c
+++ UZ7HODrv.c
@@ -374,7 +374,7 @@
{
// Read Freq
- buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Modem Freqency %d\r", AGW->CenterFreq);
+ buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Modem Frequency %d\r", AGW->CenterFreq);
return 1;
}
@@ -382,7 +382,7 @@
if (AGW->CenterFreq == 0)
{
- buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Invalid Modem Freqency\r");
+ buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Invalid Modem Frequency\r");
return 1;
}
--- WinRPRHelper.c
+++ WinRPRHelper.c
@@ -111,7 +111,7 @@
if (argc < 3)
{
- printf ("Missing paramters - you need COM port and IP Address and rigctl port of BPQ, eg \r\n"
+ printf ("Missing parameters - you need COM port and IP Address and rigctl port of BPQ, eg \r\n"
" WinRPRHelper com10 192.168.1.64:4532\r\n\r\n"
"Press any key to exit\r\n");
--- config.c
+++ config.c
@@ -649,7 +649,7 @@
if (LOCATOR[0] == 0 && LocSpecified == 0 && RFOnly == 0)
{
Consoleprintf("");
- Consoleprintf("Please enter a LOCATOR statment in your BPQ32.cfg");
+ Consoleprintf("Please enter a LOCATOR statement in your BPQ32.cfg");
Consoleprintf("If you really don't want to be on the Node Map you can enter LOCATOR=NONE");
Consoleprintf("");
--- kiss.c
+++ kiss.c
@@ -1485,7 +1485,7 @@
}
}
else
- Debugprintf("Polled KISS - response from wrong address - Polled %d Reponse %d",
+ Debugprintf("Polled KISS - response from wrong address - Polled %d Response %d",
KISS->POLLPOINTER->OURCTRL, (Port->RXMSG[0] & 0xf0));
goto SeeifMore; // SEE IF ANYTHING ELSE
--- templatedefs.c
+++ templatedefs.c
@@ -1165,7 +1165,7 @@
"Send Non-delivery Notifications<br>\r\n"
"for P and T messages <input %sname=\"SendND\" value=\"SendND\" type=\"checkbox\" /><br>\r\n"
" <br />\r\n"
- "Supress Mailing of<br>\r\n"
+ "Suppress Mailing of<br>\r\n"
"Housekeeping Result <input %sname=\"NoMail\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n"
"Generate Traffic Report<input %sname=\"GenTraffic\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n"
"<div style=\"text-align: center;\"><input class='btn' name=RunNow value=\"Run Housekeeping\" type=submit class='btn'></div>\r\n"
@@ -1454,7 +1454,7 @@
"<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"
+ "separated 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>\n"
--- WebMail.c
+++ WebMail.c
@@ -2020,7 +2020,7 @@
"document.getElementById('myform').action = '/WebMail/QuoteOriginal' + '?%s';"
" document.getElementById('myform').submit();}</script>"
"<input type=button class='btn' onclick='myfunc()' "
- "value='Include Orignal Msg'>";
+ "value='Include Original Msg'>";
char Temp[1024];
char ReplyAddr[128];

View File

@ -562,7 +562,7 @@ static int ProcessLine(char * buf, int Port)
void ARDOPThread(struct TNCINFO * TNC); void ARDOPThread(struct TNCINFO * TNC);
VOID ARDOPProcessDataSocketData(int port); VOID ARDOPProcessDataSocketData(int port);
int ConnecttoARDOP(); int ConnecttoARDOP(struct TNCINFO * TNC);
static VOID ARDOPProcessReceivedData(struct TNCINFO * TNC); static VOID ARDOPProcessReceivedData(struct TNCINFO * TNC);
static VOID ARDOPProcessReceivedControl(struct TNCINFO * TNC); static VOID ARDOPProcessReceivedControl(struct TNCINFO * TNC);
int V4ProcessReceivedData(struct TNCINFO * TNC); int V4ProcessReceivedData(struct TNCINFO * TNC);
@ -3212,7 +3212,7 @@ VOID ARDOPProcessResponse(struct TNCINFO * TNC, UCHAR * Buffer, int MsgLen)
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
if (TNC->SendTandRtoRelay && memcmp(AppName, "RMS ", 4) == 0 if (TNC->SendTandRtoRelay && memcmp(AppName, "RMS ", 4) == 0
@ -5063,7 +5063,7 @@ tcpHostFrame:
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

View File

@ -51,6 +51,8 @@ extern struct ConsoleInfo BBSConsole;
extern char LOC[7]; extern char LOC[7];
extern BOOL MQTT;
//#define BBSIDLETIME 120 //#define BBSIDLETIME 120
//#define USERIDLETIME 300 //#define USERIDLETIME 300
@ -126,6 +128,7 @@ int32_t Encode(char * in, char * out, int32_t inlen, BOOL B1Protocol, int Compre
int APIENTRY ChangeSessionCallsign(int Stream, unsigned char * AXCall); int APIENTRY ChangeSessionCallsign(int Stream, unsigned char * AXCall);
void SendMessageReadEvent(char * call, struct MsgInfo * Msg); void SendMessageReadEvent(char * call, struct MsgInfo * Msg);
void SendNewMessageEvent(char * call, struct MsgInfo * Msg); void SendNewMessageEvent(char * call, struct MsgInfo * Msg);
void MQTTMessageEvent(struct MsgInfo * message);
config_t cfg; config_t cfg;
config_setting_t * group; config_setting_t * group;
@ -3452,6 +3455,11 @@ VOID FlagAsKilled(struct MsgInfo * Msg, BOOL SaveDB)
if (SaveDB) if (SaveDB)
SaveMessageDatabase(); SaveMessageDatabase();
RebuildNNTPList(); RebuildNNTPList();
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
} }
void DoDeliveredCommand(CIRCUIT * conn, struct UserInfo * user, char * Cmd, char * Arg1, char * Context) void DoDeliveredCommand(CIRCUIT * conn, struct UserInfo * user, char * Cmd, char * Arg1, char * Context)
@ -4896,6 +4904,10 @@ sendEOM:
Msg->datechanged=time(NULL); Msg->datechanged=time(NULL);
SaveMessageDatabase(); SaveMessageDatabase();
SendMessageReadEvent(user->Call, Msg); SendMessageReadEvent(user->Call, Msg);
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
} }
} }
} }
@ -6457,6 +6469,10 @@ nextline:
user = LookupCall(Msg->to); user = LookupCall(Msg->to);
SendNewMessageEvent(user->Call, Msg); SendNewMessageEvent(user->Call, Msg);
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
if (EnableUI) if (EnableUI)
#ifdef LINBPQ #ifdef LINBPQ
@ -10141,7 +10157,6 @@ BOOL GetConfig(char * ConfigName)
int i; int i;
char Size[80]; char Size[80];
config_setting_t *setting; config_setting_t *setting;
const char * ptr;
char * ptr1; char * ptr1;
char FBBString[8192]= ""; char FBBString[8192]= "";
FBBFilter f; FBBFilter f;
@ -10264,8 +10279,7 @@ BOOL GetConfig(char * ConfigName)
if (setting && setting->value.sval[0]) if (setting && setting->value.sval[0])
{ {
ptr = config_setting_get_string (setting); WelcomeMsg = _strdup(config_setting_get_string (setting));
WelcomeMsg = _strdup(ptr);
} }
else else
WelcomeMsg = _strdup("Hello $I. Latest Message is $L, Last listed is $Z\r\n"); WelcomeMsg = _strdup("Hello $I. Latest Message is $L, Last listed is $Z\r\n");
@ -10274,10 +10288,7 @@ BOOL GetConfig(char * ConfigName)
setting = config_setting_get_member (group, "NewUserWelcomeMsg"); setting = config_setting_get_member (group, "NewUserWelcomeMsg");
if (setting && setting->value.sval[0]) if (setting && setting->value.sval[0])
{ NewWelcomeMsg = _strdup(config_setting_get_string (setting));
ptr = config_setting_get_string (setting);
NewWelcomeMsg = _strdup(ptr);
}
else else
NewWelcomeMsg = _strdup("Hello $I. Latest Message is $L, Last listed is $Z\r\n"); NewWelcomeMsg = _strdup("Hello $I. Latest Message is $L, Last listed is $Z\r\n");
@ -10285,10 +10296,7 @@ BOOL GetConfig(char * ConfigName)
setting = config_setting_get_member (group, "ExpertWelcomeMsg"); setting = config_setting_get_member (group, "ExpertWelcomeMsg");
if (setting && setting->value.sval[0]) if (setting && setting->value.sval[0])
{ ExpertWelcomeMsg = _strdup(config_setting_get_string (setting));
ptr = config_setting_get_string (setting);
ExpertWelcomeMsg = _strdup(ptr);
}
else else
ExpertWelcomeMsg = _strdup(""); ExpertWelcomeMsg = _strdup("");
@ -10297,10 +10305,7 @@ BOOL GetConfig(char * ConfigName)
setting = config_setting_get_member (group, "Prompt"); setting = config_setting_get_member (group, "Prompt");
if (setting && setting->value.sval[0]) if (setting && setting->value.sval[0])
{ Prompt = _strdup(config_setting_get_string (setting));
ptr = config_setting_get_string (setting);
Prompt = _strdup(ptr);
}
else else
{ {
Prompt = malloc(20); Prompt = malloc(20);
@ -10310,10 +10315,7 @@ BOOL GetConfig(char * ConfigName)
setting = config_setting_get_member (group, "NewUserPrompt"); setting = config_setting_get_member (group, "NewUserPrompt");
if (setting && setting->value.sval[0]) if (setting && setting->value.sval[0])
{ NewPrompt = _strdup(config_setting_get_string (setting));
ptr = config_setting_get_string (setting);
NewPrompt = _strdup(ptr);
}
else else
{ {
NewPrompt = malloc(20); NewPrompt = malloc(20);
@ -10323,10 +10325,7 @@ BOOL GetConfig(char * ConfigName)
setting = config_setting_get_member (group, "ExpertPrompt"); setting = config_setting_get_member (group, "ExpertPrompt");
if (setting && setting->value.sval[0]) if (setting && setting->value.sval[0])
{ ExpertPrompt = _strdup(config_setting_get_string (setting));
ptr = config_setting_get_string (setting);
ExpertPrompt = _strdup(ptr);
}
else else
{ {
ExpertPrompt = malloc(20); ExpertPrompt = malloc(20);
@ -10547,7 +10546,7 @@ int Connected(int Stream)
char ConnectedMsg[] = "*** CONNECTED "; char ConnectedMsg[] = "*** CONNECTED ";
char Msg[100]; char Msg[100];
char Title[100]; char Title[100];
int Freq = 0; int64_t Freq = 0;
int Mode = 0; int Mode = 0;
BPQVECSTRUC * SESS; BPQVECSTRUC * SESS;
TRANSPORTENTRY * Sess1 = NULL, * Sess2; TRANSPORTENTRY * Sess1 = NULL, * Sess2;
@ -11781,6 +11780,11 @@ VOID ProcessTextFwdLine(ConnectionInfo * conn, struct UserInfo * user, char * Bu
SaveMessageDatabase(); SaveMessageDatabase();
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(conn->FwdMsg);
#endif
conn->UserPointer->ForwardingInfo->MsgCount--; conn->UserPointer->ForwardingInfo->MsgCount--;
// See if any more to forward // See if any more to forward

View File

@ -162,7 +162,7 @@ BEGIN
WS_VSCROLL WS_VSCROLL
DEFPUSHBUTTON "Save Welcome Message",SAVEWELCOME,140,296,91,14, DEFPUSHBUTTON "Save Welcome Message",SAVEWELCOME,140,296,91,14,
BS_CENTER | BS_VCENTER 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", 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 separared by |, eg NOTCHT:G8BPQ-4|C 3 GM8BPQ-9|CHAT",
IDC_STATIC,9,52,355,24 IDC_STATIC,9,52,355,24
END END

View File

@ -64,7 +64,7 @@ typedef struct _RTTMSG
} RTTMSG; } RTTMSG;
extern int COUNTNODES(); int COUNTNODES(struct ROUTE * ROUTE);
VOID __cdecl Debugprintf(const char * format, ...); VOID __cdecl Debugprintf(const char * format, ...);

View File

@ -2830,6 +2830,12 @@ gotAddr:
EndDialog(hDlg, LOWORD(wParam)); EndDialog(hDlg, LOWORD(wParam));
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
return TRUE; return TRUE;
} }
@ -3085,6 +3091,8 @@ BOOL Initialise()
GetTimeZoneInformation(&TimeZoneInformation); GetTimeZoneInformation(&TimeZoneInformation);
Debugprintf("%d", sizeof(struct MsgInfo));
_tzset(); _tzset();
_MYTIMEZONE = timezone; _MYTIMEZONE = timezone;
_MYTIMEZONE = TimeZoneInformation.Bias * 60; _MYTIMEZONE = TimeZoneInformation.Bias * 60;

View File

@ -1045,7 +1045,7 @@ BEGIN
CONTROL "Delete Log and Message Files to Recycle Bin", CONTROL "Delete Log and Message Files to Recycle Bin",
IDC_DELETETORECYCLE,"Button",BS_AUTOCHECKBOX | IDC_DELETETORECYCLE,"Button",BS_AUTOCHECKBOX |
BS_LEFTTEXT | BS_MULTILINE | WS_TABSTOP,5,142,115,20 BS_LEFTTEXT | BS_MULTILINE | WS_TABSTOP,5,142,115,20
CONTROL "Supress Mailing of Housekeeping Results", CONTROL "Suppress Mailing of Housekeeping Results",
IDC_MAINTNOMAIL,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | IDC_MAINTNOMAIL,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT |
BS_MULTILINE | WS_TABSTOP,5,182,115,20 BS_MULTILINE | WS_TABSTOP,5,182,115,20
CONTROL "Generate Traffic Report",IDC_MAINTTRAFFIC,"Button", CONTROL "Generate Traffic Report",IDC_MAINTTRAFFIC,"Button",

View File

@ -214,7 +214,7 @@ LRESULT APIENTRY InputProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ;
LRESULT APIENTRY MonProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ; LRESULT APIENTRY MonProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ;
extern CMDX COMMANDS[]; extern struct CMDX COMMANDS[];
extern int APPL1; extern int APPL1;
static HMENU trayMenu; static HMENU trayMenu;

View File

@ -87,7 +87,7 @@ void CreateMHWindow();
int Update_MH_List(struct in_addr ipad, char * call, char proto); int Update_MH_List(struct in_addr ipad, char * call, char proto);
static BOOL ReadConfigFile(int Port); static BOOL ReadConfigFile(int Port);
int ConnecttoAGW(); int ConnecttoAGW(int port);
int ProcessReceivedData(int bpqport); int ProcessReceivedData(int bpqport);
static int ProcessLine(char * buf, int Port, BOOL CheckPort); static int ProcessLine(char * buf, int Port, BOOL CheckPort);

View File

@ -1237,7 +1237,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// Save MH and NODES every hour (51) // Save MH and NODES every hour (51)
// Fix handling long unix device names (now max 250 bytes) (52) // Fix handling long unix device names (now max 250 bytes) (52)
// Fix error reporting in api update (53) // Fix error reporting in api update (53)
// Coding changes to remove some compiler warnings (53) // Coding changes to remove some compiler warnings (53, 54)
// Add MQTT reporting o
#define CKernel #define CKernel

View File

@ -93,7 +93,7 @@ VOID DoTheCommand(TRANSPORTENTRY * Session);
char * MOVEANDCHECK(TRANSPORTENTRY * Session, char * Bufferptr, char * Source, int Len); char * MOVEANDCHECK(TRANSPORTENTRY * Session, char * Bufferptr, char * Source, int Len);
VOID DISPLAYCIRCUIT(TRANSPORTENTRY * L4, char * Buffer); VOID DISPLAYCIRCUIT(TRANSPORTENTRY * L4, char * Buffer);
char * FormatUptime(int Uptime); char * FormatUptime(int Uptime);
char * strlop(char * buf, char delim); char * strlop(const char * buf, char delim);
BOOL CompareCalls(UCHAR * c1, UCHAR * c2); BOOL CompareCalls(UCHAR * c1, UCHAR * c2);
VOID PostDataAvailable(TRANSPORTENTRY * Session); VOID PostDataAvailable(TRANSPORTENTRY * Session);
@ -109,7 +109,7 @@ int cCOUNT_AT_L2(struct _LINKTABLE * LINK);
VOID SENDL4CONNECT(TRANSPORTENTRY * Session); VOID SENDL4CONNECT(TRANSPORTENTRY * Session);
VOID CloseSessionPartner(TRANSPORTENTRY * Session); VOID CloseSessionPartner(TRANSPORTENTRY * Session);
int COUNTNODES(); int COUNTNODES(struct ROUTE * ROUTE);
int DecodeNodeName(char * NodeName, char * ptr);; int DecodeNodeName(char * NodeName, char * ptr);;
VOID DISPLAYCIRCUIT(TRANSPORTENTRY * L4, char * Buffer); VOID DISPLAYCIRCUIT(TRANSPORTENTRY * L4, char * Buffer);
int cCOUNT_AT_L2(struct _LINKTABLE * LINK); int cCOUNT_AT_L2(struct _LINKTABLE * LINK);
@ -359,7 +359,7 @@ extern char * ConfigBuffer;
extern char * WL2KReportLine[]; extern char * WL2KReportLine[];
extern CMDX COMMANDS[]; extern struct CMDX COMMANDS[];
extern int QCOUNT, MAXBUFFS, MAXCIRCUITS, L4DEFAULTWINDOW, L4T1, CMDXLEN; extern int QCOUNT, MAXBUFFS, MAXCIRCUITS, L4DEFAULTWINDOW, L4T1, CMDXLEN;
extern char CMDALIAS[ALIASLEN][NumberofAppls]; extern char CMDALIAS[ALIASLEN][NumberofAppls];

View File

@ -23,6 +23,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#ifdef LINBPQ #ifdef LINBPQ
#include "compatbits.h" #include "compatbits.h"
char * strlop(const char * buf, char delim);
#define APIENTRY #define APIENTRY
#define VOID void #define VOID void
@ -31,7 +32,6 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include <windows.h> #include <windows.h>
#endif #endif
char * strlop(char * buf, char delim);
VOID APIENTRY md5 (char *arg, unsigned char * checksum); VOID APIENTRY md5 (char *arg, unsigned char * checksum);

199
Cmd.c
View File

@ -44,6 +44,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include "tncinfo.h" #include "tncinfo.h"
#include "telnetserver.h" #include "telnetserver.h"
//#include "GetVersion.h" //#include "GetVersion.h"
//#define DllImport __declspec( dllimport ) //#define DllImport __declspec( dllimport )
@ -64,12 +66,12 @@ VOID L2SENDXID(struct _LINKTABLE * LINK);
int CountBits(unsigned long in); int CountBits(unsigned long in);
VOID SaveMH(); VOID SaveMH();
BOOL RestartTNC(struct TNCINFO * TNC); BOOL RestartTNC(struct TNCINFO * TNC);
void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID WriteMiniDump(); VOID WriteMiniDump();
int CheckKissInterlock(struct PORTCONTROL * PORT, int Exclusive); int CheckKissInterlock(struct PORTCONTROL * PORT, int Exclusive);
int seeifInterlockneeded(struct PORTCONTROL * PORT); int seeifInterlockneeded(struct PORTCONTROL * PORT);
extern VOID KISSTX(); extern VOID KISSTX(struct KISSINFO * KISS, PMESSAGE Buffer);
char COMMANDBUFFER[81] = ""; // Command Hander input buffer char COMMANDBUFFER[81] = ""; // Command Hander input buffer
char OrigCmdBuffer[81] = ""; // Command Hander input buffer before toupper char OrigCmdBuffer[81] = ""; // Command Hander input buffer before toupper
@ -134,8 +136,8 @@ int L4FRAMESRETRIED = 0;
int OLDFRAMES = 0; int OLDFRAMES = 0;
int L3FRAMES = 0; int L3FRAMES = 0;
VOID SENDSABM(); VOID SENDSABM(struct _LINKTABLE * LINK);
VOID RESET2(); VOID RESET2(struct _LINKTABLE * LINK);
int APPL1 = 0; int APPL1 = 0;
int PASSCMD = 0; int PASSCMD = 0;
@ -149,33 +151,35 @@ char * ALIASPTR = &CMDALIAS[0][0];
extern int RigReconfigFlag; extern int RigReconfigFlag;
CMDX COMMANDS[];
int CMDXLEN = sizeof (CMDX);
struct CMDX COMMANDS[];
int CMDXLEN = sizeof (struct CMDX);
VOID SENDNODESMSG(); VOID SENDNODESMSG();
VOID KISSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID KISSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID STOPCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID STOPCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID STARTCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID STARTCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID STOPPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID STOPPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID STARTPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID STARTPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID FINDBUFFS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID FINDBUFFS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID WL2KSYSOP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID WL2KSYSOP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID AXRESOLVER(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID AXRESOLVER(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID AXMHEARD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID AXMHEARD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID SHOWTELNET(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID SHOWTELNET(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID SHOWAGW(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID SHOWAGW(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID SHOWARP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID SHOWARP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID SHOWNAT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID SHOWNAT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID PING(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID PING(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID SHOWIPROUTE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID SHOWIPROUTE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID FLMSG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD); VOID FLMSG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD);
void ListExcludedCalls(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); void ListExcludedCalls(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID APRSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID APRSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID RECONFIGTELNET (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID RECONFIGTELNET (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID HELPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID HELPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID UZ7HOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD); VOID UZ7HOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD);
VOID QTSMCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD); VOID QTSMCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD);
void hookL2SessionAttempt(int Port, char * fromCall, char * toCall, struct _LINKTABLE * LINK); void hookL2SessionAttempt(int Port, char * fromCall, char * toCall, struct _LINKTABLE * LINK);
@ -242,7 +246,7 @@ char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char
} }
VOID SENDNODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SENDNODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
SENDNODESMSG(); SENDNODESMSG();
@ -252,7 +256,7 @@ VOID SENDNODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID SAVEMHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SAVEMHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
SaveMH(); SaveMH();
@ -262,7 +266,7 @@ VOID SAVEMHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID SAVENODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SAVENODES(struct _TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
SaveNodes(); SaveNodes();
@ -272,7 +276,7 @@ VOID SAVENODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID DUMPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID DUMPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
WriteMiniDump(); WriteMiniDump();
@ -282,7 +286,7 @@ VOID DUMPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID RIGRECONFIG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID RIGRECONFIG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
if (!ProcessConfig()) if (!ProcessConfig())
{ {
@ -297,7 +301,7 @@ VOID RIGRECONFIG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMD
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID REBOOT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID REBOOT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
if (Reboot()) if (Reboot())
{ {
@ -313,7 +317,7 @@ VOID REBOOT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID RESTART(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID RESTART(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
if (Restart()) if (Restart())
{ {
@ -329,7 +333,7 @@ VOID RESTART(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID RESTARTTNC(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID RESTARTTNC(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char * ptr, *Context; char * ptr, *Context;
int portno; int portno;
@ -373,20 +377,20 @@ VOID RESTARTTNC(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
UCHAR VALNODESFLAG = 0, EXTONLY = 0; UCHAR VALNODESFLAG = 0, EXTONLY = 0;
VOID PORTVAL (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); VOID PORTVAL (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
VOID VALNODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID VALNODES(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
VALNODESFLAG = 1; VALNODESFLAG = 1;
PORTVAL(Session, Bufferptr, CmdTail, CMD); PORTVAL(Session, Bufferptr, CmdTail, CMD);
} }
VOID EXTPORTVAL(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID EXTPORTVAL(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
EXTONLY = 1; EXTONLY = 1;
PORTVAL(Session, Bufferptr, CmdTail, CMD); PORTVAL(Session, Bufferptr, CmdTail, CMD);
} }
VOID PORTVAL(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID PORTVAL(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS PORT VALUE COMMANDS // PROCESS PORT VALUE COMMANDS
@ -501,7 +505,7 @@ VOID PORTVAL(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
} }
VOID SWITCHVAL (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SWITCHVAL (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// Update switch 8 bit value // Update switch 8 bit value
@ -546,7 +550,7 @@ VOID SWITCHVAL (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
} }
VOID SWITCHVALW (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SWITCHVALW (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// Update switch 16 bit value // Update switch 16 bit value
@ -709,7 +713,7 @@ BOOL cATTACHTOBBS(TRANSPORTENTRY * Session, UINT Mask, int Paclen, int * AnySess
return FALSE; return FALSE;
} }
VOID APPLCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID APPLCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
BOOL CONFAILED = 0; BOOL CONFAILED = 0;
UINT CONERROR ; UINT CONERROR ;
@ -820,13 +824,13 @@ VOID APPLCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
} }
VOID CMDI00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDI00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
Bufferptr = Cmdprintf(Session, Bufferptr, "%s", INFOMSG); Bufferptr = Cmdprintf(Session, Bufferptr, "%s", INFOMSG);
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID CMDV00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDV00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
if (sizeof(void *) == 4) if (sizeof(void *) == 4)
Bufferptr = Cmdprintf(Session, Bufferptr, "Version %s\r", VersionString); Bufferptr = Cmdprintf(Session, Bufferptr, "Version %s\r", VersionString);
@ -836,14 +840,14 @@ VOID CMDV00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID BYECMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID BYECMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
CLOSECURRENTSESSION(Session); // Kills any crosslink, plus local link CLOSECURRENTSESSION(Session); // Kills any crosslink, plus local link
ReleaseBuffer((UINT *)REPLYBUFFER); ReleaseBuffer((UINT *)REPLYBUFFER);
return; return;
} }
VOID CMDPAC(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDPAC(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// SET PACLEN FOR THIS SESSION // SET PACLEN FOR THIS SESSION
@ -865,7 +869,7 @@ VOID CMDPAC(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID CMDIDLE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDIDLE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// SET IDLETIME FOR THIS SESSION // SET IDLETIME FOR THIS SESSION
@ -887,7 +891,7 @@ VOID CMDIDLE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID CMDT00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDT00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// SET L4 TIMEOUT FOR CONNECTS ON THIS SESSION // SET L4 TIMEOUT FOR CONNECTS ON THIS SESSION
@ -912,7 +916,7 @@ VOID CMDT00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
UCHAR PWLen; UCHAR PWLen;
char PWTEXT[80]; char PWTEXT[80];
VOID PWDCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID PWDCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char * ptr, *Context; char * ptr, *Context;
USHORT pwsum = 0; USHORT pwsum = 0;
@ -980,7 +984,7 @@ VOID PWDCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
return; return;
} }
VOID CMDSTATS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDSTATS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char * ptr, *Context; char * ptr, *Context;
int Port = 0, cols = NUMBEROFPORTS, i; int Port = 0, cols = NUMBEROFPORTS, i;
@ -1214,7 +1218,7 @@ VOID CMDSTATS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID CMDL00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDL00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS 'LINKS' MESSAGE // PROCESS 'LINKS' MESSAGE
@ -1250,7 +1254,7 @@ VOID CMDL00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
} }
VOID CMDS00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDS00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS 'USERS' // PROCESS 'USERS'
@ -1322,7 +1326,7 @@ CMDS60:
extern int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific MPSK or UZ7HO host extern int MasterPort[MAXBPQPORTS+1]; // Pointer to first BPQ port for a specific MPSK or UZ7HO host
VOID CMDP00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDP00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// Process PORTS Message // Process PORTS Message
@ -1577,7 +1581,7 @@ char * DisplayRoute(TRANSPORTENTRY * Session, char * Bufferptr, struct ROUTE *
} }
VOID CMDR00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDR00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
struct ROUTE * Routes = NEIGHBOURS; struct ROUTE * Routes = NEIGHBOURS;
int MaxRoutes = MAXNEIGHBOURS; int MaxRoutes = MAXNEIGHBOURS;
@ -1867,7 +1871,7 @@ SendReply:
} }
VOID LISTENCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID LISTENCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS LISTEN COMMAND // PROCESS LISTEN COMMAND
@ -1950,7 +1954,7 @@ VOID LISTENCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
} }
VOID UNPROTOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID UNPROTOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS UNPROTO COMMAND // PROCESS UNPROTO COMMAND
@ -2019,7 +2023,7 @@ VOID UNPROTOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
return; return;
} }
VOID CALCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CALCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS CAL COMMAND // PROCESS CAL COMMAND
@ -2072,7 +2076,7 @@ VOID CALCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
VOID CQCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CQCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// Send a CQ Beacon on a radio port. Must be in LISTEN state // Send a CQ Beacon on a radio port. Must be in LISTEN state
@ -2278,9 +2282,9 @@ BOOL FindLink(UCHAR * LinkCall, UCHAR * OurCall, int Port, struct _LINKTABLE **
return FALSE; return FALSE;
} }
VOID ATTACHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD); VOID ATTACHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD);
VOID CMDC00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDC00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS CONNECT COMMAND // PROCESS CONNECT COMMAND
@ -2302,7 +2306,7 @@ VOID CMDC00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * C
char PortString[10]; char PortString[10];
char cmdCopy[256]; char cmdCopy[256];
struct _EXTPORTDATA * EXTPORT = (struct _EXTPORTDATA *)PORT; struct _EXTPORTDATA * EXTPORT = (struct _EXTPORTDATA *)PORT;
char toCall[12], fromCall[12];
#ifdef EXCLUDEBITS #ifdef EXCLUDEBITS
@ -2920,7 +2924,7 @@ BOOL DecodeCallString(char * Calls, BOOL * Stay, BOOL * Spy, UCHAR * AXCalls)
} }
VOID LINKCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID LINKCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// PROCESS *** LINKED to CALLSIGN // PROCESS *** LINKED to CALLSIGN
@ -3112,7 +3116,7 @@ int WildCmp(char * pattern, char * string)
return 0; return 0;
} }
VOID CMDN00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID CMDN00(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
struct DEST_LIST * Dest = DESTS; struct DEST_LIST * Dest = DESTS;
int count = MAXDESTS, i; int count = MAXDESTS, i;
@ -3633,7 +3637,7 @@ SendReply:
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID CMDQUERY(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD) VOID CMDQUERY(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD)
{ {
// DISPLAY AVAILABLE COMMANDS // DISPLAY AVAILABLE COMMANDS
@ -3642,7 +3646,7 @@ VOID CMDQUERY(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
char ApplList[2048]; char ApplList[2048];
char * out = ApplList; char * out = ApplList;
CMDX * CMD = &COMMANDS[APPL1]; struct CMDX * CMD = &COMMANDS[APPL1];
for (n = 0; n < NumberofAppls; n++) for (n = 0; n < NumberofAppls; n++)
{ {
@ -3672,7 +3676,7 @@ VOID CMDQUERY(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
char * FormatMH(MHSTRUC * MH, char Format); char * FormatMH(MHSTRUC * MH, char Format);
VOID MHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID MHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY HEARD LIST // DISPLAY HEARD LIST
@ -3854,7 +3858,7 @@ VOID MHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CM
int Rig_Command(TRANSPORTENTRY * Session, char * Command); int Rig_Command(TRANSPORTENTRY * Session, char * Command);
VOID RADIOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD) VOID RADIOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD)
{ {
char * ptr; char * ptr;
@ -3883,7 +3887,7 @@ VOID RADIOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
VOID SendNRRecordRoute(struct DEST_LIST * DEST, TRANSPORTENTRY * Session); VOID SendNRRecordRoute(struct DEST_LIST * DEST, TRANSPORTENTRY * Session);
VOID NRRCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD) VOID NRRCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD)
{ {
// PROCESS 'NRR - Netrom Record Route' COMMAND // PROCESS 'NRR - Netrom Record Route' COMMAND
@ -3953,7 +3957,7 @@ int CHECKINTERLOCK(struct PORTCONTROL * OURPORT)
return 0; return 0;
} }
VOID ATTACHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD) VOID ATTACHCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD)
{ {
// ATTACH to a PACTOR or similar port // ATTACH to a PACTOR or similar port
@ -4318,16 +4322,17 @@ checkattachandcall:
// SYSOP COMMANDS // SYSOP COMMANDS
CMDX COMMANDS[] = struct CMDX COMMANDS[] =
{ {
"SAVENODES ",8, SAVENODES, 0, // "SAVENODES ",8, SAVENODES(struct _TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD), 0,
"TELRECONFIG ",4, RECONFIGTELNET, 0, "SAVENODES ",8, &SAVENODES, 0,
"SAVEMH ",6, SAVEMHCMD, 0, "TELRECONFIG ",4, &RECONFIGTELNET, 0,
"REBOOT ",6, REBOOT, 0, "SAVEMH ",6, &SAVEMHCMD, 0,
"RIGRECONFIG ",8 , RIGRECONFIG, 0, "REBOOT ",6, &REBOOT, 0,
"RESTART ",7,RESTART,0, "RIGRECONFIG ",8, &RIGRECONFIG, 0,
"RESTARTTNC ",10,RESTARTTNC,0, "RESTART ",7, &RESTART,0,
"SENDNODES ",8,SENDNODES,0, "RESTARTTNC ",10,&RESTARTTNC,0,
"SENDNODES ",8, &SENDNODES,0,
"EXTRESTART ",10, EXTPORTVAL, offsetof(EXTPORTDATA, EXTRESTART), "EXTRESTART ",10, EXTPORTVAL, offsetof(EXTPORTDATA, EXTRESTART),
"TXDELAY ",3, PORTVAL, offsetof(PORTCONTROLX, PORTTXDELAY), "TXDELAY ",3, PORTVAL, offsetof(PORTCONTROLX, PORTTXDELAY),
"MAXFRAME ",3, PORTVAL, offsetof(PORTCONTROLX, PORTWINDOW), "MAXFRAME ",3, PORTVAL, offsetof(PORTCONTROLX, PORTWINDOW),
@ -4457,9 +4462,9 @@ CMDX COMMANDS[] =
"..FLMSG ",7,FLMSG,0 "..FLMSG ",7,FLMSG,0
}; };
CMDX * CMD = NULL; struct CMDX * CMD = NULL;
int NUMBEROFCOMMANDS = sizeof(COMMANDS)/sizeof(CMDX); int NUMBEROFCOMMANDS = sizeof(COMMANDS)/sizeof(struct CMDX);
char * ReplyPointer; // Pointer into reply buffer char * ReplyPointer; // Pointer into reply buffer
@ -4952,7 +4957,7 @@ VOID StatsTimer()
int x = 17; int x = 17;
} }
if (PORT->PORTTXROUTINE == KISSTX && (KISS->QtSMStats || KISS->FIRSTPORT->PORT.QtSMPort)) // KISS Port QtSM Stats if ((void *)PORT->PORTTXROUTINE == (void *)KISSTX && (KISS->QtSMStats || KISS->FIRSTPORT->PORT.QtSMPort)) // KISS Port QtSM Stats
{ {
} }
else else
@ -4990,7 +4995,7 @@ extern struct AXIPPORTINFO * Portlist[];
#define TCPConnected 4 #define TCPConnected 4
VOID AXRESOLVER(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID AXRESOLVER(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY AXIP Resolver info // DISPLAY AXIP Resolver info
@ -5080,7 +5085,7 @@ VOID AXRESOLVER(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID AXMHEARD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID AXMHEARD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY AXIP Mheard info // DISPLAY AXIP Mheard info
@ -5150,7 +5155,7 @@ extern char WL2KLoc[7];
BOOL GetWL2KSYSOPInfo(char * Call, char * _REPLYBUFFER); BOOL GetWL2KSYSOPInfo(char * Call, char * _REPLYBUFFER);
BOOL UpdateWL2KSYSOPInfo(char * Call, char * SQL); BOOL UpdateWL2KSYSOPInfo(char * Call, char * SQL);
VOID WL2KSYSOP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID WL2KSYSOP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char _REPLYBUFFER[1000] = ""; char _REPLYBUFFER[1000] = "";
@ -5302,7 +5307,7 @@ VOID WL2KSYSOP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
VOID CloseKISSPort(struct PORTCONTROL * PortVector); VOID CloseKISSPort(struct PORTCONTROL * PortVector);
VOID STOPCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID STOPCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char _REPLYBUFFER[1000] = ""; char _REPLYBUFFER[1000] = "";
char * ptr, * Context; char * ptr, * Context;
@ -5363,7 +5368,7 @@ VOID STOPCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
} }
VOID STARTCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID STARTCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char _REPLYBUFFER[1000] = ""; char _REPLYBUFFER[1000] = "";
char * ptr, * Context; char * ptr, * Context;
@ -5423,7 +5428,7 @@ VOID STARTCMS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
} }
VOID STOPPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID STOPPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char _REPLYBUFFER[1000] = ""; char _REPLYBUFFER[1000] = "";
char * ptr, * Context; char * ptr, * Context;
@ -5507,7 +5512,7 @@ VOID STOPPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
} }
VOID STARTPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID STARTPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char _REPLYBUFFER[1000] = ""; char _REPLYBUFFER[1000] = "";
char * ptr, * Context; char * ptr, * Context;
@ -5599,7 +5604,7 @@ VOID STARTPORT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
int ASYSEND(struct PORTCONTROL * PortVector, char * buffer, int count); int ASYSEND(struct PORTCONTROL * PortVector, char * buffer, int count);
int KissEncode(UCHAR * inbuff, UCHAR * outbuff, int len); int KissEncode(UCHAR * inbuff, UCHAR * outbuff, int len);
VOID KISSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID KISSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char _REPLYBUFFER[1000] = ""; char _REPLYBUFFER[1000] = "";
char * ptr, * Context; char * ptr, * Context;
@ -5690,7 +5695,7 @@ VOID KISSCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
} }
VOID FINDBUFFS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID FINDBUFFS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
FindLostBuffers(); FindLostBuffers();
@ -5702,7 +5707,7 @@ VOID FINDBUFFS(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID FLMSG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * UserCMD) VOID FLMSG(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * UserCMD)
{ {
// Telnet Connection from FLMSG // Telnet Connection from FLMSG
CLOSECURRENTSESSION(Session); // Kills any crosslink, plus local link CLOSECURRENTSESSION(Session); // Kills any crosslink, plus local link
@ -5725,7 +5730,7 @@ BOOL CheckExcludeList(UCHAR * Call)
} }
void ListExcludedCalls(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) void ListExcludedCalls(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
UCHAR * ptr = ExcludeList; UCHAR * ptr = ExcludeList;
@ -5774,7 +5779,7 @@ BOOL isSYSOP(TRANSPORTENTRY * Session, char * Bufferptr)
return TRUE; return TRUE;
} }
VOID HELPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID HELPCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
int FileSize; int FileSize;
char MsgFile[MAX_PATH]; char MsgFile[MAX_PATH];
@ -5863,7 +5868,7 @@ int UZ7HOSetModem(int port, struct TNCINFO * TNC, struct AGWINFO * AGW, PDATAMES
int UZ7HOSetFlags(int port, struct TNCINFO * TNC, struct AGWINFO * AGW, PDATAMESSAGE buff, PMSGWITHLEN buffptr); int UZ7HOSetFlags(int port, struct TNCINFO * TNC, struct AGWINFO * AGW, PDATAMESSAGE buff, PMSGWITHLEN buffptr);
VOID UZ7HOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID UZ7HOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char * Cmd; char * Cmd;
int port; int port;
@ -5934,7 +5939,7 @@ VOID UZ7HOCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
return; return;
} }
VOID QTSMCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID QTSMCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
int port; int port;
struct PORTCONTROL * PORT; struct PORTCONTROL * PORT;
@ -5946,7 +5951,7 @@ VOID QTSMCMD(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
PORT = GetPortTableEntryFromPortNum(port); PORT = GetPortTableEntryFromPortNum(port);
if (PORT == NULL || PORT->PORTTXROUTINE != KISSTX) // Must be a kiss like port if (PORT == NULL || (void *)PORT->PORTTXROUTINE != (void *)KISSTX) // Must be a kiss like port
{ {
Bufferptr = Cmdprintf(Session, Bufferptr, "Error - Port %d is not a KISS port\r", port); Bufferptr = Cmdprintf(Session, Bufferptr, "Error - Port %d is not a KISS port\r", port);
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));

View File

@ -571,7 +571,7 @@ void * zalloc(int len)
return ptr; return ptr;
} }
char * strlop(char * buf, char delim) char * strlop(const char * buf, char delim)
{ {
// Terminate buf at delim, and return rest of string // Terminate buf at delim, and return rest of string
@ -692,7 +692,7 @@ VOID DISPLAYCIRCUIT(TRANSPORTENTRY * L4, char * Buffer)
} }
VOID CheckForDetach(struct TNCINFO * TNC, int Stream, struct STREAMINFO * STREAM, VOID CheckForDetach(struct TNCINFO * TNC, int Stream, struct STREAMINFO * STREAM,
VOID TidyCloseProc(), VOID ForcedCloseProc(), VOID CloseComplete()) VOID TidyCloseProc(struct TNCINFO * TNC, int Stream), VOID ForcedCloseProc(struct TNCINFO * TNC, int Stream), VOID CloseComplete(struct TNCINFO * TNC, int Stream))
{ {
void ** buffptr; void ** buffptr;
@ -1020,7 +1020,7 @@ BOOL ProcessIncommingConnectEx(struct TNCINFO * TNC, char * Call, int Stream, BO
char * Config; char * Config;
static char * ptr1, * ptr2; static char * ptr1, * ptr2;
BOOL ReadConfigFile(int Port, int ProcLine()) BOOL ReadConfigFile(int Port, int ProcLine(char * buf, int Port))
{ {
char buf[256],errbuf[256]; char buf[256],errbuf[256];
@ -2437,7 +2437,7 @@ static struct speed_struct
HANDLE OpenCOMPort(VOID * pPort, int speed, BOOL SetDTR, BOOL SetRTS, BOOL Quiet, int Stopbits) HANDLE OpenCOMPort(VOID * pPort, int speed, BOOL SetDTR, BOOL SetRTS, BOOL Quiet, int Stopbits)
{ {
char Port[256]; char Port[256];
char buf[100]; char buf[512];
// Linux Version. // Linux Version.
@ -4759,7 +4759,7 @@ LRESULT CALLBACK UIWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam
extern struct DATAMESSAGE * REPLYBUFFER; extern struct DATAMESSAGE * REPLYBUFFER;
char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char * format, ...); char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char * format, ...);
void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
char FN[250]; char FN[250];
FILE *hFile; FILE *hFile;

View File

@ -563,7 +563,7 @@ void DRATSConnectionLost(struct ConnectionInfo * sockptr)
#define ZEXPORT __stdcall #define ZEXPORT __stdcall
#endif #endif
#include "zlib.h" #include <zlib.h>
int doinflate(unsigned char * source, unsigned char * dest, int Len, int destlen, int * outLen) int doinflate(unsigned char * source, unsigned char * dest, int Len, int destlen, int * outLen)

View File

@ -24,7 +24,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include "bpqmail.h" #include "bpqmail.h"
int32_t Encode(char * in, char * out, int32_t inlen, BOOL B1Protocol, int Compress); int32_t Encode(char * in, char * out, int32_t inlen, BOOL B1Protocol, int Compress);
void MQTTMessageEvent(void* message);
int MaxRXSize = 99999; int MaxRXSize = 99999;
int MaxTXSize = 99999; int MaxTXSize = 99999;
@ -807,6 +807,11 @@ VOID FlagSentMessages(CIRCUIT * conn, struct UserInfo * user)
FBBHeader->FwdMsg->datechanged=time(NULL); FBBHeader->FwdMsg->datechanged=time(NULL);
} }
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(FBBHeader->FwdMsg);
#endif
FBBHeader->FwdMsg->Locked = 0; // Unlock FBBHeader->FwdMsg->Locked = 0; // Unlock
conn->UserPointer->ForwardingInfo->MsgCount--; conn->UserPointer->ForwardingInfo->MsgCount--;
} }

View File

@ -65,12 +65,12 @@ extern int (WINAPI FAR *GetModuleFileNameExPtr)();
; ;
int SemHeldByAPI; int SemHeldByAPI;
static void ConnecttoFLDigiThread(void * portptr); void ConnecttoFLDigiThread(void * portptr);
void CreateMHWindow(); void CreateMHWindow();
int Update_MH_List(struct in_addr ipad, char * call, char proto); int Update_MH_List(struct in_addr ipad, char * call, char proto);
static int ConnecttoFLDigi(); int ConnecttoFLDigi(int port);
static int ProcessReceivedData(int bpqport); static int ProcessReceivedData(int bpqport);
static int ProcessLine(char * buf, int Port); static int ProcessLine(char * buf, int Port);
int KillTNC(struct TNCINFO * TNC); int KillTNC(struct TNCINFO * TNC);
@ -102,8 +102,6 @@ VOID SuspendOtherPorts(struct TNCINFO * ThisTNC);
VOID ReleaseOtherPorts(struct TNCINFO * ThisTNC); VOID ReleaseOtherPorts(struct TNCINFO * ThisTNC);
VOID WritetoTrace(struct TNCINFO * TNC, char * Msg, int Len); VOID WritetoTrace(struct TNCINFO * TNC, char * Msg, int Len);
char * strlop(char * buf, char delim);
extern UCHAR BPQDirectory[]; extern UCHAR BPQDirectory[];
#define MAXMPSKPORTS 16 #define MAXMPSKPORTS 16
@ -1483,14 +1481,14 @@ static int ProcessLine(char * buf, int Port)
return (TRUE); return (TRUE);
} }
static int ConnecttoFLDigi(int port) int ConnecttoFLDigi(int port)
{ {
_beginthread(ConnecttoFLDigiThread, 0, (void *)(size_t)port); _beginthread(ConnecttoFLDigiThread, 0, (void *)(size_t)port);
return 0; return 0;
} }
static VOID ConnecttoFLDigiThread(void * portptr) VOID ConnecttoFLDigiThread(void * portptr)
{ {
int port = (int)(size_t)portptr; int port = (int)(size_t)portptr;
char Msg[255]; char Msg[255];
@ -2581,7 +2579,7 @@ VOID ProcessFLDigiData(struct TNCINFO * TNC, UCHAR * Input, int Len, char Channe
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

View File

@ -347,41 +347,6 @@ loop:
return 1; return 1;
} }
BOOL FreeDataReadConfigFile(int Port, int ProcLine())
{
char buf[256],errbuf[256];
Config = PortConfig[Port];
if (Config)
{
// Using config from bpq32.cfg
if (strlen(Config) == 0)
{
return TRUE;
}
ptr1 = Config;
ptr2 = strchr(ptr1, 13);
if (!ProcLine(buf, Port))
{
WritetoConsoleLocal("\n");
WritetoConsoleLocal("Bad config record ");
WritetoConsoleLocal(errbuf);
}
}
else
{
sprintf(buf," ** Error - No Configuration info in bpq32.cfg");
WritetoConsoleLocal(buf);
}
return (TRUE);
}
VOID SuspendOtherPorts(struct TNCINFO * ThisTNC); VOID SuspendOtherPorts(struct TNCINFO * ThisTNC);
VOID ReleaseOtherPorts(struct TNCINFO * ThisTNC); VOID ReleaseOtherPorts(struct TNCINFO * ThisTNC);
@ -867,7 +832,7 @@ static size_t ExtProc(int fn, int port, PDATAMESSAGE buff)
char Message[256]; char Message[256];
int Len, ret; int Len, ret;
Len = sprintf(Message, TXF); Len = sprintf(Message, "%s", TXF);
ret = send(TNC->TCPDataSock, (char *)&Message, Len, 0); ret = send(TNC->TCPDataSock, (char *)&Message, Len, 0);
if (buffptr) if (buffptr)
@ -1881,7 +1846,7 @@ VOID FreeDataProcessTNCMessage(struct TNCINFO * TNC, char * Call, unsigned char
if (App < 32) if (App < 32)
{ {
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// if SendTandRtoRelay set and Appl is RMS change to RELAY // if SendTandRtoRelay set and Appl is RMS change to RELAY
@ -2242,7 +2207,7 @@ VOID FreeDataProcessNewConnect(struct TNCINFO * TNC, char * fromCall, char * toC
if (App < 32) if (App < 32)
{ {
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// if SendTandRtoRelay set and Appl is RMS change to RELAY // if SendTandRtoRelay set and Appl is RMS change to RELAY
@ -2476,7 +2441,7 @@ static void SendCQ(struct TNCINFO * TNC)
char Message[256]; char Message[256];
int Len, ret; int Len, ret;
Len = sprintf(Message, CQ); Len = sprintf(Message, "%s", CQ);
ret = send(TNC->TCPDataSock, (char *)&Message, Len, 0); ret = send(TNC->TCPDataSock, (char *)&Message, Len, 0);
} }
@ -2491,7 +2456,7 @@ static void SendBeacon(struct TNCINFO * TNC, int Interval)
if (Interval > 0) if (Interval > 0)
Len = sprintf(Message, Template1, Interval); Len = sprintf(Message, Template1, Interval);
else else
Len = sprintf(Message, Template2); Len = sprintf(Message, "%s", Template2);
ret = send(TNC->TCPDataSock, (char *)&Message, Len, 0); ret = send(TNC->TCPDataSock, (char *)&Message, Len, 0);
} }
@ -3682,7 +3647,7 @@ int FreeDataDisconnect(struct TNCINFO * TNC)
// return FreeDataSendCommand(TNC, "D"); // return FreeDataSendCommand(TNC, "D");
Len = sprintf(Msg, Disconnect); Len = sprintf(Msg, "%s", Disconnect);
return send(TNC->TCPDataSock, Msg, Len, 0); return send(TNC->TCPDataSock, Msg, Len, 0);
} }
@ -3694,7 +3659,7 @@ int FreeGetData(struct TNCINFO * TNC)
char Msg[128]; char Msg[128];
int Len; int Len;
Len = sprintf(Msg, GetData); Len = sprintf(Msg, "%s", GetData);
return send(TNC->TCPDataSock, Msg, Len, 0); return send(TNC->TCPDataSock, Msg, Len, 0);
} }

View File

@ -309,47 +309,10 @@ loop:
return 1; return 1;
} }
BOOL HSMODEMReadConfigFile(int Port, int ProcLine())
{
char buf[256],errbuf[256];
Config = PortConfig[Port];
if (Config)
{
// Using config from bpq32.cfg
if (strlen(Config) == 0)
{
return TRUE;
}
ptr1 = Config;
ptr2 = strchr(ptr1, 13);
if (!ProcLine(buf, Port))
{
WritetoConsoleLocal("\n");
WritetoConsoleLocal("Bad config record ");
WritetoConsoleLocal(errbuf);
}
}
else
{
sprintf(buf," ** Error - No Configuration info in bpq32.cfg");
WritetoConsoleLocal(buf);
}
return (TRUE);
}
VOID SuspendOtherPorts(struct TNCINFO * ThisTNC); VOID SuspendOtherPorts(struct TNCINFO * ThisTNC);
VOID ReleaseOtherPorts(struct TNCINFO * ThisTNC); VOID ReleaseOtherPorts(struct TNCINFO * ThisTNC);
VOID WritetoTrace(struct TNCINFO * TNC, char * Msg, int Len); VOID WritetoTrace(struct TNCINFO * TNC, char * Msg, int Len);
static time_t ltime; static time_t ltime;

View File

@ -38,7 +38,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#define ZEXPORT __stdcall #define ZEXPORT __stdcall
#endif #endif
#include "zlib.h" #include <zlib.h>
#define CKernel #define CKernel
#include "httpconnectioninfo.h" #include "httpconnectioninfo.h"
@ -102,7 +102,6 @@ extern int NumberofPorts;
extern UCHAR ConfigDirectory[260]; extern UCHAR ConfigDirectory[260];
char * strlop(char * buf, char delim);
VOID sendandcheck(SOCKET sock, const char * Buffer, int Len); VOID sendandcheck(SOCKET sock, const char * Buffer, int Len);
int CompareNode(const void *a, const void *b); int CompareNode(const void *a, const void *b);
int CompareAlias(const void *a, const void *b); int CompareAlias(const void *a, const void *b);

View File

@ -1186,7 +1186,7 @@ static BOOL CheckforDups(ChatCIRCUIT * circuit, char * Call, char * Msg)
// Duplicate, so discard, but save time // Duplicate, so discard, but save time
DupInfo[i].DupTime = Now; DupInfo[i].DupTime = Now;
Logprintf(LOG_CHAT, circuit, '?', "Duplicate Message From %s %s supressed", Call, Msg); Logprintf(LOG_CHAT, circuit, '?', "Duplicate Message From %s %s suppressed", Call, Msg);
return TRUE; // Duplicate return TRUE; // Duplicate
} }

View File

@ -95,9 +95,13 @@ TODo ?Multiple Adapters
#pragma comment(lib, "IPHLPAPI.lib") #pragma comment(lib, "IPHLPAPI.lib")
#endif #endif
#include "pcap.h" #include <pcap.h>
#ifdef WIN32
int pcap_sendpacket(pcap_t *p, u_char *buf, int size); int pcap_sendpacket(pcap_t *p, u_char *buf, int size);
#else
PCAP_API int pcap_sendpacket(pcap_t *, const u_char *, int);
#endif
#ifndef LINBPQ #ifndef LINBPQ
#include "kernelresource.h" #include "kernelresource.h"
@ -4731,7 +4735,7 @@ void OpenTAP()
extern struct DATAMESSAGE * REPLYBUFFER; extern struct DATAMESSAGE * REPLYBUFFER;
char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char * format, ...); char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char * format, ...);
VOID PING(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID PING(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// Send ICMP Echo Request // Send ICMP Echo Request
@ -4789,7 +4793,7 @@ VOID PING(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD
return; return;
} }
VOID SHOWARP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SHOWARP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY IP Gateway ARP status or Clear // DISPLAY IP Gateway ARP status or Clear
@ -4884,7 +4888,7 @@ VOID SHOWARP(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX *
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID SHOWNAT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SHOWNAT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY IP Gateway ARP status or Clear // DISPLAY IP Gateway ARP status or Clear
@ -4943,7 +4947,7 @@ int CountBits(uint32_t in)
return n; return n;
} }
VOID SHOWIPROUTE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SHOWIPROUTE(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY IP Gateway ARP status or Clear // DISPLAY IP Gateway ARP status or Clear
@ -5334,7 +5338,7 @@ int ProcessSNMPPayload(UCHAR * Msg, int Len, UCHAR * Reply, int * OffPtr)
// Should be nothing left // Should be nothing left
} }
if (RequestType = 160) if (RequestType == 160)
{ {
int Offset = 255; int Offset = 255;
int PDULen = 0; int PDULen = 0;

View File

@ -725,7 +725,7 @@ VOID KISSHFReleaseTNC(struct TNCINFO * TNC)
ReleaseOtherPorts(TNC); ReleaseOtherPorts(TNC);
} }
VOID KISSHFSuspendPort(struct TNCINFO * TNC, struct TNCINFO * ThisTNC) VOID KISSHFSuspendPort(struct TNCINFO * TNC, struct TNCINFO * THISTNC)
{ {
TNC->PortRecord->PORTCONTROL.PortSuspended = 1; TNC->PortRecord->PORTCONTROL.PortSuspended = 1;
strcpy(TNC->WEB_TNCSTATE, "Interlocked"); strcpy(TNC->WEB_TNCSTATE, "Interlocked");

View File

@ -47,8 +47,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#define THREESECS 3*3 #define THREESECS 3*3
VOID L2SENDCOMMAND(); VOID L2Routine(struct PORTCONTROL * PORT, PMESSAGE Buffer);
VOID L2ROUTINE();
MESSAGE * SETUPL2MESSAGE(struct _LINKTABLE * LINK, UCHAR CMD); MESSAGE * SETUPL2MESSAGE(struct _LINKTABLE * LINK, UCHAR CMD);
VOID SendSupervisCmd(struct _LINKTABLE * LINK); VOID SendSupervisCmd(struct _LINKTABLE * LINK);
void SEND_RR_RESP(struct _LINKTABLE * LINK, UCHAR PF); void SEND_RR_RESP(struct _LINKTABLE * LINK, UCHAR PF);
@ -3098,7 +3097,7 @@ VOID ACKMSG(struct _LINKTABLE * LINK)
} }
} }
VOID CONNECTFAILED(); VOID CONNECTFAILED(struct _LINKTABLE * LINK);
VOID L2TIMEOUT(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT) VOID L2TIMEOUT(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT)
{ {
@ -3599,7 +3598,7 @@ VOID CONNECTREFUSED(struct _LINKTABLE * LINK)
ConnectFailedOrRefused(LINK, "Busy from"); ConnectFailedOrRefused(LINK, "Busy from");
} }
VOID L3CONNECTFAILED(); VOID L3CONNECTFAILED(struct _LINKTABLE * LINK);
VOID ConnectFailedOrRefused(struct _LINKTABLE * LINK, char * Msg) VOID ConnectFailedOrRefused(struct _LINKTABLE * LINK, char * Msg)
{ {
@ -4135,7 +4134,7 @@ int seeifUnlockneeded(struct _LINKTABLE * LINK)
if (TNC) if (TNC)
if (Interlock == TNC->RXRadio || Interlock == TNC->TXRadio) // Same Group if (Interlock == TNC->RXRadio || Interlock == TNC->TXRadio) // Same Group
if (TNC->ReleasePortProc && TNC->PortRecord->PORTCONTROL.PortSuspended == TRUE) if (TNC->ReleasePortProc && TNC->PortRecord->PORTCONTROL.PortSuspended == TRUE)
TNC->ReleasePortProc(TNC, TNC); TNC->ReleasePortProc(TNC);
} }
return 0; return 0;

View File

@ -56,7 +56,7 @@ VOID L3SWAPADDRESSES(L3MESSAGEBUFFER * L3MSG);
VOID L4TIMEOUT(TRANSPORTENTRY * L4); VOID L4TIMEOUT(TRANSPORTENTRY * L4);
struct DEST_LIST * CHECKL3TABLES(struct _LINKTABLE * LINK, L3MESSAGEBUFFER * Msg); struct DEST_LIST * CHECKL3TABLES(struct _LINKTABLE * LINK, L3MESSAGEBUFFER * Msg);
int CHECKIFBUSYL4(TRANSPORTENTRY * L4); int CHECKIFBUSYL4(TRANSPORTENTRY * L4);
VOID AUTOTIMER(); VOID AUTOTIMER(TRANSPORTENTRY * L4);
VOID NRRecordRoute(UCHAR * Buff, int Len); VOID NRRecordRoute(UCHAR * Buff, int Len);
VOID REFRESHROUTE(TRANSPORTENTRY * Session); VOID REFRESHROUTE(TRANSPORTENTRY * Session);
VOID ACKFRAMES(L3MESSAGEBUFFER * L3MSG, TRANSPORTENTRY * L4, int NR); VOID ACKFRAMES(L3MESSAGEBUFFER * L3MSG, TRANSPORTENTRY * L4, int NR);

View File

@ -667,7 +667,7 @@ void ConTermPoll()
// Replace CR with CRLF // Replace CR with CRLF
printf(ptr); printf("%s", ptr);
if (ptr2) if (ptr2)
printf("\r\n"); printf("\r\n");
@ -717,7 +717,7 @@ void ConTermPoll()
} }
#include "getopt.h" #include <getopt.h>
static struct option long_options[] = static struct option long_options[] =
{ {
@ -816,7 +816,7 @@ int main(int argc, char * argv[])
{ {
case 'h': case 'h':
printf(HelpScreen); printf("%s", HelpScreen);
exit (0); exit (0);
case 'l': case 'l':

View File

@ -24,6 +24,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include "bpqmail.h" #include "bpqmail.h"
void SendMessageReadEvent(char * call, struct MsgInfo * Msg); void SendMessageReadEvent(char * call, struct MsgInfo * Msg);
void MQTTMessageEvent(void* message);
VOID ProcessMBLLine(CIRCUIT * conn, struct UserInfo * user, UCHAR* Buffer, int len) VOID ProcessMBLLine(CIRCUIT * conn, struct UserInfo * user, UCHAR* Buffer, int len)
@ -199,6 +200,12 @@ VOID ProcessMBLLine(CIRCUIT * conn, struct UserInfo * user, UCHAR* Buffer, int l
} }
conn->FwdMsg->Locked = 0; // Unlock conn->FwdMsg->Locked = 0; // Unlock
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(conn->FwdMsg);
#endif
} }
return; return;
@ -282,7 +289,7 @@ VOID ProcessMBLLine(CIRCUIT * conn, struct UserInfo * user, UCHAR* Buffer, int l
{ {
// Reverse forward request // Reverse forward request
// If we have just sent a nessage, Flag it as sent // If we have just sent a message, Flag it as sent
if (conn->FBBMsgsSent) if (conn->FBBMsgsSent)
{ {
@ -300,6 +307,11 @@ VOID ProcessMBLLine(CIRCUIT * conn, struct UserInfo * user, UCHAR* Buffer, int l
conn->FwdMsg->Locked = 0; // Unlock conn->FwdMsg->Locked = 0; // Unlock
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(conn->FwdMsg);
#endif
conn->UserPointer->ForwardingInfo->MsgCount--; conn->UserPointer->ForwardingInfo->MsgCount--;
} }
@ -354,6 +366,11 @@ VOID ProcessMBLLine(CIRCUIT * conn, struct UserInfo * user, UCHAR* Buffer, int l
conn->FwdMsg->datechanged=time(NULL); conn->FwdMsg->datechanged=time(NULL);
} }
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(conn->FwdMsg);
#endif
conn->UserPointer->ForwardingInfo->MsgCount--; conn->UserPointer->ForwardingInfo->MsgCount--;
} }

View File

@ -60,7 +60,7 @@ static void ConnecttoMPSKThread(void * portptr);
void CreateMHWindow(); void CreateMHWindow();
int Update_MH_List(struct in_addr ipad, char * call, char proto); int Update_MH_List(struct in_addr ipad, char * call, char proto);
static int ConnecttoMPSK(); static int ConnecttoMPSK(int port);
static int ProcessReceivedData(int bpqport); static int ProcessReceivedData(int bpqport);
static int ProcessLine(char * buf, int Port); static int ProcessLine(char * buf, int Port);
int KillTNC(struct TNCINFO * TNC); int KillTNC(struct TNCINFO * TNC);
@ -71,8 +71,6 @@ static VOID SendData(struct TNCINFO * TNC, char * Msg, int MsgLen);
static VOID DoMonitorHddr(struct TNCINFO * TNC, struct AGWHEADER * RXHeader, UCHAR * Msg); static VOID DoMonitorHddr(struct TNCINFO * TNC, struct AGWHEADER * RXHeader, UCHAR * Msg);
VOID SendRPBeacon(struct TNCINFO * TNC); VOID SendRPBeacon(struct TNCINFO * TNC);
char * strlop(char * buf, char delim);
extern UCHAR BPQDirectory[]; extern UCHAR BPQDirectory[];
#define MAXMPSKPORTS 16 #define MAXMPSKPORTS 16

View File

@ -141,7 +141,7 @@ struct Country Countries[] =
"HKG", "ASIA", "AS", // Hong Kong Special Administrative Region of China "HKG", "ASIA", "AS", // Hong Kong Special Administrative Region of China
"MAC", "ASIA", "AS", // Macao Special Administrative Region of China "MAC", "ASIA", "AS", // Macao Special Administrative Region of China
"COL", "ASIA", "SA", // Colombia "COL", "ASIA", "SA", // Colombia
"COM", "SAFR", "AF", // Comoros // "COM", "SAFR", "AF", // Comoros
"COG", "CAFR", "AF", // Congo "COG", "CAFR", "AF", // Congo
"COK", "SPAC", "OC", // Cook Islands "COK", "SPAC", "OC", // Cook Islands
"CRI", "CEAM", "NA", // Costa Rica "CRI", "CEAM", "NA", // Costa Rica

View File

@ -59,7 +59,6 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#define NODES_SIG 0xFF #define NODES_SIG 0xFF
char * strlop(char * buf, char delim);
UCHAR * DisplayINP3RIF(UCHAR * ptr1, UCHAR * ptr2, unsigned int msglen); UCHAR * DisplayINP3RIF(UCHAR * ptr1, UCHAR * ptr2, unsigned int msglen);
char * DISPLAY_NETROM(MESSAGE * ADJBUFFER, UCHAR * Output, int MsgLen); char * DISPLAY_NETROM(MESSAGE * ADJBUFFER, UCHAR * Output, int MsgLen);

View File

@ -1612,7 +1612,7 @@ int MulticastStatusHTML(char * Reply)
if (Sess ==NULL) if (Sess ==NULL)
return 0; return 0;
Len = sprintf(Reply, StatusPage); Len = sprintf(Reply, "%s", StatusPage);
while (Sess) while (Sess)
{ {
@ -1670,7 +1670,7 @@ int MulticastStatusHTML(char * Reply)
Sess = Sess->Next; Sess = Sess->Next;
} }
Len += sprintf(&Reply[Len], StatusTail); Len += sprintf(&Reply[Len], "%s", StatusTail);
return Len; return Len;
} }

View File

@ -25,6 +25,7 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
VOID __cdecl Debugprintf(const char * format, ...); VOID __cdecl Debugprintf(const char * format, ...);
VOID ReleaseSock(SOCKET sock); VOID ReleaseSock(SOCKET sock);
void MQTTMessageEvent(void* message);
struct NNTPRec * FirstNNTPRec = NULL; struct NNTPRec * FirstNNTPRec = NULL;
@ -352,6 +353,12 @@ int CreateNNTPMessage(char * From, char * To, char * MsgTitle, time_t Date, char
BuildNNTPList(Msg); // Build NNTP Groups list BuildNNTPList(Msg); // Build NNTP Groups list
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
return CreateSMTPMessageFile(MsgBody, Msg); return CreateSMTPMessageFile(MsgBody, Msg);
} }

View File

@ -1291,7 +1291,7 @@ int Rig_CommandEx(struct RIGPORTINFO * PORT, struct RIGINFO * RIG, TRANSPORTENTR
// use text command // use text command
Len = sprintf(CmdPtr, ptr1); Len = sprintf(CmdPtr, "%S", ptr1);
break; break;
case YAESU: case YAESU:
@ -3205,7 +3205,7 @@ VOID ReleasePermission(struct RIGINFO *RIG)
while (RIG->PortRecord[i]) while (RIG->PortRecord[i])
{ {
PortRecord = RIG->PortRecord[i]; PortRecord = RIG->PortRecord[i];
PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, 3); // Release Perrmission PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, (PDATAMESSAGE)3); // Release Perrmission
i++; i++;
} }
} }
@ -3235,7 +3235,7 @@ int GetPermissionToChange(struct RIGPORTINFO * PORT, struct RIGINFO *RIG)
// TNC has been asked for permission, and we are waiting respoonse // TNC has been asked for permission, and we are waiting respoonse
// Only SCS pactor returns WaitingForPrmission, so check shouldn't be called on others // Only SCS pactor returns WaitingForPrmission, so check shouldn't be called on others
RIG->OKtoChange = (int)(intptr_t)RIG->PortRecord[0]->PORT_EXT_ADDR(6, RIG->PortRecord[0]->PORTCONTROL.PORTNUMBER, 2); // Get Ok Flag RIG->OKtoChange = (int)(intptr_t)RIG->PortRecord[0]->PORT_EXT_ADDR(6, RIG->PortRecord[0]->PORTCONTROL.PORTNUMBER, (PDATAMESSAGE)2); // Get Ok Flag
if (RIG->OKtoChange == 1) if (RIG->OKtoChange == 1)
{ {
@ -3277,7 +3277,7 @@ int GetPermissionToChange(struct RIGPORTINFO * PORT, struct RIGINFO *RIG)
// not waiting for permission, so must be first call of a cycle // not waiting for permission, so must be first call of a cycle
if (RIG->PortRecord[0] && RIG->PortRecord[0]->PORT_EXT_ADDR) if (RIG->PortRecord[0] && RIG->PortRecord[0]->PORT_EXT_ADDR)
RIG->WaitingForPermission = (int)(intptr_t)RIG->PortRecord[0]->PORT_EXT_ADDR(6, RIG->PortRecord[0]->PORTCONTROL.PORTNUMBER, 1); // Request Perrmission RIG->WaitingForPermission = (int)(intptr_t)RIG->PortRecord[0]->PORT_EXT_ADDR(6, RIG->PortRecord[0]->PORTCONTROL.PORTNUMBER, (PDATAMESSAGE)1); // Request Perrmission
// If it returns zero there is no need to wait. // If it returns zero there is no need to wait.
// Normally SCS Returns True for first call, but returns 0 if Link not running // Normally SCS Returns True for first call, but returns 0 if Link not running
@ -3300,7 +3300,7 @@ CheckOtherPorts:
{ {
PortRecord = RIG->PortRecord[i]; PortRecord = RIG->PortRecord[i];
if (PortRecord->PORT_EXT_ADDR && PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, 1)) if (PortRecord->PORT_EXT_ADDR && PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, (PDATAMESSAGE)1))
{ {
// 1 means can't change - release all // 1 means can't change - release all
@ -3392,7 +3392,7 @@ VOID DoBandwidthandAntenna(struct RIGINFO *RIG, struct ScanEntry * ptr)
RIG->CurrentBandWidth = ptr->Bandwidth; RIG->CurrentBandWidth = ptr->Bandwidth;
PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, ptr); PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, (PDATAMESSAGE)ptr);
/* if (ptr->Bandwidth == 'R') // Robust Packet /* if (ptr->Bandwidth == 'R') // Robust Packet
PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, 6); // Set Robust Packet PortRecord->PORT_EXT_ADDR(6, PortRecord->PORTCONTROL.PORTNUMBER, 6); // Set Robust Packet
@ -8385,7 +8385,7 @@ int ProcessHAMLIBSlaveMessage(SOCKET Sock, struct RIGINFO * RIG, unsigned char *
switch (Msg[0]) switch (Msg[0])
{ {
case 'f': // Get Freqency case 'f': // Get Frequency
HLGetFreq(Sock, RIG, sep); HLGetFreq(Sock, RIG, sep);
return 0; return 0;
@ -9938,14 +9938,10 @@ void ProcessSDRANGELFrame(struct RIGPORTINFO * PORT)
int Length; int Length;
char * msg; char * msg;
char * rest;
struct RIGINFO * RIG; struct RIGINFO * RIG;
char * ptr, * ptr1, * ptr2, * ptr3, * pos; char * ptr, * ptr1, * ptr2, * ptr3, * pos;
int Len, TotalLen;
char cmd[80]; char cmd[80];
char ReqBuf[256];
char SendBuff[256];
int chunklength; int chunklength;
int headerlen; int headerlen;
int i, n = 0; int i, n = 0;
@ -10332,7 +10328,6 @@ VOID SDRANGELPoll(struct RIGPORTINFO * PORT)
struct RIGINFO * RIG = &PORT->Rigs[0]; struct RIGINFO * RIG = &PORT->Rigs[0];
int Len, i; int Len, i;
char ReqBuf[256];
char SendBuff[256]; char SendBuff[256];
//char * SDRANGEL_GETheader = "GET /sdrangel/deviceset/%d/device/settings " //char * SDRANGEL_GETheader = "GET /sdrangel/deviceset/%d/device/settings "
// "HTTP/1.1\nHost: %s\nConnection: keep-alive\n\r\n"; // "HTTP/1.1\nHost: %s\nConnection: keep-alive\n\r\n";
@ -10379,7 +10374,6 @@ VOID SDRANGELPoll(struct RIGPORTINFO * PORT)
if (GetPermissionToChange(PORT, RIG)) if (GetPermissionToChange(PORT, RIG))
{ {
char cmd[80]; char cmd[80];
double freq;
if (RIG->RIG_DEBUG) if (RIG->RIG_DEBUG)
Debugprintf("BPQ32 Change Freq to %9.4f", PORT->FreqPtr->Freq); Debugprintf("BPQ32 Change Freq to %9.4f", PORT->FreqPtr->Freq);
@ -10451,7 +10445,6 @@ VOID SDRANGELPoll(struct RIGPORTINFO * PORT)
VOID SDRANGELSendCommand(struct RIGPORTINFO * PORT, char * Command, char * Value) VOID SDRANGELSendCommand(struct RIGPORTINFO * PORT, char * Command, char * Value)
{ {
int Len, ret; int Len, ret;
char ReqBuf[512];
char SendBuff[512]; char SendBuff[512];
char ValueString[256] =""; char ValueString[256] ="";
char * SDRANGEL_PATCHheader = "PATCH /sdrangel/deviceset/%d/device/settings " char * SDRANGEL_PATCHheader = "PATCH /sdrangel/deviceset/%d/device/settings "

View File

@ -2893,7 +2893,7 @@ VOID ProcessIncomingCall(struct TNCINFO * TNC, struct STREAMINFO * STREAM, int S
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available
@ -3034,7 +3034,7 @@ VOID ProcessIncomingCall(struct TNCINFO * TNC, struct STREAMINFO * STREAM, int S
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// if SendTandRtoRelay set and Appl is RMS change to RELAY // if SendTandRtoRelay set and Appl is RMS change to RELAY

View File

@ -48,7 +48,6 @@ extern UCHAR BPQDirectory[];
static RECT Rect; static RECT Rect;
VOID __cdecl Debugprintf(const char * format, ...); VOID __cdecl Debugprintf(const char * format, ...);
char * strlop(char * buf, char delim);
BOOL KAMStartPort(struct PORTCONTROL * PORT); BOOL KAMStartPort(struct PORTCONTROL * PORT);
BOOL KAMStopPort(struct PORTCONTROL * PORT); BOOL KAMStopPort(struct PORTCONTROL * PORT);

View File

@ -52,7 +52,6 @@ extern char LOC[];
static RECT Rect; static RECT Rect;
VOID __cdecl Debugprintf(const char * format, ...); VOID __cdecl Debugprintf(const char * format, ...);
char * strlop(char * buf, char delim);
char NodeCall[11]; // Nodecall, Null Terminated char NodeCall[11]; // Nodecall, Null Terminated
@ -2175,7 +2174,7 @@ VOID TrkProcessDEDFrame(struct TNCINFO * TNC)
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

View File

@ -142,7 +142,7 @@ loop:
return 1; return 1;
} }
BOOL SerialReadConfigFile(int Port, int ProcLine()) BOOL SerialReadConfigFile(int Port, int ProcLine(char * buf, int Port))
{ {
char buf[256],errbuf[256]; char buf[256],errbuf[256];

View File

@ -27,6 +27,16 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#include "CHeaders.h" #include "CHeaders.h"
typedef struct _TCMDX
{
char String[12]; // COMMAND STRING
UCHAR CMDLEN; // SIGNIFICANT LENGTH
VOID (* CMDPROC)(struct TNCDATA * TNC, char * Tail, struct _TCMDX * CMD);// COMMAND PROCESSOR
size_t CMDFLAG; // FLAG/VALUE Offset
} TCMDX;
#define LF 10 #define LF 10
#define CR 13 #define CR 13
@ -848,7 +858,7 @@ int LocalSessionState(int stream, int * state, int * change, BOOL ACK)
VOID ONOFF(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID ONOFF(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
// PROCESS COMMANDS WITH ON/OFF PARAM // PROCESS COMMANDS WITH ON/OFF PARAM
@ -897,7 +907,7 @@ VOID ONOFF(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
VOID ONOFF_CONOK(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID ONOFF_CONOK(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream]; struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream];
@ -911,7 +921,7 @@ VOID ONOFF_CONOK(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SetAppl(TNCStream->BPQPort, TNC->APPLFLAGS, 0); SetAppl(TNCStream->BPQPort, TNC->APPLFLAGS, 0);
} }
VOID SETMYCALL(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID SETMYCALL(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
char Response[80]; char Response[80];
int len; int len;
@ -935,7 +945,7 @@ VOID SETMYCALL(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SENDREPLY(TNC, Response, len); SENDREPLY(TNC, Response, len);
} }
VOID CTEXTCMD(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID CTEXTCMD(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
char Response[256]; char Response[256];
int len, n; int len, n;
@ -963,10 +973,10 @@ VOID CTEXTCMD(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SENDREPLY(TNC, Response, len); SENDREPLY(TNC, Response, len);
} }
VOID BTEXT(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID BTEXT(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
} }
VOID VALUE(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID VALUE(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
// PROCESS COMMANDS WITH decimal value // PROCESS COMMANDS WITH decimal value
@ -995,7 +1005,7 @@ VOID VALUE(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SENDREPLY(TNC, Response, len); SENDREPLY(TNC, Response, len);
} }
VOID VALHEX(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID VALHEX(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
// PROCESS COMMANDS WITH decimal value // PROCESS COMMANDS WITH decimal value
@ -1032,7 +1042,7 @@ VOID VALHEX(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SENDREPLY(TNC, Response, len); SENDREPLY(TNC, Response, len);
} }
VOID APPL_VALHEX(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID APPL_VALHEX(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
int ApplNum = 1; int ApplNum = 1;
UINT APPLMASK; UINT APPLMASK;
@ -1061,7 +1071,7 @@ VOID APPL_VALHEX(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
memcpy(TNC->MYCALL, GetApplCall(ApplNum), 10); memcpy(TNC->MYCALL, GetApplCall(ApplNum), 10);
} }
VOID CSWITCH(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID CSWITCH(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
char Response[80]; char Response[80];
int len; int len;
@ -1072,12 +1082,12 @@ VOID CSWITCH(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
CONNECTTONODE(TNC); CONNECTTONODE(TNC);
} }
VOID CONMODE(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID CONMODE(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
SENDREPLY(TNC, CMDMSG, 4); SENDREPLY(TNC, CMDMSG, 4);
} }
VOID TNCCONV(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID TNCCONV(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream]; struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream];
@ -1085,7 +1095,7 @@ VOID TNCCONV(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
TNCStream->MODEFLAG &= ~(COMMAND+TRANS); TNCStream->MODEFLAG &= ~(COMMAND+TRANS);
} }
VOID TNCNODE(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID TNCNODE(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
// CONNECT TO NODE // CONNECT TO NODE
@ -1099,7 +1109,7 @@ VOID TNCNODE(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
CONNECTTONODE(TNC); CONNECTTONODE(TNC);
} }
VOID CStatus(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID CStatus(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream]; struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream];
@ -1136,7 +1146,7 @@ VOID CStatus(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
} }
VOID TNCCONNECT(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID TNCCONNECT(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream]; struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream];
@ -1179,7 +1189,7 @@ VOID TNCCONNECT(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SENDPACKET(TNC); // Will now go to node SENDPACKET(TNC); // Will now go to node
} }
VOID TNCDISC(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID TNCDISC(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream]; struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream];
@ -1194,7 +1204,7 @@ VOID READCHANGE(int Stream)
LocalSessionState(Stream, &dummy, &dummy, TRUE); LocalSessionState(Stream, &dummy, &dummy, TRUE);
} }
VOID TNCRELEASE(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID TNCRELEASE(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
ReturntoNode(TNC->BPQPort); ReturntoNode(TNC->BPQPort);
@ -1203,7 +1213,7 @@ VOID TNCRELEASE(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
SENDREPLY(TNC, CMDMSG, 4); SENDREPLY(TNC, CMDMSG, 4);
} }
VOID TNCTRANS(struct TNCDATA * TNC, char * Tail, CMDX * CMD) VOID TNCTRANS(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream]; struct TNC2StreamInfo * TNCStream = TNC->TNC2Stream[TNC->TXStream];
@ -1215,7 +1225,7 @@ VOID TNCTRANS(struct TNCDATA * TNC, char * Tail, CMDX * CMD)
TNCStream->MODEFLAG |= TRANS; TNCStream->MODEFLAG |= TRANS;
TNCStream->MODEFLAG &= ~(COMMAND+CONV); TNCStream->MODEFLAG &= ~(COMMAND+CONV);
} }
static VOID TNCRESTART(struct TNCDATA * TNC) static VOID TNCRESTART(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
// REINITIALISE CHANNEL // REINITIALISE CHANNEL
@ -1243,12 +1253,12 @@ static VOID TNCRESTART(struct TNCDATA * TNC)
} }
static VOID TNCUNPROTOCMD(struct TNCDATA * TNC, char * Tail, CMDX * CMD) static VOID TNCUNPROTOCMD(struct TNCDATA * TNC, char * Tail, TCMDX * CMD)
{ {
} }
CMDX TNCCOMMANDLIST[] = TCMDX TNCCOMMANDLIST[] =
{ {
"AUTOLF ",2, ONOFF, offsetof(struct TNCDATA, AUTOLF), "AUTOLF ",2, ONOFF, offsetof(struct TNCDATA, AUTOLF),
"BBSMON ",6, ONOFF, offsetof(struct TNCDATA, BBSMON), "BBSMON ",6, ONOFF, offsetof(struct TNCDATA, BBSMON),
@ -1301,7 +1311,7 @@ CMDX TNCCOMMANDLIST[] =
int NUMBEROFTNCCOMMANDS = sizeof(TNCCOMMANDLIST)/sizeof(CMDX); int NUMBEROFTNCCOMMANDS = sizeof(TNCCOMMANDLIST)/sizeof(TCMDX);
/*NEWVALUE DW 0 /*NEWVALUE DW 0
HEXFLAG DB 0 HEXFLAG DB 0
@ -2575,7 +2585,7 @@ VOID TNCCOMMAND(struct TNCDATA * TNC)
char * ptr, * ptr1, * ptr2; char * ptr, * ptr1, * ptr2;
int n; int n;
CMDX * CMD; TCMDX * CMD;
*(--TNC->CURSOR) = 0; *(--TNC->CURSOR) = 0;
@ -2653,11 +2663,8 @@ VOID TNCCOMMAND(struct TNCDATA * TNC)
} }
CMD++; CMD++;
} }
SENDREPLY(TNC, WHATMSG, 8); SENDREPLY(TNC, WHATMSG, 8);
} }
/* /*
@ -4926,6 +4933,7 @@ int STATUSPOLL(struct TNCDATA * TNC, struct StreamInfo * Channel)
int State, Change, i; int State, Change, i;
char WorkString[256]; char WorkString[256];
char ConMsg[64];
if (TNC->MSGCHANNEL == 0) // Monitor Chan if (TNC->MSGCHANNEL == 0) // Monitor Chan
return 0; return 0;
@ -4941,7 +4949,7 @@ int STATUSPOLL(struct TNCDATA * TNC, struct StreamInfo * Channel)
{ {
// DISCONNECTED // DISCONNECTED
i = sprintf(CONMSG, "\x3(%d) DISCONNECTED fm 0:SWITCH\r", TNC->MSGCHANNEL); i = sprintf(ConMsg, "\x3(%d) DISCONNECTED fm 0:SWITCH\r", TNC->MSGCHANNEL);
i++; i++;
} }
else else
@ -4950,11 +4958,11 @@ int STATUSPOLL(struct TNCDATA * TNC, struct StreamInfo * Channel)
GetCallsign(Channel->BPQStream, WorkString); GetCallsign(Channel->BPQStream, WorkString);
strlop(WorkString, ' '); strlop(WorkString, ' ');
i = sprintf(CONMSG, "\x3(%d) CONNECTED to %s\r", TNC->MSGCHANNEL, WorkString); i = sprintf(ConMsg, "\x3(%d) CONNECTED to %s\r", TNC->MSGCHANNEL, WorkString);
i++; i++;
} }
SENDCMDREPLY(TNC, CONMSG, i); SENDCMDREPLY(TNC, ConMsg, i);
return 1; return 1;
} }

View File

@ -127,7 +127,6 @@ static HMENU hMenu, hPopMenu, hPopMenu2, hPopMenu3; // handle of menu
static int ProcessLine(char * buf, int Port); static int ProcessLine(char * buf, int Port);
VOID __cdecl Debugprintf(const char * format, ...); VOID __cdecl Debugprintf(const char * format, ...);
char * strlop(char * buf, char delim);
int DisplaySessions(struct TNCINFO * TNC); int DisplaySessions(struct TNCINFO * TNC);
@ -6757,7 +6756,7 @@ extern struct DATAMESSAGE * REPLYBUFFER;
char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char * format, ...); char * __cdecl Cmdprintf(TRANSPORTENTRY * Session, char * Bufferptr, const char * format, ...);
VOID RECONFIGTELNET (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID RECONFIGTELNET (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
int Port = 0, index =0; int Port = 0, index =0;
char * ptr, *Context; char * ptr, *Context;
@ -6942,7 +6941,7 @@ VOID RECONFIGTELNET (TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail,
SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER)); SendCommandReply(Session, REPLYBUFFER, (int)(Bufferptr - (char *)REPLYBUFFER));
} }
VOID SHOWTELNET(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD) VOID SHOWTELNET(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD)
{ {
// DISPLAY Telnet Server Status Mheard // DISPLAY Telnet Server Status Mheard

View File

@ -869,7 +869,7 @@ static VOID ProcessFLDigiData(struct TNCINFO * TNC, UCHAR * Input, int Len, int
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

View File

@ -62,7 +62,7 @@ void ConnecttoUZ7HOThread(void * portptr);
void CreateMHWindow(); void CreateMHWindow();
int Update_MH_List(struct in_addr ipad, char * call, char proto); int Update_MH_List(struct in_addr ipad, char * call, char proto);
int ConnecttoUZ7HO(); int ConnecttoUZ7HO(int port);
static int ProcessReceivedData(int bpqport); static int ProcessReceivedData(int bpqport);
static int ProcessLine(char * buf, int Port); static int ProcessLine(char * buf, int Port);
int KillTNC(struct TNCINFO * TNC); int KillTNC(struct TNCINFO * TNC);
@ -374,7 +374,7 @@ int UZ7HOSetFreq(int port, struct TNCINFO * TNC, struct AGWINFO * AGW, PDATAMESS
{ {
// Read Freq // Read Freq
buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Modem Freqency %d\r", AGW->CenterFreq); buffptr->Len = sprintf((UCHAR *)&buffptr->Data[0], "UZ7HO} Modem Frequency %d\r", AGW->CenterFreq);
return 1; return 1;
} }
@ -2479,7 +2479,7 @@ GotStream:
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

2
V4.c
View File

@ -1273,7 +1273,7 @@ static VOID ProcessResponse(struct TNCINFO * TNC, UCHAR * Buffer, int MsgLen)
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

2
VARA.c
View File

@ -2231,7 +2231,7 @@ VOID VARAProcessResponse(struct TNCINFO * TNC, UCHAR * Buffer, int MsgLen)
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// if SendTandRtoRelay set and Appl is RMS change to RELAY // if SendTandRtoRelay set and Appl is RMS change to RELAY

View File

@ -10,8 +10,8 @@
#endif #endif
#define KVers 6,0,24,53 #define KVers 6,0,24,54
#define KVerstring "6.0.24.53\0" #define KVerstring "6.0.24.54\0"
#ifdef CKernel #ifdef CKernel

View File

@ -508,7 +508,7 @@ static int ProcessLine(char * buf, int Port)
void WINMORThread(void * portptr); void WINMORThread(void * portptr);
VOID ProcessDataSocketData(int port); VOID ProcessDataSocketData(int port);
int ConnecttoWINMOR(); int ConnecttoWINMOR(int port);
static int ProcessReceivedData(struct TNCINFO * TNC); static int ProcessReceivedData(struct TNCINFO * TNC);
int V4ProcessReceivedData(struct TNCINFO * TNC); int V4ProcessReceivedData(struct TNCINFO * TNC);
VOID ReleaseTNC(struct TNCINFO * TNC); VOID ReleaseTNC(struct TNCINFO * TNC);
@ -2231,7 +2231,7 @@ VOID ProcessResponse(struct TNCINFO * TNC, UCHAR * Buffer, int MsgLen)
{ {
char AppName[13]; char AppName[13];
memcpy(AppName, &ApplPtr[App * sizeof(CMDX)], 12); memcpy(AppName, &ApplPtr[App * sizeof(struct CMDX)], 12);
AppName[12] = 0; AppName[12] = 0;
// Make sure app is available // Make sure app is available

View File

@ -34,6 +34,7 @@ VOID Do_Save_WPRec(HWND hDlg);
VOID SaveInt64Value(config_setting_t * group, char * name, long long value); VOID SaveInt64Value(config_setting_t * group, char * name, long long value);
VOID SaveIntValue(config_setting_t * group, char * name, int value); VOID SaveIntValue(config_setting_t * group, char * name, int value);
VOID SaveStringValue(config_setting_t * group, char * name, char * value); VOID SaveStringValue(config_setting_t * group, char * name, char * value);
void MQTTMessageEvent(void* message);
WPRec * AllocateWPRecord() WPRec * AllocateWPRecord()
{ {
@ -1495,6 +1496,10 @@ int CreateWPMessage()
BuildNNTPList(Msg); // Build NNTP Groups list BuildNNTPList(Msg); // Build NNTP Groups list
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
To++; To++;
} }

View File

@ -78,6 +78,7 @@ char * doXMLTransparency(char * string);
Dll BOOL APIENTRY APISendAPRSMessage(char * Text, char * ToCall); Dll BOOL APIENTRY APISendAPRSMessage(char * Text, char * ToCall);
void SendMessageReadEvent(char * Call, struct MsgInfo * Msg); void SendMessageReadEvent(char * Call, struct MsgInfo * Msg);
void SendNewMessageEvent(char * call, struct MsgInfo * Msg); void SendNewMessageEvent(char * call, struct MsgInfo * Msg);
void MQTTMessageEvent(void* message);
extern char NodeTail[]; extern char NodeTail[];
extern char BBSName[10]; extern char BBSName[10];
@ -2020,7 +2021,7 @@ void ProcessWebMailMessage(struct HTTPConnectionInfo * Session, char * Key, BOOL
"document.getElementById('myform').action = '/WebMail/QuoteOriginal' + '?%s';" "document.getElementById('myform').action = '/WebMail/QuoteOriginal' + '?%s';"
" document.getElementById('myform').submit();}</script>" " document.getElementById('myform').submit();}</script>"
"<input type=button class='btn' onclick='myfunc()' " "<input type=button class='btn' onclick='myfunc()' "
"value='Include Orignal Msg'>"; "value='Include Original Msg'>";
char Temp[1024]; char Temp[1024];
char ReplyAddr[128]; char ReplyAddr[128];
@ -2840,6 +2841,11 @@ VOID SaveNewMessage(struct HTTPConnectionInfo * Session, char * MsgPtr, char * R
SendNewMessageEvent(user->Call, Msg); SendNewMessageEvent(user->Call, Msg);
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
if (user && (user->flags & F_APRSMFOR)) if (user && (user->flags & F_APRSMFOR))
{ {
char APRS[128]; char APRS[128];
@ -3784,6 +3790,12 @@ VOID WriteOneRecipient(struct MsgInfo * Msg, WebMailInfo * WebMail, int MsgLen,
Msg->status = '$'; // Has forwarding Msg->status = '$'; // Has forwarding
BuildNNTPList(Msg); // Build NNTP Groups list BuildNNTPList(Msg); // Build NNTP Groups list
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
} }
@ -4368,6 +4380,12 @@ VOID BuildMessageFromHTMLInput(struct HTTPConnectionInfo * Session, char * Reply
BuildNNTPList(Msg); // Build NNTP Groups list BuildNNTPList(Msg); // Build NNTP Groups list
#ifndef NOMQTT
if (MQTT)
MQTTMessageEvent(Msg);
#endif
SaveMessageDatabase(); SaveMessageDatabase();
SaveBIDDatabase(); SaveBIDDatabase();

View File

@ -63,8 +63,6 @@ extern char LOC[];
static RECT Rect; static RECT Rect;
VOID __cdecl Debugprintf(const char * format, ...); VOID __cdecl Debugprintf(const char * format, ...);
char * strlop(char * buf, char delim);
char NodeCall[11]; // Nodecall, Null Terminated char NodeCall[11]; // Nodecall, Null Terminated
static BOOL WriteCommBlock(struct TNCINFO * TNC); static BOOL WriteCommBlock(struct TNCINFO * TNC);

View File

@ -111,7 +111,7 @@ int main(int argc, char ** argv)
if (argc < 3) if (argc < 3)
{ {
printf ("Missing paramters - you need COM port and IP Address and rigctl port of BPQ, eg \r\n" printf ("Missing parameters - you need COM port and IP Address and rigctl port of BPQ, eg \r\n"
" WinRPRHelper com10 192.168.1.64:4532\r\n\r\n" " WinRPRHelper com10 192.168.1.64:4532\r\n\r\n"
"Press any key to exit\r\n"); "Press any key to exit\r\n");

View File

@ -62,15 +62,15 @@ extern int ENDOFDATA;
extern int L3LIVES; extern int L3LIVES;
extern int NUMBEROFNODES; extern int NUMBEROFNODES;
typedef struct _CMDX struct CMDX
{ {
char String[12]; // COMMAND STRING char String[12]; // COMMAND STRING
UCHAR CMDLEN; // SIGNIFICANT LENGTH UCHAR CMDLEN; // SIGNIFICANT LENGTH
// VOID (*CMDPROC)(struct _TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);// COMMAND PROCESSOR
VOID (*CMDPROC)();// COMMAND PROCESSOR VOID (*CMDPROC)();// COMMAND PROCESSOR
size_t CMDFLAG; // FLAG/VALUE Offset size_t CMDFLAG; // FLAG/VALUE Offset
} CMDX; };
struct APPLCONFIG struct APPLCONFIG
{ {
@ -547,14 +547,14 @@ typedef struct PORTCONTROL
PMESSAGE PORTRX_Q; // FRAMES RECEIVED ON THIS PORT PMESSAGE PORTRX_Q; // FRAMES RECEIVED ON THIS PORT
PMESSAGE PORTTX_Q; // FRAMES TO BE SENT ON THIS PORT PMESSAGE PORTTX_Q; // FRAMES TO BE SENT ON THIS PORT
void (FAR * PORTTXROUTINE)(); // POINTER TO TRANSMIT ROUTINE FOR THIS PORT void (FAR * PORTTXROUTINE)(struct _EXTPORTDATA * PORTVEC, MESSAGE * Buffer); // POINTER TO TRANSMIT ROUTINE FOR THIS PORT
void (FAR * PORTRXROUTINE)(); // POINTER TO RECEIVE ROUTINE FOR THIS PORT void (FAR * PORTRXROUTINE)(struct _EXTPORTDATA * PORTVEC); // POINTER TO RECEIVE ROUTINE FOR THIS PORT
void (FAR * PORTINITCODE)(); // INITIALISATION ROUTINE void (FAR * PORTINITCODE)(struct PORTCONTROL * PortVector); // INITIALISATION ROUTINE
void (FAR * PORTTIMERCODE)(); // void (FAR * PORTTIMERCODE)(struct PORTCONTROL * PortVector); //
void (FAR * PORTCLOSECODE)(); // CLOSE ROUTINE void (FAR * PORTCLOSECODE)(struct PORTCONTROL * PortVector); // CLOSE ROUTINE
int (FAR * PORTTXCHECKCODE)(); // OK to TX Check int (FAR * PORTTXCHECKCODE)(struct PORTCONTROL * PORTVEC, int Chan); // OK to TX Check
BOOL (FAR * PORTSTOPCODE)(); // Temporarily Stop Port BOOL (FAR * PORTSTOPCODE)(struct PORTCONTROL * PORT); // Temporarily Stop Port
BOOL (FAR * PORTSTARTCODE)(); // Restart Port BOOL (FAR * PORTSTARTCODE)(struct PORTCONTROL * PORT); // Restart Port
BOOL PortStopped; // STOPPORT command used BOOL PortStopped; // STOPPORT command used
BOOL PortSuspended; // Suspended by interlock BOOL PortSuspended; // Suspended by interlock
@ -678,7 +678,7 @@ typedef struct PORTCONTROL
BOOL IgnoreUnlocked; // Ignore Unlocked routes BOOL IgnoreUnlocked; // Ignore Unlocked routes
BOOL INP3ONLY; // Default to INP3 and disallow NODES BOOL INP3ONLY; // Default to INP3 and disallow NODES
FARPROCY UIHook; // Used for KISSARQ void (* UIHook)(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT, MESSAGE * Buffer, MESSAGE * ADJBUFFER, UCHAR CTL, UCHAR MSGFLAG); // Used for KISSARQ
struct PORTCONTROL * HookPort; struct PORTCONTROL * HookPort;
int PortSlot; // Index in Port Table int PortSlot; // Index in Port Table
struct TNCINFO * TNC; // Associated TNC record struct TNCINFO * TNC; // Associated TNC record
@ -766,7 +766,7 @@ typedef struct _EXTPORTDATA
{ {
struct PORTCONTROL PORTCONTROL ; // REMAP HARDWARE INFO struct PORTCONTROL PORTCONTROL ; // REMAP HARDWARE INFO
void * (* PORT_EXT_ADDR) (); // ADDR OF RESIDENT ROUTINE void * (* PORT_EXT_ADDR) (int fn, int port, PDATAMESSAGE buff); // ADDR OF RESIDENT ROUTINE
char PORT_DLL_NAME[16]; char PORT_DLL_NAME[16];
UCHAR EXTRESTART; // FLAG FOR DRIVER REINIT UCHAR EXTRESTART; // FLAG FOR DRIVER REINIT
HINSTANCE DLLhandle; HINSTANCE DLLhandle;

View File

@ -194,7 +194,7 @@ extern int OffsetH, OffsetW;
static void ResolveNames(struct AXIPPORTINFO * PORT); static void ResolveNames(struct AXIPPORTINFO * PORT);
void OpenSockets(struct AXIPPORTINFO * PORT); void OpenSockets(struct AXIPPORTINFO * PORT);
void CloseSockets(); void CloseSockets(struct AXIPPORTINFO * PORT);
static int CONVFROMAX25(char * incall, char * outcall); static int CONVFROMAX25(char * incall, char * outcall);

View File

@ -603,7 +603,7 @@ VOID __cdecl nprintf(ChatCIRCUIT * conn, const char * format, ...);
VOID nputs(ChatCIRCUIT * conn, char * buf); VOID nputs(ChatCIRCUIT * conn, char * buf);
#endif #endif
BOOL matchi(char * p1, char * p2); BOOL matchi(char * p1, char * p2);
char * strlop(char * buf, char delim); char * strlop(const char * buf, char delim);
int rt_cmd(ChatCIRCUIT *circuit, char * Buffer); int rt_cmd(ChatCIRCUIT *circuit, char * Buffer);
ChatCIRCUIT *circuit_new(ChatCIRCUIT *circuit, int flags); ChatCIRCUIT *circuit_new(ChatCIRCUIT *circuit, int flags);
void makelinks(void); void makelinks(void);

View File

@ -471,6 +471,8 @@ struct UserInfo
{ {
// New Format - with stats maintained by message type and unused fields removed. // New Format - with stats maintained by message type and unused fields removed.
// This is no longer a fixed length record so can't be saved as a binarl
char Call[10]; // Connected call without SSID char Call[10]; // Connected call without SSID
int Length; // To make subsequent format changes easier int Length; // To make subsequent format changes easier
@ -877,7 +879,7 @@ struct MSESSION
}; };
VOID __cdecl nprintf(CIRCUIT * conn, const char * format, ...); VOID __cdecl nprintf(CIRCUIT * conn, const char * format, ...);
char * strlop(char * buf, char delim); char * strlop(const char * buf, char delim);
int rt_cmd(CIRCUIT *circuit, char * Buffer); int rt_cmd(CIRCUIT *circuit, char * Buffer);
CIRCUIT *circuit_new(CIRCUIT *circuit, int flags); CIRCUIT *circuit_new(CIRCUIT *circuit, int flags);
VOID BBSputs(CIRCUIT * conn, char * buf); VOID BBSputs(CIRCUIT * conn, char * buf);
@ -1211,10 +1213,9 @@ VOID Do_Delete_User(HWND hDlg);
VOID FlagSentMessages(CIRCUIT * conn, struct UserInfo * user); VOID FlagSentMessages(CIRCUIT * conn, struct UserInfo * user);
VOID HoldSentMessages(CIRCUIT * conn, struct UserInfo * user); VOID HoldSentMessages(CIRCUIT * conn, struct UserInfo * user);
VOID Do_Save_User(HWND hDlg, BOOL ShowBox); VOID Do_Save_User(HWND hDlg, BOOL ShowBox);
VOID DeleteBBS(); VOID DeleteBBS(struct UserInfo * user);
VOID AddBBS();
VOID SaveBBSConfig(); VOID SaveBBSConfig();
BOOL GetChatConfig(); BOOL GetChatConfig(char * ConfigName);
VOID SaveChatConfig(); VOID SaveChatConfig();
VOID SaveISPConfig(); VOID SaveISPConfig();
VOID SaveFWDConfig(); VOID SaveFWDConfig();

47
cMain.c
View File

@ -42,7 +42,7 @@ VOID L2Routine(struct PORTCONTROL * PORT, PMESSAGE Buffer);
VOID ProcessIframe(struct _LINKTABLE * LINK, PDATAMESSAGE Buffer); VOID ProcessIframe(struct _LINKTABLE * LINK, PDATAMESSAGE Buffer);
VOID FindLostBuffers(); VOID FindLostBuffers();
VOID ReadMH(); VOID ReadMH();
void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, CMDX * CMD); void GetPortCTEXT(TRANSPORTENTRY * Session, char * Bufferptr, char * CmdTail, struct CMDX * CMD);
int upnpInit(); int upnpInit();
void AISTimer(); void AISTimer();
void ADSBTimer(); void ADSBTimer();
@ -332,7 +332,7 @@ BOOL LINKTXCHECK()
return 0; return 0;
} }
void * Dummy() // Dummy for missing EXT Driver void * Dummy(int fn, int port, PDATAMESSAGE buff) // Dummy for missing EXT Driver
{ {
return 0; return 0;
} }
@ -341,26 +341,31 @@ VOID EXTINIT(PEXTPORTDATA PORTVEC)
{ {
// LOAD DLL - NAME IS IN PORT_DLL_NAME // LOAD DLL - NAME IS IN PORT_DLL_NAME
VOID * Routine; void *(* Startup) (PEXTPORTDATA PORTVEC); // ADDR OF Startup ROUTINE
PORTVEC->PORT_EXT_ADDR = Dummy; PORTVEC->PORT_EXT_ADDR = Dummy;
Routine = InitializeExtDriver(PORTVEC); Startup = InitializeExtDriver(PORTVEC);
if (Routine == 0) if (Startup == 0)
{ {
WritetoConsoleLocal("Driver installation failed\n"); WritetoConsoleLocal("Driver installation failed\n");
return; return;
} }
PORTVEC->PORT_EXT_ADDR = Routine;
// ALSO CALL THE ROUTINE TO START IT UP, ESPECIALLY IF A L2 ROUTINE
Routine = (VOID *)PORTVEC->PORT_EXT_ADDR(PORTVEC); // CALL THE ROUTINE TO START IT UP
// Startup returns address of processing routine // Startup returns address of processing routine
PORTVEC->PORT_EXT_ADDR = Routine; PORTVEC->PORT_EXT_ADDR = (void *(__cdecl *)(int,int,PDATAMESSAGE))Startup(PORTVEC);;
if (PORTVEC->PORT_EXT_ADDR == 0)
{
WritetoConsoleLocal("Driver Initialisation failed\n");
return;
}
} }
VOID EXTTX(PEXTPORTDATA PORTVEC, MESSAGE * Buffer) VOID EXTTX(PEXTPORTDATA PORTVEC, MESSAGE * Buffer)
@ -372,7 +377,7 @@ VOID EXTTX(PEXTPORTDATA PORTVEC, MESSAGE * Buffer)
if (PORT->KISSFLAGS == 255) // Used for BAYCOM if (PORT->KISSFLAGS == 255) // Used for BAYCOM
{ {
PORTVEC->PORT_EXT_ADDR(2, PORT->PORTNUMBER, Buffer); PORTVEC->PORT_EXT_ADDR(2, PORT->PORTNUMBER, (PDATAMESSAGE)Buffer);
return; // Baycom driver passes frames to trace once sent return; // Baycom driver passes frames to trace once sent
} }
@ -388,7 +393,7 @@ VOID EXTTX(PEXTPORTDATA PORTVEC, MESSAGE * Buffer)
Buffer->Linkptr = 0; // CLEAR FLAG FROM BUFFER Buffer->Linkptr = 0; // CLEAR FLAG FROM BUFFER
} }
PORTVEC->PORT_EXT_ADDR(2, PORT->PORTNUMBER, Buffer); PORTVEC->PORT_EXT_ADDR(2, PORT->PORTNUMBER, (PDATAMESSAGE)Buffer);
if (PORT->PROTOCOL == 10 && PORT->TNC && PORT->TNC->Hardware != H_KISSHF) if (PORT->PROTOCOL == 10 && PORT->TNC && PORT->TNC->Hardware != H_KISSHF)
{ {
@ -418,7 +423,7 @@ Loop:
if (Message == NULL) if (Message == NULL)
return; return;
Len = (size_t)PORTVEC->PORT_EXT_ADDR(1, PORT->PORTNUMBER, Message); Len = (size_t)PORTVEC->PORT_EXT_ADDR(1, PORT->PORTNUMBER, (PDATAMESSAGE)Message);
if (Len == 0) if (Len == 0)
{ {
@ -502,7 +507,9 @@ VOID EXTSLOWTIMER(PEXTPORTDATA PORTVEC)
size_t EXTTXCHECK(PEXTPORTDATA PORTVEC, int Chan) size_t EXTTXCHECK(PEXTPORTDATA PORTVEC, int Chan)
{ {
return (size_t)PORTVEC->PORT_EXT_ADDR(3, PORTVEC->PORTCONTROL.PORTNUMBER, Chan); uintptr_t Temp = Chan;
return (size_t)PORTVEC->PORT_EXT_ADDR(3, PORTVEC->PORTCONTROL.PORTNUMBER, (void *)Temp);
} }
VOID PostDataAvailable(TRANSPORTENTRY * Session) VOID PostDataAvailable(TRANSPORTENTRY * Session)
@ -578,8 +585,8 @@ extern VOID HDLCTXCHECK();
#endif #endif
extern VOID KISSINIT(), KISSTX(), KISSRX(), KISSTIMER(), KISSCLOSE(); extern VOID KISSINIT(), KISSTX(), KISSRX(), KISSTIMER(), KISSCLOSE();
extern VOID EXTINIT(), EXTTX(), LINKRX(), EXTRX(); extern VOID EXTINIT(PEXTPORTDATA PORTVEC), EXTTX(PEXTPORTDATA PORTVEC, MESSAGE * Buffer), LINKRX(), EXTRX(PEXTPORTDATA PORTVEC);
extern VOID LINKCLOSE(), EXTCLOSE() ,LINKTIMER(), EXTTIMER(); extern VOID LINKCLOSE(), EXTCLOSE() ,LINKTIMER(), EXTTIMER(PEXTPORTDATA PORTVEC);
// VECTORS TO HARDWARE DEPENDENT ROUTINES // VECTORS TO HARDWARE DEPENDENT ROUTINES
@ -609,7 +616,7 @@ extern int L4TimerProc();
extern int L3FastTimer(); extern int L3FastTimer();
extern int StatsTimer(); extern int StatsTimer();
extern int COMMANDHANDLER(); extern int COMMANDHANDLER();
extern int SDETX(); VOID SDETX(struct _LINKTABLE * LINK);
extern int L4BG(); extern int L4BG();
extern int L3BG(); extern int L3BG();
extern int TNCTimerProc(); extern int TNCTimerProc();
@ -628,7 +635,7 @@ BOOL Start()
APPLCALLS * APPL; APPLCALLS * APPL;
struct ROUTE * ROUTE; struct ROUTE * ROUTE;
struct DEST_LIST * DEST; struct DEST_LIST * DEST;
CMDX * CMD; struct CMDX * CMD;
int PortSlot = 1; int PortSlot = 1;
uintptr_t int3; uintptr_t int3;
@ -2342,7 +2349,7 @@ L2Packet:
PORT->L2FRAMESSENT++; PORT->L2FRAMESSENT++;
OutOctets[PORT->PORTNUMBER] += Buffer->LENGTH - MSGHDDRLEN; OutOctets[PORT->PORTNUMBER] += Buffer->LENGTH - MSGHDDRLEN;
PORT->PORTTXROUTINE(PORT, Buffer); PORT->PORTTXROUTINE((struct _EXTPORTDATA *)PORT, Buffer);
Sent++; Sent++;
continue; continue;
@ -2388,7 +2395,7 @@ PACTORLOOP:
PORT->L2FRAMESSENT++; PORT->L2FRAMESSENT++;
OutOctets[PORT->PORTNUMBER] += Message->LENGTH; OutOctets[PORT->PORTNUMBER] += Message->LENGTH;
PORT->PORTTXROUTINE(PORT, Buffer); PORT->PORTTXROUTINE((struct _EXTPORTDATA *)PORT, Buffer);
Sent++; Sent++;
if (Sent < 5) if (Sent < 5)
@ -2401,7 +2408,7 @@ ENDOFLIST:
break; break;
} }
PORT->PORTRXROUTINE(PORT); // SEE IF MESSAGE RECEIVED PORT->PORTRXROUTINE((struct _EXTPORTDATA *)PORT); // SEE IF MESSAGE RECEIVED
PORT = PORT->PORTPOINTER; PORT = PORT->PORTPOINTER;
} }

View File

@ -208,10 +208,6 @@ VOID md5(char *arg, unsigned char * checksum);
int APIENTRY SendRaw(int port, char * msg, int len); int APIENTRY SendRaw(int port, char * msg, int len);
BOOL MySetDlgItemText();
VOID OutputDebugString(char * string); VOID OutputDebugString(char * string);
#endif #endif

View File

@ -649,7 +649,7 @@ BOOL ProcessConfig()
if (LOCATOR[0] == 0 && LocSpecified == 0 && RFOnly == 0) if (LOCATOR[0] == 0 && LocSpecified == 0 && RFOnly == 0)
{ {
Consoleprintf(""); Consoleprintf("");
Consoleprintf("Please enter a LOCATOR statment in your BPQ32.cfg"); Consoleprintf("Please enter a LOCATOR statement in your BPQ32.cfg");
Consoleprintf("If you really don't want to be on the Node Map you can enter LOCATOR=NONE"); Consoleprintf("If you really don't want to be on the Node Map you can enter LOCATOR=NONE");
Consoleprintf(""); Consoleprintf("");
@ -1755,8 +1755,7 @@ int tncports(int i)
/* FIND OCCURENCE OF ONE STRING WITHIN ANOTHER */ /* FIND OCCURENCE OF ONE STRING WITHIN ANOTHER */
/************************************************************************/ /************************************************************************/
int xindex(s, t) int xindex(char s[], char t[])
char s[], t[];
{ {
int i, j ,k; int i, j ,k;
@ -1775,8 +1774,7 @@ char s[], t[];
/* FIND FIRST OCCURENCE OF A CHARACTER THAT IS NOT c */ /* FIND FIRST OCCURENCE OF A CHARACTER THAT IS NOT c */
/************************************************************************/ /************************************************************************/
int verify(s, c) int verify(char s[], char c)
char s[], c;
{ {
int i; int i;
@ -2297,10 +2295,7 @@ int decode_port_rec(char * rec)
} }
int doid(i, value, rec) int doid(int i, char value[], char rec[])
int i;
char value[];
char rec[];
{ {
unsigned int j; unsigned int j;
for (j = 3;( j < (unsigned int)strlen(rec)+1); j++) for (j = 3;( j < (unsigned int)strlen(rec)+1); j++)
@ -2334,10 +2329,7 @@ char rec[];
return(1); return(1);
} }
int dodll(i, value, rec) int dodll(int i, char value[], char rec[])
int i;
char value[];
char rec[];
{ {
unsigned int j; unsigned int j;
@ -2424,7 +2416,7 @@ int doSerialPortName(int i, char * value, char * rec)
if (IsNumeric(rec)) if (IsNumeric(rec))
xxp.IOADDR = atoi(rec); xxp.IOADDR = atoi(rec);
else else
xxp.SerialPortName = strdup(rec); xxp.SerialPortName = _strdup(rec);
return 1; return 1;
} }
@ -2457,10 +2449,7 @@ int doKissCommand(int i, char * value, char * rec)
} }
int hwtypes(i, value, rec) int hwtypes(int i, char value[], char rec[])
int i;
char value[];
char rec[];
{ {
hw = 255; hw = 255;
if (_stricmp(value,"ASYNC") == 0) if (_stricmp(value,"ASYNC") == 0)
@ -2543,10 +2532,7 @@ char rec[];
return(1); return(1);
} }
int protocols(i, value, rec) int protocols(int i, char value[], char rec[])
int i;
char value[];
char rec[];
{ {
int hw; int hw;
@ -2580,10 +2566,7 @@ char rec[];
} }
int bbsflag(i, value, rec) int bbsflag(int i, char value[],char rec[])
int i;
char value[];
char rec[];
{ {
int hw=255; int hw=255;
@ -2634,10 +2617,7 @@ int validcalls(int i, char * value, char * rec)
} }
int kissoptions(i, value, rec) int kissoptions(int i, char value[], char rec[])
int i;
char value[];
char rec[];
{ {
int err=255; int err=255;
@ -2689,7 +2669,19 @@ static int troutine[] =
#define TPARAMLIM 6 #define TPARAMLIM 6
extern CMDX TNCCOMMANDLIST[];
typedef struct _TCMDX
{
char String[12]; // COMMAND STRING
UCHAR CMDLEN; // SIGNIFICANT LENGTH
VOID (* CMDPROC)(struct TNCDATA * TNC, char * Tail, struct _TCMDX * CMD);// COMMAND PROCESSOR
size_t CMDFLAG; // FLAG/VALUE Offset
} TCMDX;
extern TCMDX TNCCOMMANDLIST[];
extern int NUMBEROFTNCCOMMANDS; extern int NUMBEROFTNCCOMMANDS;
int decode_tnc_rec(char * rec) int decode_tnc_rec(char * rec)
@ -2766,7 +2758,7 @@ int decode_tnc_rec(char * rec)
// Try process as TNC2 Command // Try process as TNC2 Command
int n = 0; int n = 0;
CMDX * CMD = &TNCCOMMANDLIST[0]; TCMDX * CMD = &TNCCOMMANDLIST[0];
char * ptr1 = key_word; char * ptr1 = key_word;
UCHAR * valueptr; UCHAR * valueptr;

2
kiss.c
View File

@ -1485,7 +1485,7 @@ SeeifMore:
} }
} }
else else
Debugprintf("Polled KISS - response from wrong address - Polled %d Reponse %d", Debugprintf("Polled KISS - response from wrong address - Polled %d Response %d",
KISS->POLLPOINTER->OURCTRL, (Port->RXMSG[0] & 0xf0)); KISS->POLLPOINTER->OURCTRL, (Port->RXMSG[0] & 0xf0));
goto SeeifMore; // SEE IF ANYTHING ELSE goto SeeifMore; // SEE IF ANYTHING ELSE

View File

@ -38,7 +38,7 @@ typedef struct MailAPI
{ {
char *URL; char *URL;
int URLLen; int URLLen;
int (* APIRoutine)(); int (* APIRoutine)(struct HTTPConnectionInfo * Session, char * response, char * Rest, int Auth);
int Auth; int Auth;
} MailAPI; } MailAPI;
@ -1100,8 +1100,13 @@ int unroutableCount = 0;
ptr += sprintf(ptr, "\"location\": \"%s\",\r\n", ourBBSRec->Address); ptr += sprintf(ptr, "\"location\": \"%s\",\r\n", ourBBSRec->Address);
ptr += sprintf(ptr, "\"unroutable\": %s\r\n}\r\n", Unroutables); ptr += sprintf(ptr, "\"unroutable\": %s\r\n}\r\n", Unroutables);
#ifdef LINBPQ
SendWebRequest("packetnodes.spots.radio", Request, Params, 0); SendWebRequest("packetnodes.spots.radio", Request, Params, 0);
#else
pSendWebRequest("packetnodes.spots.radio", Request, Params, 0);
#endif
free(Messages); free(Messages);
free(Unroutables); free(Unroutables);
free(Params); free(Params);
} }

26
md5.c
View File

@ -74,17 +74,14 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
surprised if they were a performance bottleneck for MD5. */ surprised if they were a performance bottleneck for MD5. */
static cvs_uint32 static cvs_uint32
getu32 (addr) getu32(const unsigned char *addr)
const unsigned char *addr;
{ {
return (((((uint32_t)addr[3] << 8) | addr[2]) << 8) return (((((uint32_t)addr[3] << 8) | addr[2]) << 8)
| addr[1]) << 8 | addr[0]; | addr[1]) << 8 | addr[0];
} }
static void static void
putu32 (data, addr) putu32 (cvs_uint32 data, unsigned char *addr)
cvs_uint32 data;
unsigned char *addr;
{ {
addr[0] = (unsigned char)data; addr[0] = (unsigned char)data;
addr[1] = (unsigned char)(data >> 8); addr[1] = (unsigned char)(data >> 8);
@ -97,8 +94,7 @@ putu32 (data, addr)
* initialization constants. * initialization constants.
*/ */
void void
cvs_MD5Init (ctx) cvs_MD5Init (struct cvs_MD5Context *ctx)
struct cvs_MD5Context *ctx;
{ {
ctx->buf[0] = 0x67452301; ctx->buf[0] = 0x67452301;
ctx->buf[1] = 0xefcdab89; ctx->buf[1] = 0xefcdab89;
@ -114,10 +110,8 @@ cvs_MD5Init (ctx)
* of bytes. * of bytes.
*/ */
void void
cvs_MD5Update (ctx, buf, len) cvs_MD5Update (
struct cvs_MD5Context *ctx; struct cvs_MD5Context *ctx, unsigned char const *buf, unsigned len)
unsigned char const *buf;
unsigned len;
{ {
cvs_uint32 t; cvs_uint32 t;
@ -164,10 +158,7 @@ cvs_MD5Update (ctx, buf, len)
* Final wrapup - pad to 64-byte boundary with the bit pattern * Final wrapup - pad to 64-byte boundary with the bit pattern
* 1 0* (64-bit count of bits processed, MSB-first) * 1 0* (64-bit count of bits processed, MSB-first)
*/ */
void void cvs_MD5Final (unsigned char digest[16], struct cvs_MD5Context *ctx)
cvs_MD5Final (digest, ctx)
unsigned char digest[16];
struct cvs_MD5Context *ctx;
{ {
unsigned count; unsigned count;
unsigned char *p; unsigned char *p;
@ -227,10 +218,7 @@ cvs_MD5Final (digest, ctx)
* reflect the addition of 16 longwords of new data. MD5Update blocks * reflect the addition of 16 longwords of new data. MD5Update blocks
* the data and converts bytes into longwords for this routine. * the data and converts bytes into longwords for this routine.
*/ */
void void cvs_MD5Transform (cvs_uint32 buf[4], const unsigned char inraw[64])
cvs_MD5Transform (buf, inraw)
cvs_uint32 buf[4];
const unsigned char inraw[64];
{ {
register cvs_uint32 a, b, c, d; register cvs_uint32 a, b, c, d;
cvs_uint32 in[16]; cvs_uint32 in[16];

56
mqtt.c
View File

@ -317,7 +317,60 @@ int MQTTConnect(char* host, int port, char* user, char* pass)
return 0; return 0;
} }
/* // Message Database Entry. Designed to be compatible with FBB
#define NBBBS 160 // Max BBSes we can forward to. Must be Multiple of 8, and must be 80 for FBB compatibliliy
#define NBMASK NBBBS/8 // Number of bytes in Forward bitlists.
#pragma pack(1)
struct MsgInfo
{
char type;
char status;
int number;
int length;
int xdatereceived;
char bbsfrom[7]; // ? BBS we got it from ?
char via[41];
char from[7];
char to[7];
char bid[13];
char title[61];
int nntpnum; // Number within topic (ie Bull TO Addr) - used for nntp
UCHAR B2Flags; // Not all flags specific to B2
#define B2Msg 1 // Set if Message File is a formatted B2 message
#define Attachments 2 // Set if B2 message has attachments
#define FromPaclink 4
#define FromCMS 8
#define FromRMSExpress 16
#define RadioOnlyMsg 32 // Received using call-T
#define RadioOnlyFwd 64 // Received using call-R
#define WarnNotForwardedSent 128
int xdatecreated;
int xdatechanged;
UCHAR fbbs[NBMASK];
UCHAR forw[NBMASK];
char emailfrom[41];
char Locked; // Set if selected for sending (NTS Pickup)
char Defered; // FBB response '=' received
UCHAR UTF8; // Set if Message is in UTF8 (ie from POP/SMTP)
// For 64 bit time_t compatibility define as long long
// (so struct is same with 32 or 64 bit time_t)
int64_t datereceived;
int64_t datecreated;
int64_t datechanged;
char Spare[61 - 24]; // For future use
} ;
#pragma pack()
void MQTTMessageEvent(void* message) void MQTTMessageEvent(void* message)
{ {
struct MsgInfo* msg = (struct MsgInfo *)message; struct MsgInfo* msg = (struct MsgInfo *)message;
@ -360,7 +413,6 @@ void MQTTMessageEvent(void* message)
MQTTAsync_sendMessage(client, topic, &pubmsg, &opts); MQTTAsync_sendMessage(client, topic, &pubmsg, &opts);
} }
*/
#else #else

View File

@ -26,7 +26,7 @@ typedef struct API
{ {
char *URL; char *URL;
int URLLen; int URLLen;
int (* APIRoutine)(); int (* APIRoutine)(char * response, char * token, char * param);
int Auth; int Auth;
} API; } API;

View File

@ -211,7 +211,7 @@ png_default_error(png_structp png_ptr, png_const_charp error_message)
#endif #endif
#ifdef PNG_NO_CONSOLE_IO #ifdef PNG_NO_CONSOLE_IO
/* make compiler happy */ ; /* make compiler happy */ ;
if (&error_message != NULL) // if (&error_message != NULL)
return; return;
#endif #endif
} }

View File

@ -1165,7 +1165,7 @@ char * Housekeepingtxt()
"Send Non-delivery Notifications<br>\r\n" "Send Non-delivery Notifications<br>\r\n"
"for P and T messages <input %sname=\"SendND\" value=\"SendND\" type=\"checkbox\" /><br>\r\n" "for P and T messages <input %sname=\"SendND\" value=\"SendND\" type=\"checkbox\" /><br>\r\n"
" <br />\r\n" " <br />\r\n"
"Supress Mailing of<br>\r\n" "Suppress Mailing of<br>\r\n"
"Housekeeping Result <input %sname=\"NoMail\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n" "Housekeeping Result <input %sname=\"NoMail\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n"
"Generate Traffic Report<input %sname=\"GenTraffic\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n" "Generate Traffic Report<input %sname=\"GenTraffic\" value=\"Yes\" type=\"checkbox\"><br><br>\r\n"
"<div style=\"text-align: center;\"><input class='btn' name=RunNow value=\"Run Housekeeping\" type=submit class='btn'></div>\r\n" "<div style=\"text-align: center;\"><input class='btn' name=RunNow value=\"Run Housekeeping\" type=submit class='btn'></div>\r\n"
@ -1454,7 +1454,7 @@ char * ChatConfigtxt()
"<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 " "<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 " "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 " "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" "separared 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><br>The Callsign of the Chat Node is not defined here - it is obtained from the bpq32.cfg APPLICATION line corresponding to the Chat Appl Number.<br>\r\n"
"<br></div>\n" "<br></div>\n"

View File

@ -814,9 +814,9 @@ typedef struct TNCINFO
HMENU hMenu; HMENU hMenu;
HMENU hWndMenu; HMENU hWndMenu;
VOID (* SuspendPortProc) (); VOID (* SuspendPortProc) (struct TNCINFO * TNC, struct TNCINFO * ThisTNC);
VOID (* ReleasePortProc) (); VOID (* ReleasePortProc) (struct TNCINFO * TNC);
VOID (* ForcedCloseProc) (); VOID (* ForcedCloseProc) (struct TNCINFO * TNC, int Stream);
time_t WinmorRestartCodecTimer; time_t WinmorRestartCodecTimer;
int WinmorCurrentMode; int WinmorCurrentMode;