]> git.saurik.com Git - apple/network_cmds.git/blobdiff - alias/alias.h
network_cmds-356.9.tar.gz
[apple/network_cmds.git] / alias / alias.h
index 4e0391f37465214e2134fbef1b8922e3ae81745f..a84dd6cbb7dea4b979040abfcd9ce76f241e3bd9 100644 (file)
@@ -1,22 +1,63 @@
-/*lint -save -library Flexelint comment for external headers */
-
 /*
-    Alias.h defines the outside world interfaces for the packet
-    aliasing software.
-
-    This software is placed into the public domain with no restrictions
-    on its distribution.
-
-    $Id: alias.h,v 1.1.1.1 2000/01/11 01:48:42 wsanchez Exp $
-*/
-
+ * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_LICENSE_HEADER_START@
+ * 
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License").  You may not use this file except in compliance with the
+ * License.  Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
+ * 
+ * This Original Code and all software distributed under the License are
+ * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ * 
+ * @APPLE_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 2001 Charles Mott <cmott@scientech.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.
+ *
+ * Based upon:
+ * $FreeBSD: src/lib/libalias/alias.h,v 1.12.2.4 2001/08/01 09:36:40 obrien Exp $
+ */
+
+/*-
+ * Alias.h defines the outside world interfaces for the packet aliasing
+ * software.
+ * 
+ * This software is placed into the public domain with no restrictions on its
+ * distribution.
+ */
 
 #ifndef _ALIAS_H_
-#define _ALIAS_H_
-
-#ifndef NULL
-#define NULL 0
-#endif
+#define        _ALIAS_H_
 
 /* Alias link representative (incomplete struct) */
 struct alias_link;
@@ -41,6 +82,9 @@ struct alias_link;
     PacketAliasSetFWBase(unsigned int, unsigned int);
 #endif
 
+    extern void
+    PacketAliasClampMSS(u_short mss);
+
 /* Packet Handling */
     extern int
     PacketAliasIn(char *, int maxpacketsize);
@@ -48,6 +92,9 @@ struct alias_link;
     extern int
     PacketAliasOut(char *, int maxpacketsize);
 
+    extern int
+    PacketUnaliasOut(char *, int maxpacketsize);
+
 /* Port and Address Redirection */
     extern struct alias_link *
     PacketAliasRedirectPort(struct in_addr, u_short, 
@@ -56,8 +103,15 @@ struct alias_link;
                             u_char);
 
     extern int
-    PacketAliasPptp(struct in_addr);
+    PacketAliasAddServer(struct alias_link *link,
+                         struct in_addr addr,
+                         u_short port);
 
+    extern struct alias_link *
+    PacketAliasRedirectProto(struct in_addr,
+                             struct in_addr,
+                             struct in_addr,
+                             u_char);
 
     extern struct alias_link *
     PacketAliasRedirectAddr(struct in_addr,
@@ -92,7 +146,7 @@ struct alias_link;
 
 
 /********************** Mode flags ********************/
-/* Set these flags using SetPacketAliasMode() */
+/* Set these flags using PacketAliasSetMode() */
 
 /* If PKT_ALIAS_LOG is set, a message will be printed to
        /var/log/alias.log every time a link is created or deleted.  This
@@ -105,7 +159,7 @@ struct alias_link;
 #define PKT_ALIAS_DENY_INCOMING 0x02
 
 /* If PKT_ALIAS_SAME_PORTS is set, packets will be attempted sent from
-       the same port as they originated on.  This allows eg rsh to work
+       the same port as they originated on.  This allows e.g. rsh to work
        *99% of the time*, but _not_ 100%.  (It will be slightly flakey
        instead of not working at all.)  This mode bit is set by
         PacketAliasInit(), so it is a default mode of operation. */
@@ -117,13 +171,12 @@ struct alias_link;
        port it chooses.  This will avoid interference with the host
        machine.  Fully specified links do not require this.  This bit
         is set after a call to PacketAliasInit(), so it is a default
-        mode of operation.*/
+        mode of operation. */
 #define PKT_ALIAS_USE_SOCKETS 0x08
 
-/* If PKT_ALIAS_UNREGISTERED_ONLY is set, then only packets with with
-       unregistered source addresses will be aliased (along with those
-       of the ppp host maching itself.  Private addresses are those
-        in the following ranges:
+/* If PKT_ALIAS_UNREGISTERED_ONLY is set, then only packets with
+       unregistered source addresses will be aliased.  Private
+       addresses are those in the following ranges:
                10.0.0.0     ->   10.255.255.255
                172.16.0.0   ->   172.31.255.255
                192.168.0.0  ->   192.168.255.255  */
@@ -132,7 +185,7 @@ struct alias_link;
 /* If PKT_ALIAS_RESET_ON_ADDR_CHANGE is set, then the table of dynamic
        aliasing links will be reset whenever PacketAliasSetAddress()
         changes the default aliasing address.  If the default aliasing
-        address is left unchanged by this functions call, then the
+        address is left unchanged by this function call, then the
         table of dynamic aliasing links will be left intact.  This
         bit is set after a call to PacketAliasInit(). */
 #define PKT_ALIAS_RESET_ON_ADDR_CHANGE 0x20
@@ -144,7 +197,7 @@ struct alias_link;
    controlled by PacketAliasSetFWBase(base, size). The hole will be
    attached to that particular alias_link, so when the link goes away
    so do the hole.  */
-#define PKT_ALIAS_PUNCH_FW 0x40
+#define PKT_ALIAS_PUNCH_FW 0x100
 #endif
 
 /* If PKT_ALIAS_PROXY_ONLY is set, then NAT will be disabled and only
@@ -163,4 +216,4 @@ struct alias_link;
 #define PKT_ALIAS_FOUND_HEADER_FRAGMENT 4
 
 #endif
-/*lint -restore */
+/* lint -restore */