Aggiornamenti del copyright all'anno nuovo, e risistemazione delle
[gapil.git] / sockctrl.tex
index 1b8d37a48b8b4b0be5f20ce8f7d124384e8bce41..df3ed6921e0c0feb3ffb826be486b32ca4913bf8 100644 (file)
@@ -1,6 +1,6 @@
 %% sockctrl.tex
 %%
-%% Copyright (C) 2004-2006 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2007 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",
@@ -8,6 +8,7 @@
 %% license is included in the section entitled "GNU Free Documentation
 %% License".
 %%
+
 \chapter{La gestione dei socket}
 \label{cha:sock_generic_management}
 
@@ -617,7 +618,7 @@ argomento (che si presume sia dato da \var{h\_errno}).
 \subsection{La risoluzione dei nomi a dominio}
 \label{sec:sock_name_services}
 
-La principale funzionalità del \itindex{resolver}\textit{resolver} resta
+La principale funzionalità del \itindex{resolver} \textit{resolver} resta
 quella di risolvere i nomi a dominio in indirizzi IP, per cui non ci
 dedicheremo oltre alle funzioni di richiesta generica ed esamineremo invece le
 funzioni a questo dedicate. La prima funzione è \funcd{gethostbyname} il cui
@@ -682,7 +683,7 @@ Con l'uso di \func{gethostbyname} normalmente si ottengono solo gli indirizzi
 IPv4, se si vogliono ottenere degli indirizzi IPv6 occorrerà prima impostare
 l'opzione \const{RES\_USE\_INET6} nel campo \texttt{\_res.options} e poi
 chiamare \func{res\_init} (vedi sez.~\ref{sec:sock_resolver_functions}) per
-modificare le opzioni del \itindex{resolver}\textit{resolver}; dato che
+modificare le opzioni del \itindex{resolver} \textit{resolver}; dato che
 questo non è molto comodo è stata definita\footnote{questa è una estensione
   fornita dalle \acr{glibc}, disponibile anche in altri sistemi unix-like.}
 un'altra funzione, \funcd{gethostbyname2}, il cui prototipo è:
@@ -719,7 +720,7 @@ suoi risultati.
 Vediamo allora un primo esempio dell'uso delle funzioni di risoluzione, in
 fig.~\ref{fig:mygethost_example} è riportato un estratto del codice di un
 programma che esegue una semplice interrogazione al
-\itindex{resolver}\textit{resolver} usando \func{gethostbyname} e poi ne
+\itindex{resolver} \textit{resolver} usando \func{gethostbyname} e poi ne
 stampa a video i risultati. Al solito il sorgente completo, che comprende il
 trattamento delle opzioni ed una funzione per stampare un messaggio di aiuto,
 è nel file \texttt{mygethost.c} dei sorgenti allegati alla guida.
@@ -776,14 +777,14 @@ chiamate i dati potranno essere sovrascritti. Si tenga presente poi che
 copiare il contenuto della sola struttura non è sufficiente per salvare tutti
 i dati, in quanto questa contiene puntatori ad altri dati, che pure possono
 essere sovrascritti; per questo motivo, se si vuole salvare il risultato di
-una chiamata, occorrerà eseguire quella che si chiama una
-\itindex{deep~copy}\textit{deep copy}.\footnote{si chiama così quella tecnica
-  per cui, quando si deve copiare il contenuto di una struttura complessa (con
-  puntatori che puntano ad altri dati, che a loro volta possono essere
-  puntatori ad altri dati) si deve copiare non solo il contenuto della
-  struttura, ma eseguire una scansione per risolvere anche tutti i puntatori
-  contenuti in essa (e così via se vi sono altre sottostrutture con altri
-  puntatori) e copiare anche i dati da questi referenziati.}
+una chiamata, occorrerà eseguire quella che si chiama una \itindex{deep~copy}
+\textit{deep copy}.\footnote{si chiama così quella tecnica per cui, quando si
+  deve copiare il contenuto di una struttura complessa (con puntatori che
+  puntano ad altri dati, che a loro volta possono essere puntatori ad altri
+  dati) si deve copiare non solo il contenuto della struttura, ma eseguire una
+  scansione per risolvere anche tutti i puntatori contenuti in essa (e così
+  via se vi sono altre sottostrutture con altri puntatori) e copiare anche i
+  dati da questi referenziati.}
 
 Per ovviare a questi problemi nelle \acr{glibc} sono definite anche delle
 versioni rientranti delle precedenti funzioni, al solito queste sono
@@ -818,7 +819,7 @@ lunghezza di questo buffer devono essere indicati con gli argomenti
 \param{buf} e \param{buflen}.
 
 Gli ultimi due argomenti vengono utilizzati per avere indietro i risultati
-come \itindex{value~result~argument}\textit{value result argument}, si deve
+come \itindex{value~result~argument} \textit{value result argument}, si deve
 specificare l'indirizzo della variabile su cui la funzione dovrà salvare il
 codice di errore con \param{h\_errnop} e quello su cui dovrà salvare il
 puntatore che si userà per accedere i dati con \param{result}.
@@ -1255,7 +1256,7 @@ utilizzata dalla funzione per riportare (come \itindex{value~result~argument}
 rientrante, ed alloca autonomamente tutta la memoria necessaria in cui
 verranno riportati i risultati della risoluzione.  La funzione scriverà
 all'indirizzo puntato da \param{res} il puntatore iniziale ad una
-\itindex{linked~list}\textit{linked list} di strutture di tipo
+\itindex{linked~list} \textit{linked list} di strutture di tipo
 \struct{addrinfo} contenenti tutte le informazioni ottenute.
 
 \begin{figure}[!htb]
@@ -1462,13 +1463,13 @@ lista illustrata in fig.~\ref{fig:sock_addrinfo_list}.
 \begin{figure}[!htb]
   \centering
   \includegraphics[width=10cm]{img/addrinfo_list}
-  \caption{La \itindex{linked~list}\textit{linked list} delle strutture
+  \caption{La \itindex{linked~list} \textit{linked list} delle strutture
     \struct{addrinfo} restituite da \func{getaddrinfo}.}
   \label{fig:sock_addrinfo_list}
 \end{figure}
 
 Come primo esempio di uso di \func{getaddrinfo} vediamo un programma
-elementare di interrogazione del \itindex{resolver}\textit{resolver} basato
+elementare di interrogazione del \itindex{resolver} \textit{resolver} basato
 questa funzione, il cui corpo principale è riportato in
 fig.~\ref{fig:mygetaddr_example}. Il codice completo del programma, compresa
 la gestione delle opzioni in cui è gestita l'eventuale inizializzazione
@@ -1559,7 +1560,7 @@ IPv4 address:
 \end{Verbatim}
 %$
 
-Una volta estratti i risultati dalla \itindex{linked~list}\textit{linked list}
+Una volta estratti i risultati dalla \itindex{linked~list} \textit{linked list}
 puntata da \param{res} se questa non viene più utilizzata si dovrà avere cura
 di disallocare opportunamente tutta la memoria, per questo viene fornita
 l'apposita funzione \funcd{freeaddrinfo}, il cui prototipo è:
@@ -1581,7 +1582,7 @@ per \param{res}.
 
 Si tenga presente infine che se si copiano i risultati da una delle strutture
 \struct{addrinfo} restituite nella lista indicizzata da \param{res}, occorre
-avere cura di eseguire una \itindex{deep~copy}\textit{deep copy} in cui
+avere cura di eseguire una \itindex{deep~copy} \textit{deep copy} in cui
 si copiano anche tutti i dati presenti agli indirizzi contenuti nella
 struttura \struct{addrinfo}, perché una volta disallocati i dati con
 \func{freeaddrinfo} questi non sarebbero più disponibili. 
@@ -1979,7 +1980,7 @@ di \func{setsockopt}, anche se non 
 per entrambe le funzioni. In questo caso \param{optval} viene usato per
 ricevere le informazioni ed indica l'indirizzo a cui andranno scritti i dati
 letti dal socket, infine \param{optlen} diventa un puntatore ad una variabile
-che viene usata come \itindex{value~result~argument}\textit{value result
+che viene usata come \itindex{value~result~argument} \textit{value result
   argument} per indicare, prima della chiamata della funzione, la lunghezza
 del buffer allocato per \param{optval} e per ricevere indietro, dopo la
 chiamata della funzione, la dimensione effettiva dei dati scritti su di esso.