X-Git-Url: http://scm.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=html%2Fconnect.html;h=4a4eaa3cd86dadb7e583a7e3b9d7b6b58964982c;hb=375f2f00086f959d332837f9035d8db1911678df;hp=cb349e6ccefaabd04e77b04fe2b50a823d34f1c7;hpb=69c8aeb338cc485103e289fbab7ec4e7e056ed20;p=spider.git diff --git a/html/connect.html b/html/connect.html index cb349e6c..4a4eaa3c 100644 --- a/html/connect.html +++ b/html/connect.html @@ -5,6 +5,7 @@ +
@@ -19,7 +20,7 @@-Last modified: Thu Dec 17 00:06:40 GMT 1998 +Last modified: Sun Sep 2 22:02:36 BST 2001
At the moment, anybody can connect inwards at any time from outside, either by ax25 or by telnet (assuming you have followed the instructions in installation @@ -27,58 +28,116 @@ Last modified: Thu Dec 17 00:06:40 GMT 1998
Connect scripts live in the /spider/connect directory and are simple ascii scripts that are written using a normal editor. There are a couple of examples in the issue directory. - -
Here are a couple of basic types, first a telnet connection:- + +
The first example is a simple telnet (TCP/IP) connect to port 7000 of WR3D (this will actually + work if you have or make an arrangement to connect to WR3D)[oh, and substitute x1xxx for your real + node callsign].
+ +The colouration will be explained later on in this page, you don't have to try to emulate the colours!
+- timeout 15 + timeout 15 # this is a comment - connect telnet dirkl.tobit.co.uk - 'login' 'gb7djk' - 'word' 'gb7djk' - client gb7djk-1 telnet + connect telnet wr3d.dxcluster.net 7000 + 'login' 'x1xxx' + client wr3d telnet ++ +
If you put the above script in a file called: /spider/connect/wr3d then you can leave out + line: client wr3d telnet. +
For a connect that requires a login and execution of the programs + from a normal shell, do:-
+ ++ timeout 15 + connect telnet dirkl.tobit.co.uk + 'login' 'gb7djk' + 'word' 'gb7djk' + '\$' 'cd /spider/perl' + # set the line to prevent echoing, leaving this out will + # confuse whole networks for hours! + '\$' 'stty -echo raw' + # tell GB7DJK that you are GB7DJK-1 + '\$' '/spider/src/client gb7djk-1 telnet' + # tell GB7DJK-1 that it is connected to GB7DJK + # you can leave this out if you call this script 'gb7djk' + client gb7djk telnet-
and an ax25 example:- + +
An ax25 example (connecting from GB7DJK, to GB7DXM via my local BPQ node and one X1J intermediate node):- +
- timeout 60 - abort (Busy|Sorry|Fail) + timeout 60 + abort (Busy|Sorry|Fail) # don't forget to chmod 4775 netrom_call! - connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh - 'Connect' '' - 'Connect' 'c np7' - 'Connect' 'c gb7dxm' - 'Connect' '' - client gb7dxm ax25 + connect ax25 /usr/sbin/netrom_call bbs gb7djk-0 g1tlh-0 + 'Connected' 'c np7' + '*** Connect' 'c gb7dxm' + 'Connect' '' ++ +
The -0 ssid is important if you want it to work reliably. Obviously if you are + using a different ssid then you would use that. You can use the Netrom alias instead if it + it is in the machines node table.
+ +The line: "'Connected' ''" means: wait for + the string Connected and when that is seen, then move onto the next line + without sending anything. The reason you do this (in this case) is to wait + for the final "connect" string from the BPQ node that directly connects you to the + cluster node itself.
+ +An AGW Engine example would be very similar and look like this:-
+ ++ timeout 60 + abort (Busy|Sorry|Fail) + connect agw 2 g1tlh + '*** Connect' 'c np7' + 'Connected' 'c gb7dxm' + 'Connect' ''-
A connection is started manually by typing in connect
A connection is started manually by typing in connect <scriptname> on a sysop enabled + client.pl session. For example:-
+G1TLH de GB7DJK 13-Dec-1998 2041Z > connect gb7djk-1 connection to GB7DJK-1 started G1TLH de GB7DJK 13-Dec-1998 2043Z >-
You can watch the progress of the connection (if you have the standard debugging enabled) on the - cluster.pl screen and you should see something like this:- +
Consider the following specific example, it is located in the file /spider/connect/gb7djk-1 :-
+ ++ timeout 15 + connect telnet dirkl.tobit.co.uk + 'login' 'gb7djk' + 'ssword' 'gb7djk' ++ +
You can watch the progress of the connection (if you have connect + debugging enabled [set/debug connect]) on the + cluster.pl screen and you should see something like this:-
+<- D G1TLH connect gb7djk-1 -> D G1TLH connection to GB7DJK-1 started -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z > - timeout set to 15 - CONNECT sort: telnet command: dirkl.tobit.co.uk + timeout set to 15 + CONNECT sort: telnet command: dirkl.tobit.co.uk CHAT "login" -> "gb7djk" received " Red Hat Linux release 5.1 (Manhattan) Kernel 2.0.35 on an i586 " - received "login: " - sent "gb7djk" + received "login: " + sent "gb7djk" CHAT "word" -> "gb7djk" received "gb7djk " - received "Password: " - sent "gb7djk" + received "Password: " + sent "gb7djk" Connected to GB7DJK-1, starting normal protocol <- O GB7DJK-1 telnet -> B GB7DJK-1 0 @@ -89,41 +148,118 @@ Last modified: Thu Dec 17 00:06:40 GMT 1998 <- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users Max users 0 Uptime 0 00:00^5447^~ etc- -
The connect scripts consist of lines which start with the following keywords or symbols:- + +
I have coloured the commands in an attempt to make it clear as + to what goes on, where and why. Lines that are coloured thus are miscellaneous setup + commands. Lines that are this colour + are lines that make the initial connection to the first hop. The things that + are this colour are the strings I am + looking for (what I am "expecting") and + the things that are this colour are the + commands I am going to send when I see the + "expect" strings in the input.
+ +The script starts by setting the timeout to 15 seconds, then starts + the connection. It is important to note that, in the case of + an ax25 connection (usually) this will be the callsign of the first hop along the + route that you are going to take to the destination, so this will be typically the callsign + of your local node.
+ +You will notice that the script waits + until it sees the left hand string of the pair and only + then does it send the string on the + right hand side. This is called a State Machine.
+ +A state machine "walks" through a conversation (in this + case) looking for "states" (in this case + particular strings) and then performs some "action" (usually some kind of connect command + for the type of system you are trying to navigate). When one + "state" "fires" + (detects the string are looking for), it sends the command + associated with that state and then moves onto the next "state", in our case: the next line.
+ +PLEASE NOTE: the colouration in the above example is for illustrative purposes + only, the debug output is all one colour.
+ +The connect scripts consist of lines which start with the + following keywords or symbols:-
+In the case of an ax25 session then this would normally be a call to ax25_call - or netrom_call as in the example above. It is your responsibility to get your node - and other ax25 parameters to work before going down this route! -
When the left hand string has found what it is looking (if it is) then the right hand string is - sent to the connection. -
This process is repeated for every line of chat script. -
In the case of a + telnet connection, there can be up to two parameters, + the first is the ip address or hostname of the computer you + wish to connect to and the second is the port number you want + to use (this can be left out if it is a normal telnet + session).
+ +In the case of an ax25 session then this would + normally be a call to /usr/sbin/ax25_call or + /usr/sbin/netrom_call as in the example above. It is your + responsibility to get your node and other ax25 parameters to + work before going down this route!
+ +For agw connections you will need a port number (starting + from 1) and the callsign of the first "hop" along the way.
+ +When the left hand string has found what it is expecting (if + it is) then the right hand string is sent to the connection.
+ +If the left hand + string is empty then it doesn't read or wait for anything, it + simply sends whatever is on the right hand side.
+ +All comparisons are done ignoring case.
+ +If the right hand string is empty ('') then nothing is sent, the + script simply moves onto the next line.
+ +This process is repeated for every line of chat script.
+ +-
-
-
- Copyright © 1998 by Dirk Koopman G1TLH. All Rights Reserved
-
- $Id$
+