X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sockctrl.tex;h=06ba55f78e96f75ffc7b0a9869a933b43f6a816a;hp=dbe5ae3beccc9b5e476040db3e315675dbad84ec;hb=99fa5a06cd27160cf673e3483ad552d32efa2c05;hpb=04a547df13e4c672d95e1060e1ada9ae2e1fcb2f diff --git a/sockctrl.tex b/sockctrl.tex index dbe5ae3..06ba55f 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -275,7 +275,7 @@ che si esegue una delle altre. Le impostazioni e lo stato del \textit{resolver} vengono mantenuti in una serie di variabili raggruppate nei campi di una apposita struttura \var{\_res} -usata da tutte queste funzioni. Essa viene definita in \headfile{resolv.h} ed +usata da tutte queste funzioni. Essa viene definita in \headfiled{resolv.h} ed è utilizzata internamente alle funzioni essendo definita come variabile globale; questo consente anche di accedervi direttamente all'interno di un qualunque programma, una volta che la sia opportunamente dichiarata come: @@ -453,8 +453,8 @@ tab.~\ref{tab:DNS_address_class}.\footnote{esisteva in realtà anche una classe Come accennato le tipologie di dati che sono mantenibili su un server DNS sono diverse, ed a ciascuna di essa corrisponde un diverso tipo di \textit{resource - record}. L'elenco delle costanti\footnote{ripreso dai file di dichiarazione - \headfile{arpa/nameser.h} e \headfile{arpa/nameser\_compat.h}.} che + record}. L'elenco delle costanti, ripreso dai file di dichiarazione + \headfiled{arpa/nameser.h} e \headfiled{arpa/nameser\_compat.h}, che definiscono i valori che si possono usare per l'argomento \param{type} per specificare il tipo di \textit{resource record} da richiedere è riportato in tab.~\ref{tab:DNS_record_type}; le costanti (tolto il \texttt{T\_} iniziale) @@ -1280,15 +1280,16 @@ strutture di tipo \struct{addrinfo} contenenti tutte le informazioni ottenute. \label{fig:sock_addrinfo_struct} \end{figure} -Come illustrato la struttura \struct{addrinfo}, la cui definizione\footnote{la - definizione è ripresa direttamente dal file \headfile{netdb.h} in questa - struttura viene dichiarata, la pagina di manuale riporta \type{size\_t} come - tipo di dato per il campo \var{ai\_addrlen}, qui viene usata quanto previsto - dallo standard POSIX, in cui viene utilizzato \type{socklen\_t}; i due tipi - di dati sono comunque equivalenti.} è riportata in -fig.~\ref{fig:sock_addrinfo_struct}, viene usata sia in ingresso, per passare -dei valori di controllo alla funzione, che in uscita, per ricevere i -risultati. Il primo campo, \var{ai\_flags}, è una maschera binaria di bit che +Come illustrato la struttura \struct{addrinfo}, la cui definizione è riportata +in fig.~\ref{fig:sock_addrinfo_struct}, viene usata sia in ingresso, per +passare dei valori di controllo alla funzione, che in uscita, per ricevere i +risultati. La definizione è ripresa direttamente dal file \headfiled{netdb.h} +in questa struttura viene dichiarata, la pagina di manuale riporta +\type{size\_t} come tipo di dato per il campo \var{ai\_addrlen}, qui viene +usata quanto previsto dallo standard POSIX, in cui viene utilizzato +\type{socklen\_t}; i due tipi di dati sono comunque equivalenti. + +Il primo campo, \var{ai\_flags}, è una maschera binaria di bit che permettono di controllare le varie modalità di risoluzione degli indirizzi, che viene usato soltanto in ingresso. I tre campi successivi \var{ai\_family}, \var{ai\_socktype}, e \var{ai\_protocol} contengono rispettivamente la @@ -2054,8 +2055,7 @@ tab.~\ref{tab:sock_opt_socklevel}. \const{SO\_DONTROUTE}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& Non invia attraverso un gateway.\\ \const{SO\_BROADCAST}&$\bullet$&$\bullet$&$\bullet$&\texttt{int}& - Attiva o disattiva il \itindex{broadcast} - \textit{broadcast}.\\ + Attiva o disattiva il \textit{broadcast}.\\ \const{SO\_SNDBUF} &$\bullet$&$\bullet$& &\texttt{int}& Imposta dimensione del buffer di trasmissione.\\ \const{SO\_RCVBUF} &$\bullet$&$\bullet$& &\texttt{int}& @@ -2247,12 +2247,12 @@ tab.~\ref{tab:sock_opt_socklevel} sul significato delle varie opzioni: di routing del kernel. Prende per \param{optval} un intero usato come valore logico. -\item[\const{SO\_BROADCAST}] questa opzione abilita il \itindex{broadcast} - \textit{broadcast}; quanto abilitata i socket di tipo \const{SOCK\_DGRAM} - riceveranno i pacchetti inviati all'indirizzo di \textit{broadcast}, e - potranno scrivere pacchetti su tale indirizzo. Prende per \param{optval} un - intero usato come valore logico. L'opzione non ha effetti su un socket di - tipo \const{SOCK\_STREAM}. +\item[\const{SO\_BROADCAST}] questa opzione abilita il \textit{broadcast}; + quanto abilitata i socket di tipo \const{SOCK\_DGRAM} riceveranno i + pacchetti inviati all'indirizzo di \textit{broadcast}, e potranno scrivere + pacchetti su tale indirizzo. Prende per \param{optval} un 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 dimensione del buffer di trasmissione del socket. Prende per \param{optval} un intero indicante il @@ -2742,7 +2742,7 @@ socket che usano il protocollo IPv4.\footnote{come per le precedenti opzioni livello da utilizzare è \const{SOL\_IP} (o l'equivalente \const{IPPROTO\_IP}); si è riportato un elenco di queste opzioni in tab.~\ref{tab:sock_opt_iplevel}. Le costanti indicanti le opzioni e tutte le altre costanti ad esse collegate -sono definite in \headfile{netinet/ip.h}, ed accessibili includendo detto +sono definite in \headfiled{netinet/ip.h}, ed accessibili includendo detto file. \begin{table}[!htb] @@ -3107,7 +3107,7 @@ riportate le varie opzioni disponibili in tab.~\ref{tab:sock_opt_tcplevel}, dove sono elencate le rispettive costanti da utilizzare come valore per l'argomento \param{optname}. Dette costanti e tutte le altre costanti e strutture collegate all'uso delle opzioni TCP sono definite in -\headfile{netinet/tcp.h}, ed accessibili includendo detto file.\footnote{in +\headfiled{netinet/tcp.h}, ed accessibili includendo detto file.\footnote{in realtà questo è il file usato dalle librerie; la definizione delle opzioni effettivamente supportate da Linux si trova nel file \texttt{include/linux/tcp.h} dei sorgenti del kernel, dal quale si sono @@ -3488,7 +3488,7 @@ ridotto di opzioni, riportate in tab.~\ref{tab:sock_opt_udplevel}; anche in questo caso per poterle utilizzare occorrerà impostare l'opportuno valore per l'argomento \param{level}, che è \const{SOL\_UDP} (o l'equivalente \const{IPPROTO\_UDP}). Le costanti che identificano dette opzioni sono -definite in \headfile{netinet/udp.h}, ed accessibili includendo detto +definite in \headfiled{netinet/udp.h}, ed accessibili includendo detto file.\footnote{come per TCP, la definizione delle opzioni effettivamente supportate dal kernel si trova in realtà nel file \texttt{include/linux/udp.h}, dal quale si sono estratte le costanti di @@ -3685,7 +3685,7 @@ Le costanti che identificano le operazioni disponibili sono le seguenti: \hline \const{IFF\_UP} & L'interfaccia è attiva.\\ \const{IFF\_BROADCAST} & L'interfaccia ha impostato un indirizzo di - \itindex{broadcast} \textit{broadcast} valido.\\ + \textit{broadcast} valido.\\ \const{IFF\_DEBUG} & È attivo il flag interno di debug.\\ \const{IFF\_LOOPBACK} & L'interfaccia è una interfaccia di \textit{loopback}.\\ @@ -3762,8 +3762,8 @@ Le costanti che identificano le operazioni disponibili sono le seguenti: privilegiata. \item[\const{SIOCSIFHWBROADCAST}] imposta l'indirizzo \textit{broadcast} - \itindex{broadcast} hardware dell'interfaccia al valore specificato dal - campo \var{ifr\_hwaddr}. L'operazione è privilegiata. + hardware dell'interfaccia al valore specificato dal campo + \var{ifr\_hwaddr}. L'operazione è privilegiata. \item[\const{SIOCGIFMAP}] legge alcuni parametri hardware (memoria, interrupt, canali di DMA) del driver dell'interfaccia specificata, restituendo i