X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=769e18ea54245335a831b671e2efc1d79ca47471;hb=36bd28734cda530d73258eef8c600ced5c66abe4;hp=6333dbe233df8eff9ef3c60fb28df65cdd305c19;hpb=e48c447e307bf5934b4a565e71db17c594329083;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index 6333dbe..769e18e 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -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}