master 25.36
g8bpq 2 months ago
parent e40d364775
commit ac4b912a03

@ -10901,7 +10901,6 @@ int Connected(int Stream)
user->flags |= F_Temp_B2_BBS;
conn->NewUser = TRUE;
user->lastmsg = LatestMsg - 20; // Limit L command for new users
}

@ -1415,7 +1415,7 @@ int SendRIPTimer()
continue;
}
if (Route->NEIGHBOUR_LINK->KILLTIMER > ((L4LIMIT - 60) * 3)) // IDLETIME - 1 Minute
if (Route->NEIGHBOUR_LINK->KILLTIMER > ((L4LIMIT - 60) * 10)) // IDLETIME - 1 Minute
{
SendKeepAlive(Route);
Route->NEIGHBOUR_LINK->KILLTIMER = 0; // Keep Open
@ -2062,7 +2062,7 @@ VOID SendAllInfo()
}
}
int INP3NodeTimeout = 3600 *3; // 3 Hours
int INP3NodeTimeout = 3600 * 3; // 3 Hours
void DecayINP3Routes()
{

@ -11,6 +11,11 @@
// Add try/except round main loop
// Version 2.0.1.2 July 2026
// Call RunBPQ32Background() every 10mS
#define _CRT_SECURE_NO_DEPRECATE
#include <windows.h>

@ -30,8 +30,8 @@ BPQICON ICON DISCARDABLE "..\\bpqicon.ico"
//
// Version
//
#define TEXTVER "2. 0. 1. 1\0"
#define BINVER 2, 0, 1, 1
#define TEXTVER "2. 0. 1. 2\0"
#define BINVER 2, 0, 1, 2
VS_VERSION_INFO VERSIONINFO
FILEVERSION BINVER
@ -55,7 +55,7 @@ BEGIN
VALUE "FileDescription", "bpq32\0"
VALUE "FileVersion", TEXTVER
VALUE "InternalName", "bpq32\0"
VALUE "LegalCopyright", "Copyright © 2006-2011 G8BPQ\0"
VALUE "LegalCopyright", "Copyright © 2006-2026 G8BPQ\0"
VALUE "OriginalFilename", "bpq32.exe\0"
VALUE "ProductName", " bpq32\0"
VALUE "ProductVersion", TEXTVER

@ -1330,6 +1330,12 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
// Fix authorisation of Web Save Config File (32)
// Add missing calls to va_end() (32)
// Apply EXCLUDE to APRS and Digi (32)
// Move background processing on Linux from the 100mS timer loop and run more frequently (33)
// Fix sorting INP3 routes when TT is the same and hops differ (34)
// Fix flawed calculation of inp3 TT percentage change on very low values to fix repeated sending of unchanged routes (34)
// Change Web Driver windows to use Winsocks to give quicker refresh when changed (35)
// Fix timer problem introduced in v33 (36)
// Add LOCALNOTSECURE config param to require signin for web access from 127.0.0.1 (36)
#define CKernel
@ -1708,8 +1714,6 @@ VOID * _Q_REM(VOID *Q, char * File, int Line);
UINT ReleaseBuffer(UINT *BUFF);
VOID CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime );
DllExport int APIENTRY DeallocateStream(int stream);
int VECTORLENGTH = sizeof (struct _BPQVECSTRUC);
@ -1782,8 +1786,6 @@ int interval;
VOID CALLBACK SetupTermSessions(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime);
TIMERPROC lpTimerFunc = (TIMERPROC) TimerProc;
TIMERPROC lpSetupTermSessions = (TIMERPROC) SetupTermSessions;
@ -2123,40 +2125,20 @@ VOID MonitorTimerThread(int x)
VOID WritetoTraceSupport(struct TNCINFO * TNC, char * Msg, int Len);
VOID TimerProcX();
VOID CALLBACK TimerProc(
HWND hwnd, // handle of window for timer messages
UINT uMsg, // WM_TIMER message
UINT idEvent, // timer identifier
DWORD dwTime) // current system time
{
KillTimer(NULL,TimerHandle);
TimerProcX();
TimerHandle = SetTimer(NULL,0,100,lpTimerFunc);
}
VOID TimerProcX()
void Semaphored100msCode()
{
struct _EXCEPTION_POINTERS exinfo;
//
// Get semaphore before proceeeding
//
GetSemaphore(&Semaphore, 2);
// Get time since last run
QueryPerformanceCounter(&currentTime);
interval = (int)(currentTime.QuadPart - lastRunTime.QuadPart) / ticksPerMillisec;
lastRunTime.QuadPart = currentTime.QuadPart;
// code that doesn't need to run every tick - run every 100 mS
// Runs under semaphore
NOW = time(NULL);
if (IPActive) Poll_IP();
if (PMActive) Poll_PM();
if (RigActive) Rig_Poll();
if (APRSActive)Poll_APRS();
//Debugprintf("%d", interval);
if (NeedWebMailRefresh)
DoRefreshWebMailIndex();
// Process WINMORTraceQ
CheckWL2KReportTimer();
while (WINMORTraceQ)
{
@ -2179,10 +2161,6 @@ VOID TimerProcX()
RelBuff(Buffer);
}
strcpy(EXCEPTMSG, "Timer ReconfigProcessing");
__try
{
if (trayMenu == NULL)
SetupTrayIcon();
@ -2252,7 +2230,7 @@ VOID TimerProcX()
Consoleprintf("G8BPQ AX25 Packet Switch System Version %s %s", TextVerstring, Datestring);
Consoleprintf(VerCopyright);
Start();
NETROMTCPResolve();
@ -2272,10 +2250,10 @@ VOID TimerProcX()
if (HOSTVEC->HOSTSESSION !=0)
{
// Had a connection
HOSTVEC->HOSTSESSION=0;
HOSTVEC->HOSTFLAGS |=3; // Disconnected
PostMessage(HOSTVEC->HOSTHANDLE, BPQMsg, i, 4);
}
}
@ -2285,7 +2263,7 @@ VOID TimerProcX()
APPL_Q = 0;
OpenReportingSockets();
WritetoConsole("\n\nReconfiguration Complete\n");
if (IPRequired) IPActive = Init_IP();
@ -2310,7 +2288,7 @@ VOID TimerProcX()
InvalidateRect(hConsWnd, NULL, TRUE);
RigActive = Rig_Init();
if (NUMBEROFTNCPORTS)
{
FreeSemaphore(&Semaphore);
@ -2321,7 +2299,7 @@ VOID TimerProcX()
FreeSemaphore(&Semaphore);
AGWActive = AGWAPIInit();
GetSemaphore(&Semaphore, 0);
OutputDebugString("BPQ32 Reconfiguration Complete\n");
}
}
@ -2338,7 +2316,7 @@ VOID TimerProcX()
Rig_Close();
Sleep(6000); // Allow any CATPTT, HAMLIB and FLRIG threads to close
RigActive = Rig_Init();
WritetoConsole("Rigcontrol Reconfiguration Complete\n");
}
}
@ -2352,87 +2330,49 @@ VOID TimerProcX()
APRSReconfigFlag = FALSE;
APRSClose();
APRSActive = Init_APRS();
WritetoConsole("APRS Reconfiguration Complete\n");
}
}
}
}
#include "StdExcept.c"
if (Semaphore.Flag && Semaphore.SemProcessID == GetCurrentProcessId())
FreeSemaphore(&Semaphore);
}
strcpy(EXCEPTMSG, "Timer Processing");
__try
{
if (IPActive) Poll_IP();
if (PMActive) Poll_PM();
if (RigActive) Rig_Poll();
if (NeedWebMailRefresh)
DoRefreshWebMailIndex();
CheckGuardZone();
if (APRSActive)
{
Poll_APRS();
CheckGuardZone();
}
CheckWL2KReportTimer();
CheckGuardZone();
TIMERINTERRUPT();
CheckGuardZone();
VOID UnSemaphored100msCode()
{
// code that doesn't need to run every tick - run every 100 mS
// Runs without semaphore
FreeSemaphore(&Semaphore); // SendLocation needs to get the semaphore
if (NUMBEROFTNCPORTS)
TNCTimer();
if (NUMBEROFTNCPORTS)
TNCTimer();
if (AGWActive)
Poll_AGW();
if (AGWActive)
Poll_AGW();
DRATSPoll();
RHPPoll();
DRATSPoll();
RHPPoll();
CheckGuardZone();
CheckGuardZone();
strcpy(EXCEPTMSG, "HTTP Timer Processing");
strcpy(EXCEPTMSG, "HTTP Timer Processing");
HTTPTimer();
HTTPTimer();
CheckGuardZone();
CheckGuardZone();
strcpy(EXCEPTMSG, "WL2K Report Timer Processing");
strcpy(EXCEPTMSG, "WL2K Report Timer Processing");
if (ReportTimer)
{
ReportTimer--;
if (ReportTimer)
{
ReportTimer--;
if (ReportTimer == 0)
{
ReportTimer = REPORTINTERVAL;
SendLocation();
}
if (ReportTimer == 0)
{
ReportTimer = REPORTINTERVAL;
SendLocation();
}
}
#include "StdExcept.c"
if (Semaphore.Flag && Semaphore.SemProcessID == GetCurrentProcessId())
FreeSemaphore(&Semaphore);
}
CheckGuardZone();
if (CloseAllTimer == 50) // First entry
{
@ -2447,7 +2387,7 @@ VOID TimerProcX()
if (CloseAllTimer == 40) // First entry
CloseAllLinks(); // No sessions closed so close links now
if (CloseAllTimer)
{
// See if any links left
@ -2480,9 +2420,9 @@ VOID TimerProcX()
if(CloseAllTimer == 0)
RealCloseAllPrograms();
}
return;
}
HANDLE NPHandle;
int (WINAPI FAR *GetModuleFileNameExPtr)() = NULL;
@ -2569,7 +2509,7 @@ FirstInit()
_beginthread(MonitorThread,0,0);
TimerHandle=SetTimer(NULL,0,100,lpTimerFunc);
// TimerHandle=SetTimer(NULL,0,100,lpTimerFunc);
TimerInst=GetCurrentProcessId();
SessHandle = SetTimer(NULL, 0, 5000, lpSetupTermSessions);
@ -2591,6 +2531,30 @@ FirstInit()
int Check_Timer()
{
if (FirstInitDone == 0)
{
GetSemaphore(&Semaphore, 3);
if (_stricmp(pgm, "bpq32.exe") == 0)
{
FirstInit();
FreeSemaphore(&Semaphore);
if (NUMBEROFTNCPORTS)
InitializeTNCEmulator();
AGWActive = AGWAPIInit();
FirstInitDone=1; // Only init in BPQ32.exe
return 0;
}
else
{
FreeSemaphore(&Semaphore);
return 0;
}
}
return 0;
if (Closing)
return 0;
@ -2752,7 +2716,6 @@ int Check_Timer()
else
ShowWindow(FrameWnd, SW_RESTORE);
TimerHandle=SetTimer(NULL,0,100,lpTimerFunc);
TimerInst=GetCurrentProcessId();
SessHandle = SetTimer(NULL, 0, 5000, lpSetupTermSessions);
@ -3288,6 +3251,31 @@ SkipInit:
}
DllExport int APIENTRY RunBPQ32Background()
{
// Called every 10 Ms or so from BPQ32.EXE
// Get time since last run
QueryPerformanceCounter(&currentTime);
interval = (int)(currentTime.QuadPart - lastRunTime.QuadPart) / ticksPerMillisec;
lastRunTime.QuadPart = currentTime.QuadPart;
GetSemaphore(&Semaphore, 2);
if (TIMERINTERRUPT()) // Calls BG code and slower timer routines
{
// 100 mS has elapsed
NOW = time(NULL);
Semaphored100msCode();
FreeSemaphore(&Semaphore);
UnSemaphored100msCode();
}
else
FreeSemaphore(&Semaphore);
return 1;
}

@ -1262,7 +1262,7 @@ static int KissDecode(UCHAR * inbuff, UCHAR * outbuff, int len)
#define ACKMODE 4 // CAN USE ACK REQURED FRAMES
#define MSGHDDRLEN (USHORT)(sizeof(VOID *) + sizeof(UCHAR) + sizeof(USHORT))
#define ONEMINUTE 60*3
#define ONEMINUTE 60*10
static int KissEncode(struct TNCINFO * TNC, UCHAR * inbuff, UCHAR * outbuff, int len, int Channel)
{

@ -54,9 +54,9 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
#define RNRSENT 0x10 // WE HAVE SEND RNR
#define POLLSENT 0x20 // POLL BIT OUTSTANDING
#define ONEMINUTE 60*3
#define TENSECS 10*3
#define THREESECS 3*3
#define ONEMINUTE 60*10
#define TENSECS 10*10
#define THREESECS 3*10
VOID L2Routine(struct PORTCONTROL * PORT, PMESSAGE Buffer);
@ -965,7 +965,7 @@ VOID ProcessXIDCommand(struct _LINKTABLE * LINK, struct PORTCONTROL * PORT, MESS
LINK->LINKPORT = PORT;
LINK->KILLTIMER = L2KILLTIME - 60*3; // Time out after 60 secs if SABM not received
LINK->KILLTIMER = L2KILLTIME - 60*10; // Time out after 60 secs if SABM not received
// save calls so we can match up SABM when it comes
@ -3463,6 +3463,8 @@ VOID L2TimerProc()
struct PORTCONTROL * PORT = PORTTABLE;
time_t Now = NOW;
// Now 100 mS
while (i--)
{
if (LINK->LINKCALL[0] == 0)
@ -3939,7 +3941,7 @@ VOID L2SENDXID(struct _LINKTABLE * LINK)
{
// NO BUFFERS - SET TIMER TO FORCE RETRY
LINK->L2TIMER = 10*3; // SET TIMER
LINK->L2TIMER = 10*10; // SET TIMER
return;
}
@ -4039,7 +4041,7 @@ VOID L2SENDCOMMAND(struct _LINKTABLE * LINK, int CMD)
// NO BUFFERS - SET TIMER TO FORCE RETRY
if (CMD & PFBIT) // RESPONSE EXPECTED?
LINK->L2TIMER = 10*3; // SET TIMER
LINK->L2TIMER = 10*10; // SET TIMER
return;
}
@ -4088,7 +4090,7 @@ VOID L2SENDRESPONSE(struct _LINKTABLE * LINK, int CMD)
// NO BUFFERS - SET TIMER TO FORCE RETRY
if (CMD & PFBIT) // RESPONSE EXPECTED?
LINK->L2TIMER = 10*3; // SET TIMER
LINK->L2TIMER = 10*10; // SET TIMER
return;
}

@ -285,7 +285,6 @@ NO_PROBLEM:
// EVEN IF WE CANT PUT ORIGINATING NODE INTO OUR TABLES, PASS MSG ON
// ANYWAY - THE FINAL TARGET MAY HAVE ANOTHER WAY BACK
C_Q_ADD(&DEST->DEST_Q, L3MSG);
L3FRAMES++;

@ -809,7 +809,7 @@ static void abrthandler(int sig);
void GetRestartData();
void Main100msCode()
void Semaphored100msCode()
{
// code that doesn't need to run every tick - run every 100 mS
@ -987,6 +987,95 @@ void Main100msCode()
}
}
void UnSemaphored100msCode()
{
if (Redirected == 0)
ConTermPoll();
if (NUMBEROFTNCPORTS)
TNCTimer();
if (AGWActive)
Poll_AGW();
DRATSPoll();
RHPPoll();
if (ReportTimer)
{
ReportTimer--;
if (ReportTimer == 0)
{
ReportTimer = REPORTINTERVAL;
SendLocation();
}
}
HTTPTimer();
if (RunChat)
{
ChatPollStreams();
ChatTrytoSend();
if (Slowtimer > 100) // 10 secs
{
ChatTimer();
}
}
if (RunMail)
{
PollStreams();
if ((Slowtimer % 20) == 0)
FWDTimerProc();
if (Slowtimer > 100) // 10 secs
{
struct tm * tm;
TCPTimer();
BBSSlowTimer();
if (MaintClock < NOW)
{
while (MaintClock < NOW) // in case large time step
MaintClock += MaintInterval * 3600;
Debugprintf("|Enter HouseKeeping");
DoHouseKeeping(FALSE);
}
if (APIClock < NOW)
{
SendBBSDataToPktMap();
APIClock = NOW + 7200; // Every 2 hours
}
tm = gmtime(&NOW);
if (tm->tm_wday == 0) // Sunday
{
if (GenerateTrafficReport && (LastTrafficTime + 86400) < NOW)
{
CreateBBSTrafficReport();
LastTrafficTime = NOW;
}
}
}
TCPFastTimer();
TrytoSend();
}
if (Slowtimer > 100)
Slowtimer = 0;
}
int main(int argc, char * argv[])
{
int i;
@ -1620,98 +1709,15 @@ int main(int argc, char * argv[])
{
// 100mS has elapsed
Main100msCode();
Semaphored100msCode();
Slowtimer++;
FreeSemaphore(&Semaphore);
if (Redirected == 0)
ConTermPoll();
if (NUMBEROFTNCPORTS)
TNCTimer();
if (AGWActive)
Poll_AGW();
DRATSPoll();
RHPPoll();
if (ReportTimer)
{
ReportTimer--;
if (ReportTimer == 0)
{
ReportTimer = REPORTINTERVAL;
SendLocation();
}
}
HTTPTimer();
if (RunChat)
{
ChatPollStreams();
ChatTrytoSend();
if (Slowtimer > 100) // 10 secs
{
ChatTimer();
}
}
if (RunMail)
{
PollStreams();
if ((Slowtimer % 20) == 0)
FWDTimerProc();
if (Slowtimer > 100) // 10 secs
{
struct tm * tm;
TCPTimer();
BBSSlowTimer();
if (MaintClock < NOW)
{
while (MaintClock < NOW) // in case large time step
MaintClock += MaintInterval * 3600;
Debugprintf("|Enter HouseKeeping");
DoHouseKeeping(FALSE);
}
if (APIClock < NOW)
{
SendBBSDataToPktMap();
APIClock = NOW + 7200; // Every 2 hours
}
tm = gmtime(&NOW);
if (tm->tm_wday == 0) // Sunday
{
if (GenerateTrafficReport && (LastTrafficTime + 86400) < NOW)
{
CreateBBSTrafficReport();
LastTrafficTime = NOW;
}
}
}
TCPFastTimer();
TrytoSend();
}
if (Slowtimer > 100)
Slowtimer = 0;
UnSemaphored100msCode();
}
else
FreeSemaphore(&Semaphore);
}
hookNodeClosing("Shutdown");

@ -57,6 +57,8 @@ along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
extern UCHAR LogDirectory[];
extern int MONTOFILEFLAG;
extern int LOCALNOTSECURE;
static char ClassName[]="TELNETSERVER";
static char WindowTitle[] = "Telnet Server";
@ -3368,7 +3370,7 @@ int Socket_Accept(struct TNCINFO * TNC, SOCKET SocketId, int Port)
if (sockptr->sin.sin_family != AF_INET6)
{
if (sockptr->sin.sin_addr.s_addr == htonl(INADDR_LOOPBACK)) // 127.0.0.1?
if (!LOCALNOTSECURE && sockptr->sin.sin_addr.s_addr == htonl(INADDR_LOOPBACK)) // 127.0.0.1?
LOCAL = TRUE;
else
{

@ -10,8 +10,8 @@
#endif
#define KVers 6,0,25,35
#define KVerstring "6.0.25.35\0"
#define KVers 6,0,25,36
#define KVerstring "6.0.25.36\0"
#ifdef CKernel

@ -73,6 +73,7 @@ extern SOCKADDR_IN UDPreportdest;
extern char NodeAPIServer[80];
extern int NodeAPIPort;
extern int RIFInterval;
extern int LOCALNOTSECURE;
time_t LastNodeStatus = 0;
@ -150,9 +151,9 @@ int PACLEN = 100; //MAX PACKET SIZE
// L2 SYSTEM TIMER RUNS AT 3 HZ
int T3 = 3*61*3; // LINK VALIDATION TIMER (3 MINS) (+ a bit to reduce RR collisions)
int T3 = 3*61*10; // LINK VALIDATION TIMER (3 MINS) (+ a bit to reduce RR collisions)
int L2KILLTIME = 16*60*3; // IDLE LINK TIMER (16 MINS)
int L2KILLTIME = 16*60*10; // IDLE LINK TIMER (16 MINS)
int L3LIVES = 15; // MAX L3 HOPS
int L4N2 = 3; // LEVEL 4 RETRY COUNT
int L4LIMIT = 60*15; // IDLE SESSION LIMIT - 15 MINS
@ -854,11 +855,13 @@ BOOL Start()
// MOV NUMBEROFBUFFERS,AX
PACLEN = cfg->C_PACLEN;
T3 = cfg->C_T3 * 3;
T3 = cfg->C_T3 * 10;
L4LIMIT = cfg->C_IDLETIME;
if (L4LIMIT && L4LIMIT < 120)
L4LIMIT = 120; // Don't allow stupidly low
L2KILLTIME = L4LIMIT * 3;
L2KILLTIME = L4LIMIT * 10;
L4DELAY = cfg->C_L4DELAY;
BBS = cfg->C_BBS;
NODE = cfg->C_NODE;
@ -912,6 +915,7 @@ BOOL Start()
EnableOARCAPI = cfg->C_OARCAPI;
LOCALNOTSECURE = cfg->C_LOCALNOTSECURE;
MONTOFILEFLAG = cfg->C_MONTOFILE;
if (cfg->C_RIFInterval)
@ -2210,7 +2214,7 @@ int TIMERINTERRUPT()
struct _MESSAGE * Message;
int toPort;
if (GetTickCount() - last100mSTickCount > 100)
if (GetTickCount() - last100mSTickCount >= 100)
{
retval = 1;
@ -2232,7 +2236,7 @@ int TIMERINTERRUPT()
}
if (last100mSTickCount - lastSecTickCount > 1000)
if (last100mSTickCount - lastSecTickCount >= 1000)
{
lastSecTickCount = last100mSTickCount;

File diff suppressed because it is too large Load Diff

@ -257,7 +257,7 @@ int tnctypes(int i,char *value,char *rec);
int do_kiss(char *value,char *rec);
int decode_ded_rec(char *rec);
int simple(int i);
int64_t int64_value(int64_t * val, char value[], char rec[]);
int int64_value(int64_t * val, char value[], char rec[]);
int32_t int32_value(int32_t * val, char value[], char rec[]);
@ -314,7 +314,7 @@ static char *keywords[] =
"EnableM0LTEMap", "MQTT", "MQTT_HOST", "MQTT_PORT", "MQTT_USER", "MQTT_PASS",
"L4Compress", "L4CompMaxframe", "L4CompPaclen", "L2Compress", "L2CompMaxframe",
"L2CompPaclen", "PREFERINP3ROUTES", "OnlyVer2point0", "DEBUGINP3", "ENABLEOARCAPI", "MONTOFILE",
"RIFInterval"
"RIFInterval", "LOCALNOTSECURE"
}; /* parameter keywords */
@ -340,7 +340,8 @@ static void * offset[] =
&xxcfg.C_M0LTEMap, &xxcfg.C_MQTT, &xxcfg.C_MQTT_HOST, &xxcfg.C_MQTT_PORT, &xxcfg.C_MQTT_USER, &xxcfg.C_MQTT_PASS,
&xxcfg.C_L4Compress, &xxcfg.C_L4CompMaxframe, &xxcfg.C_L4CompPaclen, &xxcfg.C_L2Compress, &xxcfg.C_L2CompMaxframe,
&xxcfg.C_L2CompPaclen, &xxcfg.C_PREFERINP3ROUTES, &xxcfg.C_OnlyVer2point0, &xxcfg.C_DEBUGINP3, &xxcfg.C_OARCAPI, &xxcfg.C_MONTOFILE,
&xxcfg.C_RIFInterval}; /* offset for corresponding data in config file */
&xxcfg.C_RIFInterval, &xxcfg.C_LOCALNOTSECURE /* offset for corresponding data in config file */
};
static int routine[] =
{
@ -364,7 +365,7 @@ static int routine[] =
2, 2, 0, 1, 20, 20,
1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1,
1}; // Routine to process param
1, 1}; // Routine to process param
int PARAMLIM = sizeof(routine)/sizeof(int);
//int NUMBEROFKEYWORDS = sizeof(routine)/sizeof(int);
@ -649,6 +650,7 @@ BOOL ProcessConfig()
paramok[100]=1; // BW
paramok[101]=1; // SF
paramok[102]=1; // CR
paramok[103]=1; // LOCALNOTSECURE
for (i=0; i < PARAMLIM; i++)
@ -1418,7 +1420,7 @@ int int32_value(int32_t * val, char value[], char rec[])
return(1);
}
int64_t int64_value(int64_t * val, char value[], char rec[])
int int64_value(int64_t * val, char value[], char rec[])
{
*val = strtoll(value, NULL, 10);
return(1);

@ -196,7 +196,7 @@ struct CONFIGTABLE
int C_OARCAPI;
int C_MONTOFILE;
int C_RIFInterval;
int C_LOCALNOTSECURE;
//#define ApplOffset 80000 // Applications offset in config buffer

@ -39,6 +39,8 @@ int DEBUGINP3 = 0;
int EnableOARCAPI = 0;
int LOCALNOTSECURE = 0; // Dont treat 127.0.0.1 as secure (For Proxies)
int RTTInterval = 30; // 10 second increments - 5 Minutes
BOOL IPRequired = FALSE;

Binary file not shown.
Loading…
Cancel
Save

Powered by TurnKey Linux.