Aggiornamenti + alcune sockopt di IP
authorSimone Piccardi <piccardi@gnulinux.it>
Tue, 10 Apr 2018 10:02:54 +0000 (10:02 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Tue, 10 Apr 2018 10:02:54 +0000 (10:02 +0000)
28 files changed:
build.tex
errors.tex
fileadv.tex
filedir.tex
fileio.tex
gapil.tex
intro.tex
ipc.tex
listati/ip_mreq_source.h [new file with mode: 0644]
listati/ip_msfilter.h [new file with mode: 0644]
macro.tex
netlayer.tex
network.tex
othersock.tex
preambolo.tex
pref.tex
process.tex
prochand.tex
ringraziamenti.tex
session.tex
signal.tex
sockadv.tex
sockctrl.tex
socket.tex
system.tex
tcpsock.tex
thread.tex
trasplayer.tex

index 0face7af9e447dbd94922c474dddbefccf02c40f..09530a5b31917307bb658b101742b1cf5cf7c2ce 100644 (file)
--- a/build.tex
+++ b/build.tex
@@ -1,6 +1,6 @@
 %% build.tex
 %%
-%% Copyright (C) 1999-2017 Simone Piccardi.  Permission is granted to copy,
+%% Copyright (C) 1999-2018 Simone Piccardi.  Permission is granted to copy,
 %% distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 5010384c0e340ad03fb7b5e7a8c6e2f7d749349e..c900dd43899670575dd3d4bc8a161b8f6976c156 100644 (file)
@@ -1,6 +1,6 @@
 %% errors.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 5cdcf4285eb3be4889d213677f5c9be41ccc14cf..2507109883fbdc02c3d241281ff1e36b49db0ec5 100644 (file)
@@ -1,6 +1,6 @@
 %% fileadv.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 3167621ce732cd5a084f7288fe24dc995cb97209..369a396168df76be28ba1900f4d7fcd7e5ff42c8 100644 (file)
@@ -1,6 +1,6 @@
 %% filedir.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 553ad9a5078b255f5ea62f76f970271e5509182e..1ab6aeef18fc86370ea2caad5d21010ea8f9bcdf 100644 (file)
@@ -1,6 +1,6 @@
 %% fileio.tex (merge fileunix.tex - filestd.tex)
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 381db2d1d4725dcc3409ae54cef9d6cd4ad48472..c66db97408bc2ab2ae4663549187269db6e78487 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -1,6 +1,6 @@
 %% gapil.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.3 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -128,7 +128,7 @@ hyperfootnotes=false]{hyperref}
 
 \begin{quote}
   
-  Copyright \copyright\ 2000-2017 Simone Piccardi.  Permission is granted to
+  Copyright \copyright\ 2000-2018 Simone Piccardi.  Permission is granted to
   copy, distribute and/or modify this document under the terms of the GNU Free
   Documentation License, Version 1.3 or any later version published by the
   Free Software Foundation; with the Invariant Sections being ``Un preambolo''
index edab0989ee43d32f516d22552a80f8dabf06af64..0a2d2d89ec9bf0b693de036dd694f97c884929b2 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -1,6 +1,6 @@
 %% intro.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
diff --git a/ipc.tex b/ipc.tex
index 2fc13a8f67d44d6c99e325885e20937d8b4282e6..f820a13b0cbaec3b200ff368c5a1564682a6e298 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -1,6 +1,6 @@
 %% ipc.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
diff --git a/listati/ip_mreq_source.h b/listati/ip_mreq_source.h
new file mode 100644 (file)
index 0000000..0893156
--- /dev/null
@@ -0,0 +1,5 @@
+struct ip_mreq_source {
+     struct in_addr imr_multiaddr;  /* IP multicast group address */
+     struct in_addr imr_interface;  /* IP address of local interface */
+     struct in_addr imr_sourceaddr; /* IP address of multicast source */
+};
diff --git a/listati/ip_msfilter.h b/listati/ip_msfilter.h
new file mode 100644 (file)
index 0000000..dbd40b8
--- /dev/null
@@ -0,0 +1,7 @@
+struct ip_msfilter {
+    struct in_addr imsf_multiaddr; /* IP multicast group address */
+    struct in_addr imsf_interface; /* IP address of local interface */
+    uint32_t       imsf_fmode;     /* Filter-mode */
+    uint32_t       imsf_numsrc;    /* Number of sources in the following array */
+    struct in_addr imsf_slist[1];  /* Array of source addresses */
+};
index 4af9f653e4e97b9200624815de149da43216bcab..de2fa060d078456cdb1eb9f84e82cbfbb9885e79 100644 (file)
--- a/macro.tex
+++ b/macro.tex
@@ -1,6 +1,6 @@
 %% macro.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 568ff4d04ac15f15b549da56dfb51bccdf5ede96..5516cec51de34939708b0d9e7607c2421db6caf6 100644 (file)
@@ -1,6 +1,6 @@
 %% netlayer.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 9418d89c4064a0de29a7fd50124659649aac0daf..68a50e1213b0ff8d20a6d60835c102b27c84f98c 100644 (file)
@@ -1,6 +1,6 @@
 %% network.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 24db472c41c4d7f881700c5053c4a2bd18bec1b6..4bdf38435d374836888ac3f320053511b5241e10 100644 (file)
@@ -1,6 +1,6 @@
 %% othersock.tex
 %%
-%% Copyright (C) 2004-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 7f407828841c24c9939d9522e5b526dd8108c93e..50be429ab414a64ecb6d739af5c9bfc6e0c0c952 100644 (file)
@@ -1,6 +1,6 @@
 %% preambolo.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index e133b26ed80cae3e270e3f3a394337eea9e5314e..42ec8440facf64f6dee9b800b87d77dad7129ce7 100644 (file)
--- a/pref.tex
+++ b/pref.tex
@@ -1,6 +1,6 @@
 %% pref.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 2d35cd5a764d67c76cbfa83c2518ab98f6bc96c6..8aba3c23ddacf3fd17e31c6ccb6049f873537ae1 100644 (file)
@@ -1,6 +1,6 @@
 %% process.tex
 %%
-%% Copyright (C) 2000-2017 by Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 by Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 495851d55591e9fee79596abe9faa802382dfb12..62b02a4556d9f72754cf2ce3378461497d803a05 100644 (file)
@@ -1,6 +1,6 @@
 %% prochand.tex
 %%
-%% Copyright (C) 2000-2017 by Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 by Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 39e42be486b67b3c98ab485a0c7ed1ccb91acdd1..2461a41cb6121b3433d2419990fea5949b2cfcf2 100644 (file)
@@ -1,6 +1,6 @@
 %% ringraziamenti.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 2840dc469ed8aeac867e8be9b824ecabd50e6097..1802daab81af3c7c3466a7748ea4d73162161710 100644 (file)
@@ -1,6 +1,6 @@
 %% session.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index d05c4cac2102ec4eb3e2f99fbc54919957996449..d3564ad7576e3553c0e3523d4e620af5d68bf123 100644 (file)
@@ -1,6 +1,6 @@
 %% signal.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 753e66bd32e3dc9d48ecdeac2eef9130050ca3d2..89b5b5bb752e17afce92ec4985e035b993ec88d2 100644 (file)
@@ -1,6 +1,6 @@
 %% sockadv.tex
 %%
-%% Copyright (C) 2004-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index a1a4a65c0b7e8c645a332ff8e7859e3ec9b2c5e7..7d860f348fc018208a36f62d883aff6ea06eff4d 100644 (file)
@@ -1,6 +1,6 @@
 %% sockctrl.tex
 %%
-%% Copyright (C) 2004-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Prefazione",
@@ -3164,7 +3164,7 @@ manuale, nel caso specifico la documentazione si può consultare con
       Ricomincia a ricevere dati di \textit{multicast} per una sorgente.\\
    \hline
   \end{tabular}
-  \caption{Le opzioni disponibili al livello \const{SOL\_IP}.} 
+  \caption{Le opzioni disponibili al livello \const{IPPROTO\_IP}.} 
   \label{tab:sock_opt_iplevel}
 \end{table}
 
@@ -3194,30 +3194,113 @@ seguente elenco:
   \begin{minipage}[c]{0.70\textwidth}
     \includestruct{listati/ip_mreqn.h}
   \end{minipage}
-  \caption{La struttura \structd{ip\_mreqn} utilizzata dalle opzioni dei
-    socket per le operazioni concernenti l'appartenenza ai gruppi di
+  \caption{La struttura \structd{ip\_mreqn} utilizzata per unirsi a un gruppo di
     \textit{multicast}.}
   \label{fig:ip_mreqn_struct}
 \end{figure}
 
-  Per compatibilità è possibile utilizzare anche un argomento di tipo
-  \struct{ip\_mreq}, una precedente versione di \struct{ip\_mreqn}, che
-  differisce da essa soltanto per l'assenza del campo \var{imr\_ifindex}.
+Questa struttura è presente a partire dal kernel 2.2, per compatibilità è
+possibile utilizzare anche un argomento di tipo \struct{ip\_mreq}, presente
+fino dal kernel 1.2, che differisce da essa soltanto per l'assenza del campo
+\var{imr\_ifindex}; il kernel riconosce il tipo di struttura in base alla
+differente dimensione passata in \param{optlen}. 
 
+\item[\constd{IP\_ADD\_SOURCE\_MEMBERSHIP}] L'opzione consente di unirsi ad
+  gruppo di \textit{multicast}, ricevendo i dati solo da una sorgente
+  specifica; come \const{IP\_ADD\_MEMBERSHIP} può essere usata solo con
+  \func{setsockopt}.
 
-\item[\constd{IP\_BLOCK\_SOURCE}] TODO 
+\begin{figure}[!htb]
+  \footnotesize \centering
+  \begin{minipage}[c]{0.70\textwidth}
+    \includestruct{listati/ip_mreq_source.h}
+  \end{minipage}
+  \caption{La struttura \structd{ip\_mreqn} utilizzata per unirsi a un gruppo di
+    \textit{multicast} per una specifica sorgente.}
+  \label{fig:ip_mreq_source_struct}
+\end{figure}
+
+L'argomento \param{optval} in questo caso è una struttura
+\struct{ip\_mreq\_source} illustrata in fig.~\ref{fig:ip_mreq_source_struct},
+dove il campo \var{imr\_multiaddr} è l'indirizzo del gruppo di
+\textit{multicast}, il campo \var{imr\_interface} l'indirizzo dell'interfaccia
+locale che deve essere usata per aggiungersi al gruppo di \textit{multicast} e
+il campo \var{imr\_sourceaddr} l'indirizzo della sorgente da cui
+l'applicazione vuole ricevere i dati. L'opzione può essere ripetuta più volte
+per collegarsi a diverse sorgenti.
+
+\item[\constd{IP\_BLOCK\_SOURCE}] Questa opzione, disponibile dal kernel
+  2.4.22, consente di smettere di ricevere dati di \textit{multicast} dalla
+  sorgente (e relativo gruppo) specificati dalla struttura
+  \struct{ip\_mreq\_source} (vedi fig.~\ref{fig:ip_mreq_source_struct})
+  passata come argomento \param{optval}. L'opzione è utilizzabile solo se si è
+  già registrati nel gruppo di \textit{multicast} indicato con un precedente
+  utilizzo di \const{IP\_ADD\_MEMBERSHIP} o
+  \const{IP\_ADD\_SOURCE\_MEMBERSHIP}.
 
 \item[\constd{IP\_DROP\_MEMBERSHIP}] Lascia un gruppo di \textit{multicast},
   prende per \param{optval} la stessa struttura \struct{ip\_mreqn} (o
-  \struct{ip\_mreq}) usata anche per \const{IP\_ADD\_MEMBERSHIP}.
+  \struct{ip\_mreq}) usata per \const{IP\_ADD\_MEMBERSHIP} (vedi
+  fig.~\ref{fig:ip_mreqn_struct}).
+
+\item[\constd{IP\_DROP\_SOURCE\_MEMBERSHIP}] Lascia un gruppo di
+  \textit{multicast} per una specifica sorgente, prende per \param{optval} la
+  stessa struttura \struct{ip\_mreq\_source} usata per
+  \const{IP\_ADD\_SOURCE\_MEMBERSHIP} (vedi
+  fig.~\ref{fig:ip_mreq_source_struct}). Se ci si è registrati per più
+  sorgenti nello stesso gruppo, si continuerà a ricevere dati sulle altre. Per
+  smettere di ricevere dati da tutte le sorgenti occorre usare l'opzione
+  \const{IP\_LEAVE\_GROUP}.
+
+\item[\constd{IP\_FREEBIND}] Se abilitata questa opzione, disponibile dal
+  kernel 2.4, consente di usare \func{bind} anche su un indirizzo IP non
+  locale o che ancora non è stato assegnato. Questo permette ad una
+  applicazione di mettersi in ascolto su un socket prima che l'interfaccia
+  sottostante o l'indirizzo che questa deve usare sia stato configurato. È
+  l'equivalente a livello di singolo socket dell'uso della \textit{sysctl}
+  \texttt{ip\_nonlocal\_bind} che vedremo in
+  sez.~\ref{sec:sock_ipv4_sysctl}. Prende per
+  \param{optval} un intero usato come valore logico.
+
+\item[\constd{IP\_HDRINCL}] Se viene abilitata questa opzione, presente dal
+  kernel 2.0, l'utente deve fornire lui stesso l'intestazione del protocollo
+  IP in testa ai propri dati. L'opzione è valida soltanto per socket di tipo
+  \const{SOCK\_RAW}, e quando utilizzata eventuali valori impostati con
+  \const{IP\_OPTIONS}, \const{IP\_TOS} o \const{IP\_TTL} sono ignorati. In
+  ogni caso prima della spedizione alcuni campi dell'intestazione vengono
+  comunque modificati dal kernel, torneremo sull'argomento in
+  sez.~\ref{sec:socket_raw}.  Prende per \param{optval} un intero usato come
+  valore logico.
+
+\item[\constd{IP\_MSFILTER}] L'opzione, introdotta con il kernel 2.4.22,
+  fornisce accesso completo all'interfaccia per il filtraggio delle sorgenti
+  di \textit{multicast} (il cosiddetto \textit{multicast source filtering},
+  definito dall'\href{http://www.ietf.org/rfc/rfc3376.txt}{RFC~3376}).
+
+\begin{figure}[!htb]
+  \footnotesize \centering
+  \begin{minipage}[c]{0.70\textwidth}
+    \includestruct{listati/ip_msfilter.h}
+  \end{minipage}
+  \caption{La struttura \structd{ip\_msfilter} utilizzata per il
+    \textit{multicast source filtering}.}
+  \label{fig:ip_msfilter_struct}
+\end{figure}
 
-\item[\constd{IP\_HDRINCL}] Se abilitata l'utente deve fornire lui stesso
-  l'intestazione IP in cima ai propri dati. L'opzione è valida soltanto per
-  socket di tipo \const{SOCK\_RAW}, e quando utilizzata eventuali valori
-  impostati con \const{IP\_OPTIONS}, \const{IP\_TOS} o \const{IP\_TTL} sono
-  ignorati. In ogni caso prima della spedizione alcuni campi
-  dell'intestazione vengono comunque modificati dal kernel, torneremo
-  sull'argomento in sez.~\ref{sec:socket_raw}
+L'argomento \param{optval} è una struttura \struct{ip\_msfilter} illustrata in
+fig.~\ref{fig:ip_msfilter_struct}, il campo \var{imsf\_multiaddr} è
+l'indirizzo del gruppo di \textit{multicast}, il campo \var{imsf\_interface}
+l'indirizzo dell'interfaccia locale, il campo \var{imsf\_mode} indica la
+modalità di filtraggio e con i campi \var{imsf\_numsrc} e \var{imsf\_slist}
+rispettivamente la lunghezza della lista, e la lista stessa, degli indirizzi
+sorgente. 
+
+Come ausilio all'uso di questa opzione sono disponibili le macro
+\macro{MCAST\_INCLUDE} e \macro{MCAST\_EXCLUDE} che si possono usare per
+\var{imsf\_mode}. Inoltre si può usare la macro
+\macro{IP\_MSFILTER\_SIZE}\texttt{(\textsf{n})} per determinare il valore
+di \param{optlen} con una struttura \struct{ip\_msfilter} contenente
+\texttt{\textsf{n}} sorgenti in \var{imsf\_slist}.
 
 \item[\constd{IP\_MINTTL}] L'opzione, introdotta con il kernel 2.6.34, imposta
   un valore minimo per il campo \textit{Time to Live} dei pacchetti associati
@@ -3282,6 +3365,7 @@ seguente elenco:
       \constd{IP\_PMTUDISC\_DO}  &2& Esegue la procedura di determinazione
                                      della \textit{Path MTU} come richiesto
                                      dall'\href{http://www.ietf.org/rfc/rfc1191.txt}{RFC~1191}.\\ 
+      \constd{IP\_PMTUDISC\_PROBE}&?& .\\
       \hline
     \end{tabular}
     \caption{Valori possibili per l'argomento \param{optval} di
@@ -4579,7 +4663,9 @@ di manuale accessibile con \texttt{man 7 ip}, sono i seguenti:
 \item[\sysctlrelfiled{net/ipv4}{ip\_nonlocal\_bind}] se abilitato rende
   possibile ad una applicazione eseguire \func{bind} anche su un indirizzo che
   non è presente su nessuna interfaccia locale. Prende un valore logico e di
-  default è disabilitato.
+  default è disabilitato. La funzionalità può essere abilitata a livello di
+  singolo socket con l'opzione \const{IP\_FREEBIND} illustrata in
+  sez.~\ref{sec:sock_ipv4_options}. 
 
   Questo può risultare utile per applicazioni particolari (come gli
   \textit{sniffer}) che hanno la necessità di ricevere pacchetti anche non
index 355845020ed8ad8a748062c80be0fcb0a9a09b8b..dc9f501a51abfda4d49dcda5cb0afc9ebbc8a403 100644 (file)
@@ -1,6 +1,6 @@
 %% socket.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 5e6a31c2068919f167d1f92120e00660555b13df..74d6dd330c7268f1011ab71a1f5e69a609fffb6d 100644 (file)
@@ -1,6 +1,6 @@
 %% system.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 767aaa7534f870e6ca7e781cdf65b0ef66dfdebf..9e984ef767b2ce30c56ba59ffe73f4e95cb3efdb 100644 (file)
@@ -1,6 +1,6 @@
 %% tcpsock.tex
 %%
-%% Copyright (C) 2000-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 22add0facb4be231a8efdf76f000d2054f80fccb..a6c6dd7a53a3de41311d7f32a3d03941aa489ac0 100644 (file)
@@ -1,6 +1,6 @@
 %% thread.tex
 %%
-%% Copyright (C) 2007-2017 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2007-2018 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
index 5c965c2c03c8941d6eb4e63257d42cc18f170dc6..b43bd083079eb2d1049db13c60492d5a7bb718ac 100644 (file)
@@ -1,6 +1,6 @@
 %% tcpprot.tex
 %%
-%% Copyright (C) 2002-2017 Simone Piccardi.  Permission is granted to copy,
+%% Copyright (C) 2002-2018 Simone Piccardi.  Permission is granted to copy,
 %% distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.1 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",