Il preambolo me lo ero perso, il resto sono correzioni
[gapil.git] / sockctrl.tex
index 6333dbe233df8eff9ef3c60fb28df65cdd305c19..769e18ea54245335a831b671e2efc1d79ca47471 100644 (file)
@@ -2192,8 +2192,8 @@ allora il seguente:
   state rimosse con il passaggio al 2.2; è consigliato correggere i programmi
   piuttosto che usare questa funzione.
 
-\item[\const{SO\_PASSCRED}] questa opzione abilita la ricezione dei messaggi
-  di controllo di tipo \const{SCM\_CREDENTIALS} sui socket unix-domain. Prende
+\item[\const{SO\_PASSCRED}] questa opzione abilita sui socket unix-domain la
+  ricezione dei messaggi di controllo di tipo \const{SCM\_CREDENTIALS}. Prende
   come \param{optval} un intero usato come valore logico.
 
 \item[\const{SO\_PEERCRED}] questa opzione restituisce le credenziali del
@@ -2232,13 +2232,25 @@ allora il seguente:
   abilitata una serie di messaggi con le informazioni di debug vengono inviati
   direttamente al sistema del kernel log.\footnote{si tenga presente che il
     comportamento è diverso da quanto avviene con BSD, dove l'opzione opera
-    solo sui socket TCP causando la scrittura di tutti i pacchetti inviati
+    solo sui socket TCP, causando la scrittura di tutti i pacchetti inviati
     sulla rete su un buffer circolare che viene letto da un apposito
     programma, \cmd{trpt}.}
 
 \item[\const{SO\_REUSEADDR}] questa opzione permette di eseguire la funzione
   \func{bind} su indirizzi locali che siano già in uso; l'opzione utilizza per
-  \param{optval} un intero usato come valore logico.
+  \param{optval} un intero usato come valore logico.  Questa opzione modifica
+  il comportamento normale dell'interfaccia dei socket che fa fallire
+  l'esecuzione della funzione \func{bind} con un errore di
+  \errcode{EADDRINUSE} quando l'indirizzo locale\footnote{più propriamente il
+    controllo viene eseguito sulla porta.} è già in uso da parte di un altro
+  socket. 
+
+  Come Stevens sottolinea in \cite{APUE} si distinguono quattro casi per
+  l'utilizzo di questa opzione; il primo è quello in cui un server è terminato
+  ma esistono ancora dei processi figli che mantengono attiva almeno una
+  connessione remota che utilizza l'indirizzo locale.
+
+
 
 
 
@@ -2256,16 +2268,22 @@ allora il seguente:
 \item[\const{SO\_DONTROUTE}] questa opzione forza l'invio diretto dei
   pacchetti del socket, saltando ogni processo relativo all'uso della tabella
   di routing del kernel. Prende come \param{optval} un intero usato come
-  valore logico.
+  valore logico. 
 
 \item[\const{SO\_BROADCAST}]
 
 
 \item[\const{SO\_SNDBUF}]
+
+
 \item[\const{SO\_RCVBUF}]  
+
+
 \item[\const{SO\_LINGER}]  
 \item[\const{SO\_PRIORITY}]
-\item[\const{SO\_ERROR}]
+
+\item[\const{SO\_ERROR}] 
+
 \end{basedescript}
 
 
@@ -2278,7 +2296,7 @@ Bench
 attraverso le due funzioni \func{setsockopt} e \func{getsockopt}, alcune
 funzionalità possono essere impostate attraverso quelle che sono le funzioni
 classiche per il controllo delle proprietà dei file, cioè \func{fcntl} e
-\func{ioctl}. 
+\func{ioctl}.
 
 
 \subsection{L'uso di \func{fcntl} per i socket}