mirror of
https://github.com/nmap/nmap.git
synced 2025-12-20 14:39:02 +00:00
vcproj for nmap
This commit is contained in:
@@ -2564,6 +2564,9 @@ o Added XML output (-oX). Hopefully this will help those of you
|
|||||||
emphasize that XML is now the preferred machine-readable output
|
emphasize that XML is now the preferred machine-readable output
|
||||||
format. But don't worry if your tool uses -oM , that format (and
|
format. But don't worry if your tool uses -oM , that format (and
|
||||||
the deprecated -oM flag) won't go away any time soon (if ever).
|
the deprecated -oM flag) won't go away any time soon (if ever).
|
||||||
|
Thanks to Stou Sandalski (tangui(a)cell2000.net) and Fredrick Paul
|
||||||
|
Eisele (phreed(a)gmail.com) for sending proposals that inspired the
|
||||||
|
format used.
|
||||||
|
|
||||||
o Applied patch from Stefan Rapp (s.rapp(a)hrz.uni-dortmund.de) which
|
o Applied patch from Stefan Rapp (s.rapp(a)hrz.uni-dortmund.de) which
|
||||||
fixes a variable argument integer promotion problem in the new
|
fixes a variable argument integer promotion problem in the new
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
export NMAP_VERSION = 3.83.DC13
|
export NMAP_VERSION = 3.83.DC15
|
||||||
NMAP_NAME= nmap
|
NMAP_NAME= nmap
|
||||||
NMAP_URL= http://www.insecure.org/nmap/
|
NMAP_URL= http://www.insecure.org/nmap/
|
||||||
NMAP_PLATFORM=@host@
|
NMAP_PLATFORM=@host@
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
Nmap 3.83.DC13 Usage: nmap [Scan Type(s)] [Options] <host or net list>
|
Nmap 3.83.DC15 Usage: nmap [Scan Type(s)] [Options] <host or net list>
|
||||||
Some Common Scan Types ('*' options require root privileges)
|
Some Common Scan Types ('*' options require root privileges)
|
||||||
* -sS TCP SYN stealth port scan (default if privileged (root))
|
* -sS TCP SYN stealth port scan (default if privileged (root))
|
||||||
-sT TCP connect() port scan (default for unprivileged users)
|
-sT TCP connect() port scan (default for unprivileged users)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
$Id$
|
$Id$
|
||||||
|
|
||||||
This is Dug Song's excellent Libdnet networking library version 1.10.
|
This is Dug Song's excellent Libdnet networking library version 1.10.
|
||||||
It has been stripped down for inclusion within Nmap as follows:
|
It has been stripped down for inclusion within Nmap and modified as follows:
|
||||||
|
|
||||||
o Removed the following directories:
|
o Removed the following directories:
|
||||||
python, test, man
|
python, test, man
|
||||||
@@ -20,6 +20,21 @@ o Replaced config.guess config.sub and missing in config dir with
|
|||||||
|
|
||||||
o Added this NMAP_MODIFICATIONS file.
|
o Added this NMAP_MODIFICATIONS file.
|
||||||
|
|
||||||
|
o Added include/winconfig.h, which is a modified config.h to better support
|
||||||
|
Windows compilation via Visual Studio. Added conditional includes
|
||||||
|
for it to a bunch of the dnet source files.
|
||||||
|
|
||||||
|
o A number of portability changes to remove errors/warnings during
|
||||||
|
Win32 Visual Studio.Net compilation. This was mostly a matter of
|
||||||
|
adding casts and a few extra include files.
|
||||||
|
|
||||||
|
o Added libdnet-stripped.vcproj -- A Visual Studio.Net project file
|
||||||
|
for dnet.
|
||||||
|
|
||||||
|
o Changed eth_open() in eth-win32.c to more frequently consider the
|
||||||
|
results of PacketGetAdapterNames() to be in single-char format rather
|
||||||
|
than 2-byte wide characters.
|
||||||
|
|
||||||
o Made some code changes to intf.c (the patch below). This does the following:
|
o Made some code changes to intf.c (the patch below). This does the following:
|
||||||
|
|
||||||
o Preserve the alias qualifier from interface name in more cases
|
o Preserve the alias qualifier from interface name in more cases
|
||||||
|
|||||||
@@ -23,7 +23,11 @@
|
|||||||
typedef u_short uint16_t;
|
typedef u_short uint16_t;
|
||||||
typedef u_int uint32_t;
|
typedef u_int uint32_t;
|
||||||
# ifndef __CYGWIN__
|
# ifndef __CYGWIN__
|
||||||
typedef long ssize_t;
|
typedef unsigned int ssize_t;
|
||||||
|
# endif
|
||||||
|
#if !defined(__GNUC__)
|
||||||
|
#define snprintf _snprintf
|
||||||
|
#define vsnprintf _vsnprintf
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# include <sys/param.h>
|
# include <sys/param.h>
|
||||||
@@ -118,8 +122,8 @@
|
|||||||
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||||
# define __flexarr []
|
# define __flexarr []
|
||||||
# elif defined(_WIN32)
|
# elif defined(_WIN32)
|
||||||
/* MS VC++ */
|
/* MS VC++ -- using just [] may work, but gives a non-standard extension warning */
|
||||||
# define __flexarr []
|
# define __flexarr [1]
|
||||||
# else
|
# else
|
||||||
/* Some other non-C99 compiler. Approximate with [1]. */
|
/* Some other non-C99 compiler. Approximate with [1]. */
|
||||||
# define __flexarr [1]
|
# define __flexarr [1]
|
||||||
|
|||||||
278
libdnet-stripped/include/dnet_winconfig.h
Normal file
278
libdnet-stripped/include/dnet_winconfig.h
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
/* include/dnet_winconfig.h -- Windows configuration #defines. It is modified
|
||||||
|
from the config.h generated by configure on other platforms. */
|
||||||
|
|
||||||
|
/* Define if arpreq struct has arp_dev. */
|
||||||
|
#define HAVE_ARPREQ_ARP_DEV 1
|
||||||
|
|
||||||
|
/* Define if you have the Berkeley Packet Filter. */
|
||||||
|
/* #undef HAVE_BSD_BPF */
|
||||||
|
|
||||||
|
/* Define if you have the <dlfcn.h> header file. */
|
||||||
|
#define HAVE_DLFCN_H 1
|
||||||
|
|
||||||
|
/* Define if you have the `err' function. */
|
||||||
|
#define HAVE_ERR 1
|
||||||
|
|
||||||
|
/* Define if you have the <fcntl.h> header file. */
|
||||||
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <hpsecurity.h> header file. */
|
||||||
|
/* #undef HAVE_HPSECURITY_H */
|
||||||
|
|
||||||
|
/* Define if you have the <inttypes.h> header file. */
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
|
/* Define if you have arp(7) ioctls. */
|
||||||
|
#define HAVE_IOCTL_ARP 1
|
||||||
|
|
||||||
|
/* Define if you have the <Iphlpapi.h> header file. */
|
||||||
|
/* #undef HAVE_IPHLPAPI_H */
|
||||||
|
|
||||||
|
/* Define if you have the <ip_compat.h> header file. */
|
||||||
|
/* #undef HAVE_IP_COMPAT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <ip_fil_compat.h> header file. */
|
||||||
|
/* #undef HAVE_IP_FIL_COMPAT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <ip_fil.h> header file. */
|
||||||
|
/* #undef HAVE_IP_FIL_H */
|
||||||
|
|
||||||
|
/* Define if you have the `iphlpapi' library (-liphlpapi). */
|
||||||
|
/* #undef HAVE_LIBIPHLPAPI */
|
||||||
|
|
||||||
|
/* Define if you have the `nm' library (-lnm). */
|
||||||
|
/* #undef HAVE_LIBNM */
|
||||||
|
|
||||||
|
/* Define if you have the `nsl' library (-lnsl). */
|
||||||
|
/* #undef HAVE_LIBNSL */
|
||||||
|
|
||||||
|
/* Define if you have the `resolv' library (-lresolv). */
|
||||||
|
/* #undef HAVE_LIBRESOLV */
|
||||||
|
|
||||||
|
/* Define if you have the `socket' library (-lsocket). */
|
||||||
|
/* #undef HAVE_LIBSOCKET */
|
||||||
|
|
||||||
|
/* Define if you have the `str' library (-lstr). */
|
||||||
|
/* #undef HAVE_LIBSTR */
|
||||||
|
|
||||||
|
/* Define if you have the `ws2_32' library (-lws2_32). */
|
||||||
|
/* #undef HAVE_LIBWS2_32 */
|
||||||
|
|
||||||
|
/* Define if you have the <linux/if_tun.h> header file. */
|
||||||
|
#define HAVE_LINUX_IF_TUN_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <linux/ip_fwchains.h> header file. */
|
||||||
|
/* #undef HAVE_LINUX_IP_FWCHAINS_H */
|
||||||
|
|
||||||
|
/* Define if you have the <linux/ip_fw.h> header file. */
|
||||||
|
/* #undef HAVE_LINUX_IP_FW_H */
|
||||||
|
|
||||||
|
/* Define if you have the <linux/netfilter_ipv4/ipchains_core.h> header file.
|
||||||
|
*/
|
||||||
|
#define HAVE_LINUX_NETFILTER_IPV4_IPCHAINS_CORE_H 1
|
||||||
|
|
||||||
|
/* Define if you have Linux PF_PACKET sockets. */
|
||||||
|
#define HAVE_LINUX_PF_PACKET 1
|
||||||
|
|
||||||
|
/* Define if you have the Linux /proc filesystem. */
|
||||||
|
#define HAVE_LINUX_PROCFS 1
|
||||||
|
|
||||||
|
/* Define if you have the <memory.h> header file. */
|
||||||
|
#define HAVE_MEMORY_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <netinet/in_var.h> header file. */
|
||||||
|
/* #undef HAVE_NETINET_IN_VAR_H */
|
||||||
|
|
||||||
|
/* Define if you have the <netinet/ip_compat.h> header file. */
|
||||||
|
/* #undef HAVE_NETINET_IP_COMPAT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <netinet/ip_fil_compat.h> header file. */
|
||||||
|
/* #undef HAVE_NETINET_IP_FIL_COMPAT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <netinet/ip_fil.h> header file. */
|
||||||
|
/* #undef HAVE_NETINET_IP_FIL_H */
|
||||||
|
|
||||||
|
/* Define if you have the <netinet/ip_fw.h> header file. */
|
||||||
|
/* #undef HAVE_NETINET_IP_FW_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/bpf.h> header file. */
|
||||||
|
/* #undef HAVE_NET_BPF_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/if_arp.h> header file. */
|
||||||
|
#define HAVE_NET_IF_ARP_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <net/if_dl.h> header file. */
|
||||||
|
/* #undef HAVE_NET_IF_DL_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/if.h> header file. */
|
||||||
|
// #define HAVE_NET_IF_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <net/if_tun.h> header file. */
|
||||||
|
/* #undef HAVE_NET_IF_TUN_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/if_var.h> header file. */
|
||||||
|
/* #undef HAVE_NET_IF_VAR_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/pfilt.h> header file. */
|
||||||
|
/* #undef HAVE_NET_PFILT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/pfvar.h> header file. */
|
||||||
|
/* #undef HAVE_NET_PFVAR_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/radix.h> header file. */
|
||||||
|
/* #undef HAVE_NET_RADIX_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/raw.h> header file. */
|
||||||
|
/* #undef HAVE_NET_RAW_H */
|
||||||
|
|
||||||
|
/* Define if you have the <net/route.h> header file. */
|
||||||
|
#define HAVE_NET_ROUTE_H 1
|
||||||
|
|
||||||
|
/* Define if you have cooked raw IP sockets. */
|
||||||
|
/* #undef HAVE_RAWIP_COOKED */
|
||||||
|
|
||||||
|
/* Define if raw IP sockets require host byte ordering for ip_off, ip_len. */
|
||||||
|
/* #undef HAVE_RAWIP_HOST_OFFLEN */
|
||||||
|
|
||||||
|
/* Define if <net/route.h> has rt_msghdr struct. */
|
||||||
|
/* #undef HAVE_ROUTE_RT_MSGHDR */
|
||||||
|
|
||||||
|
/* Define if <netinet/in.h> has sockaddr_in6 struct. */
|
||||||
|
// #define HAVE_SOCKADDR_IN6 1
|
||||||
|
|
||||||
|
/* Define if sockaddr struct has sa_len. */
|
||||||
|
/* #undef HAVE_SOCKADDR_SA_LEN */
|
||||||
|
|
||||||
|
/* Define if you have the <stdint.h> header file. */
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <stdlib.h> header file. */
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
|
||||||
|
/* Define if you have SNMP MIB2 STREAMS. */
|
||||||
|
/* #undef HAVE_STREAMS_MIB2 */
|
||||||
|
|
||||||
|
/* Define if you have route(7) STREAMS. */
|
||||||
|
/* #undef HAVE_STREAMS_ROUTE */
|
||||||
|
|
||||||
|
/* Define if you have the <strings.h> header file. */
|
||||||
|
#define HAVE_STRINGS_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <string.h> header file. */
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
|
||||||
|
/* Define if you have the `strlcat' function. */
|
||||||
|
/* #undef HAVE_STRLCAT */
|
||||||
|
|
||||||
|
/* Define if you have the `strlcpy' function. */
|
||||||
|
/* #undef HAVE_STRLCPY */
|
||||||
|
|
||||||
|
/* Define if you have the <stropts.h> header file. */
|
||||||
|
#define HAVE_STROPTS_H 1
|
||||||
|
|
||||||
|
/* Define if you have the `strsep' function. */
|
||||||
|
#define HAVE_STRSEP 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/bufmod.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_BUFMOD_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/dlpihdr.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_DLPIHDR_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/dlpi_ext.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_DLPI_EXT_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/dlpi.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_DLPI_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/ioctl.h> header file. */
|
||||||
|
#define HAVE_SYS_IOCTL_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/mib.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_MIB_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/ndd_var.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_NDD_VAR_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/socket.h> header file. */
|
||||||
|
#define HAVE_SYS_SOCKET_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/sockio.h> header file. */
|
||||||
|
/* #undef HAVE_SYS_SOCKIO_H */
|
||||||
|
|
||||||
|
/* Define if you have the <sys/stat.h> header file. */
|
||||||
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/sysctl.h> header file. */
|
||||||
|
#define HAVE_SYS_SYSCTL_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/time.h> header file. */
|
||||||
|
#define HAVE_SYS_TIME_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <sys/types.h> header file. */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <unistd.h> header file. */
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
|
||||||
|
/* Define if you have the <winsock2.h> header file. */
|
||||||
|
/* #undef HAVE_WINSOCK2_H */
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#define PACKAGE "libdnet"
|
||||||
|
|
||||||
|
/* Define if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#define VERSION "1.10"
|
||||||
|
|
||||||
|
/* Define for faster code generation. */
|
||||||
|
/* #undef WIN32_LEAN_AND_MEAN */
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
/* #undef const */
|
||||||
|
|
||||||
|
/* Define as `__inline' if that's what the C compiler calls it, or to nothing
|
||||||
|
if it is not supported. */
|
||||||
|
/* #undef inline */
|
||||||
|
|
||||||
|
/* Define to `int' if <sys/types.h> does not define. */
|
||||||
|
/* #undef pid_t */
|
||||||
|
|
||||||
|
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||||
|
/* #undef size_t */
|
||||||
|
|
||||||
|
/* Use MingW32's internal snprintf */
|
||||||
|
/* #undef snprintf */
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_WINSOCK2_H
|
||||||
|
# include <winsock2.h>
|
||||||
|
# include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __svr4__
|
||||||
|
# define BSD_COMP 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__osf__) && !defined(_SOCKADDR_LEN)
|
||||||
|
# define _SOCKADDR_LEN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_INET_PTON
|
||||||
|
int inet_pton(int, const char *, void *);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_STRLCAT
|
||||||
|
int strlcat(char *, const char *, int);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_STRLCPY
|
||||||
|
int strlcpy(char *, const char *, int);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_STRSEP
|
||||||
|
char *strsep(char **, const char *);
|
||||||
|
#endif
|
||||||
203
libdnet-stripped/libdnet-stripped.vcproj
Executable file
203
libdnet-stripped/libdnet-stripped.vcproj
Executable file
@@ -0,0 +1,203 @@
|
|||||||
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
|
<VisualStudioProject
|
||||||
|
ProjectType="Visual C++"
|
||||||
|
Version="7.10"
|
||||||
|
Name="dnet"
|
||||||
|
ProjectGUID="{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}"
|
||||||
|
Keyword="Win32Proj">
|
||||||
|
<Platforms>
|
||||||
|
<Platform
|
||||||
|
Name="Win32"/>
|
||||||
|
</Platforms>
|
||||||
|
<Configurations>
|
||||||
|
<Configuration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
OutputDirectory="."
|
||||||
|
IntermediateDirectory="Debug"
|
||||||
|
ConfigurationType="4"
|
||||||
|
CharacterSet="2">
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
Optimization="0"
|
||||||
|
AdditionalIncludeDirectories="include;"..\mswin32\pcap-include""
|
||||||
|
PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
|
||||||
|
MinimalRebuild="TRUE"
|
||||||
|
BasicRuntimeChecks="3"
|
||||||
|
RuntimeLibrary="1"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
|
DebugInformationFormat="4"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
OutputFile="$(OutDir)/libdnet-stripped.lib"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
OutputDirectory="."
|
||||||
|
IntermediateDirectory="Release"
|
||||||
|
ConfigurationType="4"
|
||||||
|
CharacterSet="2">
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
AdditionalIncludeDirectories="include"
|
||||||
|
PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
|
||||||
|
RuntimeLibrary="4"
|
||||||
|
UsePrecompiledHeader="0"
|
||||||
|
WarningLevel="3"
|
||||||
|
Detect64BitPortabilityProblems="TRUE"
|
||||||
|
DebugInformationFormat="3"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLibrarianTool"
|
||||||
|
OutputFile="$(OutDir)/libdnet-stripped.lib"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedWrapperGeneratorTool"/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||||
|
</Configuration>
|
||||||
|
</Configurations>
|
||||||
|
<References>
|
||||||
|
</References>
|
||||||
|
<Files>
|
||||||
|
<Filter
|
||||||
|
Name="Source Files"
|
||||||
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\addr-util.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\addr.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\arp-win32.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\err.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\eth-win32.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\intf-win32.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\ip-util.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\ip-win32.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\ip6.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\route-win32.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\strlcat.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\strlcpy.c">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\src\strsep.c">
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="Header Files"
|
||||||
|
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||||
|
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\addr.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\arp.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\config.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\err.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\eth.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\icmp.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\intf.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\ip.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\ip6.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\os.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\queue.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\route.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\tcp.h">
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\include\dnet\udp.h">
|
||||||
|
</File>
|
||||||
|
</Filter>
|
||||||
|
<Filter
|
||||||
|
Name="Resource Files"
|
||||||
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||||
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||||
|
</Filter>
|
||||||
|
<File
|
||||||
|
RelativePath=".\ReadMe.txt">
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
<Globals>
|
||||||
|
</Globals>
|
||||||
|
</VisualStudioProject>
|
||||||
@@ -6,7 +6,11 @@
|
|||||||
* $Id: addr-util.c,v 1.4 2005/01/23 07:36:54 dugsong Exp $
|
* $Id: addr-util.c,v 1.4 2005/01/23 07:36:54 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|||||||
@@ -8,7 +8,11 @@
|
|||||||
* $Id: addr.c,v 1.33 2005/01/23 07:36:54 dugsong Exp $
|
* $Id: addr.c,v 1.33 2005/01/23 07:36:54 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#ifdef HAVE_NET_IF_H
|
#ifdef HAVE_NET_IF_H
|
||||||
|
|||||||
@@ -6,8 +6,13 @@
|
|||||||
* $Id: arp-win32.c,v 1.12 2005/01/23 07:36:54 dugsong Exp $
|
* $Id: arp-win32.c,v 1.12 2005/01/23 07:36:54 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
#include <iphlpapi.h>
|
#include <iphlpapi.h>
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
* $Id: blob.c,v 1.4 2002/08/20 05:18:49 dugsong Exp $
|
* $Id: blob.c,v 1.4 2002/08/20 05:18:49 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
|||||||
@@ -6,12 +6,16 @@
|
|||||||
* $Id: eth-win32.c,v 1.11 2005/02/15 06:37:06 dugsong Exp $
|
* $Id: eth-win32.c,v 1.11 2005/02/15 06:37:06 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* XXX - VC++ 6.0 bogosity */
|
/* XXX - VC++ 6.0 bogosity
|
||||||
#define sockaddr_storage sockaddr
|
#define sockaddr_storage sockaddr */
|
||||||
#include <Packet32.h>
|
#include <Packet32.h>
|
||||||
#undef sockaddr_storage
|
/* #undef sockaddr_storage */
|
||||||
#include <Ntddndis.h>
|
#include <Ntddndis.h>
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
@@ -40,7 +44,7 @@ eth_open(const char *device)
|
|||||||
WCHAR *name, wbuf[2048];
|
WCHAR *name, wbuf[2048];
|
||||||
ULONG wlen;
|
ULONG wlen;
|
||||||
char *desc, *namea;
|
char *desc, *namea;
|
||||||
int i, j, alen;
|
int i, j, alen, rc;
|
||||||
OSVERSIONINFO osvi;
|
OSVERSIONINFO osvi;
|
||||||
intf_t *intf;
|
intf_t *intf;
|
||||||
|
|
||||||
@@ -56,13 +60,15 @@ eth_open(const char *device)
|
|||||||
alen = sizeof(alist) / sizeof(alist[0]);
|
alen = sizeof(alist) / sizeof(alist[0]);
|
||||||
wlen = sizeof(wbuf) / sizeof(wbuf[0]);
|
wlen = sizeof(wbuf) / sizeof(wbuf[0]);
|
||||||
|
|
||||||
PacketGetAdapterNames((char *)wbuf, &wlen);
|
rc = PacketGetAdapterNames((char *)wbuf, &wlen);
|
||||||
|
if (rc == 0) return (NULL);
|
||||||
|
|
||||||
/* Determine Windows version */
|
/* Determine Windows version */
|
||||||
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||||
GetVersionEx(&osvi);
|
GetVersionEx(&osvi);
|
||||||
|
|
||||||
if ((osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) &&
|
/* Added the 0 below for testing -- may need to find new expression */
|
||||||
|
if (0 && (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) &&
|
||||||
(osvi.dwMajorVersion >= 4)) {
|
(osvi.dwMajorVersion >= 4)) {
|
||||||
for (name = wbuf, i = 0; *name != '\0' && i < alen; i++) {
|
for (name = wbuf, i = 0; *name != '\0' && i < alen; i++) {
|
||||||
wcstombs(alist[i].name, name, sizeof(alist[0].name));
|
wcstombs(alist[i].name, name, sizeof(alist[0].name));
|
||||||
@@ -113,9 +119,9 @@ eth_open(const char *device)
|
|||||||
ssize_t
|
ssize_t
|
||||||
eth_send(eth_t *eth, const void *buf, size_t len)
|
eth_send(eth_t *eth, const void *buf, size_t len)
|
||||||
{
|
{
|
||||||
PacketInitPacket(eth->pkt, (void *)buf, len);
|
PacketInitPacket(eth->pkt, (void *)buf, (UINT) len);
|
||||||
PacketSendPacket(eth->lpa, eth->pkt, TRUE);
|
PacketSendPacket(eth->lpa, eth->pkt, TRUE);
|
||||||
return (len);
|
return ((ssize_t) len);
|
||||||
}
|
}
|
||||||
|
|
||||||
eth_t *
|
eth_t *
|
||||||
|
|||||||
@@ -6,17 +6,23 @@
|
|||||||
* $Id: intf-win32.c,v 1.24 2005/02/15 06:37:06 dugsong Exp $
|
* $Id: intf-win32.c,v 1.24 2005/02/15 06:37:06 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <windows.h>
|
||||||
#include <iphlpapi.h>
|
#include <iphlpapi.h>
|
||||||
|
|
||||||
|
#include <dnet.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "dnet.h"
|
|
||||||
|
|
||||||
struct ifcombo {
|
struct ifcombo {
|
||||||
DWORD *idx;
|
DWORD *idx;
|
||||||
@@ -150,7 +156,7 @@ _ifrow_to_entry(intf_t *intf, MIB_IFROW *ifrow, struct intf_entry *entry)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
entry->intf_len = (u_char *)ap - (u_char *)entry;
|
entry->intf_len = (unsigned int) ((u_char *)ap - (u_char *)entry);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
* $Id: intf.c,v 1.55 2005/02/10 16:57:35 dugsong Exp $
|
* $Id: intf.c,v 1.55 2005/02/10 16:57:35 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
* $Id: ip-cooked.c,v 1.17 2005/01/25 21:30:40 dugsong Exp $
|
* $Id: ip-cooked.c,v 1.17 2005/01/25 21:30:40 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
* $Id: ip-util.c,v 1.9 2005/02/17 02:55:56 dugsong Exp $
|
* $Id: ip-util.c,v 1.9 2005/02/17 02:55:56 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@@ -36,10 +40,10 @@ ip_add_option(void *buf, size_t len, int proto,
|
|||||||
hl = tcp->th_off << 2;
|
hl = tcp->th_off << 2;
|
||||||
p = (u_char *)tcp + hl;
|
p = (u_char *)tcp + hl;
|
||||||
}
|
}
|
||||||
datalen = ntohs(ip->ip_len) - (p - (u_char *)buf);
|
datalen = ntohs(ip->ip_len) - (int) (p - (u_char *)buf);
|
||||||
|
|
||||||
/* Compute padding to next word boundary. */
|
/* Compute padding to next word boundary. */
|
||||||
if ((padlen = 4 - (optlen % 4)) == 4)
|
if ((padlen = (int) (4 - (optlen % 4))) == 4)
|
||||||
padlen = 0;
|
padlen = 0;
|
||||||
|
|
||||||
/* XXX - IP_HDR_LEN_MAX == TCP_HDR_LEN_MAX */
|
/* XXX - IP_HDR_LEN_MAX == TCP_HDR_LEN_MAX */
|
||||||
@@ -66,13 +70,13 @@ ip_add_option(void *buf, size_t len, int proto,
|
|||||||
optlen += padlen;
|
optlen += padlen;
|
||||||
|
|
||||||
if (proto == IP_PROTO_IP)
|
if (proto == IP_PROTO_IP)
|
||||||
ip->ip_hl = (p - (u_char *)ip) >> 2;
|
ip->ip_hl = (uint8_t) (p - (u_char *)ip) >> 2;
|
||||||
else if (proto == IP_PROTO_TCP)
|
else if (proto == IP_PROTO_TCP)
|
||||||
tcp->th_off = (p - (u_char *)tcp) >> 2;
|
tcp->th_off = (uint8_t) (p - (u_char *)tcp) >> 2;
|
||||||
|
|
||||||
ip->ip_len = htons(ntohs(ip->ip_len) + optlen);
|
ip->ip_len = htons(ntohs(ip->ip_len) + (unsigned short) optlen);
|
||||||
|
|
||||||
return (optlen);
|
return ((ssize_t) optlen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -103,7 +107,7 @@ ip_checksum(void *buf, size_t len)
|
|||||||
if (len >= TCP_HDR_LEN) {
|
if (len >= TCP_HDR_LEN) {
|
||||||
tcp->th_sum = 0;
|
tcp->th_sum = 0;
|
||||||
sum = ip_cksum_add(tcp, len, 0) +
|
sum = ip_cksum_add(tcp, len, 0) +
|
||||||
htons(ip->ip_p + len);
|
htons(ip->ip_p + (unsigned short) len);
|
||||||
sum = ip_cksum_add(&ip->ip_src, 8, sum);
|
sum = ip_cksum_add(&ip->ip_src, 8, sum);
|
||||||
tcp->th_sum = ip_cksum_carry(sum);
|
tcp->th_sum = ip_cksum_carry(sum);
|
||||||
}
|
}
|
||||||
@@ -113,7 +117,7 @@ ip_checksum(void *buf, size_t len)
|
|||||||
if (len >= UDP_HDR_LEN) {
|
if (len >= UDP_HDR_LEN) {
|
||||||
udp->uh_sum = 0;
|
udp->uh_sum = 0;
|
||||||
sum = ip_cksum_add(udp, len, 0) +
|
sum = ip_cksum_add(udp, len, 0) +
|
||||||
htons(ip->ip_p + len);
|
htons(ip->ip_p + (unsigned short) len);
|
||||||
sum = ip_cksum_add(&ip->ip_src, 8, sum);
|
sum = ip_cksum_add(&ip->ip_src, 8, sum);
|
||||||
udp->uh_sum = ip_cksum_carry(sum);
|
udp->uh_sum = ip_cksum_carry(sum);
|
||||||
if (!udp->uh_sum)
|
if (!udp->uh_sum)
|
||||||
@@ -136,7 +140,7 @@ ip_cksum_add(const void *buf, size_t len, int cksum)
|
|||||||
uint16_t *sp = (uint16_t *)buf;
|
uint16_t *sp = (uint16_t *)buf;
|
||||||
int n, sn;
|
int n, sn;
|
||||||
|
|
||||||
sn = len / 2;
|
sn = (int) len / 2;
|
||||||
n = (sn + 15) / 16;
|
n = (sn + 15) / 16;
|
||||||
|
|
||||||
/* XXX - unroll loop using Duff's device. */
|
/* XXX - unroll loop using Duff's device. */
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <winsock2.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
@@ -55,9 +56,9 @@ ip_send(ip_t *ip, const void *buf, size_t len)
|
|||||||
|
|
||||||
ip->sin.sin_addr.s_addr = hdr->ip_src;
|
ip->sin.sin_addr.s_addr = hdr->ip_src;
|
||||||
|
|
||||||
if ((len = sendto(ip->fd, (const char *)buf, len, 0,
|
if ((len = sendto(ip->fd, (const char *)buf, (int) len, 0,
|
||||||
(struct sockaddr *)&ip->sin, sizeof(ip->sin))) != SOCKET_ERROR)
|
(struct sockaddr *)&ip->sin, sizeof(ip->sin))) != SOCKET_ERROR)
|
||||||
return (len);
|
return ((ssize_t) len);
|
||||||
|
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,11 @@
|
|||||||
* $Id: ip6.c,v 1.2 2005/01/23 07:36:54 dugsong Exp $
|
* $Id: ip6.c,v 1.2 2005/01/23 07:36:54 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "dnet.h"
|
#include "dnet.h"
|
||||||
|
|
||||||
@@ -37,7 +41,7 @@ ip6_checksum(void *buf, size_t len)
|
|||||||
|
|
||||||
if (len >= TCP_HDR_LEN) {
|
if (len >= TCP_HDR_LEN) {
|
||||||
tcp->th_sum = 0;
|
tcp->th_sum = 0;
|
||||||
sum = ip_cksum_add(tcp, len, 0) + htons(nxt + len);
|
sum = ip_cksum_add(tcp, len, 0) + htons(nxt + (unsigned short) len);
|
||||||
sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
|
sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
|
||||||
tcp->th_sum = ip_cksum_carry(sum);
|
tcp->th_sum = ip_cksum_carry(sum);
|
||||||
}
|
}
|
||||||
@@ -46,7 +50,7 @@ ip6_checksum(void *buf, size_t len)
|
|||||||
|
|
||||||
if (len >= UDP_HDR_LEN) {
|
if (len >= UDP_HDR_LEN) {
|
||||||
udp->uh_sum = 0;
|
udp->uh_sum = 0;
|
||||||
sum = ip_cksum_add(udp, len, 0) + htons(nxt + len);
|
sum = ip_cksum_add(udp, len, 0) + htons(nxt + (unsigned short) len);
|
||||||
sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
|
sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
|
||||||
if ((udp->uh_sum = ip_cksum_carry(sum)) == 0)
|
if ((udp->uh_sum = ip_cksum_carry(sum)) == 0)
|
||||||
udp->uh_sum = 0xffff;
|
udp->uh_sum = 0xffff;
|
||||||
@@ -56,7 +60,7 @@ ip6_checksum(void *buf, size_t len)
|
|||||||
|
|
||||||
if (len >= ICMP_HDR_LEN) {
|
if (len >= ICMP_HDR_LEN) {
|
||||||
icmp->icmp_cksum = 0;
|
icmp->icmp_cksum = 0;
|
||||||
sum = ip_cksum_add(icmp, len, 0) + htons(nxt + len);
|
sum = ip_cksum_add(icmp, len, 0) + htons(nxt + (unsigned short) len);
|
||||||
sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
|
sum = ip_cksum_add(&ip6->ip6_src, 32, sum);
|
||||||
icmp->icmp_cksum = ip_cksum_carry(sum);
|
icmp->icmp_cksum = ip_cksum_carry(sum);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,14 @@
|
|||||||
* $Id: route-win32.c,v 1.12 2005/02/15 07:11:32 dugsong Exp $
|
* $Id: route-win32.c,v 1.12 2005/02/15 07:11:32 dugsong Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include "dnet_winconfig.h"
|
||||||
|
#else
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <windows.h>
|
||||||
#include <ws2tcpip.h>
|
#include <ws2tcpip.h>
|
||||||
#include <iphlpapi.h>
|
#include <iphlpapi.h>
|
||||||
|
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ typedef struct _IP_ADAPTER_ORDER_MAP
|
|||||||
// of the ip_option_information structure. See RFC 791 for a complete
|
// of the ip_option_information structure. See RFC 791 for a complete
|
||||||
// description of each.
|
// description of each.
|
||||||
//
|
//
|
||||||
|
/* THESE ARE DEFINED IN DNET -- SO EXCLUDED
|
||||||
#define IP_OPT_EOL 0 // End of list option
|
#define IP_OPT_EOL 0 // End of list option
|
||||||
#define IP_OPT_NOP 1 // No operation
|
#define IP_OPT_NOP 1 // No operation
|
||||||
#define IP_OPT_SECURITY 0x82 // Security option
|
#define IP_OPT_SECURITY 0x82 // Security option
|
||||||
@@ -195,6 +196,7 @@ typedef struct _IP_ADAPTER_ORDER_MAP
|
|||||||
#define IP_OPT_TS 0x44 // Timestamp
|
#define IP_OPT_TS 0x44 // Timestamp
|
||||||
#define IP_OPT_SID 0x88 // Stream ID (obsolete)
|
#define IP_OPT_SID 0x88 // Stream ID (obsolete)
|
||||||
#define IP_OPT_ROUTER_ALERT 0x94 // Router Alert Option
|
#define IP_OPT_ROUTER_ALERT 0x94 // Router Alert Option
|
||||||
|
*/
|
||||||
|
|
||||||
#define MAX_OPT_SIZE 40 // Maximum length of IP options in bytes
|
#define MAX_OPT_SIZE 40 // Maximum length of IP options in bytes
|
||||||
|
|
||||||
|
|||||||
@@ -1,124 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 1995-1999 Microsoft Corporation
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
iptypes.h
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef IP_TYPES_INCLUDED
|
|
||||||
#define IP_TYPES_INCLUDED
|
|
||||||
|
|
||||||
#if _MSC_VER > 1000
|
|
||||||
#pragma once
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
// Definitions and structures used by getnetworkparams and getadaptersinfo apis
|
|
||||||
|
|
||||||
#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
|
|
||||||
#define MAX_ADAPTER_NAME_LENGTH 256 // arb.
|
|
||||||
#define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
|
|
||||||
#define DEFAULT_MINIMUM_ENTITIES 32 // arb.
|
|
||||||
#define MAX_HOSTNAME_LEN 128 // arb.
|
|
||||||
#define MAX_DOMAIN_NAME_LEN 128 // arb.
|
|
||||||
#define MAX_SCOPE_ID_LEN 256 // arb.
|
|
||||||
|
|
||||||
//
|
|
||||||
// types
|
|
||||||
//
|
|
||||||
|
|
||||||
// Node Type
|
|
||||||
|
|
||||||
#define BROADCAST_NODETYPE 1
|
|
||||||
#define PEER_TO_PEER_NODETYPE 2
|
|
||||||
#define MIXED_NODETYPE 4
|
|
||||||
#define HYBRID_NODETYPE 8
|
|
||||||
|
|
||||||
// Adapter Type
|
|
||||||
|
|
||||||
#define IF_OTHER_ADAPTERTYPE 0
|
|
||||||
#define IF_ETHERNET_ADAPTERTYPE 1
|
|
||||||
#define IF_TOKEN_RING_ADAPTERTYPE 2
|
|
||||||
#define IF_FDDI_ADAPTERTYPE 3
|
|
||||||
#define IF_PPP_ADAPTERTYPE 4
|
|
||||||
#define IF_LOOPBACK_ADAPTERTYPE 5
|
|
||||||
#define IF_SLIP_ADAPTERTYPE 6
|
|
||||||
|
|
||||||
//
|
|
||||||
// IP_ADDRESS_STRING - store an IP address as a dotted decimal string
|
|
||||||
//
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char String[4 * 4];
|
|
||||||
} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
|
|
||||||
|
|
||||||
//
|
|
||||||
// IP_ADDR_STRING - store an IP address with its corresponding subnet mask,
|
|
||||||
// both as dotted decimal strings
|
|
||||||
//
|
|
||||||
|
|
||||||
typedef struct _IP_ADDR_STRING {
|
|
||||||
struct _IP_ADDR_STRING* Next;
|
|
||||||
IP_ADDRESS_STRING IpAddress;
|
|
||||||
IP_MASK_STRING IpMask;
|
|
||||||
DWORD Context;
|
|
||||||
} IP_ADDR_STRING, *PIP_ADDR_STRING;
|
|
||||||
|
|
||||||
//
|
|
||||||
// ADAPTER_INFO - per-adapter information. All IP addresses are stored as
|
|
||||||
// strings
|
|
||||||
//
|
|
||||||
|
|
||||||
typedef struct _IP_ADAPTER_INFO {
|
|
||||||
struct _IP_ADAPTER_INFO* Next;
|
|
||||||
DWORD ComboIndex;
|
|
||||||
char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
|
|
||||||
char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
|
|
||||||
UINT AddressLength;
|
|
||||||
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
|
|
||||||
DWORD Index;
|
|
||||||
UINT Type;
|
|
||||||
UINT DhcpEnabled;
|
|
||||||
PIP_ADDR_STRING CurrentIpAddress;
|
|
||||||
IP_ADDR_STRING IpAddressList;
|
|
||||||
IP_ADDR_STRING GatewayList;
|
|
||||||
IP_ADDR_STRING DhcpServer;
|
|
||||||
BOOL HaveWins;
|
|
||||||
IP_ADDR_STRING PrimaryWinsServer;
|
|
||||||
IP_ADDR_STRING SecondaryWinsServer;
|
|
||||||
time_t LeaseObtained;
|
|
||||||
time_t LeaseExpires;
|
|
||||||
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
|
|
||||||
|
|
||||||
//
|
|
||||||
// IP_PER_ADAPTER_INFO - per-adapter IP information such as DNS server list.
|
|
||||||
//
|
|
||||||
|
|
||||||
typedef struct _IP_PER_ADAPTER_INFO {
|
|
||||||
UINT AutoconfigEnabled;
|
|
||||||
UINT AutoconfigActive;
|
|
||||||
PIP_ADDR_STRING CurrentDnsServer;
|
|
||||||
IP_ADDR_STRING DnsServerList;
|
|
||||||
} IP_PER_ADAPTER_INFO, *PIP_PER_ADAPTER_INFO;
|
|
||||||
|
|
||||||
//
|
|
||||||
// FIXED_INFO - the set of IP-related information which does not depend on DHCP
|
|
||||||
//
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char HostName[MAX_HOSTNAME_LEN + 4] ;
|
|
||||||
char DomainName[MAX_DOMAIN_NAME_LEN + 4];
|
|
||||||
PIP_ADDR_STRING CurrentDnsServer;
|
|
||||||
IP_ADDR_STRING DnsServerList;
|
|
||||||
UINT NodeType;
|
|
||||||
char ScopeId[MAX_SCOPE_ID_LEN + 4];
|
|
||||||
UINT EnableRouting;
|
|
||||||
UINT EnableProxy;
|
|
||||||
UINT EnableDns;
|
|
||||||
} FIXED_INFO, *PFIXED_INFO;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -145,10 +145,10 @@ struct ip_timestamp {
|
|||||||
ipt_flg:4; /* flags, see below */
|
ipt_flg:4; /* flags, see below */
|
||||||
#endif
|
#endif
|
||||||
union ipt_timestamp {
|
union ipt_timestamp {
|
||||||
n_long ipt_time[1];
|
u_int32_t ipt_time[1];
|
||||||
struct ipt_ta {
|
struct ipt_ta {
|
||||||
struct in_addr ipt_addr;
|
struct in_addr ipt_addr;
|
||||||
n_long ipt_time;
|
u_int32_t ipt_time;
|
||||||
} ipt_ta[1];
|
} ipt_ta[1];
|
||||||
} ipt_timestamp;
|
} ipt_timestamp;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -49,15 +49,15 @@ struct icmp {
|
|||||||
u_char ih_pptr; /* ICMP_PARAMPROB */
|
u_char ih_pptr; /* ICMP_PARAMPROB */
|
||||||
struct in_addr ih_gwaddr; /* ICMP_REDIRECT */
|
struct in_addr ih_gwaddr; /* ICMP_REDIRECT */
|
||||||
struct ih_idseq {
|
struct ih_idseq {
|
||||||
n_short icd_id;
|
u_short icd_id;
|
||||||
n_short icd_seq;
|
u_short icd_seq;
|
||||||
} ih_idseq;
|
} ih_idseq;
|
||||||
int ih_void;
|
int ih_void;
|
||||||
|
|
||||||
/* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
|
/* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
|
||||||
struct ih_pmtu {
|
struct ih_pmtu {
|
||||||
n_short ipm_void;
|
u_short ipm_void;
|
||||||
n_short ipm_nextmtu;
|
u_short ipm_nextmtu;
|
||||||
} ih_pmtu;
|
} ih_pmtu;
|
||||||
} icmp_hun;
|
} icmp_hun;
|
||||||
#define icmp_pptr icmp_hun.ih_pptr
|
#define icmp_pptr icmp_hun.ih_pptr
|
||||||
@@ -69,9 +69,9 @@ struct icmp {
|
|||||||
#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
|
#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu
|
||||||
union {
|
union {
|
||||||
struct id_ts {
|
struct id_ts {
|
||||||
n_time its_otime;
|
u_int32_t its_otime;
|
||||||
n_time its_rtime;
|
u_int32_t its_rtime;
|
||||||
n_time its_ttime;
|
u_int32_t its_ttime;
|
||||||
} id_ts;
|
} id_ts;
|
||||||
struct id_ip {
|
struct id_ip {
|
||||||
struct ip idi_ip;
|
struct ip idi_ip;
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -7,6 +7,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nmap", "nmap.vcproj", "{361
|
|||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
{CB578003-213B-4316-B5BC-2D71A081A65A} = {CB578003-213B-4316-B5BC-2D71A081A65A}
|
{CB578003-213B-4316-B5BC-2D71A081A65A} = {CB578003-213B-4316-B5BC-2D71A081A65A}
|
||||||
{5DE86C7A-DE72-4265-8807-4CA38F94F22A} = {5DE86C7A-DE72-4265-8807-4CA38F94F22A}
|
{5DE86C7A-DE72-4265-8807-4CA38F94F22A} = {5DE86C7A-DE72-4265-8807-4CA38F94F22A}
|
||||||
|
{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C} = {5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}
|
||||||
{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4} = {F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}
|
{F8D6D1E3-D4EA-402C-98AA-168E5309BAF4} = {F8D6D1E3-D4EA-402C-98AA-168E5309BAF4}
|
||||||
{B630C8F7-3138-43E8-89ED-78742FA2AC5F} = {B630C8F7-3138-43E8-89ED-78742FA2AC5F}
|
{B630C8F7-3138-43E8-89ED-78742FA2AC5F} = {B630C8F7-3138-43E8-89ED-78742FA2AC5F}
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
@@ -24,6 +25,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nbase", "..\nbase\nbase.vcp
|
|||||||
ProjectSection(ProjectDependencies) = postProject
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dnet", "..\libdnet-stripped\libdnet-stripped.vcproj", "{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
GlobalSection(SolutionConfiguration) = preSolution
|
||||||
Debug = Debug
|
Debug = Debug
|
||||||
@@ -50,6 +55,10 @@ Global
|
|||||||
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Debug.Build.0 = Debug|Win32
|
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Debug.Build.0 = Debug|Win32
|
||||||
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Release.ActiveCfg = Release|Win32
|
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Release.ActiveCfg = Release|Win32
|
||||||
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Release.Build.0 = Release|Win32
|
{B630C8F7-3138-43E8-89ED-78742FA2AC5F}.Release.Build.0 = Release|Win32
|
||||||
|
{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}.Debug.ActiveCfg = Debug|Win32
|
||||||
|
{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}.Debug.Build.0 = Debug|Win32
|
||||||
|
{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}.Release.ActiveCfg = Release|Win32
|
||||||
|
{5328E0BE-BC0A-4C2A-8CB9-CE00B61B9C4C}.Release.Build.0 = Release|Win32
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
AdditionalIncludeDirectories=".;..;../nbase;../libpcre;winip;..\nsock\include;"pcap-include""
|
AdditionalIncludeDirectories=".;..;../nbase;../libpcre;winip;..\nsock\include;"pcap-include";"..\libdnet-stripped\include""
|
||||||
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE"
|
PreprocessorDefinitions="_DEBUG;WIN32;_CONSOLE"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
@@ -39,11 +39,11 @@
|
|||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="ws2_32.lib iphlpapi.lib wpcap.lib packet.lib nsock.lib libpcre.lib nbase.lib $(NOINHERIT)"
|
AdditionalDependencies="nsock.lib libpcre.lib nbase.lib libdnet-stripped.lib ws2_32.lib IPHlpAPI.Lib wpcap.lib packet.lib $(NOINHERIT)"
|
||||||
OutputFile=".\Debug/nmap.exe"
|
OutputFile=".\Debug/nmap.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
SuppressStartupBanner="TRUE"
|
SuppressStartupBanner="TRUE"
|
||||||
AdditionalLibraryDirectories="winip;lib;..\libpcre;..\nsock;..\nbase"
|
AdditionalLibraryDirectories="lib;..\libpcre;..\nsock;..\nbase;"..\libdnet-stripped""
|
||||||
IgnoreDefaultLibraryNames=""
|
IgnoreDefaultLibraryNames=""
|
||||||
DelayLoadDLLs="packet.dll,wpcap.dll,iphlpapi.dll"
|
DelayLoadDLLs="packet.dll,wpcap.dll,iphlpapi.dll"
|
||||||
GenerateDebugInformation="TRUE"
|
GenerateDebugInformation="TRUE"
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories=".;..;../nbase;../libpcre;winip;..\nsock\include;"pcap-include""
|
AdditionalIncludeDirectories=".;..;../nbase;../libpcre;winip;..\nsock\include;"pcap-include";"..\libdnet-stripped\include""
|
||||||
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
|
PreprocessorDefinitions="NDEBUG;WIN32;_CONSOLE"
|
||||||
StringPooling="TRUE"
|
StringPooling="TRUE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
@@ -103,11 +103,11 @@
|
|||||||
Name="VCCustomBuildTool"/>
|
Name="VCCustomBuildTool"/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="ws2_32.lib iphlpapi.lib wpcap.lib packet.lib nsock.lib libpcre.lib nbase.lib $(NOINHERIT)"
|
AdditionalDependencies="ws2_32.lib IPHlpAPI.Lib wpcap.lib packet.lib nsock.lib libpcre.lib nbase.lib libdnet-stripped.lib $(NOINHERIT)"
|
||||||
OutputFile=".\Release/nmap.exe"
|
OutputFile=".\Release/nmap.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="TRUE"
|
SuppressStartupBanner="TRUE"
|
||||||
AdditionalLibraryDirectories="winip;lib;..\libpcre;..\nsock;..\nbase"
|
AdditionalLibraryDirectories="lib;..\libpcre;..\nsock;..\nbase;"..\libdnet-stripped""
|
||||||
IgnoreDefaultLibraryNames=""
|
IgnoreDefaultLibraryNames=""
|
||||||
DelayLoadDLLs="packet.dll,iphlpapi.dll,wpcap.dll"
|
DelayLoadDLLs="packet.dll,iphlpapi.dll,wpcap.dll"
|
||||||
ProgramDatabaseFile=".\Release/nmap.pdb"
|
ProgramDatabaseFile=".\Release/nmap.pdb"
|
||||||
@@ -243,28 +243,6 @@
|
|||||||
<File
|
<File
|
||||||
RelativePath="nmap.rc">
|
RelativePath="nmap.rc">
|
||||||
</File>
|
</File>
|
||||||
<File
|
|
||||||
RelativePath="winip\pcapsend.c">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
CompileAs="2"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="1"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
CompileAs="2"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
<File
|
||||||
RelativePath="winip\rawrecv.c">
|
RelativePath="winip\rawrecv.c">
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
@@ -337,26 +315,7 @@
|
|||||||
RelativePath="winfix.cc">
|
RelativePath="winfix.cc">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="winip\winip.c">
|
RelativePath=".\winip\winip.cc">
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
CompileAs="2"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="1"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
CompileAs="2"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
|
|
||||||
typedef long n_long;
|
typedef long n_long;
|
||||||
typedef short n_short;
|
|
||||||
typedef long n_time;
|
typedef long n_time;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
|
|
||||||
iphlpapi.h: declares the subset of iphlpapi needed to compile
|
|
||||||
Copyright (C) 2000 Andy Lutomirski
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License, version 2.1, as published by the Free Software
|
|
||||||
Foundation, with the exception that if this copy of the library
|
|
||||||
is distributed under the Lesser GNU Public License (as opposed
|
|
||||||
to the ordinary GPL), you may ignore section 6b, and that all
|
|
||||||
copies distributed without exercising section 3 must retain this
|
|
||||||
paragraph in its entirety.
|
|
||||||
|
|
||||||
This library 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
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __IPHLPAPI_H__
|
|
||||||
#ifndef __IPHLPAPI_FAKE_H__
|
|
||||||
#define __IPHLPAPI_FAKE_H__
|
|
||||||
|
|
||||||
#include <windows.h>
|
|
||||||
#include <iprtrmib.h>
|
|
||||||
#include <ipexport.h>
|
|
||||||
#include <iptypes.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DWORD __declspec(dllimport) __stdcall GetIfTable(PMIB_IFTABLE, DWORD*, BOOL);
|
|
||||||
DWORD __declspec(dllimport) __stdcall GetIpAddrTable(PMIB_IPADDRTABLE, DWORD*, BOOL);
|
|
||||||
DWORD __declspec(dllimport) __stdcall GetIpNetTable(PMIB_IPNETTABLE, DWORD*, BOOL);
|
|
||||||
DWORD __declspec(dllimport) __stdcall GetIpForwardTable(PMIB_IPFORWARDTABLE, DWORD*, BOOL);
|
|
||||||
DWORD __declspec(dllimport) __stdcall GetIfEntry(PMIB_IFROW);
|
|
||||||
DWORD __declspec(dllimport) __stdcall SendARP( int, int, PULONG, PULONG );
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
@@ -659,9 +659,11 @@ typedef DWORD (__stdcall *PGBI)(IPAddr, PDWORD);
|
|||||||
int win32_sendto(int sd, const char *packet, int len,
|
int win32_sendto(int sd, const char *packet, int len,
|
||||||
unsigned int flags, struct sockaddr *to, int tolen)
|
unsigned int flags, struct sockaddr *to, int tolen)
|
||||||
{
|
{
|
||||||
|
/* COMMENTED OUT SINCE pcapsend* is obsolete -- need to use new Nmap infrastructure
|
||||||
if(sd == 501)
|
if(sd == 501)
|
||||||
return pcapsendraw(packet, len, to, tolen);
|
return pcapsendraw(packet, len, to, tolen);
|
||||||
else return sendto(sd, packet, len, flags, to, tolen);
|
else */
|
||||||
|
return sendto(sd, packet, len, flags, to, tolen);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Sendto(char *functionname, int sd, const unsigned char *packet, int len,
|
int Sendto(char *functionname, int sd, const unsigned char *packet, int len,
|
||||||
@@ -679,7 +681,9 @@ int win32_socket(int af, int type, int proto)
|
|||||||
if(type == SOCK_RAW && proto == IPPROTO_RAW)
|
if(type == SOCK_RAW && proto == IPPROTO_RAW)
|
||||||
{
|
{
|
||||||
winip_test(1);
|
winip_test(1);
|
||||||
pcapsend_init();
|
/* no longer using this pcapsend stuff
|
||||||
|
pcapsend_init();
|
||||||
|
*/
|
||||||
return 501;
|
return 501;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,8 +64,13 @@ frame-relay(32)
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <pcap.h>
|
#include <winsock2.h>
|
||||||
|
#include <windows.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#include <iphlpapi.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
#define IF_other 1
|
#define IF_other 1
|
||||||
#define IF_regular1822 2
|
#define IF_regular1822 2
|
||||||
#define IF_hdh1822 3
|
#define IF_hdh1822 3
|
||||||
@@ -98,8 +103,7 @@ frame-relay(32)
|
|||||||
#define IF_ds3 30
|
#define IF_ds3 30
|
||||||
#define IF_sip 31
|
#define IF_sip 31
|
||||||
#define IF_frame_relay 32
|
#define IF_frame_relay 32
|
||||||
|
*/
|
||||||
#include <windows.h>
|
|
||||||
|
|
||||||
#ifndef EXTERNC
|
#ifndef EXTERNC
|
||||||
# ifdef __cplusplus
|
# ifdef __cplusplus
|
||||||
@@ -109,16 +113,15 @@ frame-relay(32)
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// change to <iphlpapi.h> if you have the SDK
|
|
||||||
#include "iphlpapi.h"
|
|
||||||
|
|
||||||
// windows-specific options
|
// windows-specific options
|
||||||
|
|
||||||
|
#include <pcap.h>
|
||||||
struct winops {
|
struct winops {
|
||||||
int norawsock, nopcap, forcerawsock, listinterfaces, nt4route, noiphlpapi, trace;
|
int norawsock, nopcap, forcerawsock, listinterfaces, nt4route, noiphlpapi, trace;
|
||||||
};
|
};
|
||||||
|
|
||||||
EXTERNC struct winops wo;
|
/* struct winops wo;
|
||||||
|
*/
|
||||||
|
|
||||||
/* Sets a pcap filter function -- makes SOCK_RAW reads easier */
|
/* Sets a pcap filter function -- makes SOCK_RAW reads easier */
|
||||||
typedef int (*PFILTERFN)(const char *packet, unsigned int len); /* 1 to keep */
|
typedef int (*PFILTERFN)(const char *packet, unsigned int len); /* 1 to keep */
|
||||||
@@ -172,9 +175,9 @@ EXTERNC int get_best_route(DWORD dest, PMIB_IPFORWARDROW r);
|
|||||||
|
|
||||||
|
|
||||||
// pcapsend interface
|
// pcapsend interface
|
||||||
EXTERNC void pcapsend_init();
|
void pcapsend_init();
|
||||||
EXTERNC pcap_t *my_real_pcap_open_live(const char *device, int snaplen, int promisc, int to_ms);
|
EXTERNC pcap_t *my_real_pcap_open_live(const char *device, int snaplen, int promisc, int to_ms);
|
||||||
EXTERNC int pcapsendraw(const char *packet, int len,
|
int pcapsendraw(const char *packet, int len,
|
||||||
struct sockaddr *to, int tolen);
|
struct sockaddr *to, int tolen);
|
||||||
|
|
||||||
// rawrecv interface
|
// rawrecv interface
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=F%UCK=E%ULEN=134%DAT=E)
|
|||||||
# Aethra Vega Star Gold (Videoconferencing appliance)
|
# Aethra Vega Star Gold (Videoconferencing appliance)
|
||||||
# Aethra Video Conference System Vega Pro S running pSOSystem
|
# Aethra Video Conference System Vega Pro S running pSOSystem
|
||||||
Fingerprint Aethra Vega Conference System
|
Fingerprint Aethra Vega Conference System
|
||||||
Class Aethra | embedded || webcom
|
Class Aethra | embedded || webcam
|
||||||
TSeq(Class=RI%gcd=<6%SI=<2F97016&>79D33%IPID=I%TS=U)
|
TSeq(Class=RI%gcd=<6%SI=<2F97016&>79D33%IPID=I%TS=U)
|
||||||
T1(DF=N%W=7FFF%ACK=S++%Flags=AS%Ops=ME)
|
T1(DF=N%W=7FFF%ACK=S++%Flags=AS%Ops=ME)
|
||||||
T2(Resp=N)
|
T2(Resp=N)
|
||||||
@@ -1888,7 +1888,7 @@ PU(Resp=N)
|
|||||||
|
|
||||||
# Audio Codes MP-104 - VoIP Gateway FXO (version 4.0.282.350)
|
# Audio Codes MP-104 - VoIP Gateway FXO (version 4.0.282.350)
|
||||||
Fingerprint AudioCodes MP-104 VoIP Gateway FXO
|
Fingerprint AudioCodes MP-104 VoIP Gateway FXO
|
||||||
Class AudioCodes | embedded || VOIP Gateway
|
Class AudioCodes | embedded || VoIP gateway
|
||||||
TSeq(Class=TD%gcd=<3D094%SI=<1E%IPID=I%TS=1000HZ)
|
TSeq(Class=TD%gcd=<3D094%SI=<1E%IPID=I%TS=1000HZ)
|
||||||
T1(DF=N%W=20F4%ACK=S++%Flags=AS%Ops=MNWNNT)
|
T1(DF=N%W=20F4%ACK=S++%Flags=AS%Ops=MNWNNT)
|
||||||
T2(Resp=N)
|
T2(Resp=N)
|
||||||
@@ -1901,7 +1901,7 @@ PU(Resp=N)
|
|||||||
|
|
||||||
# AudioCodes MP-108 FXS (iptele gateway) version: 4.40.162.274
|
# AudioCodes MP-108 FXS (iptele gateway) version: 4.40.162.274
|
||||||
Fingerprint AudioCodes MP-108 VoIP Gateway FXS
|
Fingerprint AudioCodes MP-108 VoIP Gateway FXS
|
||||||
Class AudioCodes | embedded || VOIP Gateway
|
Class AudioCodes | embedded || VoIP gateway
|
||||||
TSeq(Class=TD%gcd=<3D094%SI=<1E%IPID=I%TS=1000HZ)
|
TSeq(Class=TD%gcd=<3D094%SI=<1E%IPID=I%TS=1000HZ)
|
||||||
T1(DF=N%W=209D%ACK=S++%Flags=AS%Ops=MENWNNT)
|
T1(DF=N%W=209D%ACK=S++%Flags=AS%Ops=MENWNNT)
|
||||||
T2(Resp=N)
|
T2(Resp=N)
|
||||||
@@ -3567,7 +3567,7 @@ PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
|
|||||||
# telephone to be used as a voice-over-IP phone. There is a
|
# telephone to be used as a voice-over-IP phone. There is a
|
||||||
# variation, the ATA 188 that has a pass-through port, much like the
|
# variation, the ATA 188 that has a pass-through port, much like the
|
||||||
# Cisco 7960 phone.
|
# Cisco 7960 phone.
|
||||||
Fingerprint Cisco ATA 186 POTS<->VOIP phone gateway device
|
Fingerprint Cisco ATA 186 POTS<->VoIP phone gateway device
|
||||||
Class Cisco | embedded || VoIP adapter
|
Class Cisco | embedded || VoIP adapter
|
||||||
TSeq(Class=TD%gcd=<A0000%SI=<1E%IPID=I%TS=U)
|
TSeq(Class=TD%gcd=<A0000%SI=<1E%IPID=I%TS=U)
|
||||||
T1(DF=N%W=3E80%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=3E80%ACK=S++%Flags=AS%Ops=M)
|
||||||
@@ -8062,7 +8062,7 @@ T6(DF=Y%W=C00|1000%ACK=S++%Flags=AR%Ops=)
|
|||||||
T7(DF=Y%W=800|C00|400%ACK=S++%Flags=AR%Ops=)
|
T7(DF=Y%W=800|C00|400%ACK=S++%Flags=AR%Ops=)
|
||||||
PU(Resp=N)
|
PU(Resp=N)
|
||||||
|
|
||||||
# Grandstream BudgeTone101 VOIP phone, firmware 1.0.4.50
|
# Grandstream BudgeTone101 VoIP phone, firmware 1.0.4.50
|
||||||
Fingerprint Grandstream BT-101 IP phone
|
Fingerprint Grandstream BT-101 IP phone
|
||||||
Class GrandStream | embedded || VoIP phone
|
Class GrandStream | embedded || VoIP phone
|
||||||
TSeq(Class=C%Val=75DFD55D%IPID=I%TS=U)
|
TSeq(Class=C%Val=75DFD55D%IPID=I%TS=U)
|
||||||
@@ -8252,7 +8252,7 @@ PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=F%RIPCK=0%UCK=0%ULEN=134%DAT=E)
|
|||||||
# HP Deskjet 6127, firmware FD4R019A
|
# HP Deskjet 6127, firmware FD4R019A
|
||||||
Fingerprint HP Deskjet 6127 printer or InkJet 1200 printer server
|
Fingerprint HP Deskjet 6127 printer or InkJet 1200 printer server
|
||||||
Class HP | embedded || printer
|
Class HP | embedded || printer
|
||||||
Class HP | embedded || printer server
|
Class HP | embedded || print server
|
||||||
TSeq(Class=TD%gcd=<3D094%SI=<14%IPID=I%TS=1000HZ)
|
TSeq(Class=TD%gcd=<3D094%SI=<14%IPID=I%TS=1000HZ)
|
||||||
T1(DF=Y|N%W=8E5%ACK=S++%Flags=AS%Ops=MENWNNT)
|
T1(DF=Y|N%W=8E5%ACK=S++%Flags=AS%Ops=MENWNNT)
|
||||||
T2(Resp=N)
|
T2(Resp=N)
|
||||||
@@ -9797,7 +9797,7 @@ PU(Resp=N)
|
|||||||
|
|
||||||
# innovaphone 200 V4.00 sr4 IP200[02-4283], Bootcode[205], HW[202] 2048/8192
|
# innovaphone 200 V4.00 sr4 IP200[02-4283], Bootcode[205], HW[202] 2048/8192
|
||||||
# innovaphone IP400 V4.00 hotfix IP400[02-4253], Bootcode[315], HW[102] 2048/4096
|
# innovaphone IP400 V4.00 hotfix IP400[02-4253], Bootcode[315], HW[102] 2048/4096
|
||||||
Fingerprint innovaphone IP200/IP400 VOIP phone/gateway
|
Fingerprint innovaphone IP200/IP400 VoIP phone/gateway
|
||||||
Class innovaphone | embedded || telecom-misc
|
Class innovaphone | embedded || telecom-misc
|
||||||
TSeq(Class=TD%gcd=<714%SI=<14%IPID=I%TS=U)
|
TSeq(Class=TD%gcd=<714%SI=<14%IPID=I%TS=U)
|
||||||
T1(DF=N%W=FA0|2800%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=FA0|2800%ACK=S++%Flags=AS%Ops=M)
|
||||||
@@ -10174,7 +10174,7 @@ T7(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
|
|||||||
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
|
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
|
||||||
|
|
||||||
Fingerprint KIRK Wireless Server 600
|
Fingerprint KIRK Wireless Server 600
|
||||||
Class KIRK | embedded || VoIP Gateway
|
Class KIRK | embedded || VoIP gateway
|
||||||
TSeq(Class=TD%gcd=<714%SI=<14%IPID=I%TS=U)
|
TSeq(Class=TD%gcd=<714%SI=<14%IPID=I%TS=U)
|
||||||
T1(DF=N%W=2800%ACK=S++%Flags=AS%Ops=ME)
|
T1(DF=N%W=2800%ACK=S++%Flags=AS%Ops=ME)
|
||||||
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
|
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
|
||||||
@@ -10845,8 +10845,8 @@ PU(Resp=N)
|
|||||||
# Linksys BEFSR81v2 Router with firmware 2.45.10
|
# Linksys BEFSR81v2 Router with firmware 2.45.10
|
||||||
# Linksys EtherFast Cable/DSL Router (Model: BEFSR41 Ver 2)(Updated Firmware ver. 1.46.02, Aug 03+2004)
|
# Linksys EtherFast Cable/DSL Router (Model: BEFSR41 Ver 2)(Updated Firmware ver. 1.46.02, Aug 03+2004)
|
||||||
# Linksys Wireless-B Broadband Router BEFW11S4 Firmware v.1.50.14
|
# Linksys Wireless-B Broadband Router BEFW11S4 Firmware v.1.50.14
|
||||||
# Linksys RT31P2 VOIP router (Vonage; firmware version 1.28.00; internal interface)
|
# Linksys RT31P2 VoIP router (Vonage; firmware version 1.28.00; internal interface)
|
||||||
Fingerprint Linksys BEFW11S4/BEFSR41/BEFSR81/WRK54G broadband router or RT31P2 VOIP router
|
Fingerprint Linksys BEFW11S4/BEFSR41/BEFSR81/WRK54G broadband router or RT31P2 VoIP router
|
||||||
Class Linksys | embedded || WAP
|
Class Linksys | embedded || WAP
|
||||||
TSeq(Class=TD%gcd=<FF%SI=<1E%IPID=I%TS=U)
|
TSeq(Class=TD%gcd=<FF%SI=<1E%IPID=I%TS=U)
|
||||||
T1(DF=N%W=16D0%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=16D0%ACK=S++%Flags=AS%Ops=M)
|
||||||
@@ -16213,7 +16213,7 @@ T5(DF=N%W=0%ACK=O%Flags=R%Ops=)
|
|||||||
T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
|
T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
|
||||||
T7(DF=N%W=0%ACK=O%Flags=R%Ops=)
|
T7(DF=N%W=0%ACK=O%Flags=R%Ops=)
|
||||||
|
|
||||||
Fingerprint MultiTech MultiVOIP Version 2.01A Firmware
|
Fingerprint MultiTech MultiVoIP Version 2.01A Firmware
|
||||||
Class MultiTech | embedded || telecom-misc
|
Class MultiTech | embedded || telecom-misc
|
||||||
TSeq(Class=TD%gcd=<714%SI=<14)
|
TSeq(Class=TD%gcd=<714%SI=<14)
|
||||||
T1(DF=N%W=600%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=600%ACK=S++%Flags=AS%Ops=M)
|
||||||
@@ -16251,7 +16251,7 @@ PU(Resp=Y%DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=F%ULEN=134%DAT=E)
|
|||||||
|
|
||||||
# Multi-Tech Voice over IP Box. Model number (MultiVoip 2410)
|
# Multi-Tech Voice over IP Box. Model number (MultiVoip 2410)
|
||||||
Fingerprint MultiTech MultiVoip 2410
|
Fingerprint MultiTech MultiVoip 2410
|
||||||
Class MultiTech | embedded || VOIP Gateway
|
Class MultiTech | embedded || VoIP gateway
|
||||||
TSeq(Class=TD%gcd=<1F502%SI=<1E%TS=U)
|
TSeq(Class=TD%gcd=<1F502%SI=<1E%TS=U)
|
||||||
T1(DF=N%W=2000%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=2000%ACK=S++%Flags=AS%Ops=M)
|
||||||
T2(Resp=Y%DF=N%W=400|800%ACK=S%Flags=AR%Ops=WNMETL)
|
T2(Resp=Y%DF=N%W=400|800%ACK=S%Flags=AR%Ops=WNMETL)
|
||||||
@@ -19808,13 +19808,13 @@ T6(DF=N%W=0%ACK=O%Flags=R%Ops=)
|
|||||||
T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)
|
T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)
|
||||||
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=0%UCK=E%ULEN=134%DAT=E)
|
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=0%UCK=E%ULEN=134%DAT=E)
|
||||||
|
|
||||||
# Sipura SPA-2000 VOIP Firmware version 2.09d
|
# Sipura SPA-2000 VoIP Firmware version 2.09d
|
||||||
# SPA-841 VOIP Phone (SIP) with firmware 0.9.5
|
# SPA-841 VoIP Phone (SIP) with firmware 0.9.5
|
||||||
# Sipura SPA SPA-1000 Software Version: 1.0.33 Hardware Version: 2.0.1
|
# Sipura SPA SPA-1000 Software Version: 1.0.33 Hardware Version: 2.0.1
|
||||||
# Sipura SPA-2000 VoIP Adapter
|
# Sipura SPA-2000 VoIP Adapter
|
||||||
# Sipura SPA-2000 Software Version: 2.0.10(d) IP Phone Adaptor
|
# Sipura SPA-2000 Software Version: 2.0.10(d) IP Phone Adaptor
|
||||||
# Sipura SPA-3000, firmware 2.0.13(GWg)
|
# Sipura SPA-3000, firmware 2.0.13(GWg)
|
||||||
Fingerprint Sipura SPA-841/1000/2000/3000 POTS<->VOIP gateway
|
Fingerprint Sipura SPA-841/1000/2000/3000 POTS<->VoIP gateway
|
||||||
Class Sipura | embedded || VoIP adapter
|
Class Sipura | embedded || VoIP adapter
|
||||||
TSeq(Class=TR%gcd=<6%IPID=I%TS=U)
|
TSeq(Class=TR%gcd=<6%IPID=I%TS=U)
|
||||||
T1(DF=N%W=3E80%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=3E80%ACK=S++%Flags=AS%Ops=M)
|
||||||
@@ -20907,7 +20907,7 @@ PU(DF=N%TOS=0%IPLEN=70%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%DAT=E)
|
|||||||
# Signal Network Technology Co, Ltd, VoIP appliance model sp100x running firmware version SP100X3.0.1
|
# Signal Network Technology Co, Ltd, VoIP appliance model sp100x running firmware version SP100X3.0.1
|
||||||
Fingerprint CPV Telsey broadband + voip residential gateway or Signal SP100x VoIP appliance
|
Fingerprint CPV Telsey broadband + voip residential gateway or Signal SP100x VoIP appliance
|
||||||
Class Telsey | embedded || broadband router
|
Class Telsey | embedded || broadband router
|
||||||
Class Signal | embedded || VoIP Gateway
|
Class Signal | embedded || VoIP gateway
|
||||||
TSeq(Class=TD%gcd=<138C%SI=<1E%IPID=I%TS=U)
|
TSeq(Class=TD%gcd=<138C%SI=<1E%IPID=I%TS=U)
|
||||||
T1(DF=N%W=578%ACK=S++%Flags=AS%Ops=M)
|
T1(DF=N%W=578%ACK=S++%Flags=AS%Ops=M)
|
||||||
T2(Resp=N)
|
T2(Resp=N)
|
||||||
|
|||||||
@@ -1981,6 +1981,7 @@ pcanywheredata 5631/tcp #
|
|||||||
pcanywherestat 5632/tcp #
|
pcanywherestat 5632/tcp #
|
||||||
pcanywherestat 5632/udp #
|
pcanywherestat 5632/udp #
|
||||||
canna 5680/tcp # Canna (Japanese Input)
|
canna 5680/tcp # Canna (Japanese Input)
|
||||||
|
activesync 5679/tcp # Microsoft ActiveSync PDY synchronization
|
||||||
proshareaudio 5713/tcp # proshare conf audio
|
proshareaudio 5713/tcp # proshare conf audio
|
||||||
proshareaudio 5713/udp # proshare conf audio
|
proshareaudio 5713/udp # proshare conf audio
|
||||||
prosharevideo 5714/tcp # proshare conf video
|
prosharevideo 5714/tcp # proshare conf video
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
#ifndef NMAP_WINCONFIG_H
|
#ifndef NMAP_WINCONFIG_H
|
||||||
#define NMAP_WINCONFIG_H
|
#define NMAP_WINCONFIG_H
|
||||||
|
|
||||||
#define NMAP_VERSION "3.82"
|
#define NMAP_VERSION "3.83.DC14"
|
||||||
#define NMAP_NAME "nmap"
|
#define NMAP_NAME "nmap"
|
||||||
#define NMAP_URL "http://www.insecure.org/nmap"
|
#define NMAP_URL "http://www.insecure.org/nmap"
|
||||||
#define NMAP_PLATFORM "i686-pc-windows-windows"
|
#define NMAP_PLATFORM "i686-pc-windows-windows"
|
||||||
|
|||||||
11
output.cc
11
output.cc
@@ -502,7 +502,7 @@ log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "%d service%s unrecognized despite ret
|
|||||||
log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "%s\n", saved_servicefps[i]);
|
log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "%s\n", saved_servicefps[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
char* xml_convert (const char* str) {
|
char* xml_convert (const char* str) {
|
||||||
@@ -737,6 +737,7 @@ void output_ports_to_machine_parseable_output(struct scan_lists *ports,
|
|||||||
if (protsscanned)
|
if (protsscanned)
|
||||||
output_rangelist_given_ports(LOG_MACHINE, ports->prots, protsscanned);
|
output_rangelist_given_ports(LOG_MACHINE, ports->prots, protsscanned);
|
||||||
log_write(LOG_MACHINE, ")\n");
|
log_write(LOG_MACHINE, ")\n");
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Simple helper function for output_xml_scaninfo_records */
|
/* Simple helper function for output_xml_scaninfo_records */
|
||||||
@@ -773,6 +774,7 @@ void output_xml_scaninfo_records(struct scan_lists *scanlist) {
|
|||||||
doscaninfo("udp", "udp", scanlist->udp_ports, scanlist->udp_count);
|
doscaninfo("udp", "udp", scanlist->udp_ports, scanlist->udp_count);
|
||||||
if (o.ipprotscan)
|
if (o.ipprotscan)
|
||||||
doscaninfo("ipproto", "ip", scanlist->prots, scanlist->prot_count);
|
doscaninfo("ipproto", "ip", scanlist->prots, scanlist->prot_count);
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Helper function to write the status and address/hostname info of a host
|
/* Helper function to write the status and address/hostname info of a host
|
||||||
@@ -787,6 +789,7 @@ static void write_xml_initial_hostinfo(Target *currenths,
|
|||||||
} else /* If machine is up, put blank hostname so front ends know that
|
} else /* If machine is up, put blank hostname so front ends know that
|
||||||
no name resolution is forthcoming */
|
no name resolution is forthcoming */
|
||||||
if (strcmp(status, "up") == 0) log_write(LOG_XML, "<hostnames />\n");
|
if (strcmp(status, "up") == 0) log_write(LOG_XML, "<hostnames />\n");
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Writes host status info to the log streams (including STDOUT). An
|
/* Writes host status info to the log streams (including STDOUT). An
|
||||||
@@ -980,6 +983,7 @@ static void printosclassificationoutput(const struct OS_Classification_Results *
|
|||||||
log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "\n");
|
log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log_flush_all();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1189,6 +1193,7 @@ void printosscanoutput(Target *currenths) {
|
|||||||
log_write(LOG_XML, " />\n");
|
log_write(LOG_XML, " />\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1288,7 +1293,7 @@ void printserviceinfooutput(Target *currenths) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "\n");
|
log_write(LOG_NORMAL|LOG_SKID|LOG_STDOUT, "\n");
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1324,7 +1329,7 @@ void printfinaloutput(int numhosts_scanned, int numhosts_up,
|
|||||||
log_write(LOG_NORMAL|LOG_MACHINE, "# Nmap run completed at %s -- %d %s (%d %s up) scanned in %.3f seconds\n", mytime, numhosts_scanned, (numhosts_scanned == 1)? "IP address" : "IP addresses", numhosts_up, (numhosts_up == 1)? "host" : "hosts", o.TimeSinceStartMS(&tv) / 1000.0 );
|
log_write(LOG_NORMAL|LOG_MACHINE, "# Nmap run completed at %s -- %d %s (%d %s up) scanned in %.3f seconds\n", mytime, numhosts_scanned, (numhosts_scanned == 1)? "IP address" : "IP addresses", numhosts_up, (numhosts_up == 1)? "host" : "hosts", o.TimeSinceStartMS(&tv) / 1000.0 );
|
||||||
|
|
||||||
log_write(LOG_XML, "</runstats></nmaprun>\n");
|
log_write(LOG_XML, "</runstats></nmaprun>\n");
|
||||||
|
log_flush_all();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -320,7 +320,7 @@ void Port::setServiceProbeResults(enum serviceprobestate sres,
|
|||||||
|
|
||||||
if (hostname) {
|
if (hostname) {
|
||||||
slen = strlen(hostname);
|
slen = strlen(hostname);
|
||||||
if (slen > 128) slen = 128;
|
if (slen > 64) slen = 64;
|
||||||
serviceprobe_hostname = (char *) safe_malloc(slen + 1);
|
serviceprobe_hostname = (char *) safe_malloc(slen + 1);
|
||||||
memcpy(serviceprobe_hostname, hostname, slen);
|
memcpy(serviceprobe_hostname, hostname, slen);
|
||||||
serviceprobe_hostname[slen] = '\0';
|
serviceprobe_hostname[slen] = '\0';
|
||||||
|
|||||||
@@ -105,6 +105,7 @@
|
|||||||
#include "scan_engine.h"
|
#include "scan_engine.h"
|
||||||
#include "timing.h"
|
#include "timing.h"
|
||||||
#include "NmapOps.h"
|
#include "NmapOps.h"
|
||||||
|
#include <dnet.h>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
@@ -727,7 +728,7 @@ HostScanStats::HostScanStats(Target *t, UltraScanInfo *UltraSI) {
|
|||||||
num_probes_waiting_retransmit = 0;
|
num_probes_waiting_retransmit = 0;
|
||||||
lastping_sent = lastprobe_sent = lastrcvd = USI->now;
|
lastping_sent = lastprobe_sent = lastrcvd = USI->now;
|
||||||
lastping_sent_numprobes = 0;
|
lastping_sent_numprobes = 0;
|
||||||
bzero(&pingprobe, sizeof(pingprobe));
|
memset(&pingprobe, 0, sizeof(pingprobe));
|
||||||
pingprobestate = PORT_UNKNOWN;
|
pingprobestate = PORT_UNKNOWN;
|
||||||
nxtpseq = 1;
|
nxtpseq = 1;
|
||||||
max_successful_tryno = 0;
|
max_successful_tryno = 0;
|
||||||
|
|||||||
@@ -146,8 +146,9 @@ distro:
|
|||||||
/usr/tmp/nmap-$(NMAP_VERSION)/libpcre
|
/usr/tmp/nmap-$(NMAP_VERSION)/libpcre
|
||||||
|
|
||||||
$(SHTOOL) mkdir /usr/tmp/nmap-$(NMAP_VERSION)/libdnet-stripped
|
$(SHTOOL) mkdir /usr/tmp/nmap-$(NMAP_VERSION)/libdnet-stripped
|
||||||
cd ../$(LIBDNETDIR); cp -ra NMAP_MODIFICATIONS acconfig.h aclocal.m4 \
|
cd ../$(LIBDNETDIR); cp -ra NMAP_MODIFICATIONS \
|
||||||
config configure configure.in dnet-config.in include INSTALL \
|
libdnet-stripped.vcproj acconfig.h aclocal.m4 config \
|
||||||
|
configure configure.in dnet-config.in include INSTALL \
|
||||||
libtool LICENSE Makefile Makefile.am Makefile.am.common \
|
libtool LICENSE Makefile Makefile.am Makefile.am.common \
|
||||||
Makefile.in README src THANKS TODO \
|
Makefile.in README src THANKS TODO \
|
||||||
/usr/tmp/nmap-$(NMAP_VERSION)/libdnet-stripped
|
/usr/tmp/nmap-$(NMAP_VERSION)/libdnet-stripped
|
||||||
|
|||||||
183
tcpip.cc
183
tcpip.cc
@@ -1716,7 +1716,7 @@ int read_arp_reply_pcap(pcap_t *pd, u8 *sendermac, struct in_addr *senderIP,
|
|||||||
do {
|
do {
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
gettimeofday(&tv_end, NULL);
|
gettimeofday(&tv_end, NULL);
|
||||||
to_left = MAX(1, (to_usec - TIMEVAL_SUBTRACT(tv_end, tv_start)) / 1000);
|
long to_left = MAX(1, (to_usec - TIMEVAL_SUBTRACT(tv_end, tv_start)) / 1000);
|
||||||
// Set the timeout (BUGBUG: this is cheating)
|
// Set the timeout (BUGBUG: this is cheating)
|
||||||
PacketSetReadTimeout(pd->adapter, to_left);
|
PacketSetReadTimeout(pd->adapter, to_left);
|
||||||
#endif
|
#endif
|
||||||
@@ -2106,28 +2106,146 @@ return -1;
|
|||||||
}
|
}
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
#ifndef WIN32 /* ifdef'd out for now because 'doze apparently doesn't
|
struct dnet_collector_route_nfo {
|
||||||
support ioctl() */
|
struct sys_route *routes;
|
||||||
|
int numroutes;
|
||||||
|
int capacity; /* Capacity of routes or ifaces, depending on context */
|
||||||
|
struct interface_info *ifaces;
|
||||||
|
int numifaces;
|
||||||
|
};
|
||||||
|
|
||||||
|
int collect_dnet_routes(const struct route_entry *entry, void *arg) {
|
||||||
|
struct dnet_collector_route_nfo *dcrn = (struct dnet_collector_route_nfo *) arg;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
/* Make sure that it is the proper type of route ... */
|
||||||
|
if (entry->route_dst.addr_type != ADDR_TYPE_IP || entry->route_gw.addr_type != ADDR_TYPE_IP)
|
||||||
|
return 0; /* Not interested in IPv6 routes at the moment ... */
|
||||||
|
|
||||||
|
/* Make sure we have room for the new route */
|
||||||
|
if (dcrn->numroutes >= dcrn->capacity) {
|
||||||
|
dcrn->capacity <<= 2;
|
||||||
|
dcrn->routes = (struct sys_route *) realloc(dcrn->routes,
|
||||||
|
dcrn->capacity * sizeof(struct sys_route));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Now for the important business */
|
||||||
|
dcrn->routes[dcrn->numroutes].dest = entry->route_dst.addr_ip;
|
||||||
|
addr_btom(entry->route_dst.addr_bits, &dcrn->routes[dcrn->numroutes].netmask, sizeof(dcrn->routes[dcrn->numroutes].netmask));
|
||||||
|
dcrn->routes[dcrn->numroutes].gw.s_addr = entry->route_gw.addr_ip;
|
||||||
|
/* Now determine which interface the route relates to */
|
||||||
|
u32 mask;
|
||||||
|
struct sockaddr_in *sin;
|
||||||
|
for(i = 0; i < dcrn->numifaces; i++) {
|
||||||
|
sin = (struct sockaddr_in *) &dcrn->ifaces[i].addr;
|
||||||
|
mask = htonl((unsigned long) (0-1) << (32 - dcrn->ifaces[i].netmask_bits));
|
||||||
|
if ((sin->sin_addr.s_addr & mask) == (entry->route_gw.addr_ip & mask)) {
|
||||||
|
dcrn->routes[dcrn->numroutes].device = &dcrn->ifaces[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (i == dcrn->numifaces) {
|
||||||
|
error("WARNING: Unable to find appropriate interface for system route to %s\n", addr_ntoa(&entry->route_gw));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
dcrn->numroutes++;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int collect_dnet_interfaces(const struct intf_entry *entry, void *arg) {
|
||||||
|
struct dnet_collector_route_nfo *dcrn = (struct dnet_collector_route_nfo *) arg;
|
||||||
|
int i;
|
||||||
|
int numifaces = dcrn->numifaces;
|
||||||
|
|
||||||
|
/* Make sure we have room for the new route */
|
||||||
|
if (dcrn->numifaces >= dcrn->capacity) {
|
||||||
|
dcrn->capacity <<= 2;
|
||||||
|
dcrn->ifaces = (struct interface_info *) realloc(dcrn->ifaces,
|
||||||
|
dcrn->capacity * sizeof(struct interface_info));
|
||||||
|
}
|
||||||
|
if (entry->intf_addr.addr_type == ADDR_TYPE_IP) {
|
||||||
|
addr_ntos(&entry->intf_addr, (struct sockaddr *) &dcrn->ifaces[numifaces].addr);
|
||||||
|
dcrn->ifaces[numifaces].netmask_bits = entry->intf_addr.addr_bits;
|
||||||
|
} else {
|
||||||
|
for(i=0; i < (int) entry->intf_alias_num; i++) {
|
||||||
|
if (entry->intf_alias_addrs[i].addr_type == ADDR_TYPE_IP) {
|
||||||
|
addr_ntos(&entry->intf_alias_addrs[i], (struct sockaddr *) &dcrn->ifaces[numifaces].addr);
|
||||||
|
dcrn->ifaces[numifaces].netmask_bits = entry->intf_alias_addrs[i].addr_bits;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i == (int) entry->intf_alias_num)
|
||||||
|
return 0; /* No IPv4 addresses found for this interface */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* OK, address/netmask found. Let's get the name */
|
||||||
|
Strncpy(dcrn->ifaces[numifaces].devname, entry->intf_name, sizeof(dcrn->ifaces[numifaces].devname));
|
||||||
|
Strncpy(dcrn->ifaces[numifaces].devfullname, entry->intf_name, sizeof(dcrn->ifaces[numifaces].devfullname));
|
||||||
|
|
||||||
|
/* Interface type */
|
||||||
|
if (entry->intf_type & INTF_TYPE_ETH) {
|
||||||
|
dcrn->ifaces[numifaces].device_type = devt_ethernet;
|
||||||
|
/* Collect the MAC address since this is ethernet */
|
||||||
|
memcpy(dcrn->ifaces[numifaces].mac, &entry->intf_link_addr.addr_eth.data, 6);
|
||||||
|
}
|
||||||
|
else if (entry->intf_type & INTF_TYPE_LOOPBACK)
|
||||||
|
dcrn->ifaces[numifaces].device_type = devt_loopback;
|
||||||
|
else if (entry->intf_type & INTF_TYPE_TUN)
|
||||||
|
dcrn->ifaces[numifaces].device_type = devt_p2p;
|
||||||
|
else dcrn->ifaces[numifaces].device_type = devt_other;
|
||||||
|
|
||||||
|
/* Is the interface up and running? */
|
||||||
|
dcrn->ifaces[numifaces].device_up = (entry->intf_flags & INTF_FLAG_UP)? true : false;
|
||||||
|
|
||||||
|
/* For the rest of the information, we must open the interface directly ... */
|
||||||
|
dcrn->numifaces++;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct interface_info *getinterfaces(int *howmany) {
|
struct interface_info *getinterfaces(int *howmany) {
|
||||||
static bool initialized = 0;
|
static bool initialized = 0;
|
||||||
static struct interface_info *mydevs;
|
static struct interface_info *mydevs;
|
||||||
static int numifaces = 0;
|
static int numifaces = 0;
|
||||||
int ii_capacity = 0;
|
int ii_capacity = 0;
|
||||||
int sd, len, rc;
|
#if WIN32
|
||||||
char *p;
|
struct dnet_collector_route_nfo dcrn;
|
||||||
u8 *buf;
|
intf_t *it;
|
||||||
int bufsz;
|
#else //!WIN32
|
||||||
|
int sd;
|
||||||
struct ifconf ifc;
|
struct ifconf ifc;
|
||||||
struct ifreq *ifr;
|
struct ifreq *ifr;
|
||||||
struct ifreq tmpifr;
|
struct ifreq tmpifr;
|
||||||
|
#endif
|
||||||
|
int len, rc;
|
||||||
|
char *p;
|
||||||
|
u8 *buf;
|
||||||
|
int bufsz;
|
||||||
struct sockaddr_in *sin;
|
struct sockaddr_in *sin;
|
||||||
u16 ifflags;
|
u16 ifflags;
|
||||||
|
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
|
|
||||||
ii_capacity = 16;
|
ii_capacity = 16;
|
||||||
mydevs = (struct interface_info *) safe_zalloc(sizeof(struct interface_info) * ii_capacity);
|
mydevs = (struct interface_info *) safe_zalloc(sizeof(struct interface_info) * ii_capacity);
|
||||||
|
|
||||||
|
#if WIN32
|
||||||
|
/* On Win32 we just use Dnet to determine the interface list */
|
||||||
|
|
||||||
|
dcrn.routes = NULL;
|
||||||
|
dcrn.numroutes = 0;
|
||||||
|
dcrn.capacity = ii_capacity; // I'm reusing this struct for ii now
|
||||||
|
dcrn.ifaces = mydevs;
|
||||||
|
dcrn.numifaces = 0;
|
||||||
|
it = intf_open();
|
||||||
|
if (!it) fatal("%s: intf_open() failed", __FUNCTION__);
|
||||||
|
if (intf_loop(it, collect_dnet_interfaces, &dcrn) != 0)
|
||||||
|
fatal("%s: intf_loop() failed", __FUNCTION__);
|
||||||
|
intf_close(it);
|
||||||
|
mydevs = dcrn.ifaces;
|
||||||
|
numifaces = dcrn.numifaces;
|
||||||
|
ii_capacity = dcrn.capacity;
|
||||||
|
#else // !Win32
|
||||||
/* Dummy socket for ioctl */
|
/* Dummy socket for ioctl */
|
||||||
sd = socket(AF_INET, SOCK_DGRAM, 0);
|
sd = socket(AF_INET, SOCK_DGRAM, 0);
|
||||||
if (sd < 0) pfatal("socket in getinterfaces");
|
if (sd < 0) pfatal("socket in getinterfaces");
|
||||||
@@ -2253,58 +2371,13 @@ struct interface_info *getinterfaces(int *howmany) {
|
|||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
close(sd);
|
close(sd);
|
||||||
|
#endif //!WIN32
|
||||||
}
|
}
|
||||||
if (howmany) *howmany = numifaces;
|
if (howmany) *howmany = numifaces;
|
||||||
return mydevs;
|
return mydevs;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
struct dnet_collector_route_nfo {
|
|
||||||
struct sys_route *routes;
|
|
||||||
int numroutes;
|
|
||||||
int route_capacity;
|
|
||||||
struct interface_info *ifaces;
|
|
||||||
int numifaces;
|
|
||||||
};
|
|
||||||
|
|
||||||
int collect_dnet_routes(const struct route_entry *entry, void *arg) {
|
|
||||||
struct dnet_collector_route_nfo *dcrn = (struct dnet_collector_route_nfo *) arg;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
/* Make sure that it is the proper type of route ... */
|
|
||||||
if (entry->route_dst.addr_type != ADDR_TYPE_IP || entry->route_gw.addr_type != ADDR_TYPE_IP)
|
|
||||||
return 0; /* Not interested in IPv6 routes at the moment ... */
|
|
||||||
|
|
||||||
/* Make sure we have room for the new route */
|
|
||||||
if (dcrn->numroutes >= dcrn->route_capacity) {
|
|
||||||
dcrn->route_capacity <<= 2;
|
|
||||||
dcrn->routes = (struct sys_route *) realloc(dcrn->routes,
|
|
||||||
dcrn->route_capacity * sizeof(struct sys_route));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Now for the important business */
|
|
||||||
dcrn->routes[dcrn->numroutes].dest = entry->route_dst.addr_ip;
|
|
||||||
addr_btom(entry->route_dst.addr_bits, &dcrn->routes[dcrn->numroutes].netmask, sizeof(dcrn->routes[dcrn->numroutes].netmask));
|
|
||||||
dcrn->routes[dcrn->numroutes].gw.s_addr = entry->route_gw.addr_ip;
|
|
||||||
/* Now determine which interface the route relates to */
|
|
||||||
u32 mask;
|
|
||||||
struct sockaddr_in *sin;
|
|
||||||
for(i = 0; i < dcrn->numifaces; i++) {
|
|
||||||
sin = (struct sockaddr_in *) &dcrn->ifaces[i].addr;
|
|
||||||
mask = htonl((unsigned long) (0-1) << (32 - dcrn->ifaces[i].netmask_bits));
|
|
||||||
if ((sin->sin_addr.s_addr & mask) == (entry->route_gw.addr_ip & mask)) {
|
|
||||||
dcrn->routes[dcrn->numroutes].device = &dcrn->ifaces[i];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (i == dcrn->numifaces) {
|
|
||||||
error("WARNING: Unable to find appropriate interface for system route to %s\n", addr_ntoa(&entry->route_gw));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
dcrn->numroutes++;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* A trivial function used with qsort to sort the routes by netmask */
|
/* A trivial function used with qsort to sort the routes by netmask */
|
||||||
static int nmaskcmp(const void *a, const void *b) {
|
static int nmaskcmp(const void *a, const void *b) {
|
||||||
@@ -2429,7 +2502,7 @@ struct sys_route *getsysroutes(int *howmany) {
|
|||||||
struct dnet_collector_route_nfo dcrn;
|
struct dnet_collector_route_nfo dcrn;
|
||||||
dcrn.routes = routes;
|
dcrn.routes = routes;
|
||||||
dcrn.numroutes = numroutes;
|
dcrn.numroutes = numroutes;
|
||||||
dcrn.route_capacity = route_capacity;
|
dcrn.capacity = route_capacity;
|
||||||
dcrn.ifaces = ifaces;
|
dcrn.ifaces = ifaces;
|
||||||
dcrn.numifaces = numifaces;
|
dcrn.numifaces = numifaces;
|
||||||
route_t *dr = route_open();
|
route_t *dr = route_open();
|
||||||
@@ -2439,7 +2512,7 @@ struct sys_route *getsysroutes(int *howmany) {
|
|||||||
}
|
}
|
||||||
route_close(dr);
|
route_close(dr);
|
||||||
/* These values could have changed in the callback */
|
/* These values could have changed in the callback */
|
||||||
route_capacity = dcrn.route_capacity;
|
route_capacity = dcrn.capacity;
|
||||||
numroutes = dcrn.numroutes;
|
numroutes = dcrn.numroutes;
|
||||||
routes = dcrn.routes;
|
routes = dcrn.routes;
|
||||||
}
|
}
|
||||||
|
|||||||
7
tcpip.h
7
tcpip.h
@@ -230,7 +230,9 @@ extern "C" {
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <dnet.h>
|
#include <dnet.h>
|
||||||
|
#ifndef WIN32
|
||||||
#include <netinet/ip_icmp.h>
|
#include <netinet/ip_icmp.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef enum { devt_ethernet, devt_loopback, devt_p2p, devt_other } devtype;
|
typedef enum { devt_ethernet, devt_loopback, devt_p2p, devt_other } devtype;
|
||||||
|
|
||||||
@@ -413,8 +415,6 @@ struct icmp
|
|||||||
u_int16_t icmp_cksum; /* ones complement checksum of struct */
|
u_int16_t icmp_cksum; /* ones complement checksum of struct */
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
u_char ih_pptr; /* ICMP_PARAMPROB */
|
|
||||||
struct in_addr ih_gwaddr; /* gateway address */
|
|
||||||
struct ih_idseq /* echo datagram */
|
struct ih_idseq /* echo datagram */
|
||||||
{
|
{
|
||||||
u_int16_t icd_id;
|
u_int16_t icd_id;
|
||||||
@@ -436,8 +436,7 @@ struct icmp
|
|||||||
u_int16_t irt_lifetime;
|
u_int16_t irt_lifetime;
|
||||||
} ih_rtradv;
|
} ih_rtradv;
|
||||||
} icmp_hun;
|
} icmp_hun;
|
||||||
#define icmp_pptr icmp_hun.ih_pptr
|
/* Removed icmp_pptr and icmp_gwaddr from union and #defines because they conflict with dnet */
|
||||||
#define icmp_gwaddr icmp_hun.ih_gwaddr
|
|
||||||
#define icmp_id icmp_hun.ih_idseq.icd_id
|
#define icmp_id icmp_hun.ih_idseq.icd_id
|
||||||
#define icmp_seq icmp_hun.ih_idseq.icd_seq
|
#define icmp_seq icmp_hun.ih_idseq.icd_seq
|
||||||
#define icmp_void icmp_hun.ih_void
|
#define icmp_void icmp_hun.ih_void
|
||||||
|
|||||||
Reference in New Issue
Block a user