Annotation of embedaddon/dhcdrop/src/net_functions.h, revision 1.1
1.1 ! misho 1: /*
! 2: * net_functions.h
! 3: *
! 4: * Created on: 30.07.2009
! 5: * Author: Chebotarev Roman
! 6: */
! 7:
! 8: #ifndef NET_FUNCTIONS_H_
! 9: #define NET_FUNCTIONS_H_
! 10:
! 11: #include "net.h"
! 12:
! 13: enum packet_types
! 14: {
! 15: dhcp_packet,
! 16: arp_packet
! 17: };
! 18:
! 19: /* Return pcap network device if success. Otherwise - exit from programm. */
! 20: pcap_t * get_device(const struct config_params * params);
! 21:
! 22: /* Calculate CRC for data in 'buffer'. Return checksumm. */
! 23: uint16_t rs_crc(const unsigned short *buffer, int length);
! 24:
! 25: /* Create ARP header */
! 26: void assemble_net_header_arp(struct arp_packet_net_header * net_header,
! 27: const uint8_t * ether_src,
! 28: uint16_t op_code);
! 29:
! 30: /* Create network header - ethernet + IP + UDP. Store in 'header'. */
! 31: void assemble_net_header_dhcp
! 32: (
! 33: struct dhcp_packet_net_header * header, /* Can't be NULL */
! 34: const int data_len, /* Length of UDP data */
! 35: const struct config_params * params, /* Can't be NULL */
! 36: const uint8_t * ether_src, /* Source ethernet address. Binary format. Can't be NULL */
! 37: const uint32_t dst_ip, /* If zero - using broadcast. */
! 38: const uint32_t src_ip
! 39: );
! 40:
! 41: /* Send packet to network. 'data_len' - only UDP data, exclude network headers */
! 42: int send_packet(pcap_t* descr, /* Can't be NULL */
! 43: enum packet_types packet_type, /* Type of sended packet. Se 'enum packet_types' in dhcdrop_types.h */
! 44: const uint8_t *snd_data, /* UDP payload. Can't be NULL */
! 45: const int data_len, /* Payload data length */
! 46: const struct config_params * params, /* May be NULL */
! 47: const uint8_t * ether_src, /* Source ethernet address. Can't be NULL */
! 48: const uint32_t dst_ip);
! 49:
! 50: #ifdef _WIN32
! 51: void CALLBACK timeout(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
! 52: #else
! 53: void timeout(int signal);
! 54: #endif
! 55:
! 56: #endif /* NET_FUNCTIONS_H_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>