Mercurial > ecos-v2_0-branch
annotate packages/net/tcpip/current/doc/setsockopt.html @ 97:ced4577552cd ecos-sw-2000-06-06
Merge from eCos master repository on 2000-06-06-08:44:00-BST
| author | jlarmour |
|---|---|
| date | Tue, 06 Jun 2000 08:39:36 +0000 |
| parents | |
| children |
| rev | line source |
|---|---|
|
97
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
1 <html> |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
2 <body> |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
3 <pre> |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
4 NAME |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
5 getsockopt, setsockopt - get and set options on sockets |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
6 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
7 SYNOPSIS |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
8 #include <network.h> |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
9 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
10 int getsockopt(int s, int level, int optname, void *opt� |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
11 val, socklen_t *optlen); |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
12 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
13 int setsockopt(int s, int level, int optname, const void |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
14 *optval, socklen_t optlen); |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
15 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
16 DESCRIPTION |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
17 Getsockopt and setsockopt manipulate the options associ� |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
18 ated with a socket. Options may exist at multiple proto� |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
19 col levels; they are always present at the uppermost |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
20 socket level. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
21 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
22 When manipulating socket options the level at which the |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
23 option resides and the name of the option must be speci� |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
24 fied. To manipulate options at the socket level, level is |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
25 specified as SOL_SOCKET. To manipulate options at any |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
26 other level the protocol number of the appropriate proto� |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
27 col controlling the option is supplied. For example, to |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
28 indicate that an option is to be interpreted by the TCP |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
29 protocol, level should be set to the protocol number of |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
30 TCP; see getprotoent(3). |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
31 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
32 The parameters optval and optlen are used to access option |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
33 values for setsockopt. For getsockopt they identify a |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
34 buffer in which the value for the requested option(s) are |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
35 to be returned. For getsockopt, optlen is a value-result |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
36 parameter, initially containing the size of the buffer |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
37 pointed to by optval, and modified on return to indicate |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
38 the actual size of the value returned. If no option value |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
39 is to be supplied or returned, optval may be NULL. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
40 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
41 Optname and any specified options are passed uninterpreted |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
42 to the appropriate protocol module for interpretation. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
43 The include file <network.h> contains definitions for |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
44 socket level options, described below. Options at other |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
45 protocol levels vary in format and name; consult the |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
46 appropriate entries in section 4 of the manual. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
47 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
48 Most socket-level options utilize an int parameter for |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
49 optval. For setsockopt, the parameter should be non-zero |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
50 to enable a boolean option, or zero if the option is to be |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
51 disabled. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
52 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
53 For a description of the available socket options see |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
54 socket(7) and the appropriate protocol man pages. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
55 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
56 RETURN VALUE |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
57 On success, zero is returned. On error, -1 is returned, |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
58 and errno is set appropriately. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
59 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
60 ERRORS |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
61 EBADF The argument s is not a valid descriptor. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
62 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
63 ENOTSOCK |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
64 The argument s is a file, not a socket. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
65 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
66 ENOPROTOOPT |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
67 The option is unknown at the level indicated. |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
68 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
69 |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
70 </pre> |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
71 </body> |
|
ced4577552cd
Merge from eCos master repository on 2000-06-06-08:44:00-BST
jlarmour
parents:
diff
changeset
|
72 </html> |
