From: Simone Piccardi Date: Mon, 27 Dec 2004 22:59:41 +0000 (+0000) Subject: SO_DEBUG X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=8e5a44367b043bfbebc67fb39a89d523076953af SO_DEBUG --- diff --git a/sockctrl.tex b/sockctrl.tex index 2b83e84..af35bca 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -2190,8 +2190,8 @@ allora il seguente: piuttosto che usare questa funzione. \item[\const{SO\_PASSCRED}] questa opzione abilita la ricezione dei messaggi - di controllo \const{SCM\_CREDENTIALS} dei socket unix-domain. Prende per - \param{optval} un intero usato come valore logico. + di controllo di tipo \const{SCM\_CREDENTIALS} dei socket unix-domain. Prende + per \param{optval} un intero usato come valore logico. \item[\const{SO\_PEERCRED}] questa opzione restituisce le credenziali del processo remoto connesso al socket; l'opzione è disponibile solo per socket @@ -2214,9 +2214,26 @@ allora il seguente: socket} (vedi sez.~\ref{cha:advanced_socket_xxx}). -\item[\const{SO\_DEBUG}] - -\item[\const{SO\_REUSEADDR}] +\item[\const{SO\_DEBUG}] questa opzione abilita il debugging delle operazioni + dei socket; l'opzione utilizza per \param{optval} un intero usato come + valore logico, e può essere utilizzata solo da un processo con i privilegi + di amministratore (in particolare con la \textit{capability} + \const{CAP\_NET\_ADMIN}). L'opzione necessita inoltre dell'opportuno + supporto nel kernel;\footnote{deve cioè essere definita la macro di + preprocessore \texttt{SOCK\_DEBUGGING} nel file \file{include/net/sock.h} + dei sorgenti del kernel, questo è sempre vero nei kernel delle serie + superiori alla 2.3, per i kernel delle serie precedenti invece è + necessario aggiungere a mano detta definizione; è inoltre possibile + abilitare anche il tracciamento degli stati del TCP definendo la macro + \texttt{STATE\_TRACE} in \file{include/net/tcp.h}.} quando viene + 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 + sulla rete su un buffer circolare che viene letto da un apposito + programma, \cmd{trpt}.} + +\item[\const{SO\_REUSEADDR}] \item[\const{SO\_TYPE}] questa opzione permette di leggere il tipo di socket su cui si opera; funziona solo con \func{getsockopt}, ed utilizza per