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
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
\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}
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}
connessione non avesse chiuso la sua parte). Il kernel invierà comunque tutti
i dati che ha in coda prima di iniziare la sequenza di chiusura.
-Vedremo più avanti in sez.~\ref{sec:TCP_so_linger} come è possibile cambiare
-questo comportamento, e cosa deve essere fatto perché il processo possa
-assicurarsi che l'altro capo abbia ricevuto tutti i dati.
+Vedremo più avanti in sez.~\ref{sec:sock_generic_options} come sia possibile
+cambiare questo comportamento, e cosa può essere fatto perché il processo
+possa assicurarsi che l'altro capo abbia ricevuto tutti i dati.
Come per tutti i file descriptor anche per i socket viene mantenuto un numero
di riferimenti, per cui se più di un processo ha lo stesso socket aperto