dial on demand
Panayotis Tsiamis
ptsiamis at internet.gr
Mon Nov 28 14:22:39 EET 2005
Elegxe ti kanei to ppp-go scriptaki sou
kai tropoihse to oste na mi stelnei signals
otan apotixenei, sto parent proccess, i kane ignore
ta signal tou.
PS: Giati de to grafeis sti perl ?
Mi mou peis pos thes performance gia ena tetio script..
2 more bugs, bof + off by one
nikos roussos wrote:
>έχω βάλει στον gateway και τρέχει ένα scriptάκι
>που "ακούει" σε μια θύρα.
>συνδέομαι με το nc κι όταν γράφω con συνδέεται, ενώ όταν γράφω discon
>αποσυνδέεται.
>
>γενικώς δουλεύει εκτός απ' την περίπτωση που ο provider μιλάει (busy tone) τότε
>μόλις γράφω discon αποσυνδέται μεν, αλλά "πέφτει" και το πρόγραμμα κι έτσι δεν
>μπορώ να ξανασυνδεθώ με το nc.
>
>καμιά ιδέα γιατι συμβαίνεια αυτό;
>
>το πρόγραμμα (έχω κόψει τα include):
>
>#define BUFSIZE 1024
>
>void signal_child(int signo);
>
>int main(void) {
> pid_t child_pid;
> int sock_fd, sock_in;
> struct sockaddr_in sock_srv;
> socklen_t sock_len;
> int srv_port=9999;
> int data_len;
> char buf[BUFSIZE];
>
> if((sock_fd=socket(PF_INET, SOCK_STREAM, 0))<0)
> perror("Error: socket");
>
> memset(&sock_srv, 0, sizeof(sock_srv));
> sock_srv.sin_family=AF_INET;
> sock_srv.sin_port=htons(srv_port);
>
> sock_len=sizeof(sock_srv);
> if((bind(sock_fd, (struct sockaddr *)&sock_srv, sock_len))<0)
> perror("Error: bind");
>
> if((listen(sock_fd, 5)) < 0)
> perror("Error, listen");
>
> signal(SIGCHLD, signal_child);
>
> while(1) {
> if((sock_in=accept(sock_fd, (struct sockaddr *)&sock_srv, &sock_len))<0)
> perror("Error: accept");
>
> if((child_pid=fork())==0) {
> close(sock_fd);
> while((data_len=read(sock_in, buf, sizeof(buf)))>0) {
> if (strspn(buf, "con")>2)
> system("ppp-go");
> if(strspn(buf, "discon")>5)
> system("eznet down");
> }
> exit(0);
> }
> close(sock_in);
> }
> exit(0);
>}
>
>void signal_child(int signo) {
> pid_t pid;
> int stat;
>
> while((pid=waitpid(-1, &stat, WNOHANG))>0);
> return;
>}
>
>
>-------
>A city is a large community where people are lonesome together
> -- Herbert Prochnow
>
>
>
>
--
<meta content="text/html;" http-equiv="Content-Type">
=========================================================
ÔìÞìá Äéá÷åßñéóçò Õðçñåóéþí Data Center Internet Hellas
(Data Center Services by FORTHnet)
ÃåíéêÞ Ä/íóç Õðçñåóéþí Internet
FORTHnet A.E.
23ï ÷éë. Å/Ï Áèçíþí - Ëáìßáò, Áã. ÓôÝöáíïò, 145 65
Ôçë.: 801 100 4100, 211 100 4100 Fax: 210-6248045
Web: www.internet.gr - Email: IDC-operations at internet.gr
=========================================================
More information about the Linux-greek-users
mailing list