Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d0eaf2ce
Commit
d0eaf2ce
authored
Mar 31, 2010
by
Stefan Leichter
Committed by
Alexandre Julliard
Mar 31, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ws2_32: Partly implement level IPPROTO_IPV6 of setsockopt.
parent
b7aec2a2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
0 deletions
+47
-0
socket.c
dlls/ws2_32/socket.c
+47
-0
No files found.
dlls/ws2_32/socket.c
View file @
d0eaf2ce
...
...
@@ -344,6 +344,21 @@ static const int ws_ip_map[][2] =
MAP_OPTION
(
IP_TTL
),
};
static
const
int
ws_ipv6_map
[][
2
]
=
{
#ifdef IPV6_ADD_MEMBERSHIP
MAP_OPTION
(
IPV6_ADD_MEMBERSHIP
),
#endif
#ifdef IPV6_DROP_MEMBERSHIP
MAP_OPTION
(
IPV6_DROP_MEMBERSHIP
),
#endif
MAP_OPTION
(
IPV6_MULTICAST_IF
),
MAP_OPTION
(
IPV6_MULTICAST_HOPS
),
MAP_OPTION
(
IPV6_MULTICAST_LOOP
),
MAP_OPTION
(
IPV6_UNICAST_HOPS
),
MAP_OPTION
(
IPV6_V6ONLY
),
};
static
const
int
ws_af_map
[][
2
]
=
{
MAP_OPTION
(
AF_UNSPEC
),
...
...
@@ -793,6 +808,17 @@ static int convert_sockopt(INT *level, INT *optname)
}
FIXME
(
"Unknown IPPROTO_IP optname 0x%x
\n
"
,
*
optname
);
break
;
case
WS_IPPROTO_IPV6
:
*
level
=
IPPROTO_IPV6
;
for
(
i
=
0
;
i
<
sizeof
(
ws_ipv6_map
)
/
sizeof
(
ws_ipv6_map
[
0
]);
i
++
)
{
if
(
ws_ipv6_map
[
i
][
0
]
==
*
optname
)
{
*
optname
=
ws_ipv6_map
[
i
][
1
];
return
1
;
}
}
FIXME
(
"Unknown IPPROTO_IPV6 optname 0x%x
\n
"
,
*
optname
);
break
;
default:
FIXME
(
"Unimplemented or unknown socket level
\n
"
);
}
return
0
;
...
...
@@ -3467,6 +3493,27 @@ int WINAPI WS_setsockopt(SOCKET s, int level, int optname,
}
break
;
case
WS_IPPROTO_IPV6
:
switch
(
optname
)
{
case
WS_IPV6_ADD_MEMBERSHIP
:
case
WS_IPV6_DROP_MEMBERSHIP
:
case
WS_IPV6_MULTICAST_IF
:
case
WS_IPV6_MULTICAST_HOPS
:
case
WS_IPV6_MULTICAST_LOOP
:
case
WS_IPV6_UNICAST_HOPS
:
case
WS_IPV6_V6ONLY
:
convert_sockopt
(
&
level
,
&
optname
);
break
;
case
WS_IPV6_DONTFRAG
:
FIXME
(
"IPV6_DONTFRAG is silently ignored!
\n
"
);
return
0
;
default:
FIXME
(
"Unknown IPPROTO_IPV6 optname 0x%08x
\n
"
,
optname
);
return
SOCKET_ERROR
;
}
break
;
default:
WARN
(
"Unknown level: 0x%08x
\n
"
,
level
);
SetLastError
(
WSAEINVAL
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment