Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > media > contrib-release-debug > by-pkgid > 1b92a7171564d1c7299f16ad31027fe1 > files > 17

etrace-debug-1.1-8mdv2011.0.i586.rpm

/*
 * $Id: packetfu.h,v 1.1.1.1 2006/07/08 16:31:47 dave Exp $
 */
#ifndef __PACKETFU__
#define __PACKETFU__
#include "etrace.h"
#include "options.h"
#include "util.h"

struct  state_t {
        struct in_addr  dest_ip;
        int             ttl;
        int             attempt;
        int             complete;

        u_int16_t       ip_id;
        u_int16_t       src_port;
        u_int32_t       tcp_seq;
        u_int32_t       tcp_ack;
};
typedef struct state_t  STATE;

struct etrace_icmp_pkt {
	unsigned char   type;
	unsigned char   code;
	u_int16_t       checksum;
	u_int16_t       id;
	u_int16_t       seq;
	union {
		struct {
			u_int32_t       orig;
			u_int32_t       rec;
			u_int32_t       trans;
		} timestamp;
		u_int32_t       netmask;
	} payload;
};
#define	ts_orig		payload.timestamp.orig
#define ts_rec		payload.timestamp.rec
#define	ts_trans	payload.timestamp.trans
#define	nm_data		payload.netmask

extern	pcap_t	*pcap;
extern	char	*pcap_iface;
extern	int	datalink_len;

void network_startup(void);
char *target_iface(struct in_addr addr);
void pcap_init(char *ifname);
void send_packet(PROBE *probe, STATE *state);
int  process_packet(PROBE *probe, STATE *state, const u_char *packet, int pktlen);
void network_shutdown(void);

#endif /* __PACKETFU__ */