ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/winhost/nettest.frm
(Generate patch)

Comparing projects/cms/source/host/winhost/nettest.frm (file contents):
Revision 1.5 by pjm2, Fri Feb 23 10:34:47 2001 UTC vs.
Revision 1.30 by pjm2, Wed Feb 28 11:59:54 2001 UTC

# Line 1 | Line 1
1   VERSION 5.00
2   Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
3 + Object = "{33155A3D-0CE0-11D1-A6B4-444553540000}#1.0#0"; "SysTray.ocx"
4   Begin VB.Form Form1
5     BorderStyle     =   3  'Fixed Dialog
6 <   Caption         =   "TCP/UDP Test program"
7 <   ClientHeight    =   5655
6 >   Caption         =   "i-scream Winhost"
7 >   ClientHeight    =   1185
8     ClientLeft      =   45
9     ClientTop       =   330
10 <   ClientWidth     =   5670
10 >   ClientWidth     =   4710
11 >   Icon            =   "nettest.frx":0000
12     LinkTopic       =   "Form1"
13     MaxButton       =   0   'False
14     MinButton       =   0   'False
15 <   ScaleHeight     =   5655
16 <   ScaleWidth      =   5670
15 >   ScaleHeight     =   1185
16 >   ScaleWidth      =   4710
17     ShowInTaskbar   =   0   'False
18 <   StartUpPosition =   3  'Windows Default
19 <   Begin VB.CommandButton Command3
20 <      Caption         =   "TCP to Filter"
21 <      Height          =   375
22 <      Left            =   3720
23 <      TabIndex        =   5
24 <      Top             =   2520
25 <      Width           =   1575
18 >   StartUpPosition =   2  'CenterScreen
19 >   Visible         =   0   'False
20 >   Begin VB.CommandButton Command1
21 >      Caption         =   "more"
22 >      Height          =   255
23 >      Left            =   3960
24 >      TabIndex        =   8
25 >      Top             =   840
26 >      Width           =   615
27     End
28 <   Begin VB.TextBox Text4
29 <      Height          =   2535
30 <      Left            =   240
28 >   Begin VB.TextBox Text1
29 >      Height          =   2055
30 >      Left            =   120
31 >      Locked          =   -1  'True
32        MultiLine       =   -1  'True
33        ScrollBars      =   2  'Vertical
34 <      TabIndex        =   4
35 <      Text            =   "nettest.frx":0000
36 <      Top             =   3000
33 <      Width           =   5055
34 >      TabIndex        =   7
35 >      Top             =   1200
36 >      Width           =   4455
37     End
38 <   Begin VB.CommandButton Command2
39 <      Caption         =   "TCP to FilterManager"
38 >   Begin VB.CommandButton Hide
39 >      Caption         =   "hide"
40 >      Height          =   255
41 >      Left            =   3960
42 >      TabIndex        =   6
43 >      Top             =   480
44 >      Width           =   615
45 >   End
46 >   Begin SysTray.SystemTray SystemTray
47 >      Left            =   2520
48 >      Top             =   4200
49 >      _ExtentX        =   847
50 >      _ExtentY        =   847
51 >      SysTrayText     =   "i-scream Winhost"
52 >      IconFile        =   0
53 >   End
54 >   Begin VB.Timer Timer1
55 >      Left            =   3120
56 >      Top             =   4200
57 >   End
58 >   Begin VB.CommandButton Reconfigure
59 >      Caption         =   "Reconfigure with FilterManager"
60        Height          =   375
61 <      Left            =   3360
62 <      TabIndex        =   3
63 <      Top             =   2040
64 <      Width           =   1935
61 >      Left            =   840
62 >      TabIndex        =   0
63 >      Top             =   3480
64 >      Width           =   2895
65     End
66     Begin MSWinsockLib.Winsock TCPSock
67 <      Left            =   4920
68 <      Top             =   120
67 >      Left            =   4080
68 >      Top             =   4200
69        _ExtentX        =   741
70        _ExtentY        =   741
71        _Version        =   393216
72     End
50   Begin VB.CommandButton Command1
51      Caption         =   "Send UDP"
52      Height          =   375
53      Left            =   4320
54      TabIndex        =   2
55      Top             =   1560
56      Width           =   975
57   End
58   Begin VB.TextBox Text1
59      Height          =   855
60      Left            =   360
61      TabIndex        =   0
62      Text            =   "<packet></packet>"
63      Top             =   600
64      Width           =   4935
65   End
73     Begin MSWinsockLib.Winsock UDPSock
74 <      Left            =   4320
75 <      Top             =   120
74 >      Left            =   3600
75 >      Top             =   4200
76        _ExtentX        =   741
77        _ExtentY        =   741
78        _Version        =   393216
79        Protocol        =   1
80     End
81 +   Begin VB.Label Label2
82 +      Alignment       =   1  'Right Justify
83 +      Caption         =   "Next heartbeat:"
84 +      Height          =   255
85 +      Left            =   120
86 +      TabIndex        =   5
87 +      Top             =   480
88 +      Width           =   1455
89 +   End
90     Begin VB.Label Label1
91 <      Caption         =   "Packet contents"
91 >      Alignment       =   1  'Right Justify
92 >      Caption         =   "Next UDP packet:"
93        Height          =   255
94 <      Left            =   360
94 >      Left            =   120
95 >      TabIndex        =   4
96 >      Top             =   120
97 >      Width           =   1455
98 >   End
99 >   Begin VB.Label Label4
100 >      BorderStyle     =   1  'Fixed Single
101 >      Caption         =   "0"
102 >      Height          =   255
103 >      Left            =   1680
104 >      TabIndex        =   3
105 >      Top             =   480
106 >      Width           =   615
107 >   End
108 >   Begin VB.Label Label3
109 >      BorderStyle     =   1  'Fixed Single
110 >      Caption         =   "0"
111 >      Height          =   255
112 >      Left            =   1680
113 >      TabIndex        =   2
114 >      Top             =   120
115 >      Width           =   615
116 >   End
117 >   Begin VB.Label Status
118 >      Alignment       =   2  'Center
119 >      Caption         =   "Status:"
120 >      Height          =   255
121 >      Left            =   0
122        TabIndex        =   1
123 <      Top             =   360
124 <      Width           =   2895
123 >      Top             =   840
124 >      Width           =   3855
125     End
126   End
127   Attribute VB_Name = "Form1"
# Line 85 | Line 129 | Attribute VB_GlobalNameSpace = False
129   Attribute VB_Creatable = False
130   Attribute VB_PredeclaredId = True
131   Attribute VB_Exposed = False
132 + ' For the system tray bits
133   Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
134   Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
135  
136   Dim filterManagerHostname As String
137 < Dim filterManagerTCPPort As Integer
137 > Dim filterManagerTCPPort As Long
138  
139 + Dim seqNo As Long
140 + Dim machineName As String
141 +
142   Dim filterHostname As String
143   Dim filterTCPPort As Integer
144   Dim filterUDPPort As Integer
145   Dim fileList As String
146   Dim lastModified As String
147  
148 + Dim UDPUpdateTime As Integer
149 + Dim TCPUpdateTime As Integer
150 +
151   Dim protocolVersion As String
152   Dim connected As Boolean
102 Dim responseNumber As Integer
153  
154 + Dim CUpTime As New CUpTime
155 + Dim wksta As New CNetWksta
156  
157 < Private Sub Command1_Click()
157 > Dim windowBig As Boolean
158  
159 <    ' build the contents of the XML packet.
108 <    xml = "<packet></packet>"
159 > Dim responseNumber As Integer
160  
161 <    ' Use the first winsock control to send a UDP packet.
111 <    UDPSock.RemoteHost = filterHostname
112 <    UDPSock.RemotePort = filterUDPPort
113 <    UDPSock.SendData xml
161 > Private Sub Command1_Click()
162  
163 < End Sub
163 >    ' Toggle visibility of the debug output.
164  
165 < Private Sub Command2_Click()
166 <    
167 <    ' establish a TCP connection to a filtermanager
168 <    TCPSock.Close
169 <    TCPSock.Connect filterManagerHostname, filterManagerTCPPort
165 >    If windowBig Then
166 >        Form1.Height = 1500
167 >        windowBig = False
168 >    Else
169 >        Form1.Height = 4350
170 >        windowBig = True
171 >    End If
172  
173   End Sub
174  
125 Private Sub Command3_Click()
126    ' establish a TCP connection to a filter
127    TCPSock.Close
128    TCPSock.Connect filterHostname, filterTCPPort
129 End Sub
130
175   Private Sub Form_Load()
176 +    
177 +    If App.PrevInstance Then
178 +        x = MsgBox("There is already an i-scream Winhost running on this machine.", 48, "i-scream host already running")
179 +        End
180 +    End If
181 +    
182      protocolVersion = "1.1"
183      
184 +    Status.Caption = "Loading"
185 +    Form1.Caption = "i-scream Winhost " & protocolVersion
186 +    
187 +    CUpTime.Init
188 +    
189 +    If CUpTime.isWin9x Then
190 +        x = MsgBox("Sorry, the i-scream host can only be used to monitor servers (i.e. not Win9x)", 48, "Not a server")
191 +        End
192 +    End If
193 +    
194 +    windowBig = False
195 +    
196      ''''TEMP
197 <    filterManagerHostname = "killigrew.ukc.ac.uk"
198 <    filterManagerTCPPort = 4567
199 <    Exit Sub
138 <    ''' ENDTEMP
197 >    'filterManagerHostname = "killigrew.ukc.ac.uk"
198 >    'filterManagerTCPPort = 4567
199 >    ''''' END TEMP
200      
201 +    'GoTo skip
202      On Error GoTo iniError
203      Dim buf As String * 256
204      Dim length As Long
205 <    length = GetPrivateProfileString("i-scream Winhost", "FilterManager", "<no value>", buf, Len(buf), App.Path & "winhost.ini")
205 >    length = GetPrivateProfileString("i-scream Winhost", "FilterManager", "<no value>", buf, Len(buf), App.Path & "/winhost.ini")
206      filterManagerHostname = Left$(buf, length)
207 <    length = GetPrivateProfileString("i-scream Winhost", "FilterManagerPort", "<no value>", buf, Len(buf), App.Path & "winhost.ini")
208 <    filterManagerTCPPort = Left$(buf, length)
207 >    length = GetPrivateProfileInt("i-scream Winhost", "FilterManagerPort", 0, App.Path & "/winhost.ini")
208 >    filterManagerTCPPort = length
209 >    If filterManagerHostname = "" Then
210 >        GoTo iniError
211 >    End If
212 >    On Error GoTo 0
213 > skip:
214 >
215 >    Status.Caption = "Connecting to Filter Manager " & filterManagerHostname & ":" & filterManagerTCPPort
216 >    Reconfigure_Click
217      
218 +    SystemTray.Icon = Val(Form1.Icon)
219 +    SystemTray.Action = 0
220 +    
221 +    
222      Exit Sub
223      
224   iniError:
225 <    x = MsgBox("The i-scream Winhost could not read the correct settings from the winhost.ini file.  Please correct these and try again.", 48, "Configuration not found")
225 >    x = MsgBox("The i-scream Winhost could not read the correct settings from the winhost.ini file.  Please correct these and try again.  " & Err.Description, 48, "Configuration not found")
226      End
227      
228   End Sub
229  
230 + Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
231 +    x = MsgBox("Are you sure you want to shut down the Winhost?  This will stop your computer sending information to the i-scream Central Monitoring System.", vbYesNo, "i-scream Winhost")
232 +    If x = 7 Then
233 +        Cancel = True
234 +    Else
235 +        SystemTray.Action = 2
236 +    End If
237 +
238 + End Sub
239 +
240 + Private Sub Hide_Click()
241 +    Form1.Visible = False
242 +    SystemTray.Icon = Val(Form1.Icon)
243 + End Sub
244 +
245 + Private Sub Image1_Click()
246 +
247 + End Sub
248 +
249 + Private Sub Reconfigure_Click()
250 +    ' establish a TCP connection to a filtermanager
251 +    connected = False
252 +    TCPSock.Close
253 +    TCPSock.Connect filterManagerHostname, filterManagerTCPPort
254 + End Sub
255 +
256 +
257 +
258 + Private Sub SystemTray_MouseDblClk(ByVal Button As Integer)
259 +
260 +    Form1.Visible = True
261 +    Form1.SetFocus
262 +
263 + End Sub
264 +
265   Private Sub TCPSock_Connect()
266 <      
267 <   responseNumber = 0
266 >    
267 >    responseNumber = 0
268    
269      ' Send something as soon as we connect to the server.
270      If connected = False Then
# Line 178 | Line 287 | Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo
287      ' Remove linefeeds and returns from the line.
288      response = Replace(response, Chr(13), "")
289      response = Replace(response, Chr(10), "")
181    Text4.Text = Text4.Text & vbCrLf & response
290      
291      If connected = False Then
292          ' Perform TCP configuration (1.1)
# Line 187 | Line 295 | Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo
295              Case 1:
296                  If Not response = "OK" Then GoTo configError
297                  TCPSock.SendData "LASTMODIFIED" & vbCrLf
298 +                Text1.Text = "Requesting configuration from FilterManager:- " & vbCrLf
299 +                Text1.Text = Text1.Text & response & vbCrLf
300              Case 2:
301                  If response = "ERROR" Then GoTo configError
302                  lastModified = response
303 +                Text1.Text = Text1.Text & response & vbCrLf
304                  TCPSock.SendData "FILELIST" & vbCrLf
305 +            ' New addition to the protocol.
306              Case 3:
307                  If response = "ERROR" Then GoTo configError
308                  fileList = response
309 <                TCPSock.SendData "UDPUpdateTime" & vbCrLf
309 >                Text1.Text = Text1.Text & response & vbCrLf
310 >                TCPSock.SendData "FQDN" & vbCrLf
311              Case 4:
312                  If response = "ERROR" Then GoTo configError
313 <                TCPSock.SendData "TCPUpdateTime" & vbCrLf
313 >                Text1.Text = Text1.Text & response & vbCrLf
314 >                machineName = response
315 >                TCPSock.SendData "UDPUpdateTime" & vbCrLf
316              Case 5:
317                  If response = "ERROR" Then GoTo configError
318 <                TCPSock.SendData "ENDCONFIG" & vbCrLf
318 >                UDPUpdateTime = response
319 >                Text1.Text = Text1.Text & response & vbCrLf
320 >                TCPSock.SendData "TCPUpdateTime" & vbCrLf
321              Case 6:
322 +                If response = "ERROR" Then GoTo configError
323 +                TCPUpdateTime = response
324 +                Text1.Text = Text1.Text & response & vbCrLf
325 +                TCPSock.SendData "ENDCONFIG" & vbCrLf
326 +            Case 7:
327                  If Not response = "OK" Then GoTo configError
328 +                Text1.Text = Text1.Text & response & vbCrLf
329                  TCPSock.SendData "FILTER" & vbCrLf
330 <            Case 7:
330 >            Case 8:
331 >                Text1.Text = Text1.Text & response & vbCrLf
332                  'we got a filter list here.
333                  readTo = 0
334                  ' get hostname
# Line 218 | Line 342 | Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo
342                  ' get TCP Port number
343                  filterTCPPort = response
344                  TCPSock.SendData "END" & vbCrLf
345 <            Case 8:
345 >            Case 9:
346                  If Not response = "OK" Then GoTo configError
347                  connected = True
348                  responseNumber = 0
349                  TCPSock.Close
350 <                Text4.Text = Text4.Text & vbCrLf & "  <closed>"
351 <                x = MsgBox("got config okay")
350 >                Text1.Text = Text1.Text & response & vbCrLf
351 >                'Text4.Text = Text4.Text & vbCrLf & "  <closed>"
352 >                Status.Caption = "Configuration successful"
353 >                Label3.Caption = UDPUpdateTime
354 >                Label4.Caption = TCPUpdateTime
355 >                Timer1.Interval = 1000
356          End Select
357      Else
358          ' Perform a heartbeat (1.1)
# Line 232 | Line 360 | Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo
360          Select Case responseNumber
361              Case 1:
362                  If Not response = "OK" Then GoTo heartbeatError
363 +                Text1.Text = "Performing heartbeat: -" & vbCrLf
364 +                Text1.Text = Text1.Text & response & vbCrLf
365                  TCPSock.SendData "CONFIG" & vbCrLf
366              Case 2:
367                  If Not response = "OK" Then GoTo heartbeatError
368 +                Text1.Text = Text1.Text & response & vbCrLf
369                  TCPSock.SendData fileList & vbCrLf
370              Case 3:
371                  If Not response = "OK" Then GoTo heartbeatError
372 +                Text1.Text = Text1.Text & response & vbCrLf
373                  TCPSock.SendData lastModified & vbCrLf
374              Case 4:
375                  If Not response = "OK" Then GoTo heartbeatError
376 +                Text1.Text = Text1.Text & response & vbCrLf
377                  TCPSock.SendData "ENDHEARTBEAT" & vbCrLf
378              Case 5:
379                  If Not response = "OK" Then GoTo heartbeatError
380 +                Text1.Text = Text1.Text & response & vbCrLf
381                  TCPSock.Close
382 <                x = MsgBox("heartbeat sent okay.")
382 >                Status.Caption = "Heartbeat sent successfully."
383          End Select
384      
385      End If
# Line 254 | Line 388 | Private Sub TCPSock_DataArrival(ByVal bytesTotal As Lo
388      Exit Sub
389      
390   configError:
391 <    x = MsgBox("error doing configuration")
391 >    Status.Caption = "FAILED to get configuration"
392 >    Exit Sub
393   heartbeatError:
394 <    x = MsgBox("error doing configuration")
394 >    Status.Caption = "Heatbeat FAILED"
395 >    Exit Sub
396   End Sub
397  
398 + Private Sub Timer1_Timer()
399 +
400 +    Label3.Caption = Label3.Caption - 1
401 +    Label4.Caption = Label4.Caption - 1
402 +    
403 +    Status.Caption = ""
404 +    
405 +    If Label3.Caption < 1 Then
406 +        
407 +        ' prepare the contents of the XML packet.
408 +        seqNo = seqNo + 1
409 +        
410 +        ' Comment this line in the next protocol
411 +        'machineName = TCPSock.LocalHostName
412 +        
413 +        LocalIP = TCPSock.LocalIP
414 +        packetDate = Date2Num()
415 +        
416 +        
417 +        Dim verinfo As OSVERSIONINFO
418 +        verinfo.dwOSVersionInfoSize = Len(verinfo)
419 +        ret% = GetVersionEx(verinfo)
420 +        If ret% = 0 Then
421 +            MsgBox "Error getting Windows version Information"
422 +            End
423 +        End If
424 +          
425 +        osName = GetVersion()
426 +        osVersionMajor = verinfo.dwMajorVersion
427 +        osVersionMinor = verinfo.dwMinorVersion
428 +        osBuild = verinfo.dwBuildNumber
429 +        
430 +        Dim sysinfo As SYSTEM_INFO
431 +        GetSystemInfo sysinfo
432 +        Select Case sysinfo.dwProcessorType
433 +            Case PROCESSOR_INTEL_386
434 +                processorType = "Intel 386"
435 +            Case PROCESSOR_INTEL_486
436 +                processorType = "Intel 486"
437 +            Case PROCESSOR_INTEL_PENTIUM
438 +                processorType = "Intel Pentium variant"
439 +            Case PROCESSOR_MIPS_R4000
440 +                processorType = "MIPS R4000"
441 +            Case PROCESSOR_ALPHA_21064
442 +                processorType = "DEC Alpha 21064"
443 +            Case Else
444 +                processorType = "(unknown)"
445 +        End Select
446 +        
447 +        Dim memsts As MEMORYSTATUS
448 +        Dim memory&
449 +        GlobalMemoryStatus memsts
450 +        memory& = memsts.dwTotalPhys
451 +        memTotal = memory& \ 1048576
452 +        memory& = memsts.dwAvailPhys
453 +        memFree = memory& \ 1048576
454 +        memory& = memsts.dwTotalVirtual
455 +        swapTotal = memory& \ 1048576
456 +        memory& = memsts.dwAvailVirtual
457 +        swapFree = memory& \ 1048576
458 +        
459 +        uptime = CUpTime.MilliSecs \ 1000
460 +        
461 +        CUpTime.Capture
462 +        cpu_time = CUpTime.CPUTime
463 +        percent_idle = CUpTime.PercentIdle
464 +        
465 +        userCount = wksta.LoggedOnUsers
466 +        
467 +        ' build the contents of the XML packet
468 +        xml = "<packet seq_no=""" & seqNo & """ machine_name=""" & machineName & """ date=""" & packetDate & """ type=""data"" ip=""" & LocalIP & """>" & _
469 +              "<os>" & _
470 +                "<name>" & osName & "</name>" & _
471 +                "<version>" & osVersionMajor & "</version>" & _
472 +                "<release>" & osBuild & "</release>" & _
473 +                "<platform>" & osName & "</platform>" & _
474 +                "<minor_version>" & osVersionMinor & "</minor_version>" & _
475 +                "<processor>" & processorType & "</processor>" & _
476 +                "<uptime>" & uptime & "</uptime>" & _
477 +              "</os>" & _
478 +              "<users><count>" & userCount & "</count></users>" & _
479 +              "<cpu><idle>" & percent_idle & "</idle><user>" & cpu_time & "</user></cpu>" & _
480 +              "<memory><total>" & memTotal & "</total><free>" & memFree & "</free></memory>" & _
481 +              "<swap><total>" & swapTotal & "</total><free>" & swapFree & "</free></swap>" & _
482 +              "</packet>"
483 +        Text1.Text = "Last packet contained: -" & vbCrLf & xml
484 +
485 +        ' Use the first winsock control to send a UDP packet.
486 +        UDPSock.RemoteHost = filterHostname
487 +        UDPSock.RemotePort = filterUDPPort
488 +        UDPSock.SendData xml
489 +        Status.Caption = "UDP packet sent"
490 +        Label3.Caption = UDPUpdateTime
491 +    End If
492 +    
493 +    If Label4.Caption < 1 Then
494 +        ' establish a TCP connection to a filter
495 +        TCPSock.Close
496 +        TCPSock.Connect filterHostname, filterTCPPort
497 +        Label4.Caption = TCPUpdateTime
498 +    End If
499 +
500 + End Sub
501 +
502 + Function Date2Num() As Long
503 +    Dim x As Long
504 +    x = DateDiff("s", "1-1-1970", Now)
505 +    Date2Num = x
506 + End Function

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines