X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sockctrl.tex;h=4b07f89b92e601cd8103f02a2ab5b7a7ec3a6d49;hp=b1199d6dc6cc72c94cdb634a4d0659441cd215bb;hb=f209f0494e4dd9065f3bf0cda54612297b3e079c;hpb=b48836f645c2760bc040d3bf76f2436735d4b321 diff --git a/sockctrl.tex b/sockctrl.tex index b1199d6..4b07f89 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -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