[vlc-devel] commit: net_Read, net_Write use void pointer for data ( Rémi Denis-Courmont )
git version control
git at videolan.org
Sun Oct 12 14:06:21 CEST 2008
vlc | branch: master | Rémi Denis-Courmont <rdenis at simphalempin.com> | Sun Oct 12 15:05:59 2008 +0300| [77a5fef919c5e2668991b9ae6e3e44a9901835e8] | committer: Rémi Denis-Courmont
net_Read, net_Write use void pointer for data
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=77a5fef919c5e2668991b9ae6e3e44a9901835e8
---
include/vlc_network.h | 4 ++--
src/network/io.c | 19 +++++++++++++------
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/include/vlc_network.h b/include/vlc_network.h
index dbe7f20..0cd5029 100644
--- a/include/vlc_network.h
+++ b/include/vlc_network.h
@@ -143,10 +143,10 @@ struct virtual_socket_t
};
#define net_Read(a,b,c,d,e,f) __net_Read(VLC_OBJECT(a),b,c,d,e,f)
-VLC_EXPORT( ssize_t, __net_Read, ( vlc_object_t *p_this, int fd, const v_socket_t *, uint8_t *p_data, size_t i_data, bool b_retry ) );
+VLC_EXPORT( ssize_t, __net_Read, ( vlc_object_t *p_this, int fd, const v_socket_t *, void *p_data, size_t i_data, bool b_retry ) );
#define net_Write(a,b,c,d,e) __net_Write(VLC_OBJECT(a),b,c,d,e)
-VLC_EXPORT( ssize_t, __net_Write, ( vlc_object_t *p_this, int fd, const v_socket_t *, const uint8_t *p_data, size_t i_data ) );
+VLC_EXPORT( ssize_t, __net_Write, ( vlc_object_t *p_this, int fd, const v_socket_t *, const void *p_data, size_t i_data ) );
#define net_Gets(a,b,c) __net_Gets(VLC_OBJECT(a),b,c)
VLC_EXPORT( char *, __net_Gets, ( vlc_object_t *p_this, int fd, const v_socket_t * ) );
diff --git a/src/network/io.c b/src/network/io.c
index fd01cf5..a0ece78 100644
--- a/src/network/io.c
+++ b/src/network/io.c
@@ -288,7 +288,7 @@ int *net_Listen (vlc_object_t *p_this, const char *psz_host,
*****************************************************************************/
ssize_t
__net_Read (vlc_object_t *restrict p_this, int fd, const v_socket_t *vs,
- uint8_t *restrict p_buf, size_t i_buflen, bool waitall)
+ void *restrict p_buf, size_t i_buflen, bool waitall)
{
size_t i_total = 0;
struct pollfd ufd[2] = {
@@ -394,7 +394,7 @@ __net_Read (vlc_object_t *restrict p_this, int fd, const v_socket_t *vs,
break; // EOF
i_total += n;
- p_buf += n;
+ p_buf = (char *)p_buf + n;
i_buflen -= n;
if (!waitall)
@@ -412,7 +412,7 @@ silent:
/* Write exact amount requested */
ssize_t __net_Write( vlc_object_t *p_this, int fd, const v_socket_t *p_vs,
- const uint8_t *p_data, size_t i_data )
+ const void *restrict p_data, size_t i_data )
{
size_t i_total = 0;
struct pollfd ufd[2] = {
@@ -473,7 +473,7 @@ ssize_t __net_Write( vlc_object_t *p_this, int fd, const v_socket_t *p_vs,
break;
}
- p_data += val;
+ p_data = (const char *)p_data + val;
i_data -= val;
i_total += val;
}
@@ -485,6 +485,13 @@ error:
return -1;
}
+/**
+ * Reads a line from a file descriptor.
+ * This function is not thread-safe; the same file descriptor cI/O annot be read
+ * by another thread at the same time (although it can be written to).
+ *
+ * @return nul-terminated heap-allocated string, or NULL on I/O error.
+ */
char *__net_Gets( vlc_object_t *p_this, int fd, const v_socket_t *p_vs )
{
char *psz_line = NULL, *ptr = NULL;
@@ -500,7 +507,7 @@ char *__net_Gets( vlc_object_t *p_this, int fd, const v_socket_t *p_vs )
ptr = psz_line + i_line;
}
- if( net_Read( p_this, fd, p_vs, (uint8_t *)ptr, 1, true ) != 1 )
+ if( net_Read( p_this, fd, p_vs, ptr, 1, true ) != 1 )
{
if( i_line == 0 )
{
@@ -546,7 +553,7 @@ ssize_t __net_vaPrintf( vlc_object_t *p_this, int fd, const v_socket_t *p_vs,
int i_size = vasprintf( &psz, psz_fmt, args );
if( i_size == -1 )
return -1;
- i_ret = __net_Write( p_this, fd, p_vs, (uint8_t *)psz, i_size ) < i_size
+ i_ret = __net_Write( p_this, fd, p_vs, psz, i_size ) < i_size
? -1 : i_size;
free( psz );
More information about the vlc-devel
mailing list