Cap. 3. IP pentru linie seriala

Cuprins
Referinta pentru dip
Rularea in Modul Server

Referinta pentru dip

Comanda get

Comanda get este calea cea mai usoara de a seta o variabila. Cea mai simpla forma de a seta o variabila ca si constanta, ca in exemplul de mai jos. Puteti, de altfel, sa folositi un cuvint cheie in loc de valoare:

DIP> get $local ask 
Enter the value for $local:

A treia metoda este de a incerca sa obtinteti o valoare de la un host. Bizar cum pare la prima vedere, acest lucru e foarte folositor in unele cazuri: undel servere SLIP nu premit sa folositi propriul IP in link-ul SLIP, dar mai degraba va va asigna o adresa la fiecare conectare dial-in, afisind mesaje care va informeaza despre adresa pe care v-a asignat-o. Daca mesajul arata ceva de genul "Your address: 193.184.7.202" atunci urmatoarea parte de cod va va lasa sa luati adresa:

wait address: 10
get $locip remote

Comanda print

Aceasta comanda e utilizata pentru afisarea unui text de la consola. Orice variabila poate fi folosita in comanda print, cum ar fi:

DIP>print Using port $port at speed $speed
Using port cua3 at speed 38400

Nume de variabile

dip intelege doar un set predefinit de variabile. Un nume de variabila intotdeauna incepe cu simbolul dollarului($) si trebuie scrisa cu litere mici (lower-case).

Variabilele $local si $locip sunt numele si IP-ul hostului local. Setind numele hostului (numele calculatorului n.tr.) face ca dip-ul sa stocheze partea canonica a hostname-ului in $local, in acelasi timp asignind lui $locip adresa IP corespunzatoare. Analog se intimpla cind se seteaza $locip.

Variabilele $remote si $rmtip fac acelasi lucru, doar ca se adreseaza unui host accesat de la distanta. $mtu contine valoarea MTU pentru conexiune.

Aceste cinci variabile sunt singurele la care se pot asigna valori direct din comanda get. Un host cu alte variabile se pot seta prin comenzile corespondente, dar trebuie utilizate argumetnele lui print; acestea sunt $modem, $port si $speed.

$errlvl e o variabila prin care se poate vedea rezultatul ultimei comenzi executate. Un nivel de erroare egal cu 0 inseamna ca operatia s-a terminat cu succes, in timp ce o valoare non-zero indica o eroare.

Comenzile if si goto

Comanda if este mai degraba o ramura a ceea ce usual face un if (C/C++). Sintaxa sa este:
if var op numbergoto label
unde expresia trebuie sa fie o simpla comparatie intre una dintre variabilele $errlvl, $locip, si $rmtip. Al doilea operand trebuie sa fie un numar intreg, iar operatorul op poate fi unul dintre simbolurile: ==, !=, <, >, <=, si >=.

Comanda goto face ca executia scriptului sa continue de la linia indicata de label (eticheta). O eticheta trebuie sa fie la inceputul unei linii, si trebuie urmata imediat de o coloana.

Comenzile send, wait si sleep

Aceste comenzi ajuta in implementarea unor scripturi simple de chat la dip. send trimite argumentele sale la linia seriala. Nu suporta variabile, dar intelege toate backslash-urile stil C, cum ar fi n si b. Caracterul tilda este folosit ca abreviatie pentru CR/NL (carriage return/newline).

wait ia ca argumente un cuvint, scanind toate intrarile seriale pina este recunoscut acest cuvint. Acest cuvint trebuie sa nu contia blank-uri (spatii). Optional, se poate da un timp de asteptare acestei comenzi ca al doilea argumente; daca cuvintul asteptat nu este receptionat in mai multe secunde, atunci comanda va intoarce o eroare cu valoarea stocata in $errlvl.

Comanda sleep poate fi folosita pentru a astepta o perioada importanta de timp, de exemplu pentru a astepta rabdator ca orice secventa de login si se termine. Din nou, intervalul e specificat in secunde.

Comenzile mode si default

Aceste comenzi sunt folosite a schimba linia seriala in modul SLIP si pentru a configura interfata.

Comanda mode este ultima comanda executata de dip inainte de a intra in modul daemon. Daca nu apare nici o eroare, comanda nu intoarce nimic.

mode ia ca argument un nume de protocol. dip recunoaste curent SLIP si CSLIP ca nume valide de protocol. Versiunea curenta de dip oricum nu intelege adaptarile SLIP.

Dupa ce s-a stabilit modul SLIP pe linia seriala, dip executa ifconfig pentru a configura interfata ca legatura point-to-point, si invoca route pentru a stabili o ruta catre hostul conectat.

Daca, aditional, scriptul executa comanda default inaintea lui mode, dip va face deasemenea ruta implicita spre conexiunea SLIP.