Skip to content
Snippets Groups Projects
Commit f20b495e authored by rswindell's avatar rswindell
Browse files

First stab at a local "spy" console.

parent 2e9ddc7c
No related branches found
No related tags found
No related merge requests found
...@@ -2444,73 +2444,73 @@ object MainForm: TMainForm ...@@ -2444,73 +2444,73 @@ object MainForm: TMainForm
object ImageList: TImageList object ImageList: TImageList
Left = 360 Left = 360
Bitmap = { Bitmap = {
494C010129002C00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 494C01012B002C00040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
000000000000360000002800000040000000B000000001001000000000000058 000000000000360000002800000040000000B000000001001000000000000058
000000000000000000000000000000000000000000000000000000000000EF3D 000000000000000000000000000000000000000000000000000000000000EF3D
0000FF7F000000000000000000000000000000000000EF3DFF7F0000FF7FEF3D 0000FF7F00000000000000000000000000000000000000000000000000000000
FF7F0000FF7FEF3DFF7F0000FF7FEF3DFF7F0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000EF3D 000000000000000000000000FF7FEF3DFF7F0000F75EF75EF75EF75EF75EF75E
EF3DEF3D0000000000000000EF3D0000000000000000000000000000EF3D0000 F75EF75E000000000000FF7FFF7FFF7FFF7F00000000000000000000EF3D0000
EF3D0000FF7F0000000000000000000000000000FF7FEF3DFF7FEF3DFF7FEF3D EF3D0000FF7F0000000000000000000000000000000000000000000000000000
FF7FEF3DFF7FEF3DFF7FEF3DFF7FEF3DFF7F0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000007C0000000000000000EF3DEF3DEF3DEF3DEF3D 00000000000000000000FF7FEF3DEF3DEF3D0000F75EF75EF75EF75EF75EF75E
EF3DEF3DEF3DEF3DFF7FFF7F0000000000000000000000000000EF3D00000000 F75E0000EF3DFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000EF3D00000000
FF7FEF3D0000FF7F00000000000000000000EF3DEF3DEF3DEF3DEF3DEF3DEF3D FF7FEF3D0000FF7F000000000000000000000000000000000000000000000000
EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
0000F75E000000000000007C00000000000000000000EF3DEF3DEF3DEF3DEF3D 0000000000000000FF7FEF3DEF3DEF3D0000FF7F0000F75EF75EF75EF75E0000
EF3DEF3DEF3DEF3DEF3DFF7FFF7F00000000000000000000EF3D00000000EF3D EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000EF3D00000000EF3D
00000000EF3D0000FF7F000000000000000000000000EF3DFF7FFF7F00000000 00000000EF3D0000FF7F00000000000000000000000000000000000000000000
0000000000000000FF7F000000000000000000000000000000000000EF3D0000
EF3DF75EEF3D00000000000000000000007C000000000000EF3DFF7F0000FF7F
FF7FFF7FEF3DEF3DEF3DEF3DFF7FFF7F000000000000EF3D00000000EF3D0000
FF7F0000FF7FEF3D0000FF7F0000000000000000EF3DEF3DEF3D0000FF7F0000
FF7FFF7F0000EF3D0000FF7F0000000000000000000000000000EF3DEF3D0000
F75EF75EF75E0000000000000000007C000000000000FF7FEF3DFF7FEF3DEF3D
EF3DFF7FEF3DFF7FEF3DEF3DEF3DFF7F00000000EF3D0000FF7FEF3D0000EF3D
0000EF3D0000FF7FEF3D0000FF7F000000000000FF7FEF3DFF7FEF3DFF7FEF3D
EF3DFF7FEF3DFF7FEF3DFF7FFF7FFF7FFF7F0000000000000000EF3DEF3D0000
F75EF75EF75E000000000000007C000000000000EF3DEF3DEF3DEF3DEF3DEF3D
EF3DFF7FEF3DFF7F0000EF3DEF3D0000000000000000EF3D0000FF7F00000000
FF7F0000EF3D0000FF7FEF3D0000FF7F0000EF3DEF3DEF3DEF3DEF3DEF3DEF3D
EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D000000000000EF3DEF3DEF3D0000
0000F75EF75E00000000007C0000000000000000EF3DFF7F0000FF7FFF7FFF7F
EF3DEF3DEF3DFF7F0000EF3DFF7F00000000000000000000EF3D0000FF7FEF3D
0000EF3D0000EF3D00000000EF3D0000FF7F00000000EF3DFF7FFF7FEF3D0000
0000EF3D0000FF7F0000EF3DFF7F000000000000EF3D0000F75EF75EF75E0000
F75E0000F75EEF3D000000000000000000000000EF3DFF7FEF3DEF3DEF3D0000
EF3DFF7FEF3DFF7F0000EF3DFF7F000000000000000000000000EF3D0000FF7F
00000000FF7F0000FF7F0000FF7FEF3D00000000EF3DEF3DEF3D0000FF7F0000
EF3D0000EF3DFF7F0000EF3DFF7FFF7F00000000EF3D0000EF3DEF3DEF3D0000
F75E0000F75EEF3D0000007C007C007C007C0000EF3DFF7F0000000000000000
EF3DFF7FEF3DFF7F0000EF3DFF7F0000000000000000000000000000EF3D0000
FF7FEF3D0000EF3D0000EF3D00000000EF3D0000FF7FEF3DFF7FEF3DFF7FEF3D
FF7FFF7FEF3DFF7FEF3DEF3DEF3DFF7FFF7F0000F75E0000F75EF75EF75E0000
F75E0000F75EEF3D000000000000000000000000EF3DFF7FFF7FFF7FFF7FFF7F
EF3DEF3DEF3DFF7F0000EF3DFF7F00000000000000000000000000000000EF3D
0000FF7F00000000FF7F00000000EF3D0000EF3DEF3DEF3DEF3DEF3DEF3DEF3D
EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D000000000000F75EF75EF75E0000
0000F75EF75E00000000007C0000000000000000EF3DEF3DEF3DEF3DEF3DEF3D
EF3D0000EF3DFF7F0000EF3DFF7F000000000000000000000000000000000000
EF3D0000FF7FEF3D00000000EF3D0000000000000000EF3DFF7F0000EF3DFF7F
000000000000000000000000EF3D0000FF7F0000000000000000F75EF75E0000
EF3DF75EF75E000000000000007C00000000000000000000EF3DFF7FFF7FFF7F
FF7FFF7FEF3DFF7FFF7FEF3DFF7F000000000000000000000000000000000000
0000EF3D0000FF7F0000EF3D0000FF7F00000000EF3DEF3DFF7F0000EF3D0000
0000000000000000000000000000EF3D00000000000000000000F75EF75E0000
EF3DEF3DF75E0000000000000000007C000000000000EF3DEF3DEF3DEF3DEF3D
EF3DEF3DEF3DEF3DFF7FEF3DFF7F0000000000000000FF7F0000FF7F0000FF7F
0000FF7FEF3D0000EF3D0000EF3DFF7F00000000FF7FEF3DFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000F75EEF3D
EF3DEF3DEF3D00000000000000000000007C00000000EF3D0000FF7FFF7F0000
000000000000EF3DEF3DEF3DFF7F000000000000EF3D0000EF3D0000EF3D0000
EF3D0000FF7FEF3DFF7FFF7FEF3D00000000EF3DEF3DEF3DEF3DEF3DEF3DEF3D
EF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3DEF3D000000000000000000000000F75E
0000EF3D000000000000007C000000000000000000000000EF3DEF3D0000FF7F
FF7F000000000000EF3DEF3DFF7FFF7F0000EF3D0000EF3D0000EF3D0000EF3D
0000EF3DEF3DEF3DEF3DEF3D0000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000007C0000000000000000000000000000EF3DEF3D 000000000000FF7FEF3DEF3DEF3D00000000FF7FFF7F000000000000EF3DFF7F
0000FF7FFF7FFF7FFF7FEF3DEF3DFF7F00000000EF3DEF3D0000FF7FEF3DEF3D FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000EF3D00000000EF3D0000
FF7F0000FF7FEF3D0000FF7F0000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000FF7FFF7F
FF7F0000FF7FEF3DEF3DEF3D000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3D0000FF7FEF3D0000EF3D
0000EF3D0000FF7FEF3D0000FF7F00000000000000000000EF3D000000000000
EF3D0000E07FEF3D00000000000000000000000000000000FF7FEF3DEF3DEF3D
0000FF7FEF3DEF3DEF3D0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000EF3D0000FF7F00000000
FF7F0000EF3D0000FF7FEF3D0000FF7F0000000000000000EF3DEF3DEF3DEF3D
EF3D00000000E07F0000000000000000000000000000EF3DEF3D000000000000
EF3DEF3DEF3DEF3D00000000000000000000FF7FEF3DEF3DEF3DEF3DEF3DEF3D
EF3DEF3DEF3DEF3DEF3DEF3DEF3DFF7FFF7F000000000000EF3D0000FF7FEF3D
0000EF3D0000EF3D00000000EF3D0000FF7F00000000EF3DFF7FF75EFF7FF75E
FF7FEF3D00000000000000000000000000000000EF3DFF7F000000000000FF7F
00000000EF3DFF7F00000000000000000000FF7FEF3DFF7FFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7FFF7F0000000000000000EF3D0000FF7F
00000000FF7F0000FF7F0000FF7FEF3D0000EF3DEF3DFF7FF75EFF7F007CFF7F
F75EFF7FEF3DEF3D000000000000000000000000EF3D000000000000EF3DFF7F
00000000EF3D0000FF7F0000000000000000FF7FEF3DFF7FFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7FFF7F00000000000000000000EF3D0000
FF7FEF3D0000EF3D0000EF3D00000000EF3D0000EF3DF75EFF7FF75E007CF75E
FF7FF75EEF3D000000000000000000000000EF3DFF7F00000000FF7FEF3DFF7F
FF7FFF7F0000EF3DFF7F0000000000000000FF7FEF3DFF7FFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7FFF7F000000000000000000000000EF3D
0000FF7F00000000FF7F00000000EF3D00000000EF3DFF7F007C007C007C007C
007CFF7FEF3D000000000000000000000000EF3DFF7F0000EF3DEF3DEF3DEF3D
EF3D00000000EF3DFF7F0000000000000000FF7FEF3DFF7FFF7FFF7FEF3DEF3D
EF3DEF3DEF3DFF7FFF7FFF7FEF3DFF7FFF7F0000000000000000000000000000
EF3D0000FF7FEF3D00000000EF3D000000000000EF3DF75EFF7FF75E007CF75E
FF7FF75EEF3D000000000000000000000000EF3D0000FF7F00000000EF3DFF7F
000000000000EF3D00000000000000000000FF7FEF3DFF7FFF7FFF7FEF3DEF3D
EF3DEF3DEF3DFF7FFF7FFF7FEF3DFF7FFF7F0000000000000000000000000000
0000EF3D0000FF7F0000EF3D0000FF7F0000EF3DEF3DFF7FF75EFF7F007CFF7F
F75EFF7FEF3DEF3D000000000000000000000000EF3DFF7F00000000EF3D0000
00000000EF3DFF7F00000000000000000000FF7FEF3DFF7FFF7FFF7FEF3DEF3D
EF3DEF3DEF3DFF7FFF7FFF7FEF3DFF7FFF7F00000000FF7F0000FF7F0000FF7F
0000FF7FEF3D0000EF3D0000EF3DFF7F000000000000EF3DFF7FF75EFF7FF75E
FF7FEF3D00000000000000000000000000000000EF3D0000FF7FFF7F00000000
0000FF7FEF3D000000000000000000000000FF7FEF3DFF7FFF7FFF7FEF3DEF3D
EF3DEF3DEF3DFF7FFF7FFF7FEF3DFF7FFF7F0000EF3D0000EF3D0000EF3D0000
EF3D0000FF7FEF3DFF7FFF7FEF3D00000000000000000000EF3DEF3DEF3DEF3D
EF3D0000000000000000000000000000000000000000EF3DEF3D0000FF7FFF7F
EF3DEF3D0000000000000000000000000000FF7FEF3DFF7FFF7FFF7FEF3DEF3D
EF3DEF3DEF3DFF7FFF7FFF7FEF3DFF7FFF7FEF3D0000EF3D0000EF3D0000EF3D
0000EF3DEF3DEF3DEF3DEF3D000000000000000000000000EF3D000000000000
EF3D000000000000000000000000000000000000000000000000EF3DEF3DEF3D
000000000000000000000000000000000000FF7FEF3DFF7FFF7FFF7FFF7FFF7F
FF7FFF7FFF7FFF7FFF7FFF7FEF3DFF7FFF7F0000EF3DEF3D0000FF7FEF3DEF3D
EF3DEF3DEF3DFF7FFF7FEF3DEF3D000000000000000000000000000000000000 EF3DEF3DEF3DFF7FFF7FEF3DEF3D000000000000000000000000000000000000
0000000000000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DFF7F 0000000000000000000000000000000000000000EF3DEF3DEF3DEF3DEF3DFF7F
FF7FFF7FFF7FEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000 FF7FFF7FFF7FEF3DEF3DEF3DEF3DEF3DEF3D0000000000000000000000000000
...@@ -3152,11 +3152,11 @@ object MainForm: TMainForm ...@@ -3152,11 +3152,11 @@ object MainForm: TMainForm
FF03FF03FF03FF03FF03FF03FF03FF0300000000000000000000000000000000 FF03FF03FF03FF03FF03FF03FF03FF0300000000000000000000000000000000
000000000000000000000000000000000000424D3E000000000000003E000000 000000000000000000000000000000000000424D3E000000000000003E000000
2800000040000000B00000000100010000000000800500000000000000000000 2800000040000000B00000000100010000000000800500000000000000000000
000000000000000000000000FFFFFF00FD7F000000000000FABF00000000DFFF 000000000000000000000000FFFFFF00FD7FFFFDFFF80000FABFFFF8FFF00000
F65F000000000000EDAFCF7BDFFFDFFFDA97CF7BCF7BCF7BA54B000000000000 F65FFFF1FFE10000EDAFFFE3FFC30000DA97FFC7F8870000A54BE08FE10F0000
D6A5000000000000E95A00F800000000F5A9CF7BCF7BCF7BFA56CF7BDFFFFFFF D6A5C01FCE1F0000E95A803F9D9F0000F5A9001FB9AF0000FA56001F304F0000
FD6D0000DF07FFFFFE9B0000FFFFFFFFFF55000000000000D5290000DFFFFFFF FD6D001F20CF0000FE9B001F59DF0000FF55001F9B9F0000D529803FA73F0000
AA83CF7BDFFFFFFF5507FFFFFFFFFFFF900383C08000FDFFE20300000000F8FF AA83C07FC87F00005507E0FFF1FF0000900383C08000FDFFE20300000000F8FF
CCC303C003C0F07FDAB587E183E0E03F956187E187E1C01F8E49CFF381E0800F CCC303C003C0F07FDAB587E183E0E03F956187E187E1C01F8E49CFF381E0800F
AC5B03C001C0C007C23303C001C0E00382E003C003C0F001000087E183E0F800 AC5B03C001C0C007C23303C001C0E00382E003C003C0F001000087E183E0F800
301C87E18401FC015C5DD81BC809FE03A3A3C003D003FF07C543E007E007FF8B 301C87E18401FC015C5DD81BC809FE03A3A3C003D003FF07C543E007E007FF8B
...@@ -3196,8 +3196,7 @@ object MainForm: TMainForm ...@@ -3196,8 +3196,7 @@ object MainForm: TMainForm
000180010001800100019FF900019FF91FF19EF91FF19FF91DF19C791FF19C19 000180010001800100019FF900019FF91FF19EF91FF19FF91DF19C791FF19C19
1CF19C39183198191C719C19183198191C319C39183198191C719C7918319819 1CF19C39183198191C719C19183198191C319C39183198191C719C7918319819
1CF19CF9183198391DF19DF91FF19FF91FF19FF91FF19FF90001800100018001 1CF19CF9183198391DF19DF91FF19FF91FF19FF91FF19FF90001800100018001
00018003000180030001FFFF0001FFFF00000000000000000000000000000000 00018003000180030001FFFF0001FFFF}
000000000000}
end end
object CloseTimer: TTimer object CloseTimer: TTimer
Enabled = False Enabled = False
......
...@@ -43,8 +43,10 @@ ...@@ -43,8 +43,10 @@
#include <fcntl.h> #include <fcntl.h>
#include <share.h> #include <share.h>
#include "NodeFormUnit.h" #include "NodeFormUnit.h"
#include "SpyFormUnit.h"
#include "nodedefs.h" #include "nodedefs.h"
#include "userdat.h" #include "userdat.h"
#include "ringbuf.h"
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#pragma package(smart_init) #pragma package(smart_init)
#pragma resource "*.dfm" #pragma resource "*.dfm"
...@@ -54,8 +56,9 @@ __fastcall TNodeForm::TNodeForm(TComponent* Owner) ...@@ -54,8 +56,9 @@ __fastcall TNodeForm::TNodeForm(TComponent* Owner)
: TForm(Owner) : TForm(Owner)
{ {
// OutputDebugString("NodeForm constructor\n"); // OutputDebugString("NodeForm constructor\n");
MainForm=(TMainForm*)Application->MainForm; MainForm=(TMainForm*)Application->MainForm;
MainForm->bbs_startup.spybuf
=(RingBuf**)calloc(1,sizeof(RingBuf*)*MAX_NODES);
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
...@@ -459,3 +462,19 @@ void __fastcall TNodeForm::ChatButtonClick(TObject *Sender) ...@@ -459,3 +462,19 @@ void __fastcall TNodeForm::ChatButtonClick(TObject *Sender)
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
void __fastcall TNodeForm::SpyButtonClick(TObject *Sender)
{
int i;
TSpyForm* SpyForm;
for(i=0;i<ListBox->Items->Count;i++)
if(ListBox->Selected[i]==true) {
Application->CreateForm(__classid(TSpyForm), &SpyForm);
SpyForm->spybuf=&MainForm->bbs_startup.spybuf[i];
SpyForm->Caption="Spying on Node "+AnsiString(i+1);
SpyForm->ShowModal();
delete SpyForm;
}
}
//---------------------------------------------------------------------------
object NodeForm: TNodeForm object NodeForm: TNodeForm
Left = 391 Left = 471
Top = 182 Top = 304
Width = 277 Width = 277
Height = 214 Height = 214
Caption = 'Nodes' Caption = 'Nodes'
...@@ -10,15 +10,15 @@ object NodeForm: TNodeForm ...@@ -10,15 +10,15 @@ object NodeForm: TNodeForm
DragMode = dmAutomatic DragMode = dmAutomatic
Font.Charset = DEFAULT_CHARSET Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText Font.Color = clWindowText
Font.Height = -11 Font.Height = -14
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
Font.Style = [] Font.Style = []
OldCreateOrder = False OldCreateOrder = False
Position = poDefault Position = poDefault
OnHide = FormHide OnHide = FormHide
OnShow = FormShow OnShow = FormShow
PixelsPerInch = 96 PixelsPerInch = 120
TextHeight = 13 TextHeight = 16
object Toolbar: TToolBar object Toolbar: TToolBar
Left = 0 Left = 0
Top = 0 Top = 0
...@@ -81,14 +81,21 @@ object NodeForm: TNodeForm ...@@ -81,14 +81,21 @@ object NodeForm: TNodeForm
ImageIndex = 39 ImageIndex = 39
OnClick = ChatButtonClick OnClick = ChatButtonClick
end end
object SpyButton: TToolButton
Left = 161
Top = 0
Caption = 'SpyButton'
ImageIndex = 41
OnClick = SpyButtonClick
end
end end
object ListBox: TListBox object ListBox: TListBox
Left = 0 Left = 0
Top = 25 Top = 25
Width = 269 Width = 269
Height = 162 Height = 157
Align = alClient Align = alClient
ItemHeight = 13 ItemHeight = 16
MultiSelect = True MultiSelect = True
PopupMenu = PopupMenu PopupMenu = PopupMenu
TabOrder = 1 TabOrder = 1
...@@ -128,6 +135,11 @@ object NodeForm: TNodeForm ...@@ -128,6 +135,11 @@ object NodeForm: TNodeForm
ImageIndex = 39 ImageIndex = 39
OnClick = ChatButtonClick OnClick = ChatButtonClick
end end
object SpyMenuItem: TMenuItem
Caption = 'Spy on User'
ImageIndex = 41
OnClick = SpyButtonClick
end
object N1: TMenuItem object N1: TMenuItem
Caption = '-' Caption = '-'
end end
......
...@@ -70,6 +70,8 @@ __published: // IDE-managed Components ...@@ -70,6 +70,8 @@ __published: // IDE-managed Components
TMenuItem *ClearErrorsMenuItem; TMenuItem *ClearErrorsMenuItem;
TToolButton *ChatButton; TToolButton *ChatButton;
TMenuItem *ChatMenuItem; TMenuItem *ChatMenuItem;
TToolButton *SpyButton;
TMenuItem *SpyMenuItem;
void __fastcall FormShow(TObject *Sender); void __fastcall FormShow(TObject *Sender);
void __fastcall TimerTick(TObject *Sender); void __fastcall TimerTick(TObject *Sender);
void __fastcall FormHide(TObject *Sender); void __fastcall FormHide(TObject *Sender);
...@@ -80,6 +82,7 @@ __published: // IDE-managed Components ...@@ -80,6 +82,7 @@ __published: // IDE-managed Components
void __fastcall DownButtonClick(TObject *Sender); void __fastcall DownButtonClick(TObject *Sender);
void __fastcall ClearErrorButtonClick(TObject *Sender); void __fastcall ClearErrorButtonClick(TObject *Sender);
void __fastcall ChatButtonClick(TObject *Sender); void __fastcall ChatButtonClick(TObject *Sender);
void __fastcall SpyButtonClick(TObject *Sender);
private: // User declarations private: // User declarations
public: // User declarations public: // User declarations
__fastcall TNodeForm(TComponent* Owner); __fastcall TNodeForm(TComponent* Owner);
......
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "SpyFormUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSpyForm *SpyForm;
//---------------------------------------------------------------------------
__fastcall TSpyForm::TSpyForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TSpyForm::SpyTimerTick(TObject *Sender)
{
char buf[1024];
int rd;
if(*spybuf==NULL)
return;
rd=RingBufRead(*spybuf,buf,sizeof(buf)-1);
if(rd) {
buf[rd]=0;
Log->SelText=AnsiString(buf);
Timer->Interval=100;
} else
Timer->Interval=500;
}
//---------------------------------------------------------------------------
void __fastcall TSpyForm::FormDestroy(TObject *Sender)
{
if(*spybuf!=NULL) {
RingBufDispose(*spybuf);
free(*spybuf);
*spybuf=NULL;
}
Timer->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TSpyForm::FormShow(TObject *Sender)
{
if((*spybuf=(RingBuf*)malloc(sizeof(RingBuf)))==NULL) {
Log->Lines->Add("Malloc failure!");
return;
}
RingBufInit(*spybuf,10000);
Log->Lines->Add("Spying...");
Timer->Enabled=true;
}
//---------------------------------------------------------------------------
object SpyForm: TSpyForm
Left = 244
Top = 195
Width = 536
Height = 336
Caption = 'Spy'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnDestroy = FormDestroy
OnShow = FormShow
PixelsPerInch = 120
TextHeight = 16
object Log: TMemo
Left = 0
Top = 0
Width = 528
Height = 304
Align = alClient
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clWhite
Font.Height = -13
Font.Name = 'Terminal'
Font.Style = []
ParentFont = False
ReadOnly = True
ScrollBars = ssBoth
TabOrder = 0
end
object Timer: TTimer
Enabled = False
Interval = 500
OnTimer = SpyTimerTick
Left = 72
Top = 48
end
end
//---------------------------------------------------------------------------
#ifndef SpyFormUnitH
#define SpyFormUnitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include "ringbuf.h"
//---------------------------------------------------------------------------
class TSpyForm : public TForm
{
__published: // IDE-managed Components
TMemo *Log;
TTimer *Timer;
void __fastcall SpyTimerTick(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
void __fastcall FormShow(TObject *Sender);
private: // User declarations
public: // User declarations
RingBuf** spybuf;
__fastcall TSpyForm(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TSpyForm *SpyForm;
//---------------------------------------------------------------------------
#endif
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
MailCfgDlgUnit.obj FtpCfgDlgUnit.obj TextFileEditUnit.obj MailCfgDlgUnit.obj FtpCfgDlgUnit.obj TextFileEditUnit.obj
TelnetFormUnit.obj FtpFormUnit.obj MailFormUnit.obj NodeFormUnit.obj TelnetFormUnit.obj FtpFormUnit.obj MailFormUnit.obj NodeFormUnit.obj
StatsFormUnit.obj AboutBoxFormUnit.obj StatsLogFormUnit.obj StatsFormUnit.obj AboutBoxFormUnit.obj StatsLogFormUnit.obj
CodeInputFormUnit.obj ClientFormUnit.obj"/> CodeInputFormUnit.obj ClientFormUnit.obj SpyFormUnit.obj ..\ringbuf.obj"/>
<RESFILES value="sbbsctrl.res"/> <RESFILES value="sbbsctrl.res"/>
<IDLFILES value=""/> <IDLFILES value=""/>
<IDLGENFILES value=""/> <IDLGENFILES value=""/>
...@@ -17,14 +17,14 @@ ...@@ -17,14 +17,14 @@
MailCfgDlgUnit.dfm FtpCfgDlgUnit.dfm TextFileEditUnit.dfm MailCfgDlgUnit.dfm FtpCfgDlgUnit.dfm TextFileEditUnit.dfm
TelnetFormUnit.dfm FtpFormUnit.dfm MailFormUnit.dfm NodeFormUnit.dfm TelnetFormUnit.dfm FtpFormUnit.dfm MailFormUnit.dfm NodeFormUnit.dfm
StatsFormUnit.dfm AboutBoxFormUnit.dfm StatsLogFormUnit.dfm StatsFormUnit.dfm AboutBoxFormUnit.dfm StatsLogFormUnit.dfm
CodeInputFormUnit.dfm ClientFormUnit.dfm"/> CodeInputFormUnit.dfm ClientFormUnit.dfm SpyFormUnit.dfm"/>
<LIBFILES value="sbbs.lib mailsrvr.lib ftpsrvr.lib"/> <LIBFILES value="sbbs.lib mailsrvr.lib ftpsrvr.lib"/>
<LIBRARIES value="vcl50.lib"/> <LIBRARIES value="vcl50.lib"/>
<SPARELIBS value="vcl50.lib"/> <SPARELIBS value="vcl50.lib"/>
<PACKAGES value="vcl50.bpi vclx50.bpi vcljpg50.bpi bcbsmp50.bpi vclmid50.bpi vcldb50.bpi <PACKAGES value="vcl50.bpi vclx50.bpi vcljpg50.bpi bcbsmp50.bpi vclmid50.bpi vcldb50.bpi
vclbde50.bpi inet50.bpi inetdb50.bpi vcldbx50.bpi qrpt50.bpi teeui50.bpi vclbde50.bpi inet50.bpi inetdb50.bpi vcldbx50.bpi qrpt50.bpi teeui50.bpi
teedb50.bpi tee50.bpi dss50.bpi nmfast50.bpi dclocx50.bpi"/> teedb50.bpi tee50.bpi dss50.bpi nmfast50.bpi dclocx50.bpi"/>
<PATHCPP value=".;"/> <PATHCPP value=".;..\..\sbbs3"/>
<PATHPAS value=".;"/> <PATHPAS value=".;"/>
<PATHRC value=".;"/> <PATHRC value=".;"/>
<PATHASM value=".;"/> <PATHASM value=".;"/>
...@@ -34,14 +34,14 @@ ...@@ -34,14 +34,14 @@
<USERDEFINES value="SBBS;SMB_GETMSGTXT;_DEBUG"/> <USERDEFINES value="SBBS;SMB_GETMSGTXT;_DEBUG"/>
<SYSDEFINES value="NO_STRICT;_VIS_NOLIB"/> <SYSDEFINES value="NO_STRICT;_VIS_NOLIB"/>
<MAINSOURCE value="sbbsctrl.cpp"/> <MAINSOURCE value="sbbsctrl.cpp"/>
<INCLUDEPATH value="..;$(BCB)\include;$(BCB)\include\vcl"/> <INCLUDEPATH value="C:\Borland\CBuilder5\Projects;..;$(BCB)\include;$(BCB)\include\vcl"/>
<LIBPATH value="$(BCB)\lib\obj;$(BCB)\lib"/> <LIBPATH value="..\;C:\Borland\CBuilder5\Projects;$(BCB)\lib\obj;$(BCB)\lib"/>
<WARNINGS value="-w-par -w-csu"/> <WARNINGS value="-w-par -w-csu"/>
<WARNOPTSTR value=""/> <WARNOPTSTR value=""/>
</MACROS> </MACROS>
<OPTIONS> <OPTIONS>
<IDLCFLAGS value="-I.. -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -DSBBS <IDLCFLAGS value="-IC:\Borland\CBuilder5\Projects -I.. -I$(BCB)\include -I$(BCB)\include\vcl
-DSMB_GETMSGTXT -D_DEBUG -boa"/> -src_suffix cpp -DSBBS -DSMB_GETMSGTXT -D_DEBUG -boa"/>
<CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
-tW -tWM"/> -tW -tWM"/>
<PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/> <PFLAGS value="-$Y+ -$W -$O- -v -JPHNE -M"/>
......
...@@ -55,6 +55,8 @@ USEFORM("AboutBoxFormUnit.cpp", AboutBoxForm); ...@@ -55,6 +55,8 @@ USEFORM("AboutBoxFormUnit.cpp", AboutBoxForm);
USEFORM("StatsLogFormUnit.cpp", StatsLogForm); USEFORM("StatsLogFormUnit.cpp", StatsLogForm);
USEFORM("CodeInputFormUnit.cpp", CodeInputForm); USEFORM("CodeInputFormUnit.cpp", CodeInputForm);
USEFORM("ClientFormUnit.cpp", ClientForm); USEFORM("ClientFormUnit.cpp", ClientForm);
USEFORM("SpyFormUnit.cpp", SpyForm);
USEUNIT("..\ringbuf.c");
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
#include "MainFormUnit.h" #include "MainFormUnit.h"
#include "CtrlPathDialogUnit.h" #include "CtrlPathDialogUnit.h"
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#endif #endif
#include "client.h" #include "client.h"
#include "ringbuf.h"
typedef struct { typedef struct {
...@@ -57,7 +58,7 @@ typedef struct { ...@@ -57,7 +58,7 @@ typedef struct {
DWORD rlogin_interface; DWORD rlogin_interface;
DWORD reserved_dword7; DWORD reserved_dword7;
DWORD reserved_dword6; DWORD reserved_dword6;
DWORD reserved_dword5; RingBuf** spybuf;
DWORD reserved_dword4; DWORD reserved_dword4;
DWORD reserved_dword3; DWORD reserved_dword3;
DWORD reserved_dword2; DWORD reserved_dword2;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment