alias_local.h revision 26026
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 16extern int packetAliasMode; 17 18struct alias_link; 19 20/* General utilities */ 21u_short IpChecksum(struct ip *); 22u_short TcpChecksum(struct ip *); 23void DifferentialChecksum(u_short *, u_short *, u_short *, int); 24 25/* Internal data access */ 26struct alias_link * 27FindIcmpIn(struct in_addr, struct in_addr, u_short); 28 29struct alias_link * 30FindIcmpOut(struct in_addr, struct in_addr, u_short); 31 32struct alias_link * 33FindFragmentIn1(struct in_addr, struct in_addr, u_short); 34 35struct alias_link * 36FindFragmentIn2(struct in_addr, struct in_addr, u_short); 37 38struct alias_link * 39AddFragmentPtrLink(struct in_addr, u_short); 40 41struct alias_link * 42FindFragmentPtr(struct in_addr, u_short); 43 44struct alias_link * 45FindUdpTcpIn (struct in_addr, struct in_addr, u_short, u_short, u_char); 46 47struct alias_link * 48FindUdpTcpOut(struct in_addr, struct in_addr, u_short, u_short, u_char); 49 50struct in_addr 51FindOriginalAddress(struct in_addr); 52 53struct in_addr 54FindAliasAddress(struct in_addr); 55 56 57/* External data access/modification */ 58void GetFragmentAddr(struct alias_link *, struct in_addr *); 59void SetFragmentAddr(struct alias_link *, struct in_addr); 60void GetFragmentPtr(struct alias_link *, char **); 61void SetFragmentPtr(struct alias_link *, char *); 62void SetStateIn(struct alias_link *, int); 63void SetStateOut(struct alias_link *, int); 64int GetStateIn(struct alias_link *); 65int GetStateOut(struct alias_link *); 66struct in_addr GetOriginalAddress(struct alias_link *); 67struct in_addr GetDestAddress(struct alias_link *); 68struct in_addr GetAliasAddress(struct alias_link *); 69struct in_addr GetDefaultAliasAddress(void); 70void SetDefaultAliasAddress(struct in_addr); 71void SetDefaultTargetAddress(struct in_addr); 72void ClearDefaultTargetAddress(void); 73u_short GetOriginalPort(struct alias_link *); 74u_short GetAliasPort(struct alias_link *); 75void SetAckModified(struct alias_link *); 76int GetAckModified(struct alias_link *); 77int GetDeltaAckIn(struct ip *, struct alias_link *); 78int GetDeltaSeqOut(struct ip *, struct alias_link *); 79void AddSeq(struct ip *, struct alias_link *, int); 80void SetExpire(struct alias_link *, int); 81void ClearNewDefaultLink(void); 82int CheckNewDefaultLink(void); 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/*lint -restore */ 92