summaryrefslogtreecommitdiffstats
path: root/lib/libalias/alias.c
Commit message (Collapse)AuthorAgeFilesLines
* Build userland libalias using src/sys/netinet/libalias.glebius2005-05-041-1433/+0
| | | | | Reviewed by: ru Repocopy by: peter
* natd core dumps when -reverse switch is used because of a bug inphk2005-04-051-2/+2
| | | | | | | | | | | | | | | | | | | | | libalias. In /usr/src/lib/libalias/alias.c, the functions LibAliasIn and LibAliasOutTry call the legacy PacketAliasIn/PacketAliasOut instead of LibAliasIn/LibAliasOut when the PKT_ALIAS_REVERSE option is set. In this case, the context variable "la" gets lost because the legacy compatibility routines expect "la" to be global. This was obviously an oversight when rewriting the PacketAlias* functions to the LibAlias* functions. The fix (as shown in the patch below) is to remove the legacy subroutine calls and replace with the new ones using the "la" struct as the first arg. Submitted by: Gil Kloepfer <fgil@kloepfer.org> Confirmed by: <nicolai@catpipe.net> PR: 76839 MFC after: 3 days
* Fix outgoing ICMP on global instance.phk2004-08-141-5/+5
|
* Introduce inline {ip,udp,tcp}_next() functions which take a pointer to andes2004-07-061-22/+22
| | | | | | | {ip,udp,tcp} header and return a void * pointing to the payload (i.e. the first byte past the end of the header and any required padding). Use them consistently throughout libalias to a) reduce code duplication, b) improve code legibility, c) get rid of a bunch of alignment warnings.
* Rewrite twowords() to access its argument through a char pointer and notdes2004-07-061-3/+10
| | | | | | a short pointer. The previous implementation seems to be in a gray zone of the C standard, and GCC generates incorrect code for it at -O2 or higher on some platforms.
* Make libalias WARNS?=6-clean. This mostly involves renaming variablesdes2004-07-051-124/+129
| | | | | | | | | named link, foo_link or link_foo to lnk, foo_lnk or lnk_foo, fixing signed / unsigned comparisons, and shoving unused function arguments under the carpet. I was hoping WARNS?=6 might reveal more serious problems, and perhaps the source of the -O2 breakage, but found no smoking gun.
* Parenthesize return values.des2004-07-051-11/+11
|
* Mechanical whitespace cleanup.des2004-07-051-42/+42
|
* Add LibAliasOutTry() which checks a packet for a hit in the tables, butphk2004-07-041-16/+28
| | | | does not create a new entry if none is found.
* Unbreak natd.deischen2004-04-021-0/+1
| | | | Reported and submitted by: Sean McNeil (sean at mcneil.com)
* Deal with aliasing warnings.des2004-03-311-172/+57
| | | | | Reviewed by: ru Approved by: silence on the lists
* Run through indent(1) so I can read the code without getting a headache.des2004-03-161-1045/+976
| | | | | The result isn't quite knf, but it's knfer than the original, and far more consistent.
* Mostly mechanical rework of libalias:phk2004-01-171-121/+121
| | | | | | | | | | | | Makes it possible to have multiple packet aliasing instances in a single process by moving all static and global variables into an instance structure called "struct libalias". Redefine a new API based on s/PacketAlias/LibAlias/g Add new "instance" argument to all functions in the new API. Implement old API in terms of the new API.
* Add Cisco Skinny Station protocol support to libalias, natd, and ppp.marcus2003-09-231-0/+6
| | | | | | | | | | | | | | | Skinny is the protocol used by Cisco IP phones to talk to Cisco Call Managers. With this code, one can use a Cisco IP phone behind a FreeBSD NAT gateway. Currently, having the Call Manager behind the NAT gateway is not supported. More information on enabling Skinny support in libalias, natd, and ppp can be found in those applications' manpages. PR: 55843 Reviewed by: ru Approved by: ru MFC after: 30 days
* In the PKT_ALIAS_PROXY_ONLY mode, make sure to preserve theru2003-06-131-0/+4
| | | | | | original source IP address, as promised in the manual page. Spotted by: Vaclav Petricek
* Don't forget to recalculate the IP checksum of the originalru2002-07-231-4/+12
| | | | | | | IP datagram embedded into ICMP error message. Spotted by: tcpdump 3.7.1 (-vvv) MFC after: 3 days
* Remove trailing whitespacebrian2002-07-011-23/+23
|
* Fixed the bug in transparent TCP proxying with the "encode_ip_hdr"ru2001-12-181-1/+3
| | | | | | option -- TcpAliasOut() did not catch the IP header length change. Submitted by: Stepachev Andrey <aka50@mail.ru>
* cmott@scientech.com -> cm@linktel.netbrian2001-11-031-1/+1
| | | | Requested by: Charles Mott <cmott@scientech.com>
* Add __FBSDID's to libaliasdillon2001-09-301-2/+3
|
* Added TFTP support.ru2001-08-211-0/+9
| | | | | Submitted by: Joe Clarke <marcus@marcuscom.com> MFC after: 2 weeks
* Make the copyright consistent.brian2001-08-201-3/+0
| | | | Previously approved by: Charles Mott <cmott@scientech.com>
* Add BSD-style copyright headersbrian2001-06-041-2/+29
| | | | Approved by: Charles Mott <cmott@scientech.com>
* Make header files conform to style(9).brian2001-03-251-13/+15
| | | | | | Reviewed by (*): bde (*) alias_local.h only got a cursory glance.
* Added boolean argument to link searching functions, indicatingru2000-10-301-17/+18
| | | | whether they should create a link if lookup has failed or not.
* A significant rewrite of PPTP aliasing code.ru2000-10-301-39/+12
| | | | | | | | | | | | | | PPTP links are no longer dropped by simple (and inappropriate in this case) "inactivity timeout" procedure, only when requested through the control connection. It is now possible to have multiple PPTP servers running behind NAT. Just redirect the incoming TCP traffic to port 1723, everything else is done transparently. Problems were reported and the fix was tested by: Michael Adler <Michael.Adler@compaq.com>, David Andersen <dga@lcs.mit.edu>
* A bit of indentation reformatting.ru2000-10-021-33/+21
|
* Match IPPROTO_ICMP with IP protocol field of the original IPru2000-09-011-2/+2
| | | | | | | datagram embedded into ICMP error message, not with protocol field of ICMP message itself (which is always IPPROTO_ICMP). Pointed by: Erik Salander <erik@whistle.com>
* Changed the way we handle outgoing ICMP error messages -- doru2000-09-011-12/+22
| | | | | | | | not alias `ip_src' unless it comes from the host an original datagram that triggered this error message was destined for. PR: 20712 Reviewed by: brian, Charles Mott <cmott@scientech.com>
* Create aliasing links for incoming ICMP echo/timestamp requests.ru2000-08-311-46/+10
| | | | | This makes outgoing ICMP echo/timestamp replies to be de-aliased with the right source IP, not exactly the primary aliasing IP.
* Add address translation support for RTSP/RTP used by RealPlayer andarchie2000-07-261-1/+134
| | | | | | | | Quicktime streaming media applications. Add a BUGS section to the man page. Submitted by: Erik Salander <erik@whistle.com>
* Added true support for PPTP aliasing. Some nice features include:ru2000-06-201-7/+52
| | | | | | | | | | | | | | | | | | | | - Multiple PPTP clients behind NAT to the same or different servers. - Single PPTP server behind NAT -- you just need to redirect TCP port 1723 to a local machine. Multiple servers behind NAT is possible but would require a simple API change. - No API changes! For more information on how this works see comments at the start of the alias_pptp.c. PacketAliasPptp() is no longer necessary and will be removed soon. Submitted by: Erik Salander <erik@whistle.com> Reviewed by: ru Rewritten by: ru Reviewed by: Erik Salander <erik@whistle.com>
* Replace PacketAliasRedirectPptp() (which had nothing specificru2000-04-281-20/+14
| | | | | | | to PPTP) with more generic PacketAliasRedirectProto(). Major number is not bumped because it is believed that noone has started using PacketAliasRedirectPptp() yet.
* Add support for multiple PPTP sessions:ru2000-04-181-31/+52
| | | | | | | - new API function: PacketAliasRedirectPptp() - new mode bit: PKT_ALIAS_DENY_PPTP Please see manual page for details.
* - Remove unused includes.ru2000-04-051-24/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Minor spelling fixes. - Make IcmpAliasOut2() really work. Before this change: # natd -v -n PUB_IFACE -p 12345 -redirect_address 192.168.1.1 P.P.P.P natd[87923]: Aliasing to A.A.A.A, mtu 1500 bytes In [UDP] [UDP] X.X.X.X:49562 -> P.P.P.P:50000 aliased to [UDP] X.X.X.X:49562 -> 192.168.1.1:50000 Out [ICMP] [ICMP] 192.168.1.1 -> X.X.X.X 3(3) aliased to [ICMP] A.A.A.A -> X.X.X.X 3(3) # tcpdump -n -t -i PUB_IFACE host X.X.X.X and "(udp or icmp)" tcpdump: listening on PUB_IFACE X.X.X.X.49562 > P.P.P.P.50000: udp 3 A.A.A.A > X.X.X.X: icmp: A.A.A.A udp port 50000 unreachable After this change: # natd -v -n PUB_IFACE -p 12345 -redirect_address 192.168.1.1 P.P.P.P natd[89360]: Aliasing to A.A.A.A, mtu 1500 bytes In [UDP] [UDP] X.X.X.X:49563 -> P.P.P.P:50000 aliased to [UDP] X.X.X.X:49563 -> 192.168.1.1:50000 Out [ICMP] [ICMP] 192.168.1.1 -> X.X.X.X 3(3) aliased to [ICMP] P.P.P.P -> X.X.X.X 3(3) # tcpdump -n -t -i PUB_IFACE host X.X.X.X and "(udp or icmp)" tcpdump: listening on PUB_IFACE X.X.X.X.49563 > P.P.P.P.50000: udp 3 P.P.P.P > X.X.X.X: icmp: P.P.P.P udp port 50000 unreachable
* - Optimization to the previous (rev 1.15) commit.ru1999-09-101-9/+11
| | | | | | Requested by: eivind Discussed with: eivind Reviewed by: brian, eivind
* Handle TCP reset sequence properly.ru1999-09-091-2/+2
| | | | | | | | | | | | | | | | | | | In the words of originator: :If an incoming connection is initiated through natd and deny_incoming is :not set, then a new alias_link structure is created to handle the link. :If there is nothing listening for the incoming connection, then the kernel :responds with a RST for the connection. However, this is not processed :correctly in libalias/alias.c:TcpMonitor{In,Out} and :libalias/alias_db.c:SetState{In,Out} as it thinks a connection :has been established and therefore applies a timeout of 86400 seconds :to the link. : :If many of these half-connections are initiated (during, for example, a :port scan of the host), then many thousands of unnecessary links are :created and the resident size of natd balloons to 20MB or more. PR: 13639 Reviewed by: brian
* Add $FreeBSD$ and spell Eklund properly.billf1999-08-291-0/+1
| | | | Approved by: brian (well, he approved adding $Id$)
* Aallow ppp to work with Nortel Networks Extranet Switchbrian1999-08-221-0/+6
| | | | | | product and Windows NT tunneling. Submitted by: Chain Lee <chain@nortelnetworks.com>
* Don't get caught in an infinite recursion when PKT_ALIAS_REVERSEbrian1999-06-221-4/+12
| | | | | | | | is set. Document PKT_ALIAS_REVERSE. Pointed out by: Jonathan Hanna <jh@cr1003333-a.crdva1.bc.home.com> PR: 12304
* Remove duplicate line.billf1999-03-231-1/+0
| | | | Reviewed by: eivind
* Version 3.0: January 1, 1999brian1999-02-271-44/+198
| | | | | | | | - 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>
* Reviewed by: freebsd-currentdillon1998-12-141-3/+14
| | | | | | | | | Add bounds checking to netbios NS packet resolving code. This should prevent natd from crashing on badly formed netbios packets (as might be heard when the machine is sitting on a cable modem or certain DSL networks), and also closes potential security holes that might have exploited the lack of bounds checking in the previous version of the code.
* Add CUSEEME support. This has *not* been tested, norbrian1998-06-241-0/+7
| | | | | could I find anyone to test it, so please report any problems to me.
* Quieten gcc 2.8.1brian1998-06-101-2/+2
|
* Primary verison of NetBIOS over TCP/IP. Now you can connect Windowsamurai1998-05-241-3/+36
| | | | | | | DOMAIN as DOMAIN user through NAT function. See also RFC1002 for futher detail of SMB structure. Submitted by: Atsushi Murai <amurai@spec.co.jp>
* o Support a compile-time -DNO_FW_PUNCH for portabilitybrian1998-04-191-2/+2
| | | | | | (and those of us that don't want the functionality). o Don't assume sizeof(long) == 4. Ok'd by: Charles Mott <cmott@srv.net>
* Teach libalias to work with IPFW firewalls (controlled by a flag).eivind1998-01-091-10/+28
| | | | | Obtained from: Yes development tree (+ 10 lines of patches from Charles Mott, original libalias author)
* Upgrade to 2.4 (Fix -PKT_ALIAS_UNREGISTERED_ONLY)brian1997-09-061-1/+1
| | | | | | | Submitted by: Charles Mott <cmott@srv.net> Add __libalias_version so that ppp can derive the correct library name for dlopen()
* Update to version 2.2. Only the PacketAlias*()brian1997-08-031-67/+21
| | | | | | functions should now be used. The old 2.1 stuff is there for backwards compatability. Submitted by: Charles Mott <cmott@snake.srv.net>
OpenPOWER on IntegriCloud