syscall-dump: add socket/dup/dup2 wrapper
This commit is contained in:
parent
4849c2cfd9
commit
86d10bd82b
@ -35,12 +35,15 @@ Usage:
|
|||||||
static int dlog_fd = -1;
|
static int dlog_fd = -1;
|
||||||
static int (*real_open)(const char *pathname, int flags, ...);
|
static int (*real_open)(const char *pathname, int flags, ...);
|
||||||
static int (*real_open64)(const char *pathname, int flags, ...);
|
static int (*real_open64)(const char *pathname, int flags, ...);
|
||||||
|
static int (*real_socket)(int domain, int type, int protocol);
|
||||||
static int (*real_ioctl)(int fd, unsigned long request, ...);
|
static int (*real_ioctl)(int fd, unsigned long request, ...);
|
||||||
static ssize_t (*real_write)(int fd, const void *buf, size_t len);
|
static ssize_t (*real_write)(int fd, const void *buf, size_t len);
|
||||||
static ssize_t (*real_read)(int fd, void *buf, size_t len);
|
static ssize_t (*real_read)(int fd, void *buf, size_t len);
|
||||||
static off_t (*real_lseek)(int fd, off_t offset, int whence);
|
static off_t (*real_lseek)(int fd, off_t offset, int whence);
|
||||||
static off64_t (*real_lseek64)(int fd, off64_t offset, int whence);
|
static off64_t (*real_lseek64)(int fd, off64_t offset, int whence);
|
||||||
static int (*real_close)(int fd);
|
static int (*real_close)(int fd);
|
||||||
|
static int (*real_dup)(int oldfd);
|
||||||
|
static int (*real_dup2)(int oldfd, int newfd);
|
||||||
|
|
||||||
#define REDIR(realptr, symname) do { \
|
#define REDIR(realptr, symname) do { \
|
||||||
if ((realptr) == NULL) { \
|
if ((realptr) == NULL) { \
|
||||||
@ -148,6 +151,18 @@ int open64(const char *pathname, int flags, ...)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* socket() wrapper */
|
||||||
|
int socket(int domain, int type, int protocol)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
|
||||||
|
REDIR(real_socket, "socket");
|
||||||
|
|
||||||
|
r = real_socket(domain, type, protocol);
|
||||||
|
dlog("socket(%d, %d, %d) = %d (%d)\n", domain, type, protocol, r, E(r));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
/* close() wrapper */
|
/* close() wrapper */
|
||||||
int close(int fd)
|
int close(int fd)
|
||||||
{
|
{
|
||||||
@ -203,7 +218,6 @@ off_t lseek(int fd, off_t offset, int whence)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* lseek64() wrapper */
|
/* lseek64() wrapper */
|
||||||
off64_t lseek64(int fd, off64_t offset, int whence)
|
off64_t lseek64(int fd, off64_t offset, int whence)
|
||||||
{
|
{
|
||||||
@ -216,6 +230,29 @@ off64_t lseek64(int fd, off64_t offset, int whence)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* dup() wrapper */
|
||||||
|
int dup(int oldfd)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
|
||||||
|
REDIR(real_dup, "dup");
|
||||||
|
|
||||||
|
r = real_dup(oldfd);
|
||||||
|
dlog("dup(%d) = %d (%d)\n", oldfd, r, E(r));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* dup2() wrapper */
|
||||||
|
int dup2(int oldfd, int newfd)
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
|
||||||
|
REDIR(real_dup2, "dup2");
|
||||||
|
|
||||||
|
r = real_dup2(oldfd, newfd);
|
||||||
|
dlog("dup2(%d, %d) = %d (%d)\n", oldfd, newfd, r, E(r));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
/* ioctl() wrapper */
|
/* ioctl() wrapper */
|
||||||
int ioctl(int fd, unsigned long request, ...)
|
int ioctl(int fd, unsigned long request, ...)
|
||||||
|
Loading…
Reference in New Issue
Block a user