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