mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 12:02:28 +02:00
Fix socket related functions using int instead of socket_descriptor_t
On windows the SOCKET type is a UINT_PTR, which is a 64 bit pointer, so using an int worked so far but is actually quite wrong. Signed-off-by: Arne Schwabe <arne@rfc2549.org> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <20210324222330.455-3-arne@rfc2549.org> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg21806.html Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
7fc608da4e
commit
e756e12adb
@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
/* Set a file descriptor to non-blocking */
|
/* Set a file descriptor to non-blocking */
|
||||||
bool
|
bool
|
||||||
set_nonblock_action(int fd)
|
set_nonblock_action(socket_descriptor_t fd)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
u_long arg = 1;
|
u_long arg = 1;
|
||||||
@ -55,7 +55,7 @@ set_nonblock_action(int fd)
|
|||||||
|
|
||||||
/* Set a file descriptor to not be passed across execs */
|
/* Set a file descriptor to not be passed across execs */
|
||||||
bool
|
bool
|
||||||
set_cloexec_action(int fd)
|
set_cloexec_action(socket_descriptor_t fd)
|
||||||
{
|
{
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
if (fcntl(fd, F_SETFD, FD_CLOEXEC) < 0)
|
if (fcntl(fd, F_SETFD, FD_CLOEXEC) < 0)
|
||||||
@ -68,7 +68,7 @@ set_cloexec_action(int fd)
|
|||||||
|
|
||||||
/* Set a file descriptor to non-blocking */
|
/* Set a file descriptor to non-blocking */
|
||||||
void
|
void
|
||||||
set_nonblock(int fd)
|
set_nonblock(socket_descriptor_t fd)
|
||||||
{
|
{
|
||||||
if (!set_nonblock_action(fd))
|
if (!set_nonblock_action(fd))
|
||||||
{
|
{
|
||||||
@ -78,7 +78,7 @@ set_nonblock(int fd)
|
|||||||
|
|
||||||
/* Set a file descriptor to not be passed across execs */
|
/* Set a file descriptor to not be passed across execs */
|
||||||
void
|
void
|
||||||
set_cloexec(int fd)
|
set_cloexec(socket_descriptor_t fd)
|
||||||
{
|
{
|
||||||
if (!set_cloexec_action(fd))
|
if (!set_cloexec_action(fd))
|
||||||
{
|
{
|
||||||
|
@ -28,16 +28,16 @@
|
|||||||
#include "error.h"
|
#include "error.h"
|
||||||
#include "syshead.h"
|
#include "syshead.h"
|
||||||
|
|
||||||
bool set_nonblock_action(int fd);
|
bool set_nonblock_action(socket_descriptor_t fd);
|
||||||
|
|
||||||
bool set_cloexec_action(int fd);
|
bool set_cloexec_action(socket_descriptor_t fd);
|
||||||
|
|
||||||
void set_nonblock(int fd);
|
void set_nonblock(socket_descriptor_t fd);
|
||||||
|
|
||||||
void set_cloexec(int fd);
|
void set_cloexec(socket_descriptor_t fd);
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
openvpn_fd_set(int fd, fd_set *setp)
|
openvpn_fd_set(socket_descriptor_t fd, fd_set *setp)
|
||||||
{
|
{
|
||||||
#ifndef _WIN32 /* The Windows FD_SET() implementation does not overflow */
|
#ifndef _WIN32 /* The Windows FD_SET() implementation does not overflow */
|
||||||
ASSERT(fd >= 0 && fd < FD_SETSIZE);
|
ASSERT(fd >= 0 && fd < FD_SETSIZE);
|
||||||
|
@ -166,7 +166,7 @@ frame_print(const struct frame *frame,
|
|||||||
#define MTUDISC_NOT_SUPPORTED_MSG "--mtu-disc is not supported on this OS"
|
#define MTUDISC_NOT_SUPPORTED_MSG "--mtu-disc is not supported on this OS"
|
||||||
|
|
||||||
void
|
void
|
||||||
set_mtu_discover_type(int sd, int mtu_type, sa_family_t proto_af)
|
set_mtu_discover_type(socket_descriptor_t sd, int mtu_type, sa_family_t proto_af)
|
||||||
{
|
{
|
||||||
if (mtu_type >= 0)
|
if (mtu_type >= 0)
|
||||||
{
|
{
|
||||||
|
@ -209,7 +209,7 @@ void frame_print(const struct frame *frame,
|
|||||||
int level,
|
int level,
|
||||||
const char *prefix);
|
const char *prefix);
|
||||||
|
|
||||||
void set_mtu_discover_type(int sd, int mtu_type, sa_family_t proto_af);
|
void set_mtu_discover_type(socket_descriptor_t sd, int mtu_type, sa_family_t proto_af);
|
||||||
|
|
||||||
int translate_mtu_discover_type_name(const char *name);
|
int translate_mtu_discover_type_name(const char *name);
|
||||||
|
|
||||||
|
@ -846,7 +846,7 @@ mac_addr_safe(const char *mac_addr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
socket_get_sndbuf(int sd)
|
socket_get_sndbuf(socket_descriptor_t sd)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_GETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_SNDBUF)
|
#if defined(HAVE_GETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_SNDBUF)
|
||||||
int val;
|
int val;
|
||||||
@ -863,7 +863,7 @@ socket_get_sndbuf(int sd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
socket_set_sndbuf(int sd, int size)
|
socket_set_sndbuf(socket_descriptor_t sd, int size)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_SETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_SNDBUF)
|
#if defined(HAVE_SETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_SNDBUF)
|
||||||
if (setsockopt(sd, SOL_SOCKET, SO_SNDBUF, (void *) &size, sizeof(size)) != 0)
|
if (setsockopt(sd, SOL_SOCKET, SO_SNDBUF, (void *) &size, sizeof(size)) != 0)
|
||||||
@ -874,7 +874,7 @@ socket_set_sndbuf(int sd, int size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
socket_get_rcvbuf(int sd)
|
socket_get_rcvbuf(socket_descriptor_t sd)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_GETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_RCVBUF)
|
#if defined(HAVE_GETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_RCVBUF)
|
||||||
int val;
|
int val;
|
||||||
@ -891,7 +891,7 @@ socket_get_rcvbuf(int sd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
socket_set_rcvbuf(int sd, int size)
|
socket_set_rcvbuf(socket_descriptor_t sd, int size)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_SETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_RCVBUF)
|
#if defined(HAVE_SETSOCKOPT) && defined(SOL_SOCKET) && defined(SO_RCVBUF)
|
||||||
if (setsockopt(sd, SOL_SOCKET, SO_RCVBUF, (void *) &size, sizeof(size)) != 0)
|
if (setsockopt(sd, SOL_SOCKET, SO_RCVBUF, (void *) &size, sizeof(size)) != 0)
|
||||||
@ -904,7 +904,7 @@ socket_set_rcvbuf(int sd, int size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
socket_set_buffers(int fd, const struct socket_buffer_size *sbs)
|
socket_set_buffers(socket_descriptor_t fd, const struct socket_buffer_size *sbs)
|
||||||
{
|
{
|
||||||
if (sbs)
|
if (sbs)
|
||||||
{
|
{
|
||||||
@ -934,7 +934,7 @@ socket_set_buffers(int fd, const struct socket_buffer_size *sbs)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
socket_set_tcp_nodelay(int sd, int state)
|
socket_set_tcp_nodelay(socket_descriptor_t sd, int state)
|
||||||
{
|
{
|
||||||
#if defined(_WIN32) || (defined(HAVE_SETSOCKOPT) && defined(IPPROTO_TCP) && defined(TCP_NODELAY))
|
#if defined(_WIN32) || (defined(HAVE_SETSOCKOPT) && defined(IPPROTO_TCP) && defined(TCP_NODELAY))
|
||||||
if (setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (void *) &state, sizeof(state)) != 0)
|
if (setsockopt(sd, IPPROTO_TCP, TCP_NODELAY, (void *) &state, sizeof(state)) != 0)
|
||||||
@ -954,7 +954,7 @@ socket_set_tcp_nodelay(int sd, int state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
socket_set_mark(int sd, int mark)
|
socket_set_mark(socket_descriptor_t sd, int mark)
|
||||||
{
|
{
|
||||||
#if defined(TARGET_LINUX) && HAVE_DECL_SO_MARK
|
#if defined(TARGET_LINUX) && HAVE_DECL_SO_MARK
|
||||||
if (mark && setsockopt(sd, SOL_SOCKET, SO_MARK, (void *) &mark, sizeof(mark)) != 0)
|
if (mark && setsockopt(sd, SOL_SOCKET, SO_MARK, (void *) &mark, sizeof(mark)) != 0)
|
||||||
@ -965,7 +965,7 @@ socket_set_mark(int sd, int mark)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
socket_set_flags(int sd, unsigned int sockflags)
|
socket_set_flags(socket_descriptor_t sd, unsigned int sockflags)
|
||||||
{
|
{
|
||||||
if (sockflags & SF_TCP_NODELAY)
|
if (sockflags & SF_TCP_NODELAY)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user