Prima di questo pezzo di codice vi è tutta la parte relativa alla creazione e configrazione della socket (socket,bind,listen ecc) che non ho riportato...


[QUOTE] while(1){

len = sizeof(cli_add);
if((conn_fd=accept(list_fd,(struct sockaddr*) &cli_add,&len))<0){
perror("errore nell' esecuzione della accept\n");
exit(1);
}

if((pid=fork())<0){
perror("errore nella creazione del figlio\n");
exit(1);
}

if(pid==0){ // processo figlio
close(list_fd);
proxyhttp(conn_fd);
exit(0);
}

else{ // processo padre
close(conn_fd);
}
}QUOTE]

ho pensato che forse l'aggiornarnamento della testa debba essere fatto nel padre...ma poi sorgono i probeli enunciati all'inizio del post...