diff options
author | brian <brian@FreeBSD.org> | 1999-02-27 02:16:01 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 1999-02-27 02:16:01 +0000 |
commit | 087590fb63a5b25c88d45340abc88c8c425db6be (patch) | |
tree | 006bd68c9d8879ed189f1477e617048242f1640b /sys/netinet/libalias/alias_local.h | |
parent | 62018e0afe7a95907a1854abc6d59852f741edb8 (diff) | |
download | FreeBSD-src-087590fb63a5b25c88d45340abc88c8c425db6be.zip FreeBSD-src-087590fb63a5b25c88d45340abc88c8c425db6be.tar.gz |
Version 3.0: January 1, 1999
- Transparent proxying support added.
- PPTP redirecting support added based on patches
contributed by Dru Nelson <dnelson@redwoodsoft.com>.
Submitted by: Charles Mott <cmott@srv.net>
Diffstat (limited to 'sys/netinet/libalias/alias_local.h')
-rw-r--r-- | sys/netinet/libalias/alias_local.h | 71 |
1 files changed, 67 insertions, 4 deletions
diff --git a/sys/netinet/libalias/alias_local.h b/sys/netinet/libalias/alias_local.h index 3846281..da45125 100644 --- a/sys/netinet/libalias/alias_local.h +++ b/sys/netinet/libalias/alias_local.h @@ -1,9 +1,11 @@ /* -*- mode: c; tab-width: 3; c-basic-offset: 3; -*- Alias_local.h contains the function prototypes for alias.c, alias_db.c, alias_util.c and alias_ftp.c, alias_irc.c (as well - as any future add-ons). It is intended to be used only within - the aliasing software. Outside world interfaces are defined - in alias.h + as any future add-ons). It also includes macros, globals and + struct definitions shared by more than one alias*.c file. + + This include file is intended to be used only within the aliasing + software. Outside world interfaces are defined in alias.h This software is placed into the public domain with no restrictions on its distribution. @@ -15,9 +17,54 @@ #ifndef ALIAS_LOCAL_H #define ALIAS_LOCAL_H + +/* + Macros + */ + +/* + The following macro is used to update an + internet checksum. "delta" is a 32-bit + accumulation of all the changes to the + checksum (adding in new 16-bit words and + subtracting out old words), and "cksum" + is the checksum value to be updated. +*/ +#define ADJUST_CHECKSUM(acc, cksum) { \ + acc += cksum; \ + if (acc < 0) \ + { \ + acc = -acc; \ + acc = (acc >> 16) + (acc & 0xffff); \ + acc += acc >> 16; \ + cksum = (u_short) ~acc; \ + } \ + else \ + { \ + acc = (acc >> 16) + (acc & 0xffff); \ + acc += acc >> 16; \ + cksum = (u_short) acc; \ + } \ +} + + +/* + Globals +*/ + extern int packetAliasMode; -struct alias_link; + +/* + Structs +*/ + +struct alias_link; /* Incomplete structure */ + + +/* + Prototypes +*/ /* General utilities */ u_short IpChecksum(struct ip *); @@ -71,6 +118,10 @@ struct in_addr GetDefaultAliasAddress(void); void SetDefaultAliasAddress(struct in_addr); u_short GetOriginalPort(struct alias_link *); u_short GetAliasPort(struct alias_link *); +struct in_addr GetProxyAddress(struct alias_link *); +void SetProxyAddress(struct alias_link *, struct in_addr); +u_short GetProxyPort(struct alias_link *); +void SetProxyPort(struct alias_link *, u_short); void SetAckModified(struct alias_link *); int GetAckModified(struct alias_link *); int GetDeltaAckIn(struct ip *, struct alias_link *); @@ -88,13 +139,24 @@ void HouseKeeping(void); /* Tcp specfic routines */ /*lint -save -library Suppress flexelint warnings */ + +/* FTP routines */ void AliasHandleFtpOut(struct ip *, struct alias_link *, int); + +/* IRC routines */ void AliasHandleIrcOut(struct ip *pip, struct alias_link *link, int maxsize ); + +/* NetBIOS routines */ int AliasHandleUdpNbt(struct ip *, struct alias_link *, struct in_addr *, u_short); int AliasHandleUdpNbtNS(struct ip *, struct alias_link *, struct in_addr *, u_short *, struct in_addr *, u_short *); + +/* CUSeeMe routines */ void AliasHandleCUSeeMeOut(struct ip *, struct alias_link *); void AliasHandleCUSeeMeIn(struct ip *, struct in_addr); +/* Transparent proxy routines */ +int ProxyCheck(struct ip *, struct in_addr *, u_short *); +void ProxyModify(struct alias_link *, struct ip *, int, int); enum alias_tcp_state { @@ -103,5 +165,6 @@ enum alias_tcp_state { ALIAS_TCP_STATE_DISCONNECTED }; +int GetPptpAlias (struct in_addr*); /*lint -restore */ #endif /* defined(ALIAS_LOCAL_H) */ |