socket2.h
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20: #ifndef _SYS_SOCKET_H
21: # error "Never include <bits/socket2.h> directly; use <sys/socket.h> instead."
22: #endif
23:
24: extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen,
25: int __flags);
26: extern ssize_t __REDIRECT (__recv_alias, (int __fd, void *__buf, size_t __n,
27: int __flags), recv);
28: extern ssize_t __REDIRECT (__recv_chk_warn,
29: (int __fd, void *__buf, size_t __n, size_t __buflen,
30: int __flags), __recv_chk)
31: __warnattr ("recv called with bigger length than size of destination "
32: "buffer");
33:
34: __extern_always_inline ssize_t
35: recv (int __fd, void *__buf, size_t __n, int __flags)
36: {
37: if (__bos0 (__buf) != (size_t) -1)
38: {
39: if (!__builtin_constant_p (__n))
40: return __recv_chk (__fd, __buf, __n, __bos0 (__buf), __flags);
41:
42: if (__n > __bos0 (__buf))
43: return __recv_chk_warn (__fd, __buf, __n, __bos0 (__buf), __flags);
44: }
45: return __recv_alias (__fd, __buf, __n, __flags);
46: }
47:
48: extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n,
49: size_t __buflen, int __flags,
50: __SOCKADDR_ARG __addr,
51: socklen_t *__restrict __addr_len);
52: extern ssize_t __REDIRECT (__recvfrom_alias,
53: (int __fd, void *__restrict __buf, size_t __n,
54: int __flags, __SOCKADDR_ARG __addr,
55: socklen_t *__restrict __addr_len), recvfrom);
56: extern ssize_t __REDIRECT (__recvfrom_chk_warn,
57: (int __fd, void *__restrict __buf, size_t __n,
58: size_t __buflen, int __flags,
59: __SOCKADDR_ARG __addr,
60: socklen_t *__restrict __addr_len), __recvfrom_chk)
61: __warnattr ("recvfrom called with bigger length than size of "
62: "destination buffer");
63:
64: __extern_always_inline ssize_t
65: recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
66: __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len)
67: {
68: if (__bos0 (__buf) != (size_t) -1)
69: {
70: if (!__builtin_constant_p (__n))
71: return __recvfrom_chk (__fd, __buf, __n, __bos0 (__buf), __flags,
72: __addr, __addr_len);
73: if (__n > __bos0 (__buf))
74: return __recvfrom_chk_warn (__fd, __buf, __n, __bos0 (__buf), __flags,
75: __addr, __addr_len);
76: }
77: return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
78: }
79:
© Andrew Scott 2006 -
2025,
All Rights Reserved