00001
00004
#ifndef _w32_PCARP_H
00005
#define _w32_PCARP_H
00006
00007
00011 struct gate_entry {
00012 DWORD gate_ip;
00013 DWORD subnet;
00014
DWORD mask;
00015 BOOL is_dead;
00016 BOOL echo_pending;
00017
DWORD chk_timer;
00018 };
00019
00023 struct arp_entry {
00024 DWORD ip;
00025 eth_address hardware;
00026 DWORD expiry;
00027 DWORD retransmit_to;
00028 WORD flags;
00029 };
00030
00033
#define ARP_INUSE 0x01
00034
#define ARP_FIXED 0x02
00035
#define ARP_DYNAMIC 0x04
00036
#define ARP_PENDING 0x08
00040
W32_FUNC int _arp_list_gateways (struct gate_entry *gw, int max);
00041
extern int _arp_check_gateways (
void);
00042
extern BOOL
_arp_add_gateway (
const char* config_string,
DWORD ip);
00043
extern BOOL
_arp_have_default_gw (
void);
00044
extern void _arp_kill_gateways (
void);
00045
00050 W32_FUNC BOOL
_arp_resolve (
DWORD ina,
eth_address *eth);
00051 W32_FUNC BOOL
_arp_check_own_ip (
eth_address *eth);
00052
00055
extern BOOL
arp_start_lookup (
DWORD ip);
00056
extern BOOL
arp_lookup (
DWORD ip,
eth_address *eth);
00057
extern BOOL
arp_lookup_fixed (
DWORD ip,
eth_address *eth);
00058
extern BOOL
arp_lookup_pending (
DWORD ip);
00059
00062
extern BOOL
_arp_add_cache (
DWORD ip,
const void *eth, BOOL expire);
00063
extern BOOL
_arp_delete_cache (
DWORD ip);
00064 W32_FUNC
int _arp_list_cache (
struct arp_entry *arp,
int max);
00065
00068
extern void _arp_init (
void);
00069
extern BOOL
_arp_reply (
const void *mac_dst,
DWORD src_ip,
DWORD dst_ip);
00070
extern BOOL
_arp_handler (
const arp_Header *arp, BOOL brdcast);
00071
00074
extern BOOL
_arp_register (
DWORD use_this_gateway_ip,
DWORD for_this_host_ip);
00075
00076
#if defined(USE_DEBUG)
00077
W32_FUNC
void _arp_debug_dump (
void);
00078
#endif
00079
00080
#endif