forked from osmocom/wireshark
Clean up some UN*X-vs-Windows socket issues.
Have a wsutil/socket.h file, for inclusion by everything that uses sockets, that contains the UN*X-vs-Windows #includes and #defines to hide some UN*X-sockets vs. Winsock API differences. That stuff mostly comes from from extcap/extcap-base.h; have that file just include wsutil/socket.h rather than defining that stuff itself. Include it in sharkd_daemon.c. Use socklen_t for the size of things to pass to bind() as the last argument; wsutil/socket.h defines it as int on Windows. Ignore sharkd in Git. Change-Id: I3f2171b7aa613717f52305f62bfd7d43e0172dc6 Reviewed-on: https://code.wireshark.org/review/19796 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>pespin/osmux-stats
parent
1165dfc8f6
commit
5fbcfd632a
|
@ -105,6 +105,7 @@ randpktdump
|
|||
rawshark
|
||||
reordercap
|
||||
reassemble_test
|
||||
sharkd
|
||||
sshdump
|
||||
stamp-h1
|
||||
text2pcap
|
||||
|
|
|
@ -43,33 +43,7 @@
|
|||
#include <io.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
#ifdef HAVE_WINDOWS_H
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <ws2tcpip.h>
|
||||
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
|
||||
#include <process.h>
|
||||
|
||||
#define socket_handle_t SOCKET
|
||||
#else
|
||||
/*
|
||||
* UN*X, or Windows pretending to be UN*X with the aid of Cygwin.
|
||||
*/
|
||||
#define closesocket(socket) close(socket)
|
||||
#define socket_handle_t int
|
||||
#define INVALID_SOCKET (-1)
|
||||
#define SOCKET_ERROR (-1)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
#include <wsutil/socket.h>
|
||||
|
||||
#define EXTCAP_BASE_OPTIONS_ENUM \
|
||||
EXTCAP_OPT_LIST_INTERFACES, \
|
||||
|
|
|
@ -35,9 +35,7 @@
|
|||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_SOCKET_H
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
#include <wsutil/socket.h>
|
||||
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
|
@ -48,23 +46,6 @@
|
|||
#include <netinet/tcp.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
#if defined(_WIN32)
|
||||
#ifdef HAVE_WINDOWS_H
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <ws2tcpip.h>
|
||||
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
#endif
|
||||
*/
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#include <wsutil/strtoi.h>
|
||||
|
||||
#include "sharkd.h"
|
||||
|
@ -80,7 +61,7 @@ socket_init(char *path)
|
|||
if (!strncmp(path, "unix:", 5))
|
||||
{
|
||||
struct sockaddr_un s_un;
|
||||
size_t s_un_len;
|
||||
socklen_t s_un_len;
|
||||
|
||||
path += 5;
|
||||
|
||||
|
@ -95,7 +76,7 @@ socket_init(char *path)
|
|||
s_un.sun_family = AF_UNIX;
|
||||
g_strlcpy(s_un.sun_path, path, sizeof(s_un.sun_path));
|
||||
|
||||
s_un_len = offsetof(struct sockaddr_un, sun_path) + strlen(s_un.sun_path);
|
||||
s_un_len = (socklen_t)(offsetof(struct sockaddr_un, sun_path) + strlen(s_un.sun_path));
|
||||
|
||||
if (s_un.sun_path[0] == '@')
|
||||
s_un.sun_path[0] = '\0';
|
||||
|
|
|
@ -83,6 +83,7 @@ libwsutil_nonrepl_INCLUDES = \
|
|||
sha2.h \
|
||||
sign_ext.h \
|
||||
sober128.h \
|
||||
socket.h \
|
||||
str_util.h \
|
||||
strnatcmp.h \
|
||||
strtoi.h \
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
/* socket.h
|
||||
* Socket wrappers
|
||||
*
|
||||
* Copyright 2016, Dario Lombardo
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
#ifndef __SOCKET_H__
|
||||
#define __SOCKET_H__
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
#ifdef HAVE_WINDOWS_H
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#include <ws2tcpip.h>
|
||||
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
#endif
|
||||
|
||||
#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
|
||||
#define INVALID_SOCKET (-1)
|
||||
#define SOCKET_ERROR (-1)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_ARPA_INET_H
|
||||
#include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
#endif /* __SOCKET_H__ */
|
||||
|
||||
/*
|
||||
* 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:
|
||||
*/
|
Loading…
Reference in New Issue