Formateo y Manejo de errores.
[reseter.git] / frm / Telnet.frm
blob457ddd36168a684dd709ee868602155f8e79576e
1 VERSION 5.00\r
2 Begin VB.Form frmTelnet \r
3    BackColor       =   &H80000017&\r
4    BorderStyle     =   0  'None\r
5    ClientHeight    =   5970\r
6    ClientLeft      =   -270\r
7    ClientTop       =   2385\r
8    ClientWidth     =   8220\r
9    FillColor       =   &H00800000&\r
10    BeginProperty Font \r
11       Name            =   "Fixedsys"\r
12       Size            =   9\r
13       Charset         =   0\r
14       Weight          =   400\r
15       Underline       =   0   'False\r
16       Italic          =   0   'False\r
17       Strikethrough   =   0   'False\r
18    EndProperty\r
19    ForeColor       =   &H0000FFFF&\r
20    KeyPreview      =   -1  'True\r
21    LinkTopic       =   "Form1"\r
22    MaxButton       =   0   'False\r
23    MinButton       =   0   'False\r
24    PaletteMode     =   1  'UseZOrder\r
25    ScaleHeight     =   5970\r
26    ScaleWidth      =   8220\r
27    ShowInTaskbar   =   0   'False\r
28    Begin VB.Timer cursor_timer \r
29       Enabled         =   0   'False\r
30       Interval        =   300\r
31       Left            =   6600\r
32       Top             =   600\r
33    End\r
34 End\r
35 Attribute VB_Name = "frmTelnet"\r
36 Attribute VB_GlobalNameSpace = False\r
37 Attribute VB_Creatable = False\r
38 Attribute VB_PredeclaredId = True\r
39 Attribute VB_Exposed = False\r
40 Option Explicit\r
41 Const GO_NORM = 0\r
42 Const GO_IAC1 = 6\r
43 Const GO_IAC2 = 7\r
44 Const GO_IAC3 = 8\r
45 Const GO_IAC4 = 9\r
46 Const GO_IAC5 = 10\r
47 Const GO_IAC6 = 11\r
48 Const SE = 240         'End of Subnegotiation\r
49 Const SB = 250         'What follows is subnegotiation\r
50 Const WILLTEL = 251\r
51 Const WONTTEL = 252\r
52 Const DOTEL = 253\r
53 Const DONTTEL = 254\r
54 Const IAC = 255\r
55 Const BINARY = 0\r
56 Const ECHO = 1\r
57 Const SGA = 3\r
58 Const STATUS = 5\r
59 Const TIMING = 6\r
60 Const TERMTYPE = 24\r
61 Const NAWS = 31\r
62 Const TERMSPEED = 32\r
63 Const TFLOWCNTRL = 33\r
64 Const LINEMODE = 34\r
65 Const DISPLOC = 35\r
66 Const ENVIRON = 36\r
67 Const AUTHENTICATION = 37\r
68 Const UNKNOWN39 = 39\r
69 Public Receiving        As Boolean\r
70 Private parsedata(10)   As Integer\r
71 Private ppno            As Integer\r
72 Private control_on      As Boolean\r
73 Private sw_ugoahead As Boolean\r
74 Private sw_igoahead As Boolean\r
75 Private sw_echo     As Boolean\r
76 Private sw_termsent As Boolean\r
77 '------------------------------------------------------------\r
78 Public Telnet_Connectado As Boolean\r
79 Public WithEvents Socket As CSocketMaster\r
80 Attribute Socket.VB_VarHelpID = -1\r
82 Private Sub cursor_timer_Timer()\r
83     '<EhHeader>\r
84     On Error Resume Next\r
86     '</EhHeader>\r
87     If Not Receiving Then term_DriveCursor\r
88 End Sub\r
90 Private Sub Form_KeyDown(KeyCode As Integer, _\r
91                          Shift As Integer)\r
92         '<EhHeader>\r
93         On Error GoTo Form_KeyDown_Err\r
94         '</EhHeader>\r
95         Dim CH As String\r
96 100     CH = Chr$(0)\r
98         'Translate keycodes to VT100 escape sequences\r
99 101     Select Case KeyCode\r
101             Case vbKeyControl\r
102 102             control_on = True\r
104 103         Case vbKeyEnd\r
105 104             CH = Chr$(27) + "[K"\r
107 105         Case vbKeyHome\r
108 106             CH = Chr$(27) + "[H"\r
110 107         Case vbKeyLeft\r
111 108             CH = Chr$(27) + "[D"\r
113 109         Case vbKeyUp\r
114 110             CH = Chr$(27) + "[A"\r
116 111         Case vbKeyRight\r
117 112             CH = Chr$(27) + "[C"\r
119 113         Case vbKeyDown\r
120 114             CH = Chr$(27) + "[B"\r
122 115         Case vbKeyF1\r
123 116             CH = Chr$(27) + "OP"\r
125 117         Case vbKeyF2\r
126 118             CH = Chr$(27) + "OQ"\r
128 119         Case vbKeyF3\r
129 120             CH = Chr$(27) + "OR"\r
131 121         Case vbKeyF4\r
132 122             CH = Chr$(27) + "OS"\r
134 123         Case Else\r
136 124             If control_on And KeyCode > 63 Then\r
137 125                 CH = Chr$(KeyCode - 64)\r
138                 End If\r
140         End Select\r
142 126     If CH > Chr$(0) And Telnet_Connectado Then Socket.SendData CH\r
143         '<EhFooter>\r
144         Exit Sub\r
146 Form_KeyDown_Err:\r
147         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Form_KeyDown.Ref 12/2/2008 : 09:38:36"\r
148         Resume Next\r
149         '</EhFooter>\r
150 End Sub\r
152 Private Sub Form_KeyPress(KeyAscii As Integer)\r
153         '<EhHeader>\r
154         On Error GoTo Form_KeyPress_Err\r
155         '</EhHeader>\r
156         Dim CH As String\r
158 100     If Telnet_Connectado Then\r
159 101         CH = Chr$(KeyAscii)\r
161 102         If control_on Then\r
162 103             If KeyAscii > 63 Then\r
163 104                 CH = Chr$(KeyAscii - 64)\r
164                 Else\r
165 105                 CH = Chr$(0)\r
166                 End If\r
167             End If\r
169 106         If CH > Chr$(0) Then\r
170 107             If CH = Chr$(13) Then\r
171 108                 CH = CH & Chr$(10)\r
172                 End If\r
174 109             Socket.SendData CH\r
175             End If\r
176         End If\r
178         '<EhFooter>\r
179         Exit Sub\r
181 Form_KeyPress_Err:\r
182         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Form_KeyPress.Ref 12/2/2008 : 09:38:36"\r
183         Resume Next\r
184         '</EhFooter>\r
185 End Sub\r
187 Private Sub Form_KeyUp(KeyCode As Integer, _\r
188                        Shift As Integer)\r
189         '<EhHeader>\r
190         On Error GoTo Form_KeyUp_Err\r
192         '</EhHeader>\r
193 100     Select Case KeyCode\r
195             Case vbKeyControl\r
196 101             control_on = False\r
197         End Select\r
199         '<EhFooter>\r
200         Exit Sub\r
202 Form_KeyUp_Err:\r
203         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Form_KeyUp.Ref 12/2/2008 : 09:38:36"\r
204         Resume Next\r
205         '</EhFooter>\r
206 End Sub\r
208 Private Sub Form_Load()\r
209         '<EhHeader>\r
210         On Error GoTo Form_Load_Err\r
211         '</EhHeader>\r
212 100     Set Socket = New CSocketMaster\r
213 101     term_init\r
214         '<EhFooter>\r
215         Exit Sub\r
217 Form_Load_Err:\r
218         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Form_Load.Ref 12/2/2008 : 09:38:36"\r
219         Resume Next\r
220         '</EhFooter>\r
221 End Sub\r
223 Private Sub Form_Paint()\r
224         '<EhHeader>\r
225         On Error GoTo Form_Paint_Err\r
226         '</EhHeader>\r
227 100     term_redrawscreen\r
228         '<EhFooter>\r
229         Exit Sub\r
231 Form_Paint_Err:\r
232         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Form_Paint.Ref 12/2/2008 : 09:38:36"\r
233         Resume Next\r
234         '</EhFooter>\r
235 End Sub\r
237 Private Sub Form_QueryUnload(Cancel As Integer, _\r
238                              UnloadMode As Integer)\r
239         '<EhHeader>\r
240         On Error GoTo Form_QueryUnload_Err\r
242         '</EhHeader>\r
243 100     With Socket\r
244 101         .CloseSck                            ' Clear any errors...\r
245 102         .RemoteHost = "0.0.0.0"\r
246 103         .RemotePort = 0\r
247         End With\r
249 104     Telnet_Connectado = False\r
250         '<EhFooter>\r
251         Exit Sub\r
253 Form_QueryUnload_Err:\r
254         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Form_QueryUnload.Ref 12/2/2008 : 09:38:36"\r
255         Resume Next\r
256         '</EhFooter>\r
257 End Sub\r
259 Private Sub Socket_CloseSck()\r
260         '<EhHeader>\r
261         On Error GoTo Socket_CloseSck_Err\r
262         '</EhHeader>\r
263 100     Telnet_Connectado = False\r
264         '<EhFooter>\r
265         Exit Sub\r
266 Socket_CloseSck_Err:\r
267         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Socket_CloseSck.Ref 12/2/2008 : 09:38:36"\r
268         Resume Next\r
269         '</EhFooter>\r
270 End Sub\r
272 Private Sub Socket_Connect()\r
273         '<EhHeader>\r
274         On Error GoTo Socket_Connect_Err\r
275         '</EhHeader>\r
276         Dim ConnectString As String\r
277         '------------------------------------------------------------\r
278 100     sw_ugoahead = True\r
279 101     sw_igoahead = False\r
280 102     sw_echo = True\r
281 103     sw_termsent = False\r
282 104     ConnectString = Chr$(IAC) & Chr$(DOTEL) & Chr$(ECHO) & Chr$(IAC) & Chr$(DOTEL) & Chr$(SGA) & Chr$(IAC) & Chr$(WILLTEL) & Chr$(NAWS) & Chr$(IAC) & Chr$(WILLTEL) & Chr$(TERMTYPE) & Chr$(IAC) & Chr$(WILLTEL) & Chr$(TERMSPEED)\r
283 105     Socket.SendData ConnectString\r
284 106     Telnet_Connectado = True\r
285         '<EhFooter>\r
286         Exit Sub\r
287 Socket_Connect_Err:\r
288         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Socket_Connect.Ref 12/2/2008 : 09:38:36"\r
289         Resume Next\r
290         '</EhFooter>\r
291 End Sub\r
293 Private Sub Socket_DataArrival(ByVal bytesTotal As Long)\r
294         '<EhHeader>\r
295         On Error GoTo Socket_DataArrival_Err\r
296         '</EhHeader>\r
297         Dim CH()     As Byte\r
298         Dim i        As Integer\r
299         Static cmd   As Byte\r
301         '------------------------------------------------------------\r
302 100     If Receiving Then\r
303             Exit Sub\r
304         Else\r
305 101         Receiving = True\r
306 102         term_CaretControl True\r
307         End If\r
309 103     If (bytesTotal > 0) Then  ' If there is any data...\r
310 104         Socket.GetData CH, vbByte + vbArray, bytesTotal\r
311 105         bytesTotal = bytesTotal - 1\r
313             ' CH = Buf\r
314 106         For i = 0 To bytesTotal\r
316 107             Select Case cmd\r
318                     Case GO_NORM\r
319 108                     cmd = term_process_char(CH(i))\r
321 109                 Case GO_IAC1\r
322 110                     cmd = iac1(CH(i))\r
324 111                 Case GO_IAC2\r
325 112                     cmd = iac2(CH(i))\r
327 113                 Case GO_IAC3\r
328 114                     cmd = iac3(CH(i))\r
330 115                 Case GO_IAC4\r
331 116                     cmd = iac4(CH(i))\r
333 117                 Case GO_IAC5\r
334 118                     cmd = iac5(CH(i))\r
336 119                 Case GO_IAC6\r
337 120                     cmd = iac6(CH(i))\r
338                 End Select\r
340             Next\r
342         End If\r
344         'Enviamos el siguiente comando\r
345 121     If nComando < UBound(TelnetComandos) And Socket.State = sckConnected Then\r
346 122         Socket.SendData TelnetComandos(nComando) & vbCrLf\r
347 123         Registrar "Telnet -> Enviado: " & TelnetComandos(nComando)\r
348 124         nComando = nComando + 1\r
349         End If\r
351 125     term_CaretControl False\r
352 126     Receiving = False\r
353         '<EhFooter>\r
354         Exit Sub\r
355 Socket_DataArrival_Err:\r
356         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.Socket_DataArrival.Ref 12/2/2008 : 09:38:36"\r
357         Resume Next\r
358         '</EhFooter>\r
359 End Sub\r
361 Private Function iac1(CH As Byte) As Integer\r
362         ' Debug.Print "IAC : ";\r
363         '<EhHeader>\r
364         On Error GoTo iac1_Err\r
365         '</EhHeader>\r
366 100     iac1 = GO_NORM\r
368 101     Select Case CH\r
370             Case DOTEL\r
371 102             iac1 = GO_IAC2\r
373 103         Case DONTTEL\r
374 104             iac1 = GO_IAC6\r
376 105         Case WILLTEL\r
377 106             iac1 = GO_IAC3\r
379 107         Case WONTTEL\r
380 108             iac1 = GO_IAC4\r
382 109         Case SB\r
383 110             iac1 = GO_IAC5\r
384 111             ppno = 0\r
386 112         Case SE\r
388                 ' End of negotiation string, string is in parsedata()\r
389 113             Select Case parsedata(0)\r
391                     Case TERMTYPE\r
393 114                     If parsedata(1) = 1 Then\r
394 115                         Socket.SendData Chr$(IAC) & Chr$(SB) & Chr$(TERMTYPE) & "DEC-VT100" & Chr$(0) & Chr$(IAC) & Chr$(SE)\r
395                         End If\r
397 116                 Case TERMSPEED\r
399 117                     If parsedata(1) = 1 Then\r
400                             ' Debug.Print "TERMSPEED"\r
401 118                         Socket.SendData Chr$(IAC) & Chr$(WILLTEL) & Chr$(CH)\r
402 119                         Socket.SendData Chr$(IAC) & Chr$(SB) & Chr$(TERMSPEED) & Chr$(0) & "57600,57600" & Chr$(IAC) & Chr$(SE)\r
403                         End If\r
405                 End Select\r
406         End Select\r
408         '<EhFooter>\r
409         Exit Function\r
410 iac1_Err:\r
411         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.iac1.Ref 12/2/2008 : 09:38:36"\r
412         Resume Next\r
413         '</EhFooter>\r
414 End Function\r
416 Private Function iac2(CH As Byte) As Integer\r
417         'DO Processing Respond with WILL or WONT\r
418         '<EhHeader>\r
419         On Error GoTo iac2_Err\r
421         '</EhHeader>\r
422 100     With Socket\r
423 101         iac2 = GO_NORM\r
425 102         Select Case CH\r
427                 Case BINARY\r
428 103                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(BINARY)\r
430 104             Case ECHO\r
431 105                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(ECHO)\r
433 106             Case NAWS\r
434 107                 .SendData Chr$(IAC) & Chr$(SB) & Chr$(NAWS) & Chr$(0) & Chr$(80) & Chr$(0) & Chr$(24) & Chr$(IAC) & Chr$(SE)\r
436 108             Case SGA\r
438 109                 If Not sw_igoahead Then\r
439 110                     .SendData Chr$(IAC) & Chr$(WILLTEL) & Chr$(SGA)\r
440 111                     sw_igoahead = True\r
441                     End If\r
443 112             Case TERMTYPE\r
445 113                 If Not sw_termsent Then\r
446 114                     sw_termsent = True\r
447 115                     .SendData Chr$(IAC) & Chr$(WILLTEL) & Chr$(TERMTYPE)\r
448 116                     .SendData Chr$(IAC) & Chr$(SB) & Chr$(TERMTYPE) & Chr$(0) & "VT100" & Chr$(IAC) & Chr$(SE)\r
449                     End If\r
451 117             Case TERMSPEED\r
452 118                 .SendData Chr$(IAC) & Chr$(WILLTEL) & Chr$(TERMSPEED)\r
453 119                 .SendData Chr$(IAC) & Chr$(SB) & Chr$(TERMSPEED) & Chr$(0)\r
454 120                 .SendData "57600,57600"\r
455 121                 .SendData Chr$(IAC) & Chr$(SE)\r
457 122             Case TFLOWCNTRL\r
458 123                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
460 124             Case LINEMODE\r
461 125                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
463 126             Case STATUS\r
464 127                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
466 128             Case TIMING\r
467 129                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
469 130             Case DISPLOC\r
470 131                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
472 132             Case ENVIRON\r
473 133                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
475 134             Case UNKNOWN39\r
476 135                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
478 136             Case AUTHENTICATION\r
479 137                 .SendData Chr$(IAC) & Chr$(WILLTEL) & Chr$(CH)\r
480 138                 .SendData Chr$(IAC) & Chr$(SB) & Chr$(AUTHENTICATION) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(0) & Chr$(IAC) & Chr$(SE)\r
482 139             Case Else\r
483 140                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
484             End Select\r
486         End With\r
488         '<EhFooter>\r
489         Exit Function\r
490 iac2_Err:\r
491         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.iac2.Ref 12/2/2008 : 09:38:36"\r
492         Resume Next\r
493         '</EhFooter>\r
494 End Function\r
496 Private Function iac3(CH As Byte) As Integer\r
497         ' WILL Processing - Respond with DO or DONT\r
498         '<EhHeader>\r
499         On Error GoTo iac3_Err\r
501         '</EhHeader>\r
502 100     With Socket\r
503 101         iac3 = GO_NORM\r
505 102         Select Case CH\r
507                 Case ECHO\r
509 103                 If Not sw_echo Then\r
510 104                     sw_echo = True\r
511 105                     .SendData Chr$(IAC) & Chr$(DOTEL) & Chr$(ECHO)\r
512                     End If\r
514 106             Case SGA\r
516 107                 If Not sw_ugoahead Then\r
517 108                     sw_ugoahead = True\r
518 109                     .SendData Chr$(IAC) & Chr$(DOTEL) & Chr$(SGA)\r
519                     End If\r
521 110             Case TERMSPEED\r
522 111                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
524 112             Case TFLOWCNTRL\r
525 113                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
527 114             Case LINEMODE\r
528 115                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
530 116             Case STATUS\r
531 117                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
533 118             Case TIMING\r
534 119                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
536 120             Case DISPLOC\r
537 121                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
539 122             Case ENVIRON\r
540 123                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
542 124             Case UNKNOWN39\r
543 125                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
545 126             Case Else\r
546 127                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
547             End Select\r
549         End With\r
551         '<EhFooter>\r
552         Exit Function\r
553 iac3_Err:\r
554         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.iac3.Ref 12/2/2008 : 09:38:36"\r
555         Resume Next\r
556         '</EhFooter>\r
557 End Function\r
559 Private Function iac4(CH As Byte) As Integer\r
560         ' WONT Processing\r
561         '<EhHeader>\r
562         On Error GoTo iac4_Err\r
564         '</EhHeader>\r
565 100     With Socket\r
566 101         iac4 = GO_NORM\r
568 102         Select Case CH\r
570                 Case ECHO\r
572 103                 If sw_echo = True Then\r
573 104                     .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(ECHO)\r
574 105                     sw_echo = False\r
575                     End If\r
577 106             Case SGA\r
578 107                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(SGA)\r
579 108                 sw_igoahead = False\r
581 109             Case TERMSPEED\r
582 110                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
584 111             Case TFLOWCNTRL\r
585 112                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
587 113             Case LINEMODE\r
588 114                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
590 115             Case STATUS\r
591 116                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
593 117             Case TIMING\r
594 118                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
596 119             Case DISPLOC\r
597 120                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
599 121             Case ENVIRON\r
600 122                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
602 123             Case UNKNOWN39\r
603 124                 .SendData Chr$(IAC) & Chr$(DONTTEL) & Chr$(CH)\r
605 125             Case Else\r
606 126                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
607             End Select\r
609         End With\r
611         '<EhFooter>\r
612         Exit Function\r
613 iac4_Err:\r
614         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.iac4.Ref 12/2/2008 : 09:38:36"\r
615         Resume Next\r
616         '</EhFooter>\r
617 End Function\r
619 Private Function iac5(CH As Byte) As Integer\r
620         '<EhHeader>\r
621         On Error GoTo iac5_Err\r
622         '</EhHeader>\r
623         Dim ich As Integer\r
624         ' Collect parms after SB and until another IAC\r
625 100     ich = CH\r
627 101     If ich = IAC Then\r
628 102         iac5 = GO_IAC1\r
629             Exit Function\r
630         End If\r
632 103     parsedata(ppno) = ich\r
633 104     ppno = ppno + 1\r
634 105     iac5 = GO_IAC5\r
635         '<EhFooter>\r
636         Exit Function\r
637 iac5_Err:\r
638         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.iac5.Ref 12/2/2008 : 09:38:36"\r
639         Resume Next\r
640         '</EhFooter>\r
641 End Function\r
643 Private Function iac6(CH As Byte) As Integer\r
644         'DONT Processing\r
645         '<EhHeader>\r
646         On Error GoTo iac6_Err\r
648         '</EhHeader>\r
649 100     With Socket\r
650 101         iac6 = GO_NORM\r
652 102         Select Case CH\r
654                 Case SE\r
656                     '\r
657 103             Case ECHO\r
659 104                 If Not sw_echo Then\r
660 105                     sw_echo = True\r
661 106                     .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(ECHO)\r
662                     End If\r
664 107             Case SGA\r
666 108                 If Not sw_ugoahead Then\r
667 109                     sw_ugoahead = True\r
668 110                     .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(SGA)\r
669                     End If\r
671 111             Case TERMSPEED\r
672 112                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
674 113             Case TFLOWCNTRL\r
675 114                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
677 115             Case LINEMODE\r
678 116                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
680 117             Case STATUS\r
681 118                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
683 119             Case TIMING\r
684 120                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
686 121             Case DISPLOC\r
687 122                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
689 123             Case ENVIRON\r
690 124                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
692 125             Case UNKNOWN39\r
693 126                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
695 127             Case Else\r
696 128                 .SendData Chr$(IAC) & Chr$(WONTTEL) & Chr$(CH)\r
697             End Select\r
699         End With\r
701         '<EhFooter>\r
702         Exit Function\r
703 iac6_Err:\r
704         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.iac6.Ref 12/2/2008 : 09:38:36"\r
705         Resume Next\r
706         '</EhFooter>\r
707 End Function\r
709 Private Sub SOCKET_ERROR(ByVal Number As Integer, _\r
710                          Description As String, _\r
711                          ByVal sCode As Long, _\r
712                          ByVal Source As String, _\r
713                          ByVal HelpFile As String, _\r
714                          ByVal HelpContext As Long, _\r
715                          CancelDisplay As Boolean)\r
716         '<EhHeader>\r
717         On Error GoTo SOCKET_ERROR_Err\r
719         '</EhHeader>\r
720 100     If Number <> 10053 Then\r
721 101         NetError = True\r
722 102         Registrar "Telnet -> (" & Number & ") " & Description\r
723         Else\r
724 103         Registrar "Telnet -> Bien, el router abandonó la conexión"\r
725         End If\r
727         '<EhFooter>\r
728         Exit Sub\r
729 SOCKET_ERROR_Err:\r
730         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.SOCKET_ERROR.Ref 12/2/2008 : 09:38:36"\r
731         Resume Next\r
732         '</EhFooter>\r
733 End Sub\r
735 Public Sub ProcTelnet()\r
736         '<EhHeader>\r
737         On Error GoTo ProcTelnet_Err\r
738         '</EhHeader>\r
739 100     Registrar "~ProcTelnet - Nivel 1"\r
741 101     With Socket\r
742 102         .CloseSck\r
743 103         .RemotePort = m_Datos.puerto\r
744 104         .RemoteHost = m_Datos.base\r
745 105         .Protocol = sckTCPProtocol\r
746 106         .Connect\r
747 107         term_init\r
748 108         Registrar "~ProcTelnet - Nivel 2"\r
750 109         Do Until Telnet_Connectado Or NetError\r
751 110             Esperar 0.5\r
752             Loop\r
754 111         Registrar "~ProcTelnet - Nivel 3"\r
755         End With\r
757         '<EhFooter>\r
758         Exit Sub\r
759 ProcTelnet_Err:\r
760         Controlar_Error Erl, Err.Description, "Reseter.frmTelnet.ProcTelnet.Ref 12/2/2008 : 09:38:36"\r
761         Resume Next\r
762         '</EhFooter>\r
763 End Sub\r