linbpq/MailDataDefs.c

224 lines
5.1 KiB
C

/*
Copyright 2001-2018 John Wiseman G8BPQ
This file is part of LinBPQ/BPQ32.
LinBPQ/BPQ32 is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
LinBPQ/BPQ32 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with LinBPQ/BPQ32. If not, see http://www.gnu.org/licenses
*/
#include "bpqmail.h"
int LastVer[4] = {0, 0, 0, 0}; // In case we need to do somthing the first time a version is run
HWND MainWnd;
HWND hWndSess;
RECT MainRect;
HMENU hActionMenu;
static HMENU hMenu;
HMENU hDisMenu; // Disconnect Menu Handle
HMENU hFWDMenu; // Forward Menu Handle
int SessX, SessY, SessWidth; // Params for Session Window
char szBuff[80];
#define MaxSockets 64
ConnectionInfo Connections[MaxSockets+1];
struct SEM ChatSemaphore = {0, 0};
struct SEM AllocSemaphore = {0, 0};
struct SEM ConSemaphore = {0, 0};
struct SEM Semaphore = {0, 0};
struct SEM OutputSEM = {0, 0};
struct SEM ConfigSEM = {0, 0};
struct UserInfo ** UserRecPtr=NULL;
int NumberofUsers=0;
struct UserInfo * BBSChain = NULL; // Chain of users that are BBSes
struct MsgInfo ** MsgHddrPtr=NULL;
int NumberofMessages=0;
int FirstMessageIndextoForward = 0; // Lowest Message with a forward bit set - limits search
BIDRec ** BIDRecPtr=NULL;
int NumberofBIDs=0;
BIDRec ** TempBIDRecPtr=NULL;
int NumberofTempBIDs=0;
WPRec ** WPRecPtr=NULL;
int NumberofWPrecs=0;
char ** BadWords=NULL;
int NumberofBadWords=0;
char * BadFile = NULL;
int LatestMsg = 0;
struct SEM MsgNoSemaphore = {0, 0}; // For locking updates to LatestMsg
int HighestBBSNumber = 0;
int MaxMsgno = 60000;
int BidLifetime = 60;
int MaxAge = 30;
int MaintInterval = 24;
int MaintTime = 0;
int UserLifetime = 0;
BOOL cfgMinToTray;
BOOL DisconnectOnClose=FALSE;
char PasswordMsg[100]="Password:";
char cfgHOSTPROMPT[100];
char cfgCTEXT[100];
char cfgLOCALECHO[100];
char AttemptsMsg[] = "Too many attempts - Disconnected\r\r";
char disMsg[] = "Disconnected by SYSOP\r\r";
char LoginMsg[]="user:";
char BlankCall[]=" ";
ULONG BBSApplMask;
ULONG ChatApplMask;
int BBSApplNum=0;
int ChatApplNum=0;
//int StartStream=0;
int NumberofStreams=0;
int MaxStreams=0;
char BBSSID[]="[%s%d.%d.%d.%d-%s%s%s%sIH%sM$]\r";
char ChatSID[]="[BPQChatServer-%d.%d.%d.%d]\r";
char NewUserPrompt[100]="Please enter your Name\r>\r";
char * WelcomeMsg = NULL;
char * NewWelcomeMsg = NULL;
char * ExpertWelcomeMsg = NULL;
char * Prompt = NULL;
char * NewPrompt = NULL;
char * ExpertPrompt = NULL;
char BBSName[100] = "NOCALL";
char SYSOPCall[50];
char MailForText[100];
char HRoute[100];
char AMPRDomain[100];
BOOL SendAMPRDirect = 0;
char SignoffMsg[100];
char AbortedMsg[100]="\rOutput aborted\r";
char UserDatabaseName[MAX_PATH] = "BPQBBSUsers.dat";
char UserDatabasePath[MAX_PATH];
char MsgDatabasePath[MAX_PATH];
char MsgDatabaseName[MAX_PATH] = "DIRMES.SYS";
char BIDDatabasePath[MAX_PATH];
char BIDDatabaseName[MAX_PATH] = "WFBID.SYS";
char WPDatabasePath[MAX_PATH];
char WPDatabaseName[MAX_PATH] = "WP.SYS";
char BadWordsPath[MAX_PATH];
char BadWordsName[MAX_PATH] = "BADWORDS.SYS";
char NTSAliasesPath[MAX_PATH];
char NTSAliasesName[MAX_PATH] = "INTRCPT.APS";
char ConfigName[250];
char ChatConfigName[250];
BOOL UsingingRegConfig = FALSE;
BOOL MulticastRX = FALSE;
char BaseDir[MAX_PATH];
char BaseDirRaw[MAX_PATH]; // As set in registry - may contain %NAME%
char ProperBaseDir[MAX_PATH]; // BPQ Directory/BPQMailChat
char MailDir[MAX_PATH];
char RlineVer[50];
BOOL KISSOnly = FALSE;
BOOL EnableUI = FALSE;
BOOL RefuseBulls = FALSE;
BOOL SendSYStoSYSOPCall = FALSE;
BOOL SendBBStoSYSOPCall = FALSE;
BOOL DontHoldNewUsers = FALSE;
BOOL DefaultNoWINLINK = FALSE;
BOOL ForwardToMe = FALSE;
BOOL OnlyKnown = FALSE;
BOOL DontNeedHomeBBS = FALSE;
BOOL DontCheckFromCall = FALSE;
// Send WP Params
BOOL SendWP;
BOOL FilterWPBulls;
BOOL NoWPGuesses;
char SendWPVIA[81];
char SendWPTO[11];
char ** SendWPAddrs; // Replaces WP To and VIA
int SendWPType;
int SMTPMsgs;
int MailForInterval = 0;
char zeros[NBMASK]; // For forward bitmask tests
time_t MaintClock; // Time to run housekeeping
time_t APIClock; // Time to sent to MOLTE's Database
struct MsgInfo * MsgnotoMsg[100000]; // Message Number to Message Slot List.
// Filter Params
char ** RejFrom; // Reject on FROM Call
char ** RejTo; // Reject on TO Call
char ** RejAt; // Reject on AT Call
char ** RejBID; // Reject on BID
char ** HoldFrom; // Hold on FROM Call
char ** HoldTo; // Hold on TO Call
char ** HoldAt; // Hold on AT Call
char ** HoldBID; // Hold on BID
struct ConsoleInfo * ConsHeader[2];