Altre correzioni ortografiche.
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 26 Mar 2006 18:07:37 +0000 (18:07 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 26 Mar 2006 18:07:37 +0000 (18:07 +0000)
sockadv.tex
sockctrl.tex

index e4b0e2c087f4ec919671d309da69d93d360cf950..1fc196fb54164fd62ec29395ce27b5b5b97a3b6a 100644 (file)
@@ -21,7 +21,7 @@ multiplexing (vedi sez.~\ref{sec:file_multiplexing}) con i socket.
 \section{Le funzioni di I/O avanzate}
 \label{sec:sock_advanced_IO}
 
-Tratterremo in questa sezione le funzioni di I/O più avanzate che permettono di
+Tratteremo in questa sezione le funzioni di I/O più avanzate che permettono di
 controllare le funzionalità specifiche della comunicazione dei dati che sono
 disponibili con i vari tipi di socket.
 
@@ -69,7 +69,7 @@ cosiddetti dati \textit{out-of-band} ...
 \section{L'uso dell'I/O non bloccante}
 \label{sec:sock_noblok_IO}
 
-Tratterremo in questa sezione le modalità avanzate che permettono di utilizzare
+Tratteremo in questa sezione le modalità avanzate che permettono di utilizzare
 i socket con una comunicazione non bloccante, in modo da 
 
 
index 65c05355544fb761816100717818302a5d33651b..5dc63a4689eede3f90e2dd4c81134c6b167eb2a3 100644 (file)
@@ -983,7 +983,7 @@ insieme a tutto lo spazio necessario a contenere i dati in essa referenziati;
 per questo motivo queste funzioni non soffrono dei problemi dovuti all'uso di
 una sezione statica di memoria presenti con le precedenti \func{gethostbyname}
 e \func{gethostbyaddr}.  L'uso di una allocazione dinamica però comporta anche
-la necessità di deallocare esplicitamente la memoria occupata dai risultati
+la necessità di disallocare esplicitamente la memoria occupata dai risultati
 una volta che questi non siano più necessari; a tale scopo viene fornita la
 funzione \funcd{freehostent}, il cui prototipo è:
 \begin{functions}
@@ -1511,7 +1511,7 @@ errore ed uscire.\footnote{questa eventualit
 Per ciascuno delle due possibili famiglie di indirizzi si estraggono le
 informazioni che poi verranno stampate alla fine del ciclo (\texttt{\small
   31--34}). Il primo caso esaminato (\texttt{\small 15--21}) è quello degli
-indirizzi IPv4, nel qual caso prima se ne stampa l'indentificazione
+indirizzi IPv4, nel qual caso prima se ne stampa l'identificazione
 (\texttt{\small 16}) poi si provvede a ricavare la struttura degli indirizzi
 (\texttt{\small 17}) indirizzata dal campo \var{ai\_addr}, eseguendo un
 opportuno casting del puntatore per poter estrarre da questa la porta
@@ -1586,10 +1586,10 @@ 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. 
 
-Anche la nuova intefaccia definita da POSIX prevede una nuova funzione per
+Anche la nuova interfaccia definita da POSIX prevede una nuova funzione per
 eseguire la risoluzione inversa e determinare nomi di servizi e di dominio
 dati i rispettivi valori numerici. La funzione che sostituisce le varie
-\func{gethostbyname}, \func{geipnodebyname} e \func{getservname} è
+\func{gethostbyname}, \func{getipnodebyname} e \func{getservname} è
 \funcd{getnameinfo}, ed il suo prototipo è:
 \begin{functions}
   \headdecl{sys/socket.h}
@@ -1673,7 +1673,7 @@ finora, quello in cui si specifica nel client un indirizzo remoto per la
 connessione al server, e quello in cui si specifica nel server un indirizzo
 locale su cui porsi in ascolto.
 
-La prima funzione della nostra intefaccia semplificata è \func{sockconn} che
+La prima funzione della nostra interfaccia semplificata è \func{sockconn} che
 permette di ottenere un socket, connesso all'indirizzo ed al servizio
 specificati. Il corpo della funzione è riportato in
 fig.~\ref{fig:sockconn_code}, il codice completo è nel file \file{SockUtil.c}
@@ -1700,7 +1700,7 @@ associato al socket (un numero positivo) in caso di successo, o -1 in caso di
 errore; per risolvere il problema di non poter passare indietro i valori di
 ritorno di \func{getaddrinfo} contenenti i relativi codici di
 errore\footnote{non si può avere nessuna certezza che detti valori siano
-  negativi, è questo è invece nessario per evitare ogni possibile ambiguità
+  negativi, è questo è invece necessario per evitare ogni possibile ambiguità
   nei confronti del valore di ritorno in caso di successo.} si sono stampati i
 messaggi d'errore direttamente nella funzione.
 
@@ -1711,7 +1711,7 @@ chiamata (\texttt{\small 10}) a \func{getaddrinfo}. Di quest'ultima si
 controlla (\texttt{\small 12-16}) il codice di ritorno, in modo da stampare un
 avviso di errore, azzerare \var{errno} ed uscire in caso di errore.  Dato che
 ad una macchina possono corrispondere più indirizzi IP, e di tipo diverso (sia
-IPv4 che IPv6), mantre il servizio può essere in ascolto soltanto su uno solo
+IPv4 che IPv6), mentre il servizio può essere in ascolto soltanto su uno solo
 di questi, si provvede a tentare la connessione per ciascun indirizzo
 restituito all'interno di un ciclo (\texttt{\small 18-40}) di scansione della
 lista restituita da \func{getaddrinfo}, ma prima (\texttt{\small 17}) si salva
@@ -1906,7 +1906,7 @@ riassunti i valori che possono essere usati per l'argomento
   \texttt{SOL\_*}, che le analoghe \texttt{IPPROTO\_*} (citate anche da
   Stevens in \cite{UNP1}); entrambe hanno gli stessi valori che sono
   equivalenti ai numeri di protocollo di \file{/etc/protocols}, con una
-  eccesione specifica, che è quella del protocollo ICMP, per la quale non
+  eccezione specifica, che è quella del protocollo ICMP, per la quale non
   esista una costante, il che è comprensibile dato che il suo valore, 1, è
   quello che viene assegnato a \const{SOL\_SOCKET}.}
 
@@ -1943,7 +1943,7 @@ individuare qual 
 variabili.
 
 La gran parte delle opzioni utilizzano per \param{optval} un valore intero, se
-poi l'opzione esprime una condizione logica, il valore è sempre un intero, am
+poi l'opzione esprime una condizione logica, il valore è sempre un intero, ma
 si dovrà usare un valore non nullo per abilitarla ed un valore nullo per
 disabilitarla.  Se invece l'opzione non prevede di dover ricevere nessun tipo
 di valore si deve impostare \param{optval} a \const{NULL}. Un piccolo numero
@@ -1983,7 +1983,7 @@ 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.
-Se la dimenzione del buffer allocato per \param{optval} non è sufficiente si
+Se la dimensione del buffer allocato per \param{optval} non è sufficiente si
 avrà un errore.
 
 
@@ -2135,7 +2135,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
   In genere questa opzione non è molto utilizzata se si ha a che fare con la
   lettura dei dati, in quanto è sempre possibile usare una \func{select} che
   consente di specificare un \textit{timeout}; l'uso di \func{select} non
-  consente però di impostare il timout per l'uso di \func{connect}, per avere
+  consente però di impostare il timeout per l'uso di \func{connect}, per avere
   il quale si può ricorrere a questa opzione. 
 
 % TODO verificare il timeout con un programma di test
@@ -2214,7 +2214,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
 
 \item[\const{SO\_TYPE}] questa opzione permette di leggere il tipo di socket
   su cui si opera; funziona solo con \func{getsockopt}, ed utilizza per
-  \param{optval} un intero in cui verrà restituto il valore numerico che lo
+  \param{optval} un intero in cui verrà restituito il valore numerico che lo
   identifica (ad esempio \const{SOCK\_STREAM}). 
 
 \item[\const{SO\_ACCEPTCONN}] questa opzione permette di rilevare se il socket
@@ -2235,13 +2235,13 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
   intero usato come valore logico. L'opzione non ha effetti su un socket di
   tipo \const{SOCK\_STREAM}.
 
-\item[\const{SO\_SNDBUF}] questa opzione imposta la dimenzione del buffer di
+\item[\const{SO\_SNDBUF}] questa opzione imposta la dimensione del buffer di
   uscita del socket. Prende per \param{optval} un intero indicante il numero
   di byte. Il valore di default ed il valore massimo che si può specificare
   come argomento per questa opzione sono impostabili tramiti gli opportuni
   valori di \func{sysctl} (vedi sez.~\ref{sec:sock_sysctl}).
 
-\item[\const{SO\_RCVBUF}] questa opzione imposta la dimenzione del buffer di
+\item[\const{SO\_RCVBUF}] questa opzione imposta la dimensione del buffer di
   ingresso del socket. Prende per \param{optval} un intero indicante il numero
   di byte. Il valore di default ed il valore massimo che si può specificare
   come argomento per questa opzione sono impostabili tramiti gli opportuni
@@ -2281,7 +2281,7 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni:
 
 La descrizione sintetica del significato delle opzioni generiche dei socket,
 riportata nell'elenco in sez.~\ref{sec:sock_generic_options}, è
-necessariamente sintentica, alcune di queste però possono essere utilizzate
+necessariamente sintetica, alcune di queste però possono essere utilizzate
 per controllare delle funzionalità che hanno una notevole rilevanza nella
 programmazione dei socket.  Per questo motivo faremo in questa sezione un
 approfondimento sul significato delle opzioni generiche più importanti.
@@ -2308,17 +2308,17 @@ messaggio di \textit{keep-alive}\footnote{in sostanza un segmento ACK vuoto,
   cui sarà risposto con un altro segmento ACK vuoto.} verso l'altro capo della
 connessione se questa è rimasta senza traffico per più di due ore. Se è tutto
 a posto il messaggio viene ricevuto e verrà emesso un segmento ACK di
-risposta, alla cui ricezione ripartirà un'altro ciclo di attesa per altre due
+risposta, alla cui ricezione ripartirà un altro ciclo di attesa per altre due
 ore di inattività; il tutto avviene all'interno del kernel e le applicazioni
 non riceveranno nessun dato.
 
 In caso di problemi invece si possono avere i due casi già illustrati in
-sez.~\ref{sec:TCP_conn_crash} per il caso di terminazione prococe del server:
+sez.~\ref{sec:TCP_conn_crash} per il caso di terminazione precoce del server:
 il primo è quello in cui la macchina remota è caduta ed è stata riavviata, per
 cui dopo il riavvio la connessione non viene più riconosciuta,\footnote{si
   ricordi che un normale riavvio non ha questo effetto, in quanto in tal caso
   si passa per la chiusura del processo, e questo, come illustrato in
-  sez.~\ref{sec:file_close}, comporta la chiusura del socket col'invio di un
+  sez.~\ref{sec:file_close}, comporta la chiusura del socket col'invio di un
   segmento FIN all'altro capo della connessione, che verrà regolarmente
   chiusa.} in questo caso all'invio del messaggio di \textit{keep-alive} si
 otterrà come risposta un segmento RST che indica che l'altro capo non
@@ -2342,7 +2342,7 @@ restituito l'errore corrispondente.
 In generale questa opzione serve per individuare una caduta della connessione
 anche quando non si sta facendo traffico su di essa.  Viene usata
 principalmente sui server per evitare di mantenere impegnate le risorse che
-verrbbero dedicate a trattare delle connessioni che in realtà sono già
+verrebbero dedicate a trattare delle connessioni che in realtà sono già
 terminate (quelle che vengono anche chiamate connessioni
 \textsl{semi-aperte}); in tutti quei casi cioè in cui il server si trova in
 attesa di dati in ingresso su una connessione che non arriveranno mai perché o
@@ -2545,7 +2545,7 @@ In questo caso utilizzando \const{SO\_REUSEADDR} si consente ad una
 applicazione eseguire \func{bind} sulla stessa porta ed indirizzo usata da
 un'altra, così che anche essa possa ricevere gli stessi pacchetti (chiaramente
 la cosa non ha alcun senso per i socket TCP, ed infatti in questo tipo di
-applicazione è normale l'uso del protovollo UDP). La regola è che quando si
+applicazione è normale l'uso del protocollo UDP). La regola è che quando si
 hanno più applicazioni che hanno eseguito \func{bind} sulla stessa porta, di
 tutti pacchetti destinati ad un indirizzo di \itindex{broadcast}
 \textit{broadcast} o di \itindex{multicast} \textit{multicast} viene inviata
@@ -2593,7 +2593,7 @@ dal kernel.
 
 L'uso di \const{SO\_LINGER} con \func{setsockopt} permette di modificare (ed
 eventualmente ripristinare) questo comportamento in base ai valori passati nei
-campi della stuttura \struct{linger}, illustrata in
+campi della struttura \struct{linger}, illustrata in
 fig.~\ref{fig:sock_linger_struct}.  Fintanto che il valore del campo
 \var{l\_onoff} di \struct{linger} è nullo la modalità che viene impostata
 (qualunque sia il valore di \var{l\_linger}) è quella standard appena
@@ -2630,14 +2630,14 @@ allegati.
 La sezione indicata viene eseguita dopo aver effettuato la connessione e prima
 di chiamare la funzione di gestione, cioè fra le righe (\texttt{\small 12}) e
 (\texttt{\small 13}) del precedente esempio di fig.~\ref{fig:TCP_echo_fifth}.
-Il codice si limita semplicememente a controllare (\texttt{\small 3}) il
+Il codice si limita semplicemente a controllare (\texttt{\small 3}) il
 valore della variabile \var{reset} che assegnata nella gestione delle opzioni
 in corrispondenza all'uso di \texttt{-r} nella chiamata del client. Nel caso
 questa sia diversa da zero vengono impostati (\texttt{\small 5--6}) i valori
 della struttura \var{ling} che permettono una terminazione immediata della
-connessine. Questa viene poi usata nella successiva (\texttt{\small 7})
+connessione. Questa viene poi usata nella successiva (\texttt{\small 7})
 chiamata a \func{setsockopt}. Al solito si controlla (\texttt{\small 7--10})
-il valore di ritorno e si termina il programma in caso di errore, stampadone
+il valore di ritorno e si termina il programma in caso di errore, stampandone
 il valore.
 
 Infine l'ultima possibilità, quella in cui si utilizza effettivamente
@@ -2842,7 +2842,7 @@ sez.~\ref{sec:net_sendmsg}).
   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'instestazione vengono comunque modificati dal kernel, torneremo
+  dell'intestazione vengono comunque modificati dal kernel, torneremo
   sull'argomento in sez.~\ref{sec:socket_raw}
 
 \item[\const{IP\_RECVERR}] Questa è una opzione introdotta con i kernel della
@@ -2979,7 +2979,7 @@ sez.~\ref{sec:net_sendmsg}).
   prende per \param{optval} la stessa struttura \struct{ip\_mreqn} (o
   \struct{ip\_mreq}) usata anche per \const{IP\_ADD\_MEMBERSHIP}.
 
-\item[\const{IP\_MULTICAST\_IF}] Imposta l'interfaccia locale per i'utilizzo
+\item[\const{IP\_MULTICAST\_IF}] Imposta l'interfaccia locale per l'utilizzo
   del \textit{multicast}, ed utilizza come \param{optval} le stesse strutture
   \struct{ip\_mreqn} o \struct{ip\_mreq} delle due precedenti opzioni.
 
@@ -3024,7 +3024,7 @@ relativa richiesta:
   arrivano dei dati urgenti. Il terzo argomento deve essere un puntatore ad una
   variabile di tipo \type{pid\_t}; un valore positivo indica direttamente il
   \acr{pid} del processo, mentre un valore negativo indica (col valore
-  assoluto) il \textit{process group}. Senxa privilegi di amministratore o la
+  assoluto) il \textit{process group}. Senza privilegi di amministratore o la
   capability \const{CAP\_KILL} si può impostare solo se stessi o il proprio
   \textit{process group}.
 
@@ -3141,7 +3141,7 @@ sono:
   valore iniziale maggiore di 1024 (o meglio ancora di 4096) per evitare
   conflitti con le porte usate dai servizi noti.
 
-\item[\texttt{ip\_no\_pmtu\_disc}] imposta la discliplina di ricerca della
+\item[\texttt{ip\_no\_pmtu\_disc}] imposta la disciplina di ricerca della
   \textit{Path MTU} (vedi sez.~\ref{sec:net_lim_dim} e
   sez.~\ref{sec:sock_ipv4_options}).
 
@@ -3172,3 +3172,58 @@ sono:
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+
+% LocalWords:  socket sez dotted decimal resolver Domain Name Service cap DNS
+% LocalWords:  client fig LDAP Lightweight Access Protocol NIS Information Sun
+% LocalWords:  like netgroup Switch Solaris glibc libc uclib NSS tab shadow uid
+% LocalWords:  username group aliases ethers MAC address hosts networks rpc RPC
+% LocalWords:  protocols services dns db lib libnss org truelite it root res HS
+% LocalWords:  resource init netinet resolv int void conf host LOCALDOMAIN TCP
+% LocalWords:  options DEBUG debug AAONLY USEVC UDP PRIMARY IGNTC RECURSE INET
+% LocalWords:  DEFNAMES search STAYOPEN DNSRCH INSECURE NOALIASES HOSTALIASES
+% LocalWords:  IPv gethostbyname NOCHECKNAME KEEPTSIG TSIG BLAST RETRY retry NS
+% LocalWords:  retrans query FQDN Fully Qualified const char dname class type
+% LocalWords:  unsigned answer anslen CSNET Hesiod MIT CHAOS Chaosnet ANY BIND
+% LocalWords:  nameser compat Berkley MF CNAME SOA MB MR NULL WKS PTR HINFO TXT
+% LocalWords:  MINFO RP responsible person AFSDB AFS RT router NSAP SIG KEY PX
+% LocalWords:  GPOS AAAA LOC NXT EID NIMLOC nimrod SRV ATMA ATM NAPTR naming AF
+% LocalWords:  authority IXFR AXFR MAILB MAILA errno NOT FOUND RECOVERY TRY err
+% LocalWords:  AGAIN herror netdb string perror error hstrerror strerror struct
+% LocalWords:  hostent name addrtype length addr list sys af mygethost inet ret
+% LocalWords:  ntop deep copy buf size buflen result errnop value argument len
+% LocalWords:  ERANGE sethostent stayopen endhostent gethostbyaddr order pton
+% LocalWords:  getipnodebyname getipnodebyaddr flags num MAPPED ALL ADDRCONFIG
+% LocalWords:  freehostent ip getXXXbyname getXXXbyaddr servent getservbyname
+% LocalWords:  getservbyaddr netent getnetbyname getnetbyaddr protoent smtp udp
+% LocalWords:  getprotobyname getprotobyaddr getservbyport port tcp setservent
+% LocalWords:  getservent endservent setXXXent getXXXent endXXXent gethostent
+% LocalWords:  setnetent getnetent endnetent setprotoent getprotoent POSIX RFC
+% LocalWords:  endprotoent getaddrinfo getnameinfo nell' node service addrinfo
+% LocalWords:  hints linked addrlen socklen family socktype protocol sockaddr
+% LocalWords:  canonname next PF UNSPEC SOCK STREAM DGRAM bind INADDR loopback
+% LocalWords:  connect sendto NUMERICHOST EAI NONAME SYSTEM BADFLAGS ADDRFAMILY
+% LocalWords:  NODATA MEMORY FAIL errcode echo mygetaddr ptr casting Canonical
+% LocalWords:  freeaddrinfo getservname salen hostlen serv servlen l'OR NI NUL
+% LocalWords:  NOFQDN NAMEREQD NUMERICSERV MAXHOST MAXSERV sockconn SockUtil of
+% LocalWords:  descriptor hint fifth sockbind setsockopt getsockopt sock level
+% LocalWords:  optname optval optlen EBADF EFAULT EINVAL ENOPROTOOPT ENOTSOCK
+% LocalWords:  IPPROTO Stevens ICMP ICMPV ICMPv get KEEPALIVE OOBINLINE timeval
+% LocalWords:  RCVLOWAT SNDLOWAT RCVTIMEO SNDTIMEO BSDCOMPAT BSD PASSCRED ucred
+% LocalWords:  PEERCRED BINDTODEVICE REUSEADDR ACCEPTCONN DONTROUTE gateway MSG
+% LocalWords:  BROADCAST broadcast SNDBUF RCVBUF LINGER linger PRIORITY read IF
+% LocalWords:  OOB recvmsg kernel select write readv recv recvfrom EAGAIN send
+% LocalWords:  EWOULDBLOCK writev sendmsg raw domain SCM CREDENTIALS eth packet
+% LocalWords:  IFNAMSIZ capabilities capability ADMIN log trpt EADDRINUSE close
+% LocalWords:  listen routing sysctl shutdown Quality TOS keep alive ACK RST to
+% LocalWords:  ECONNRESET ETIMEDOUT keepalive echod fourth newsgroup WAIT reuse
+% LocalWords:  sockbindopt SockUtils homed completely binding RECVDSTADDR onoff
+% LocalWords:  PKTINFO getsockname multicast streaming unicast REUSEPORT reset
+% LocalWords:  stealing ling RECVTOS RECVTTL TTL RECVOPTS RETOPTS HDRINCL MTU
+% LocalWords:  RECVERR DISCOVER Path Discovery ALERT alert ADD MEMBERSHIP mreqn
+% LocalWords:  pktinfo ipi ifindex spec dst RECVIF Live IPTOS LOWDELAY Advanced
+% LocalWords:  Transfer Unit PMTUDISC DONT WANT route dall' pmtu EMSGSIZE imr
+% LocalWords:  multiaddr mreq fcntl ioctl request SIOCGSTAMP trip SIOCSPGRP pid
+% LocalWords:  process SIGIO SIGURG KILL FIOASYNC SIOCGPGRP filesystem proc ttl
+% LocalWords:  rmem wmem message cost burst bucket filter netdev backlog optmem
+% LocalWords:  forward dynaddr dial autoconfig local masquerading ipfrag high
+% LocalWords:  thresh low always defrag CONFIG