[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sys_socket: use POSIX compatible prototypes
From: |
Paolo Bonzini |
Subject: |
Re: sys_socket: use POSIX compatible prototypes |
Date: |
Mon, 8 Mar 2010 08:57:09 +0100 |
On Sun, Mar 7, 2010 at 19:55, Bruno Haible <address@hidden> wrote:
> Hi,
>
> When testing the gnulib provided replacements against the POSIX specified
> declarations, some socket functions show errors, due to different prototypes:
>
> ../gllib/sys/socket.h:408:[connect] error: invalid conversion from 'int
> (*)(int, const sockaddr*, socklen_t)' to 'int (*)(int, sockaddr*, int)'
> ../gllib/sys/socket.h:431:[accept] error: invalid conversion from 'int
> (*)(int, sockaddr*, socklen_t*)' to 'int (*)(int, sockaddr*, int*)'
> ../gllib/sys/socket.h:455:[bind] error: invalid conversion from 'int (*)(int,
> const sockaddr*, socklen_t)throw ()' to 'int (*)(int, sockaddr*, int)'
> ../gllib/sys/socket.h:481:[getpeername] error: invalid conversion from 'int
> (*)(int, sockaddr*, socklen_t*)throw ()' to 'int (*)(int, sockaddr*, int*)'
> ../gllib/sys/socket.h:508:[getsockname] error: invalid conversion from 'int
> (*)(int, sockaddr*, socklen_t*)throw ()' to 'int (*)(int, sockaddr*, int*)'
> ../gllib/sys/socket.h:583:[recv] error: invalid conversion from 'ssize_t
> (*)(int, void*, size_t, int)' to 'int (*)(int, void*, int, int)'
> ../gllib/sys/socket.h:607:[send] error: invalid conversion from 'ssize_t
> (*)(int, const void*, size_t, int)' to 'int (*)(int, const void*, int, int)'
> ../gllib/sys/socket.h:633:[recvfrom] error: invalid conversion from 'ssize_t
> (*)(int, void*, size_t, int, sockaddr*, socklen_t*)' to 'int (*)(int, void*,
> int, int, sockaddr*, int*)'
> ../gllib/sys/socket.h:660:[sendto] error: invalid conversion from 'ssize_t
> (*)(int, const void*, size_t, int, const sockaddr*, socklen_t)' to 'int
> (*)(int, const void*, int, int, sockaddr*, int)'
>
> C++ programs will expect the POSIX prototype, even on mingw. On mingw,
> the types are effectively the same (ssize_t = int, socklen_t = int), therefore
> this should not introduce bugs (possibly some warnings, that can be ignored).
Good!
Paolo