alias_local.h revision 26026
126026Sbrian/* -*- mode: c; tab-width: 3; c-basic-offset: 3; -*-
226026Sbrian    Alias_local.h contains the function prototypes for alias.c,
326026Sbrian    alias_db.c, alias_util.c and alias_ftp.c, alias_irc.c (as well
426026Sbrian    as any future add-ons).  It is intended to be used only within
526026Sbrian    the aliasing software.  Outside world interfaces are defined
626026Sbrian    in alias.h
726026Sbrian
826026Sbrian    This software is placed into the public domain with no restrictions
926026Sbrian    on its distribution.
1026026Sbrian
1126026Sbrian    Initial version:  August, 1996  (cjm)
1226026Sbrian
1326026Sbrian     <updated several times by original author and Eivind Eiklund>
1426026Sbrian*/
1526026Sbrian
1626026Sbrianextern int packetAliasMode;
1726026Sbrian
1826026Sbrianstruct alias_link;
1926026Sbrian
2026026Sbrian/* General utilities */
2126026Sbrianu_short IpChecksum(struct ip *);
2226026Sbrianu_short TcpChecksum(struct ip *);
2326026Sbrianvoid DifferentialChecksum(u_short *, u_short *, u_short *, int);
2426026Sbrian
2526026Sbrian/* Internal data access */
2626026Sbrianstruct alias_link *
2726026SbrianFindIcmpIn(struct in_addr, struct in_addr, u_short);
2826026Sbrian
2926026Sbrianstruct alias_link *
3026026SbrianFindIcmpOut(struct in_addr, struct in_addr, u_short);
3126026Sbrian
3226026Sbrianstruct alias_link *
3326026SbrianFindFragmentIn1(struct in_addr, struct in_addr, u_short);
3426026Sbrian
3526026Sbrianstruct alias_link *
3626026SbrianFindFragmentIn2(struct in_addr, struct in_addr, u_short);
3726026Sbrian
3826026Sbrianstruct alias_link *
3926026SbrianAddFragmentPtrLink(struct in_addr, u_short);
4026026Sbrian
4126026Sbrianstruct alias_link *
4226026SbrianFindFragmentPtr(struct in_addr, u_short);
4326026Sbrian
4426026Sbrianstruct alias_link *
4526026SbrianFindUdpTcpIn (struct in_addr, struct in_addr, u_short, u_short, u_char);
4626026Sbrian
4726026Sbrianstruct alias_link *
4826026SbrianFindUdpTcpOut(struct in_addr, struct in_addr, u_short, u_short, u_char);
4926026Sbrian
5026026Sbrianstruct in_addr
5126026SbrianFindOriginalAddress(struct in_addr);
5226026Sbrian
5326026Sbrianstruct in_addr
5426026SbrianFindAliasAddress(struct in_addr);
5526026Sbrian
5626026Sbrian
5726026Sbrian/* External data access/modification */
5826026Sbrianvoid GetFragmentAddr(struct alias_link *, struct in_addr *);
5926026Sbrianvoid SetFragmentAddr(struct alias_link *, struct in_addr);
6026026Sbrianvoid GetFragmentPtr(struct alias_link *, char **);
6126026Sbrianvoid SetFragmentPtr(struct alias_link *, char *);
6226026Sbrianvoid SetStateIn(struct alias_link *, int);
6326026Sbrianvoid SetStateOut(struct alias_link *, int);
6426026Sbrianint GetStateIn(struct alias_link *);
6526026Sbrianint GetStateOut(struct alias_link *);
6626026Sbrianstruct in_addr GetOriginalAddress(struct alias_link *);
6726026Sbrianstruct in_addr GetDestAddress(struct alias_link *);
6826026Sbrianstruct in_addr GetAliasAddress(struct alias_link *);
6926026Sbrianstruct in_addr GetDefaultAliasAddress(void);
7026026Sbrianvoid SetDefaultAliasAddress(struct in_addr);
7126026Sbrianvoid SetDefaultTargetAddress(struct in_addr);
7226026Sbrianvoid ClearDefaultTargetAddress(void);
7326026Sbrianu_short GetOriginalPort(struct alias_link *);
7426026Sbrianu_short GetAliasPort(struct alias_link *);
7526026Sbrianvoid SetAckModified(struct alias_link *);
7626026Sbrianint GetAckModified(struct alias_link *);
7726026Sbrianint GetDeltaAckIn(struct ip *, struct alias_link *);
7826026Sbrianint GetDeltaSeqOut(struct ip *, struct alias_link *);
7926026Sbrianvoid AddSeq(struct ip *, struct alias_link *, int);
8026026Sbrianvoid SetExpire(struct alias_link *, int);
8126026Sbrianvoid ClearNewDefaultLink(void);
8226026Sbrianint CheckNewDefaultLink(void);
8326026Sbrian
8426026Sbrian/* Housekeeping function */
8526026Sbrianvoid HouseKeeping(void);
8626026Sbrian
8726026Sbrian/* Tcp specfic routines */
8826026Sbrian/*lint -save -library Suppress flexelint warnings */
8926026Sbrianvoid AliasHandleFtpOut(struct ip *, struct alias_link *, int);
9026026Sbrianvoid AliasHandleIrcOut(struct ip *pip, struct alias_link *link, int maxsize );
9126026Sbrian/*lint -restore */
92