Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
VCL-LDPRELOAD: add sendfile/sendfile64 implementation.
[vpp.git]
/
src
/
vcl
/
vcom_socket_wrapper.c
diff --git
a/src/vcl/vcom_socket_wrapper.c
b/src/vcl/vcom_socket_wrapper.c
index
d73f4b2
..
de633d1
100644
(file)
--- a/
src/vcl/vcom_socket_wrapper.c
+++ b/
src/vcl/vcom_socket_wrapper.c
@@
-212,6
+212,8
@@
typedef int (*__libc_recvmsg) (int sockfd, const struct msghdr * msg,
int flags);
typedef int (*__libc_send) (int sockfd, const void *buf, size_t len,
int flags);
int flags);
typedef int (*__libc_send) (int sockfd, const void *buf, size_t len,
int flags);
+typedef ssize_t (*__libc_sendfile) (int out_fd, int in_fd, off_t * offset,
+ size_t len);
typedef int (*__libc_sendmsg) (int sockfd, const struct msghdr * msg,
int flags);
typedef int (*__libc_sendto) (int sockfd, const void *buf, size_t len,
typedef int (*__libc_sendmsg) (int sockfd, const struct msghdr * msg,
int flags);
typedef int (*__libc_sendto) (int sockfd, const void *buf, size_t len,
@@
-314,6
+316,7
@@
struct swrap_libc_symbols
SWRAP_SYMBOL_ENTRY (recvfrom);
SWRAP_SYMBOL_ENTRY (recvmsg);
SWRAP_SYMBOL_ENTRY (send);
SWRAP_SYMBOL_ENTRY (recvfrom);
SWRAP_SYMBOL_ENTRY (recvmsg);
SWRAP_SYMBOL_ENTRY (send);
+ SWRAP_SYMBOL_ENTRY (sendfile);
SWRAP_SYMBOL_ENTRY (sendmsg);
SWRAP_SYMBOL_ENTRY (sendto);
SWRAP_SYMBOL_ENTRY (setsockopt);
SWRAP_SYMBOL_ENTRY (sendmsg);
SWRAP_SYMBOL_ENTRY (sendto);
SWRAP_SYMBOL_ENTRY (setsockopt);
@@
-615,6
+618,7
@@
libc_listen (int sockfd, int backlog)
return swrap.libc.symbols._libc_listen.f (sockfd, backlog);
}
return swrap.libc.symbols._libc_listen.f (sockfd, backlog);
}
+/* TBD: libc_read() should return ssize_t not an int */
int
libc_read (int fd, void *buf, size_t count)
{
int
libc_read (int fd, void *buf, size_t count)
{
@@
-668,6
+672,14
@@
libc_send (int sockfd, const void *buf, size_t len, int flags)
return swrap.libc.symbols._libc_send.f (sockfd, buf, len, flags);
}
return swrap.libc.symbols._libc_send.f (sockfd, buf, len, flags);
}
+ssize_t
+libc_sendfile (int out_fd, int in_fd, off_t * offset, size_t len)
+{
+ swrap_bind_symbol_libc (sendfile);
+
+ return swrap.libc.symbols._libc_sendfile.f (out_fd, in_fd, offset, len);
+}
+
int
libc_sendmsg (int sockfd, const struct msghdr *msg, int flags)
{
int
libc_sendmsg (int sockfd, const struct msghdr *msg, int flags)
{