diff options
author | rofl0r <retnyg@gmx.net> | 2017-12-04 11:33:01 +0000 |
---|---|---|
committer | rofl0r <retnyg@gmx.net> | 2017-12-04 11:33:01 +0000 |
commit | 9bb699628fe0375ab03fa795c44261e97a898beb (patch) | |
tree | 71b6cf739f30b075291516f260a9f3c216c5f595 /src | |
parent | e9e0f0b4f0341fa279e88d03f0f2baddff43cbe9 (diff) |
safe_write/read: take void* buffer for generic use
if using one of unsigned or signed char for the function prototype, one
gets nasty warnings when using it with the other type. the only proper
solution is to put void* into the prototype, and then specialize the pointer
inside the function using an automatic variable.
for exactly this reason, libc functions like read(), write(), etc use void*
too.
Diffstat (limited to 'src')
-rw-r--r-- | src/network.c | 5 | ||||
-rw-r--r-- | src/network.h | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/network.c b/src/network.c index 7bae20b..224f924 100644 --- a/src/network.c +++ b/src/network.c @@ -32,10 +32,11 @@ * Write the buffer to the socket. If an EINTR occurs, pick up and try * again. Keep sending until the buffer has been sent. */ -ssize_t safe_write (int fd, const char *buffer, size_t count) +ssize_t safe_write (int fd, const void *buf, size_t count) { ssize_t len; size_t bytestosend; + const char *buffer = buf; assert (fd >= 0); assert (buffer != NULL); @@ -67,7 +68,7 @@ ssize_t safe_write (int fd, const char *buffer, size_t count) * Matched pair for safe_write(). If an EINTR occurs, pick up and try * again. */ -ssize_t safe_read (int fd, char *buffer, size_t count) +ssize_t safe_read (int fd, void *buffer, size_t count) { ssize_t len; diff --git a/src/network.h b/src/network.h index 15af481..37c0fba 100644 --- a/src/network.h +++ b/src/network.h @@ -21,8 +21,8 @@ #ifndef TINYPROXY_NETWORK_H #define TINYPROXY_NETWORK_H -extern ssize_t safe_write (int fd, const char *buffer, size_t count); -extern ssize_t safe_read (int fd, char *buffer, size_t count); +extern ssize_t safe_write (int fd, const void *buf, size_t count); +extern ssize_t safe_read (int fd, void *buf, size_t count); extern int write_message (int fd, const char *fmt, ...); extern ssize_t readline (int fd, char **whole_buffer); |