2017-01-26 06:20:07 +00:00
|
|
|
/* socket.h
|
|
|
|
* Socket wrappers
|
|
|
|
*
|
|
|
|
* Copyright 2016, Dario Lombardo
|
|
|
|
*
|
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
|
|
* Copyright 1998 Gerald Combs
|
|
|
|
*
|
2018-02-07 11:26:45 +00:00
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
2017-01-26 06:20:07 +00:00
|
|
|
*/
|
|
|
|
#ifndef __SOCKET_H__
|
|
|
|
#define __SOCKET_H__
|
|
|
|
|
2019-05-02 01:46:23 +00:00
|
|
|
#include "ws_symbol_export.h"
|
|
|
|
|
2017-01-26 06:20:07 +00:00
|
|
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
2017-10-26 00:42:15 +00:00
|
|
|
#include <windows.h>
|
2017-01-26 06:20:07 +00:00
|
|
|
#include <ws2tcpip.h>
|
2017-10-26 00:42:15 +00:00
|
|
|
#include <winsock2.h>
|
2017-01-26 06:20:07 +00:00
|
|
|
#include <process.h>
|
|
|
|
|
|
|
|
#define socket_handle_t SOCKET
|
|
|
|
#define socklen_t int
|
|
|
|
#else
|
|
|
|
/*
|
|
|
|
* UN*X, or Windows pretending to be UN*X with the aid of Cygwin.
|
|
|
|
*/
|
|
|
|
#ifdef HAVE_UNISTD_H
|
|
|
|
/*
|
|
|
|
* For close().
|
|
|
|
*/
|
|
|
|
#include <unistd.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_SOCKET_H
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define closesocket(socket) close(socket)
|
|
|
|
#define socket_handle_t int
|
2019-01-03 20:21:19 +00:00
|
|
|
#ifndef INVALID_SOCKET
|
2017-01-26 06:20:07 +00:00
|
|
|
#define INVALID_SOCKET (-1)
|
2019-01-03 20:21:19 +00:00
|
|
|
#endif
|
2017-01-26 06:20:07 +00:00
|
|
|
#define SOCKET_ERROR (-1)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAVE_ARPA_INET_H
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
#endif
|
|
|
|
|
2019-11-12 11:01:24 +00:00
|
|
|
#ifdef HAVE_NETINET_IN_H
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#endif
|
|
|
|
|
2019-05-02 01:46:23 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Initialize sockets.
|
|
|
|
*
|
|
|
|
* Returns NULL on success, a g_malloc()ed error message on failure.
|
|
|
|
*/
|
|
|
|
WS_DLL_PUBLIC gchar *ws_init_sockets(void);
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Clean up sockets.
|
|
|
|
*/
|
|
|
|
WS_DLL_PUBLIC void ws_cleanup_sockets(void);
|
|
|
|
|
2019-11-07 23:11:00 +00:00
|
|
|
/*
|
|
|
|
* Convert the strings ipv4_address:port or [ipv6_address]:port to a
|
|
|
|
* sockaddr object. Ports are optional. Receives default port
|
|
|
|
* in host byte order.
|
|
|
|
*/
|
|
|
|
WS_DLL_PUBLIC int
|
|
|
|
ws_socket_ptoa(struct sockaddr_storage *dst, const gchar *src,
|
|
|
|
guint16 def_port);
|
|
|
|
|
2019-05-02 01:46:23 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2019-05-02 09:36:12 +00:00
|
|
|
#endif /* __SOCKET_H__ */
|
|
|
|
|
2017-01-26 06:20:07 +00:00
|
|
|
/*
|
|
|
|
* Editor modelines - https://www.wireshark.org/tools/modelines.html
|
|
|
|
*
|
|
|
|
* Local variables:
|
|
|
|
* c-basic-offset: 8
|
|
|
|
* tab-width: 8
|
|
|
|
* indent-tabs-mode: t
|
|
|
|
* End:
|
|
|
|
*
|
|
|
|
* vi: set shiftwidth=8 tabstop=8 noexpandtab:
|
|
|
|
* :indentSize=8:tabSize=8:noTabs=false:
|
|
|
|
*/
|