X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=sockctrl.tex;h=e78c5acfc51d54a33487c438e4f063d6a08c6ca7;hb=414401b178e7542189e5cc13ebafd8806cee3724;hp=7b4bad10511068c2b8d88e70f70c2ff34229e86e;hpb=d8d6fec662a11ed3f7b6377651eead05a77dd187;p=gapil.git diff --git a/sockctrl.tex b/sockctrl.tex index 7b4bad1..e78c5ac 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -2340,6 +2340,9 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: % Documentation/networking/timestamping.txt +% TOFO documentare SO_REUSEPORT introdotta con il kernel 3.9, vedi +% http://git.kernel.org/linus/c617f398edd4db2b8567a28e899a88f8f574798d + \end{basedescript} @@ -2624,16 +2627,20 @@ Essendo questo un caso particolare in alcuni sistemi (come BSD) è stata introdotta una opzione ulteriore, \const{SO\_REUSEPORT} che richiede che detta opzione sia specificata per tutti i socket per i quali si vuole eseguire il \textit{completely duplicate binding}. Nel caso di Linux questa opzione non -esiste, ma il comportamento di \const{SO\_REUSEADDR} è analogo, sarà cioè -possibile effettuare un \textit{completely duplicate binding} ed ottenere il -successo di \func{bind} su un socket legato allo stesso indirizzo e porta solo -se il programma che ha eseguito per primo \func{bind} su di essi ha impostato -questa opzione.\footnote{questa restrizione permette di evitare il cosiddetto - \textit{port stealing}, in cui un programma, usando \const{SO\_REUSEADDR}, - può collegarsi ad una porta già in uso e ricevere i pacchetti destinati ad - un altro programma; con questa caratteristica ciò è possibile soltanto se il +esisteva fino al kernel 3.9, ma il comportamento di \const{SO\_REUSEADDR} è +analogo, sarà cioè possibile effettuare un \textit{completely duplicate + binding} ed ottenere il successo di \func{bind} su un socket legato allo +stesso indirizzo e porta solo se il programma che ha eseguito per primo +\func{bind} su di essi ha impostato questa opzione.\footnote{questa + restrizione permette di evitare parzialmente il cosiddetto \textit{port + stealing}, in cui un programma, usando \const{SO\_REUSEADDR}, può + collegarsi ad una porta già in uso e ricevere i pacchetti destinati ad un + altro programma; con questa caratteristica ciò è possibile soltanto se il primo programma a consentirlo, avendo usato fin dall'inizio - \const{SO\_REUSEADDR}.} + \const{SO\_REUSEADDR}.} + +% TODO documentare SO_REUSEPORT, vedi https://lwn.net/Articles/542260/ + \index{costante!{SO\_REUSEADDR}@{{\tt {SO\_REUSEADDR}}}|)}