<commit_before>/***************************************************************************
 *   Copyright (C) 2007 by <NAME>                                      *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
/* Socket helper defines and functions. */
#ifndef _SOCKET_HELPER_H_
#define _SOCKET_HELPER_H_

#include <net/genericsocket.h>

#ifndef bzero
	#include <cstring>
	#define	bzero(_ptr, _n)		std::memset(_ptr, 0, _n)
#endif

#ifdef _WIN32
#define CLOSESOCKET						closesocket
#define IOCTLSOCKET						ioctlsocket
#define SOCKET_ERRNO()					WSAGetLastError()
#define IS_SOCKET_ERR_WOULDBLOCK(_e)	((_e) == WSAEWOULDBLOCK)
#define SOCKET_ERR_NOTCONN				WSAENOTCONN
#define SOCKET_ERR_NOTSOCK				WSAENOTSOCK

#ifndef IPV6_V6ONLY
	#define IPV6_V6ONLY					27
#endif

#ifdef __GNUC__ /* mingw provides stdint.h */
	#include <stdint.h>
	typedef uint16_t					u_int16_t;
	typedef uint32_t					u_int32_t;
#else
	typedef unsigned __int16			u_int16_t;
	typedef unsigned __int32			u_int32_t;
	typedef __int16						int16_t;
	typedef __int32						int32_t;
#endif

typedef unsigned char					u_char;

#else
#define SOCKET							int
#define SOCKET_ERROR					-1
#define INVALID_SOCKET					-1
#define CLOSESOCKET						close
#define SOCKET_ERRNO()					errno
#define IOCTLSOCKET						ioctl
#define SOCKET_ERR_NOTCONN				ENOTCONN
#define SOCKET_ERR_NOTSOCK				ENOTSOCK

#define IS_SOCKET_ERR_WOULDBLOCK(_e)	((_e) == EINPROGRESS || (_e) == EAGAIN)

#endif

#define IS_VALID_SOCKET(_s)		((_s) != INVALID_SOCKET)
#define IS_VALID_CONNECT(_c)	((_c) == 0)
#define IS_VALID_BIND(_b)		((_b) != SOCKET_ERROR)
#define IS_VALID_LISTEN(_l)		((_l) != SOCKET_ERROR)
#define IS_VALID_RECV(_r)		((_r) != SOCKET_ERROR)
#define IS_VALID_SEND(_s)		((_s) != SOCKET_ERROR)
#define IS_VALID_SELECT(_s)		((_s) != SOCKET_ERROR)

#define RECV_TIMEOUT_MSEC	50

#ifdef MSG_NOSIGNAL
	#define SOCKET_SEND_FLAGS			MSG_NOSIGNAL
#else<commit_msg>Paranoia change - also check original BSD return value.<commit_after>/***************************************************************************
 *   Copyright (C) 2007 by <NAME>                                      *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/
/* Socket helper defines and functions. */
#ifndef _SOCKET_HELPER_H_
#define _SOCKET_HELPER_H_

#include <net/genericsocket.h>

#ifndef bzero
	#include <cstring>
	#define	bzero(_ptr, _n)		std::memset(_ptr, 0, _n)
#endif

#ifdef _WIN32
#define CLOSESOCKET						closesocket
#define IOCTLSOCKET						ioctlsocket
#define SOCKET_ERRNO()					WSAGetLastError()
#define IS_SOCKET_ERR_WOULDBLOCK(_e)	((_e) == WSAEWOULDBLOCK)
#define SOCKET_ERR_NOTCONN				WSAENOTCONN
#define SOCKET_ERR_NOTSOCK				WSAENOTSOCK

#ifndef IPV6_V6ONLY
	#define IPV6_V6ONLY					27
#endif

#ifdef __GNUC__ /* mingw provides stdint.h */
	#include <stdint.h>
	typedef uint16_t					u_int16_t;
	typedef uint32_t					u_int32_t;
#else
	typedef unsigned __int16			u_int16_t;
	typedef unsigned __int32			u_int32_t;
	typedef __int16						int16_t;
	typedef __int32						int32_t;
#endif

typedef unsigned char					u_char;

#else
#define SOCKET							int
#define SOCKET_ERROR					-1
#define INVALID_SOCKET					-1
#define CLOSESOCKET						close
#define SOCKET_ERRNO()					errno
#define IOCTLSOCKET						ioctl
#define SOCKET_ERR_NOTCONN				ENOTCONN
#define SOCKET_ERR_NOTSOCK				ENOTSOCK

#define IS_SOCKET_ERR_WOULDBLOCK(_e)	((_e) == EINPROGRESS || (_e) == EAGAIN || (_e) == EWOULDBLOCK)

#endif

#define IS_VALID_SOCKET(_s)		((_s) != INVALID_SOCKET)
#define IS_VALID_CONNECT(_c)	((_c) == 0)
#define IS_VALID_BIND(_b)		((_b) != SOCKET_ERROR)
#define IS_VALID_LISTEN(_l)		((_l) != SOCKET_ERROR)
#define IS_VALID_RECV(_r)		((_r) != SOCKET_ERROR)
#define IS_VALID_SEND(_s)		((_s) != SOCKET_ERROR)
#define IS_VALID_SELECT(_s)		((_s) != SOCKET_ERROR)

#define RECV_TIMEOUT_MSEC	50

#ifdef MSG_NOSIGNAL
	#define SOCKET_SEND_FLAGS			MSG_NOSIGNAL
#else
{'fraction_non_alphanumeric': 0.12221331194867682, 'fraction_numerical': 0.018283881315156375, 'mean_word_length': 2.372633856138453, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 24, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7023248', 'n_tokens_mistral': 2205, 'n_tokens_neox': 1974, 'n_words': 548}