Modificato la sezione invariante mettendoci solo quello che e effettivamente
[gapil.git] / sockctrl.tex
index b1199d6dc6cc72c94cdb634a4d0659441cd215bb..4b07f89b92e601cd8103f02a2ab5b7a7ec3a6d49 100644 (file)
@@ -1874,19 +1874,25 @@ pi
 dai protocolli usati dal socket sul quale si va ad agire, e saranno anche esse
 differenziate a seconda del protocollo cui fanno riferimento. 
 
-La scelta su quale opzione agire è fatta appunto con l'uso dell'argomento
-\param{level}, per esso esiste il valore speciale \const{SOL\_SOCKET} che
-indica il livello astratto di socket (cioè di opzioni disponibili in generale
-per qualunque tipo di socket), per impostare altre opzioni relative a
-funzionalità disponibili per socket che usano particolari protocolli si usa in
-genere il valore numerico degli stessi in \file{/etc/protocols},\footnote{o
-  quanto si può ottenere da una chiamata a \func{getprotoent}, questo però
-  presenta l'ambiguità dovuta al fatto che su Linux \const{SOL\_SOCKET} è
-  definito uguale ad 1, che corrisponde anche al valore di ICMP, che pertanto
-  non compare nelle varie costanti \texttt{SOL\_*}.} più comunemente però si
-utilizzano le apposite costanti \texttt{SOL\_*} riportate in
-tab.~\ref{tab:sock_option_levels} dove si sono riassunti i possibili valori
-per l'argomento \param{level}.
+
+
+
+Il valore di \param{level} seleziona allora il livello sul quale si va ad
+intervenire e permette di usare le opzioni definite su quel livello. Esiste
+poi il valore \const{SOL\_SOCKET} che indica un livello generico e cioè le
+opzioni disponibili per qualunque tipo di socket.  Per impostare le opzioni
+relative alle funzionalità disponibili per socket che usano particolari
+protocolli può utilizzare il valore numerico che identifica questi ultimi in
+\file{/etc/protocols}, ma più comunemente si suano le apposite costanti
+\texttt{SOL\_*} riportate in tab.~\ref{tab:sock_option_levels} dove si sono
+riassunti i possibili valori per l'argomento \param{level}.\footnote{la
+  notazione in questo caso è, purtroppo, abbastanza confusa: infatti in Linux
+  il valore si può impostare sia usando le costanti \texttt{SOL\_*}, che delle
+  analoghe \texttt{IPPROTO\_*} (citate anche da Stevens in \cite{UNP1}) che di
+  nuovo sono equivalenti ai numeri di protocollo di \file{/etc/protocols}; con
+  una eccesione specifica, che è quella del protocollo ICMP, per la quale non
+  esista una costante, dato poi che il suo valore, 1, è anche quello che viene
+  assegnato a \const{SOL\_SOCKET}.}
 
 \begin{table}[!htb]
   \centering