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} |