X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=socket.tex;h=138ebe2a9969e0d2a2ff546e110405e37e259f69;hp=3cb33d35a7632e25e42b824e453a70c28846de0b;hb=6f8e0ca42d3d0b97b5e5747798a1eaffb44e8521;hpb=b38fb9f5c8fb8360f7ac296baa8f4a0bdd692d1c diff --git a/socket.tex b/socket.tex index 3cb33d3..138ebe2 100644 --- a/socket.tex +++ b/socket.tex @@ -240,7 +240,7 @@ Si tenga presente che non tutte le famiglie di protocolli sono utilizzabili dall'utente generico, ad esempio in generale tutti i socket di tipo \const{SOCK\_RAW} possono essere creati solo da processi che hanno i privilegi di amministratore (cioè con user-ID effettivo uguale a zero) o dotati della -capability \const{CAP\_NET\_RAW}. +\itindex{capabilities}\textit{capability} \const{CAP\_NET\_RAW}. \subsection{Il tipo, o stile} @@ -439,8 +439,8 @@ fig.~\ref{fig:sock_sa_ipv4_struct}, conforme allo standard POSIX.1g. \begin{minipage}[c]{15cm} \includestruct{listati/sockaddr_in.h} \end{minipage} - \caption{La struttura degli indirizzi dei socket internet (IPv4) - \structd{sockaddr\_in}.} + \caption{La struttura \structd{sockaddr\_in} degli indirizzi dei socket + internet (IPv4) e la struttura \structd{in\_addr} degli indirizzi IPv4.} \label{fig:sock_sa_ipv4_struct} \end{figure} @@ -457,9 +457,9 @@ altrimenti si avr specifica il \textsl{numero di porta}. I numeri di porta sotto il 1024 sono chiamati \textsl{riservati} in quanto utilizzati da servizi standard e soltanto processi con i privilegi di amministratore (con user-ID effettivo -uguale a zero) o con la capability \const{CAP\_NET\_BIND\_SERVICE} possono -usare la funzione \func{bind} (che vedremo in sez.~\ref{sec:TCP_func_bind}) su -queste porte. +uguale a zero) o con la \itindex{capabilities}\textit{capability} +\const{CAP\_NET\_BIND\_SERVICE} possono usare la funzione \func{bind} (che +vedremo in sez.~\ref{sec:TCP_func_bind}) su queste porte. Il membro \var{sin\_addr} contiene un indirizzo internet, e viene acceduto sia come struttura (un resto di una implementazione precedente in cui questa era @@ -490,8 +490,8 @@ in fig.~\ref{fig:sock_sa_ipv6_struct}. \begin{minipage}[c]{15cm} \includestruct{listati/sockaddr_in6.h} \end{minipage} - \caption{La struttura degli indirizzi dei socket IPv6 - \structd{sockaddr\_in6}.} + \caption{La struttura \structd{sockaddr\_in6} degli indirizzi dei socket + IPv6 e la struttura \structd{in6\_addr} degli indirizzi IPv6.} \label{fig:sock_sa_ipv6_struct} \end{figure} @@ -531,8 +531,8 @@ fig.~\ref{fig:sock_sa_local_struct}. \begin{minipage}[c]{15cm} \includestruct{listati/sockaddr_un.h} \end{minipage} - \caption{La struttura degli indirizzi dei socket locali (detti anche - \textit{unix domain}) \structd{sockaddr\_un} definita in \file{sys/un.h}.} + \caption{La struttura \structd{sockaddr\_un} degli indirizzi dei socket + locali (detti anche \textit{unix domain}) definita in \file{sys/un.h}.} \label{fig:sock_sa_local_struct} \end{figure} @@ -574,23 +574,24 @@ il file \file{netatalk/at.h}. \begin{minipage}[c]{15cm} \includestruct{listati/sockaddr_atalk.h} \end{minipage} - \caption{La struttura degli indirizzi dei socket AppleTalk - \structd{sockaddr\_atalk}.} + \caption{La struttura \structd{sockaddr\_atalk} degli indirizzi dei socket + AppleTalk, e la struttura \structd{at\_addr} degli indirizzi AppleTalk.} \label{fig:sock_sa_atalk_struct} \end{figure} Il campo \var{sat\_family} deve essere sempre \const{AF\_APPLETALK}, mentre il campo \var{sat\_port} specifica la porta che identifica i vari servizi. Valori inferiori a 129 sono usati per le \textsl{porte riservate}, e possono essere -usati solo da processi con i privilegi di amministratore o con la capability -\const{CAP\_NET\_BIND\_SERVICE}. L'indirizzo remoto è specificato nella -struttura \var{sat\_addr}, e deve essere in \textit{network order} (vedi -sez.~\ref{sec:sock_endianess}); esso è composto da un parte di rete data dal -campo \var{s\_net}, che può assumere il valore \const{AT\_ANYNET}, che indica -una rete generica e vale anche per indicare la rete su cui si è, il singolo -nodo è indicato da \var{s\_node}, e può prendere il valore generico -\const{AT\_ANYNODE} che indica anche il nodo corrente, ed il valore -\const{ATADDR\_BCAST} che indica tutti i nodi della rete. +usati solo da processi con i privilegi di amministratore o con la +\itindex{capabilities}\textit{capability} \const{CAP\_NET\_BIND\_SERVICE}. +L'indirizzo remoto è specificato nella struttura \var{sat\_addr}, e deve +essere in \textit{network order} (vedi sez.~\ref{sec:sock_endianess}); esso è +composto da un parte di rete data dal campo \var{s\_net}, che può assumere il +valore \const{AT\_ANYNET}, che indica una rete generica e vale anche per +indicare la rete su cui si è, il singolo nodo è indicato da \var{s\_node}, e +può prendere il valore generico \const{AT\_ANYNODE} che indica anche il nodo +corrente, ed il valore \const{ATADDR\_BCAST} che indica tutti i nodi della +rete. \subsection{La struttura degli indirizzi dei \textit{packet socket}} @@ -633,7 +634,7 @@ speciale \const{ETH\_P\_ALL} passeranno sul \textit{packet socket} tutti i pacchetti, qualunque sia il loro protocollo di collegamento. Ovviamente l'uso di questi socket è una operazione privilegiata e può essere effettuati solo da un processo con i privilegi di amministratore (user-ID effettivo nullo) o con -la capability \const{CAP\_NET\_RAW}. +la \itindex{capabilities}\textit{capability} \const{CAP\_NET\_RAW}. Una volta aperto un \textit{packet socket}, tutti i pacchetti del protocollo specificato passeranno attraverso di esso, qualunque sia l'interfaccia da cui @@ -950,15 +951,6 @@ questo caso le lettere \texttt{n} e \texttt{p} sono degli mnemonici per ricordare il tipo di conversione effettuata e stanno per \textit{presentation} e \textit{numeric}. -% \begin{figure}[htb] -% \centering - -% \caption{Schema della rappresentazioni utilizzate dalle funzioni di -% conversione \func{inet\_pton} e \func{inet\_ntop} } -% \label{fig:sock_inet_conv_func} - -% \end{figure} - Entrambe le funzioni accettano l'argomento \param{af} che indica il tipo di indirizzo, e che può essere soltanto \const{AF\_INET} o \const{AF\_INET6}. La prima funzione, \funcd{inet\_pton}, serve a convertire una stringa in un