QWK networking hub tested/working
This commit is contained in:
parent
38f419d2a2
commit
f30bf00834
|
@ -265,8 +265,6 @@ Begin
|
||||||
End;
|
End;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
writeln ('base result:',result);
|
|
||||||
|
|
||||||
Close (F);
|
Close (F);
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
|
@ -278,6 +278,7 @@ Var
|
||||||
|
|
||||||
Var
|
Var
|
||||||
TempStr : String;
|
TempStr : String;
|
||||||
|
SkipMsg : Boolean;
|
||||||
Begin
|
Begin
|
||||||
MsgAdded := 0;
|
MsgAdded := 0;
|
||||||
|
|
||||||
|
@ -315,25 +316,38 @@ Begin
|
||||||
MsgBase^.ReWriteHdr;
|
MsgBase^.ReWriteHdr;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
Inc (MsgAdded);
|
|
||||||
Inc (TotalMessages);
|
|
||||||
|
|
||||||
LastRead := MsgBase^.GetMsgNum;
|
LastRead := MsgBase^.GetMsgNum;
|
||||||
Chunks := 0;
|
Chunks := 0;
|
||||||
BufStr := '';
|
BufStr := '';
|
||||||
TooBig := False;
|
TooBig := False;
|
||||||
QwkIndex := DataFile.FileSizeRaw DIV 128 + 1;
|
QwkIndex := DataFile.FileSizeRaw DIV 128 + 1;
|
||||||
|
SkipMsg := False;
|
||||||
|
|
||||||
MsgBase^.MsgTxtStartUp;
|
MsgBase^.MsgTxtStartUp;
|
||||||
|
|
||||||
While Not MsgBase^.EOM Do Begin
|
While Not MsgBase^.EOM And Not SkipMsg Do Begin
|
||||||
TempStr := MsgBase^.GetString(79);
|
TempStr := MsgBase^.GetString(79);
|
||||||
|
|
||||||
If TempStr[1] = #1 Then Continue;
|
If TempStr[1] = #1 Then Begin
|
||||||
|
// Do not export msgs to a node if the msg came from the node
|
||||||
|
If IsNetworked And Not IsRep And (Copy(TempStr, 2, 4) = 'QSRC') Then
|
||||||
|
SkipMsg := strUpper(strWordGet(2, TempStr, ' ')) = strUpper(PacketID);
|
||||||
|
|
||||||
|
Continue;
|
||||||
|
End;
|
||||||
|
|
||||||
Inc (Chunks, Length(TempStr));
|
Inc (Chunks, Length(TempStr));
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
If SkipMsg Then Begin
|
||||||
|
MsgBase^.SeekNext;
|
||||||
|
|
||||||
|
Continue;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Inc (MsgAdded);
|
||||||
|
Inc (TotalMessages);
|
||||||
|
|
||||||
If Chunks MOD 128 = 0 Then
|
If Chunks MOD 128 = 0 Then
|
||||||
Chunks := Chunks DIV 128 + 1
|
Chunks := Chunks DIV 128 + 1
|
||||||
Else
|
Else
|
||||||
|
@ -596,6 +610,8 @@ Begin
|
||||||
If IsNetworked Then Begin
|
If IsNetworked Then Begin
|
||||||
MsgBase^.SetLocal(False);
|
MsgBase^.SetLocal(False);
|
||||||
|
|
||||||
|
If IsQwk Then MsgBase^.SetSent(True);
|
||||||
|
|
||||||
QwkBlock[0] := #25;
|
QwkBlock[0] := #25;
|
||||||
Move (QwkHeader.UpFrom, QwkBlock[1], 25);
|
Move (QwkHeader.UpFrom, QwkBlock[1], 25);
|
||||||
MsgBase^.SetFrom(strStripR(QwkBlock, ' '));
|
MsgBase^.SetFrom(strStripR(QwkBlock, ' '));
|
||||||
|
@ -675,8 +691,13 @@ Begin
|
||||||
End;
|
End;
|
||||||
|
|
||||||
If Not IsControl Then Begin
|
If Not IsControl Then Begin
|
||||||
|
// ISQWK = a node importing from HUB
|
||||||
If ((IsQwk) or (HasAccess(Self, MBase.PostACS))) and
|
If ((IsQwk) or (HasAccess(Self, MBase.PostACS))) and
|
||||||
((IsNetworked And (UserRecord.QwkNetwork = MBase.QwkNetID)) or (Not IsNetworked)) Then Begin
|
((IsNetworked And (UserRecord.QwkNetwork = MBase.QwkNetID)) or (Not IsNetworked)) Then Begin
|
||||||
|
|
||||||
|
If IsNetworked And Not IsQWK Then
|
||||||
|
MsgBase^.DoStringLn (#1'QSRC ' + PacketID);
|
||||||
|
|
||||||
MsgBase^.WriteMsg;
|
MsgBase^.WriteMsg;
|
||||||
|
|
||||||
Inc (RepOK); // must increase user and history posts by repOK
|
Inc (RepOK); // must increase user and history posts by repOK
|
||||||
|
|
|
@ -569,7 +569,7 @@ Begin
|
||||||
QWK := TQwkEngine.Create(TempPath, GetQWKName, UserPos, User);
|
QWK := TQwkEngine.Create(TempPath, GetQWKName, UserPos, User);
|
||||||
|
|
||||||
QWK.HasAccess := @QWKHasAccess;
|
QWK.HasAccess := @QWKHasAccess;
|
||||||
QWK.IsNetworked := User.Flags AND UserQWKNetwork <> 0;
|
QWK.IsNetworked := (User.Flags AND UserQWKNetwork <> 0);
|
||||||
QWK.IsExtended := User.QwkExtended;
|
QWK.IsExtended := User.QwkExtended;
|
||||||
|
|
||||||
QWK.ImportPacket(False);
|
QWK.ImportPacket(False);
|
||||||
|
@ -605,9 +605,6 @@ Begin
|
||||||
GetSecurityLevel(User.Security, SecLevel);
|
GetSecurityLevel(User.Security, SecLevel);
|
||||||
|
|
||||||
Server.Status (ProcessID, User.Handle + ' logged in');
|
Server.Status (ProcessID, User.Handle + ' logged in');
|
||||||
server.status (processID, 'DEBUG Pos ' + strI2S(UserPos));
|
|
||||||
if user.flags and userqwknetwork <> 0 then
|
|
||||||
server.status (processID, 'DEBUG has networking');
|
|
||||||
End Else
|
End Else
|
||||||
Client.WriteLine(re_BadPW);
|
Client.WriteLine(re_BadPW);
|
||||||
End;
|
End;
|
||||||
|
|
|
@ -22,6 +22,7 @@ Uses
|
||||||
BBS_MsgBase_JAM,
|
BBS_MsgBase_JAM,
|
||||||
BBS_MsgBase_Squish;
|
BBS_MsgBase_Squish;
|
||||||
|
|
||||||
|
// Adds packet name into a FLO-type file if it does not exist already
|
||||||
Procedure AddToFLOQueue (FloName, PacketFN: String);
|
Procedure AddToFLOQueue (FloName, PacketFN: String);
|
||||||
Var
|
Var
|
||||||
T : Text;
|
T : Text;
|
||||||
|
@ -95,7 +96,7 @@ Begin
|
||||||
0 : FLOName := FLOName + '.flo';
|
0 : FLOName := FLOName + '.flo';
|
||||||
1 : FLOName := FLOName + '.clo';
|
1 : FLOName := FLOName + '.clo';
|
||||||
2 : FLOName := FLOName + '.dlo';
|
2 : FLOName := FLOName + '.dlo';
|
||||||
3 : FlOName := FLOName + '.hlo';
|
3 : FLOName := FLOName + '.hlo';
|
||||||
End;
|
End;
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
|
|
|
@ -75,6 +75,7 @@ Var
|
||||||
F : File;
|
F : File;
|
||||||
QwkNet : RecQwkNetwork;
|
QwkNet : RecQwkNetwork;
|
||||||
Count : Byte = 0;
|
Count : Byte = 0;
|
||||||
|
Mode : Byte;
|
||||||
Begin
|
Begin
|
||||||
WriteLn;
|
WriteLn;
|
||||||
WriteLn ('QWKPOLL Version ' + mysVersion);
|
WriteLn ('QWKPOLL Version ' + mysVersion);
|
||||||
|
@ -96,6 +97,14 @@ Begin
|
||||||
|
|
||||||
Str := strUpper(strStripB(ParamStr(1), ' '));
|
Str := strUpper(strStripB(ParamStr(1), ' '));
|
||||||
|
|
||||||
|
If strUpper(ParamStr(2)) = 'EXPORT' Then
|
||||||
|
Mode := 1
|
||||||
|
Else
|
||||||
|
If strUpper(ParamStr(2)) = 'IMPORT' Then
|
||||||
|
Mode := 2
|
||||||
|
Else
|
||||||
|
Mode := 0;
|
||||||
|
|
||||||
If (Str = 'ALL') Then Begin
|
If (Str = 'ALL') Then Begin
|
||||||
Assign (F, bbsCfg.DataPath + 'qwknet.dat');
|
Assign (F, bbsCfg.DataPath + 'qwknet.dat');
|
||||||
|
|
||||||
|
@ -117,10 +126,19 @@ Begin
|
||||||
End Else Begin
|
End Else Begin
|
||||||
WriteLn ('Invalid command line.');
|
WriteLn ('Invalid command line.');
|
||||||
WriteLn;
|
WriteLn;
|
||||||
WriteLn ('Syntax: QWKPOLL [ALL] or [Qwk Network Index]');
|
WriteLn ('Syntax: QWKPOLL [ALL]');
|
||||||
|
WriteLn (' [Qwk Network Index]');
|
||||||
|
WriteLn (' [EXPORT] [QwkNet Index] [PATH TO CREATE REP]');
|
||||||
|
WriteLn (' [IMPORT] [QwkNet Index] [PATH OF QWK PACKET]');
|
||||||
WriteLn;
|
WriteLn;
|
||||||
WriteLn ('Ex: QWKPOLL ALL - Exchange with ALL configured QWK hubs via FTP');
|
WriteLn ('Ex: QWKPOLL ALL - Exchange with ALL QWK hubs via FTP');
|
||||||
WriteLn (' QWKPOLL 1 - Exchange with only Qwk Network #1');
|
WriteLn (' QWKPOLL 1 - Exchange with only Qwk Network #1');
|
||||||
|
WriteLn (' QWKPOLL 1 EXPORT /bbs/qwknet - Create REP packet in /bbs/qwknet');
|
||||||
|
WriteLn (' QWKPOLL 1 IMPORT /bbs/qwknet - Import QWK packet from /bbs/qwknet');
|
||||||
|
WriteLn;
|
||||||
|
WriteLn ('NOTE: QWKPOLL automatically deals with QWK and REP packets during polling');
|
||||||
|
WriteLn (' The export and import functions are not needed, and only provided');
|
||||||
|
WriteLn (' for systems that may want to use an alternative transport method');
|
||||||
WriteLn;
|
WriteLn;
|
||||||
End;
|
End;
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,8 @@ BUGS AND POSSIBLE ISSUES
|
||||||
|
|
||||||
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
FUTURE / IDEAS / WORK IN PROGRESS / NOTES
|
||||||
=========================================
|
=========================================
|
||||||
|
- when editing an already posted message with reference linkage, export the
|
||||||
|
quote data from the original message...
|
||||||
- in file listing jump to files by typing the file number
|
- in file listing jump to files by typing the file number
|
||||||
- remove console class code from mutil since its in bbs_database
|
- remove console class code from mutil since its in bbs_database
|
||||||
^ same with keyboard
|
^ same with keyboard
|
||||||
|
|
|
@ -3028,7 +3028,13 @@
|
||||||
I know all of this is confusing and stupid, but I didn't create the
|
I know all of this is confusing and stupid, but I didn't create the
|
||||||
standard I'm only dealing with it! :)
|
standard I'm only dealing with it! :)
|
||||||
|
|
||||||
8. At your own risk: Delete FastEcho, GEcho, CrashMail, etc. :)
|
8. At your own risk: Delete FastEcho, GEcho, CrashMail, etc. :)
|
||||||
|
|
||||||
|
NOTE that the first time you run the export function of MUTIL it may
|
||||||
|
toss all messages in your bases, depending on what tosser you used
|
||||||
|
before Mystic's tosser. You can just delete all the packets in your
|
||||||
|
outbound directory after running it the first time. This problem will
|
||||||
|
go away once tossing is finished.
|
||||||
|
|
||||||
! Fixed a bug that could cause the user editor to crash directly after a
|
! Fixed a bug that could cause the user editor to crash directly after a
|
||||||
new install if you didn't create your SysOp account first.
|
new install if you didn't create your SysOp account first.
|
||||||
|
|
Loading…
Reference in New Issue