Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

318 lines
5.4 KiB

//////////////////////////////////////////////////////////////////////
// IPUtil.h : Declaration of some global helper function for sockets
// Copyright (c)1997-2001 Microsoft Corporation
//
// some global definitions
// Original Create Date: 5/16/2001
// Original Author: shawnwu
//////////////////////////////////////////////////////////////////////
//
// for active socket
//
//#include <ntspider.h>
#include <nt.h>
#include <ntrtl.h>
#include <nturtl.h>
//
// the following section is copied from net\tcpip\commands\common2\common2.h
//
// Include Files
//
#include "ipexport.h"
#include "ipinfo.h"
#include "llinfo.h"
#include "tcpinfo.h"
#undef SOCKET
//#include "..\common\tcpcmd.h"
//
// the following section is to replace the above include file
// begin tcpcmd.h
//
//#ifndef TCPCMD_INCLUDED
//#define TCPCMD_INCLUDED
#define NOGDI
#define NOMINMAX
//
// added by shawnwu
//
//#include <winsock.h>
//
//#include <windef.h>
//#include <winbase.h>
//#include <winsock2.h>
//#include <ws2tcpip.h>
//#ifndef WIN16
//#endif // WIN16
//#include <direct.h>
//#include <io.h>
//#include <stdlib.h>
//#include <stdio.h>
//#include <time.h>
//#include <string.h>
//#include <nls.h>
//
// global variable declarations
//
extern int optind;
extern int opterr;
extern char *optarg;
//
// function prototypes
//
char *
GetFileFromPath(
char *);
HANDLE
OpenStream(
char *);
int
lwccmp(
char *,
char *);
long
netnumber(
char *);
long
hostnumber(
char *);
void
blkfree(
char **);
struct sockaddr_storage *
resolve_host(
char *,
int *);
int
resolve_port(
char *,
char *);
char *
tempfile(
char *);
char *
udp_alloc(
unsigned int);
void
udp_close(
SOCKET);
void
udp_free(
char *);
SOCKET
udp_open(
int,
int *);
int
udp_port(void);
int
udp_port_used(
int,
int);
int
udp_read(
SOCKET,
char *,
int,
struct sockaddr_storage *,
int *,
int);
int
udp_write(
SOCKET,
char *,
int,
struct sockaddr_storage *,
int);
void
gate_ioctl(
HANDLE,
int,
int,
int,
long,
long);
void
get_route_table(void);
int
tcpcmd_send(
SOCKET s, // socket descriptor
char *buf, // data buffer
int len, // length of data buffer
int flags // transmission flags
);
void
s_perror(
char *yourmsg, // your message to be displayed
int lerrno // errno to be converted
);
void fatal(char * message);
//#ifndef WIN16
//struct netent *getnetbyname(IN char *name);
//unsigned long inet_network(IN char *cp);
//#endif // WIN16
#define perror(string) s_perror(string, (int)GetLastError())
#define HZ 1000
#define TCGETA 0x4
#define TCSETA 0x10
#define ECHO 17
#define SIGPIPE 99
#define MAX_RETRANSMISSION_COUNT 8
#define MAX_RETRANSMISSION_TIME 8 // in seconds
// if x is aabbccdd (where aa, bb, cc, dd are hex bytes)
// we want net_long(x) to be ddccbbaa. A small and fast way to do this is
// to first byteswap it to get bbaaddcc and then swap high and low words.
//
//__inline
//ULONG
//FASTCALL
//net_long(
// ULONG x)
//{
// register ULONG byteswapped;
// byteswapped = ((x & 0x00ff00ff) << 8) | ((x & 0xff00ff00) >> 8);
// return (byteswapped << 16) | (byteswapped >> 16);
//}
//#endif //TCPCMD_INCLUDED
//
// end for tcpcmd.h
//
//
// Definitions
//
#define MAX_ID_LENGTH 50
// Table Types
#define TYPE_IF 0
#define TYPE_IP 1
#define TYPE_IPADDR 2
#define TYPE_ROUTE 3
#define TYPE_ARP 4
#define TYPE_ICMP 5
#define TYPE_TCP 6
#define TYPE_TCPCONN 7
#define TYPE_UDP 8
#define TYPE_UDPCONN 9
//
// Structure Definitions
//
typedef struct _GenericTable {
LIST_ENTRY ListEntry;
} GenericTable;
typedef struct _IfEntry {
LIST_ENTRY ListEntry;
IFEntry Info;
} IfEntry;
typedef struct _IpEntry {
LIST_ENTRY ListEntry;
IPSNMPInfo Info;
} IpEntry;
typedef struct _IpAddrEntry {
LIST_ENTRY ListEntry;
IPAddrEntry Info;
} IpAddrEntry;
typedef struct _RouteEntry {
LIST_ENTRY ListEntry;
IPRouteEntry Info;
} RouteEntry;
typedef struct _ArpEntry {
LIST_ENTRY ListEntry;
IPNetToMediaEntry Info;
} ArpEntry;
typedef struct _IcmpEntry {
LIST_ENTRY ListEntry;
ICMPStats InInfo;
ICMPStats OutInfo;
} IcmpEntry;
typedef struct _TcpEntry {
LIST_ENTRY ListEntry;
TCPStats Info;
} TcpEntry;
typedef struct _TcpConnEntry {
LIST_ENTRY ListEntry;
TCPConnTableEntry Info;
} TcpConnEntry;
typedef struct _UdpEntry {
LIST_ENTRY ListEntry;
UDPStats Info;
} UdpEntry;
typedef struct _UdpConnEntry {
LIST_ENTRY ListEntry;
UDPEntry Info;
} UdpConnEntry;
//
// Function Prototypes
//
void *GetTable( ulong Type, ulong *pResult );
void FreeTable( GenericTable *pList );
ulong MapSnmpErrorToNt( ulong ErrCode );
ulong InetEqual( uchar *Inet1, uchar *Inet2 );
ulong PutMsg(ulong Handle, ulong MsgNum, ... );
uchar *LoadMsg( ulong MsgNum, ... );