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:
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)
\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
\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}&
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
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]
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
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
\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}.\\
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