📄 libnet-macros.h
字号:
/* * $Id: libnet-macros.h,v 1.1.1.1 2000/05/25 00:28:49 route Exp $ * * libnet-macros.h - Network routine library macro header file * * Copyright (c) 1998 - 2001 Mike D. Schiffman <mike@infonexus.com> * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */#ifndef __LIBNET_MACROS_H#define __LIBNET_MACROS_H/* * for libnet_hostlookup */#define LIBNET_DONT_RESOLVE 0#define LIBNET_RESOLVE 1/* * prand constants */#define LIBNET_PR2 0#define LIBNET_PR8 1#define LIBNET_PR16 2#define LIBNET_PRu16 3#define LIBNET_PR32 4#define LIBNET_PRu32 5#define LIBNET_PRAND_MAX 0xffffffff/* * Concession to legacy naming scheme */#define PR2 LIBNET_PR2#define PR8 LIBNET_PR8#define PR16 LIBNET_PR16#define PRu16 LIBNET_PRu16#define PR32 LIBNET_PR32#define PRu32 LIBNET_PRu32#define PRAND_MAX LIBNET_PRAND_MAX/* * Misc packet sizes for malloc */#define LIBNET_PACKET LIBNET_IP_H + LIBNET_TCP_H /* IP, UDP or TCP */#define LIBNET_OPTS 0x34 /* options! options! options! */#define LIBNET_MAX_PACKET 0xffff /* as big as we can get *//* * Error handling constants. */#define LIBNET_ERR_WARNING 1#define LIBNET_ERR_CRITICAL 2#define LIBNET_ERR_FATAL 3/* * Concession to legacy naming scheme */#define LN_ERR_WARNING LIBNET_ERR_WARNING#define LN_ERR_CRITICAL LIBNET_ERR_CRITICAL#define LN_ERR_FATAL LIBNET_ERR_FATAL#define LIBNET_ERRBUF_SIZE 256/* * Some BSD variants have this endianess problem. */#if (LIBNET_BSD_BYTE_SWAP)#define FIX(n) ntohs(n)#define UNFIX(n) htons(n)#else#define FIX(n) (n)#define UNFIX(n) (n)#endif/* * Arena stuff */#define LIBNET_GET_ARENA_SIZE(a) (a.size)#define LIBNET_GET_ARENA_REMAINING_BYTES(a) (a.size - a.current)/* * Checksum stuff */#define LIBNET_CKSUM_CARRY(x) \ (x = (x >> 16) + (x & 0xffff), (~(x + (x >> 16)) & 0xffff))/* * OSPF stuff */#define LIBNET_OSPF_AUTHCPY(x,y) memcpy((u_char *)x, (u_char *)y, sizeof(y))#define LIBNET_OSPF_CKSUMBUF(x,y) memcpy((u_char *)x, (u_char *)y, sizeof(y)) /* * Not all systems have IFF_LOOPBACK * Used by if_addr.c */#ifdef IFF_LOOPBACK#define LIBNET_ISLOOPBACK(p) ((p)->ifr_flags & IFF_LOOPBACK)#else#define LIBNET_ISLOOPBACK(p) (strcmp((p)->ifr_name, "lo0") == 0)#endif#define LIBNET_PRINT_ETH_ADDR(e) \{ \ int i = 0; \ for (i = 0; i < 6; i++) \ { \ printf("%x", e.ether_addr_octet[i]); \ if (i != 5) \ { \ printf(":"); \ } \ } \ printf("\n"); \}#endif /* __LIBNET_MACROS_H *//* EOF */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -