alias_local.h revision 32377
1/* -*- mode: c; tab-width: 3; c-basic-offset: 3; -*- 2 Alias_local.h contains the function prototypes for alias.c, 3 alias_db.c, alias_util.c and alias_ftp.c, alias_irc.c (as well 4 as any future add-ons). It is intended to be used only within 5 the aliasing software. Outside world interfaces are defined 6 in alias.h 7 8 This software is placed into the public domain with no restrictions 9 on its distribution. 10 11 Initial version: August, 1996 (cjm) 12 13 <updated several times by original author and Eivind Eiklund> 14*/ 15#ifndef ALIAS_LOCAL_H 16#define ALIAS_LOCAL_H 17 18extern int packetAliasMode; 19 20struct alias_link; 21 22/* General utilities */ 23u_short IpChecksum(struct ip *); 24u_short TcpChecksum(struct ip *); 25void DifferentialChecksum(u_short *, u_short *, u_short *, int); 26 27/* Internal data access */ 28struct alias_link * 29FindIcmpIn(struct in_addr, struct in_addr, u_short); 30 31struct alias_link * 32FindIcmpOut(struct in_addr, struct in_addr, u_short); 33 34struct alias_link * 35FindFragmentIn1(struct in_addr, struct in_addr, u_short); 36 37struct alias_link * 38FindFragmentIn2(struct in_addr, struct in_addr, u_short); 39 40struct alias_link * 41AddFragmentPtrLink(struct in_addr, u_short); 42 43struct alias_link * 44FindFragmentPtr(struct in_addr, u_short); 45 46struct alias_link * 47FindUdpTcpIn (struct in_addr, struct in_addr, u_short, u_short, u_char); 48 49struct alias_link * 50FindUdpTcpOut(struct in_addr, struct in_addr, u_short, u_short, u_char); 51 52struct in_addr 53FindOriginalAddress(struct in_addr); 54 55struct in_addr 56FindAliasAddress(struct in_addr); 57 58/* External data access/modification */ 59void GetFragmentAddr(struct alias_link *, struct in_addr *); 60void SetFragmentAddr(struct alias_link *, struct in_addr); 61void GetFragmentPtr(struct alias_link *, char **); 62void SetFragmentPtr(struct alias_link *, char *); 63void SetStateIn(struct alias_link *, int); 64void SetStateOut(struct alias_link *, int); 65int GetStateIn(struct alias_link *); 66int GetStateOut(struct alias_link *); 67struct in_addr GetOriginalAddress(struct alias_link *); 68struct in_addr GetDestAddress(struct alias_link *); 69struct in_addr GetAliasAddress(struct alias_link *); 70struct in_addr GetDefaultAliasAddress(void); 71void SetDefaultAliasAddress(struct in_addr); 72u_short GetOriginalPort(struct alias_link *); 73u_short GetAliasPort(struct alias_link *); 74void SetAckModified(struct alias_link *); 75int GetAckModified(struct alias_link *); 76int GetDeltaAckIn(struct ip *, struct alias_link *); 77int GetDeltaSeqOut(struct ip *, struct alias_link *); 78void AddSeq(struct ip *, struct alias_link *, int); 79void SetExpire(struct alias_link *, int); 80void ClearCheckNewLink(void); 81void PunchFWHole(struct alias_link *); 82 83 84/* Housekeeping function */ 85void HouseKeeping(void); 86 87/* Tcp specfic routines */ 88/*lint -save -library Suppress flexelint warnings */ 89void AliasHandleFtpOut(struct ip *, struct alias_link *, int); 90void AliasHandleIrcOut(struct ip *pip, struct alias_link *link, int maxsize ); 91 92enum alias_tcp_state { 93 ALIAS_TCP_STATE_NOT_CONNECTED, 94 ALIAS_TCP_STATE_CONNECTED, 95 ALIAS_TCP_STATE_DISCONNECTED 96}; 97 98/*lint -restore */ 99#endif /* defined(ALIAS_LOCAL_H) */ 100