weaks.c (5891:0d5c6468bb04) weaks.c (0:68f95e015346)
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
21
22/*
22/*
23 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27#pragma ident "%Z%%M% %I% %E% SMI"
28
29#include <sys/types.h>
30#include <sys/socket.h>
31#include <sys/stropts.h>

--- 34 unchanged lines hidden (view full) ---

66extern int _so_recvfrom();
67extern int _so_recvmsg();
68extern int _so_send();
69extern int _so_sendmsg();
70extern int _so_sendto();
71extern int _so_getpeername();
72extern int _so_getsockopt();
73extern int _so_setsockopt();
24 * Use is subject to license terms.
25 */
26
27#pragma ident "%Z%%M% %I% %E% SMI"
28
29#include <sys/types.h>
30#include <sys/socket.h>
31#include <sys/stropts.h>

--- 34 unchanged lines hidden (view full) ---

66extern int _so_recvfrom();
67extern int _so_recvmsg();
68extern int _so_send();
69extern int _so_sendmsg();
70extern int _so_sendto();
71extern int _so_getpeername();
72extern int _so_getsockopt();
73extern int _so_setsockopt();
74extern int _so_setsockname();
74extern int _so_getsockname();
75
76/*
77 * Note that regular sockets use SOV_SOCKBSD here to not allow a rebind of an
78 * already bound socket.
79 */
80int
81_bind(int sock, struct sockaddr *addr, int addrlen)

--- 31 unchanged lines hidden (view full) ---

113 return (_so_recv(sock, buf, len, flags & ~MSG_XPG4_2));
114}
115
116int
117_recvfrom(int sock, char *buf, int len, int flags,
118 struct sockaddr *addr, int *addrlen)
119{
120 return (_so_recvfrom(sock, buf, len, flags & ~MSG_XPG4_2,
75extern int _so_getsockname();
76
77/*
78 * Note that regular sockets use SOV_SOCKBSD here to not allow a rebind of an
79 * already bound socket.
80 */
81int
82_bind(int sock, struct sockaddr *addr, int addrlen)

--- 31 unchanged lines hidden (view full) ---

114 return (_so_recv(sock, buf, len, flags & ~MSG_XPG4_2));
115}
116
117int
118_recvfrom(int sock, char *buf, int len, int flags,
119 struct sockaddr *addr, int *addrlen)
120{
121 return (_so_recvfrom(sock, buf, len, flags & ~MSG_XPG4_2,
121 addr, addrlen));
122 addr, addrlen));
122}
123
124int
125_recvmsg(int sock, struct msghdr *msg, int flags)
126{
127 return (_so_recvmsg(sock, msg, flags & ~MSG_XPG4_2));
128}
129

--- 9 unchanged lines hidden (view full) ---

139 return (_so_sendmsg(sock, msg, flags & ~MSG_XPG4_2));
140}
141
142int
143_sendto(int sock, char *buf, int len, int flags,
144 struct sockaddr *addr, int *addrlen)
145{
146 return (_so_sendto(sock, buf, len, flags & ~MSG_XPG4_2,
123}
124
125int
126_recvmsg(int sock, struct msghdr *msg, int flags)
127{
128 return (_so_recvmsg(sock, msg, flags & ~MSG_XPG4_2));
129}
130

--- 9 unchanged lines hidden (view full) ---

140 return (_so_sendmsg(sock, msg, flags & ~MSG_XPG4_2));
141}
142
143int
144_sendto(int sock, char *buf, int len, int flags,
145 struct sockaddr *addr, int *addrlen)
146{
147 return (_so_sendto(sock, buf, len, flags & ~MSG_XPG4_2,
147 addr, addrlen));
148 addr, addrlen));
148}
149
150int
151_getpeername(int sock, struct sockaddr *name, int *namelen)
152{
153 return (_so_getpeername(sock, name, namelen, SOV_DEFAULT));
154}
155

--- 22 unchanged lines hidden (view full) ---

178 case SCTP_GET_PEER_ADDR_INFO:
179 /*
180 * Association ID is the first element params struct
181 */
182 bcopy(optval, &id, sizeof (id));
183 break;
184 case SCTP_DEFAULT_SEND_PARAM:
185 bcopy(&((struct sctp_sndrcvinfo *)
149}
150
151int
152_getpeername(int sock, struct sockaddr *name, int *namelen)
153{
154 return (_so_getpeername(sock, name, namelen, SOV_DEFAULT));
155}
156

--- 22 unchanged lines hidden (view full) ---

179 case SCTP_GET_PEER_ADDR_INFO:
180 /*
181 * Association ID is the first element params struct
182 */
183 bcopy(optval, &id, sizeof (id));
184 break;
185 case SCTP_DEFAULT_SEND_PARAM:
186 bcopy(&((struct sctp_sndrcvinfo *)
186 optval)->sinfo_assoc_id, &id, sizeof (id));
187 optval)->sinfo_assoc_id, &id, sizeof (id));
187 break;
188 }
189
190 sopt.sopt_aid = id;
191 sopt.sopt_name = optname;
192 sopt.sopt_val = optval;
193 sopt.sopt_len = len;
194 if (ioctl(sock, SIOCSCTPGOPT, &sopt) == -1) {
195 err = -1;
196 } else {
197 *optlen = sopt.sopt_len;
198 }
199 return (err);
200 } else {
201 return (_so_getsockopt(sock, level, optname, optval, optlen,
188 break;
189 }
190
191 sopt.sopt_aid = id;
192 sopt.sopt_name = optname;
193 sopt.sopt_val = optval;
194 sopt.sopt_len = len;
195 if (ioctl(sock, SIOCSCTPGOPT, &sopt) == -1) {
196 err = -1;
197 } else {
198 *optlen = sopt.sopt_len;
199 }
200 return (err);
201 } else {
202 return (_so_getsockopt(sock, level, optname, optval, optlen,
202 SOV_DEFAULT));
203 SOV_DEFAULT));
203 }
204}
205
206int
207_setsockopt(int sock, int level, int optname, char *optval, int optlen)
208{
209 return (_so_setsockopt(sock, level, optname, optval, optlen,
204 }
205}
206
207int
208_setsockopt(int sock, int level, int optname, char *optval, int optlen)
209{
210 return (_so_setsockopt(sock, level, optname, optval, optlen,
210 SOV_DEFAULT));
211 SOV_DEFAULT));
211}
212
213int
214__xnet_bind(int sock, const struct sockaddr *addr, socklen_t addrlen)
215{
216 return (_so_bind(sock, addr, addrlen, SOV_XPG4_2));
217}
218

--- 22 unchanged lines hidden (view full) ---

241 return (_so_sendmsg(sock, msg, flags | MSG_XPG4_2));
242}
243
244int
245__xnet_sendto(int sock, const void *buf, size_t len, int flags,
246 const struct sockaddr *addr, socklen_t addrlen)
247{
248 return (_so_sendto(sock, buf, len, flags | MSG_XPG4_2,
212}
213
214int
215__xnet_bind(int sock, const struct sockaddr *addr, socklen_t addrlen)
216{
217 return (_so_bind(sock, addr, addrlen, SOV_XPG4_2));
218}
219

--- 22 unchanged lines hidden (view full) ---

242 return (_so_sendmsg(sock, msg, flags | MSG_XPG4_2));
243}
244
245int
246__xnet_sendto(int sock, const void *buf, size_t len, int flags,
247 const struct sockaddr *addr, socklen_t addrlen)
248{
249 return (_so_sendto(sock, buf, len, flags | MSG_XPG4_2,
249 addr, addrlen));
250 addr, addrlen));
250}
251
252int
253__xnet_getsockopt(int sock, int level, int option_name,
254 void *option_value, socklen_t *option_lenp)
255{
256 if (level == IPPROTO_SCTP) {
257 return (_getsockopt(sock, level, option_name, option_value,
251}
252
253int
254__xnet_getsockopt(int sock, int level, int option_name,
255 void *option_value, socklen_t *option_lenp)
256{
257 if (level == IPPROTO_SCTP) {
258 return (_getsockopt(sock, level, option_name, option_value,
258 (int *)option_lenp));
259 (int *)option_lenp));
259 } else {
260 return (_so_getsockopt(sock, level, option_name, option_value,
260 } else {
261 return (_so_getsockopt(sock, level, option_name, option_value,
261 option_lenp, SOV_XPG4_2));
262 option_lenp, SOV_XPG4_2));
262 }
263}
263 }
264}