Initial commit

This commit is contained in:
2018-05-08 03:01:03 +02:00
commit 1c4c595cd6
3256 changed files with 417972 additions and 0 deletions

Submodule NONE-CKUBU/src/check_net added at 6bde0e7c07

Binary file not shown.

View File

@ -0,0 +1,9 @@
Authors and contributors, in alphabetical order:
Alexey Charkov <alchark@gmail.com>
Christian Ruppert <idl0r@gentoo.org>
Conrad Kostecki <ConiKost@gmx.de>
Constantin Baranov <const@mimas.ru>
Damjan Cvetko <zobo@users.sourceforge.net>
Johnny Egeland <johnnyege@users.sourceforge.net>
Martin Djernaes <djernaes@users.sourceforge.net>

View File

@ -0,0 +1,28 @@
igmpproxy - IGMP proxy based multicast router
Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
This software is derived work from the following software. The original
source code has been modified from it's original state by the author
of igmpproxy.
smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
- Licensed under the GNU General Public License, version 2
mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
Leland Stanford Junior University.
- Original license can be found in the Stanford.txt file.

View File

@ -0,0 +1,317 @@
commit 0e8e7fde2d68f9ea9b5095c24231024be281393c
Author: Constantin Baranov <const@mimas.ru>
Date: Mon Oct 5 21:31:42 2009 +0500
Release 0.1
commit 68ba90446e02825073b779bd0628c4f34833665d
Author: Constantin Baranov <const@mimas.ru>
Date: Thu Oct 1 00:09:38 2009 +0500
Fix building on FreeBSD 8.0 (wrt #2870461)
Several IGMP_* macroses was deprecated in r189347/v800069 and
removed in r193938/v800098. Redefine them if needed.
commit 74c2e1aa414f33585562d6783a3290ac63ee6c69
Author: Martin Djernaes <djernaes@users.sourceforge.net>
Date: Sun Sep 6 16:41:22 2009 +0500
Fix netmask detection on interfaces with multiple addresses
When having multiple IP addresses on an interface the netmask retrieved for
each IP address is not correct. The reason is that ioctrl for
SIOCGIFNETMASK will just provide the first netmask when no IP address is
provided in the call.
commit 64144607195b779396a49179518aade24707cbbc
Author: Constantin Baranov <const@mimas.ru>
Date: Fri Sep 4 01:38:27 2009 +0500
Generate ChangeLog and AUTHORS by Git
commit 94dd711318384e7b121924db0177a65b2fc38471
Author: Constantin Baranov <const@mimas.ru>
Date: Sun Aug 16 19:45:04 2009 +0500
Release 0.1 beta5
commit 3ac424f82ab9f281dd3a0bfccbc92352bd5512c0
Author: Damjan Cvetko <zobo@users.sourceforge.net>
Date: Sun Aug 16 19:28:30 2009 +0500
Improve getIfByAddress() function (wrt #2835052)
getIfByAddress does not find the best iterface in case of overlaping
networks. This patchs scans through all interfaces (and networks) and picks
the one with the longest subnet.
commit 8ca5a29b56390020f27d4106643cd623cdb12bb2
Author: Constantin Baranov <const@mimas.ru>
Date: Sun Aug 16 18:37:58 2009 +0500
Fix nextConfigToken() function (wrt #2838154)
The nextConfigToken() returns NULL when EOF reached even if token
was read already. This results in loss of last token in file usually.
Let it return unterminated token if it is non-empty already.
commit 954674bc4ec6a689b1de2f2a2766e993df1e2705
Author: Constantin Baranov <const@mimas.ru>
Date: Thu May 14 01:14:56 2009 +0500
Release 0.1 beta4
commit a7908b855ecb6959ea08ef3b374ff2aca9939cf0
Author: Constantin Baranov <const@mimas.ru>
Date: Thu May 14 01:10:35 2009 +0500
Update README etc.
commit 62fa19975ff4daa8e31a9b07bf33ddc8cd0129f8
Author: Constantin Baranov <const@mimas.ru>
Date: Thu May 14 01:06:44 2009 +0500
State licenses in the COPYING
commit 3ac3ae462ca35ec7f1f22d968bf4fab0807d636f
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 10 05:01:21 2009 +0500
Remove pointless backslashes in configure.ac
commit 3c4118949b6a19b384b08e171a5294b0ea307e08
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 10 02:19:30 2009 +0500
Replace bzero() with memset()
commit ee07cb5bfd2514503d0564d2aee0656203d9a91e
Author: Constantin Baranov <const@mimas.ru>
Date: Sat May 9 02:09:28 2009 +0500
Remove redundant #include
commit 56e37ad6ba0c6aade86c1407ea55abb8b445d119
Author: Constantin Baranov <const@mimas.ru>
Date: Sat May 9 02:00:03 2009 +0500
Add DragonFly BSD support
commit eccefd205c3fb326b6ae1b79676238fc349f8be8
Author: Constantin Baranov <const@mimas.ru>
Date: Sat May 9 01:57:07 2009 +0500
Add missed format argument in acceptLeaveMessage()
commit 16c55bd5ab6a9608099252fa320ddbc0a05fca0a
Author: Constantin Baranov <const@mimas.ru>
Date: Wed May 6 01:29:04 2009 +0500
Avoid inclusion if linux/in.h (wrt #2787118)
The linux/in.h header conflicts with the netinet/in.h header in
certain Linux distributions. So let's ensure that linux/in.h will
never be included neither directly nor from linux/mroute.h.
commit e01624e123c5a24310a4fb7f70ab6178278c3b7a
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 22:00:33 2009 +0500
Release 0.1 beta3
commit a3c84e48a1ff32812aac92ca0dba923ca7dd4ca0
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 21:53:56 2009 +0500
Show version in help message
Also remove unused Version constant.
commit f880a472f6b835d8139adc27908206a11a50846f
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 21:43:01 2009 +0500
Remove IF_DEBUG macros
IF_DEBUG macros hides my_log(LOG_DEBUG...) calls. Thus it is redundant.
commit 6b1a4beb839f41ecc7468e2680f5d0eedbd49b35
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 21:29:16 2009 +0500
Break long lines in build scripts
commit 55dcd57b8cfac25a4eeafae5a18ab85a07484418
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 21:19:19 2009 +0500
Remove hardcoded version strings from man pages
commit e7880c542e38bae8efa16b148a431488456f5594
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 20:52:58 2009 +0500
Move mrouted-LICENSE out of doc directory
commit 9fee127b13336776d2e6019db8c22ee7de9bf36f
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 20:32:31 2009 +0500
Use strdup() instead of malloc() and strcpy()
commit d34dee7ea0b03ba98806558a1eebf78061ce8878
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 20:30:44 2009 +0500
Eliminate message about IGMP_MEMBERSHIP_QUERY ignored
commit 32de2bfbad537f6e60edddaefa6c240b2811c567
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 20:25:30 2009 +0500
Add OpenBSD support
commit a85c620eccea244c80a34c3403b2ea7055616703
Author: Constantin Baranov <const@mimas.ru>
Date: Sun May 3 04:16:53 2009 +0500
Add NetBSD support
commit d61d57c50b8b2399ff90e32da687686cf068680a
Author: Constantin Baranov <const@mimas.ru>
Date: Sat May 2 05:07:12 2009 +0500
Remove outdated bug report email address
commit 14edc6d6dab34e5e51bc12a61f45bae753235e98
Author: Constantin Baranov <const@mimas.ru>
Date: Sat May 2 04:49:38 2009 +0500
Improve OS checking mechanism
Hide all OS-specific things in os-*.h headers and let autoconf select
proper header. Also add check for struct sockaddr_in.sin_len member.
commit b23a4c9f9edd43a22759930ae969ee420c270456
Author: Constantin Baranov <const@mimas.ru>
Date: Sat May 2 04:48:23 2009 +0500
Do not close std* streams in non-debug mode
commit 7256cb378db4b839f0138cc9422971f5fb353de1
Author: Constantin Baranov <const@mimas.ru>
Date: Fri Apr 17 21:16:47 2009 +0500
Clean up configure.ac and add check for sockaddr.sa_len member
commit eb6f3eababbca43c517a1407e5af66ed384bf07d
Author: Constantin Baranov <const@mimas.ru>
Date: Fri Apr 17 20:04:32 2009 +0500
Install igmpproxy to sbin directory
commit e22427f33150970f6bef3106ac018d7138dfbadb
Author: Constantin Baranov <const@mimas.ru>
Date: Fri Apr 17 20:03:46 2009 +0500
Add missing igmpproxy.h to list of sources
commit 68fb7638f36c85c44b2a8a33e28af58c65de8a06
Author: Christian Ruppert <idl0r@gentoo.org>
Date: Thu Apr 9 21:28:04 2009 +0500
Add missing 'h' to the getopt() optstring
commit bae0b7b42ec948442945648878dbc8ef3ee1d2c5
Author: Constantin Baranov <const@mimas.ru>
Date: Sat Apr 4 00:38:37 2009 +0500
Rework logging
Allow to control verbosity with -v option.
Don't write to syslog in debug mode.
Don't fork in background. Let start-stop-deamon do this.
Also update man-pages and help messages.
commit df0ffb7998cbbd3ab09c100f48dead6adb93aa2c
Author: Constantin Baranov <const@mimas.ru>
Date: Sat Apr 4 00:38:06 2009 +0500
Move igmpproxy.conf out of src directory
commit 4c36c1ea8f9822f96031cff8f40ca3fc7cb93db3
Author: Constantin Baranov <const@mimas.ru>
Date: Mon Mar 9 22:03:46 2009 +0400
Initial FreeBSD support
Based on IGMPproxy port to FreeBSD made by
Pavel Korshunov and gygenot.
commit fdc5cc59655a59f7f73af78d6606b5c45b9c1071
Author: Constantin Baranov <const@mimas.ru>
Date: Sun Mar 8 20:37:17 2009 +0400
Move to C99 and clean up the code
Listen to compiler's warnings.
Use standard integer and boolean types.
Remove redundant version.h.
commit b535f70ec3dfc73a767592739c8aa44583e7e833
Author: Constantin Baranov <const@mimas.ru>
Date: Sun Mar 8 17:53:24 2009 +0400
Rename defs.h to igmpproxy.h
commit 2df90756d378de822d6ece6aa0a340cab6a489e4
Author: Constantin Baranov <const@mimas.ru>
Date: Sun Mar 8 16:17:20 2009 +0400
Add bootstrap script
commit 3393d1cd7c0f13cc91fa3ec974eb2cd1409bb720
Author: Constantin Baranov <const@mimas.ru>
Date: Fri Feb 27 22:28:03 2009 +0400
Remove stuff generated by autotools
commit 576b42c7fc71757a33dbac0ebc388f8eebd81fe3
Author: Constantin Baranov <const@mimas.ru>
Date: Mon Feb 23 00:36:39 2009 +0400
Fix logging to syslog
Do not write textual representation of message severity
because syslog can do this itself. Also write only one
string at a time.
commit 1223d5975a1da679d15120417365582a0054abc4
Author: Constantin Baranov <const@mimas.ru>
Date: Mon Feb 23 00:22:20 2009 +0400
chmod -x on appropriate files
commit 66145eee1d74c9edd23f3d72700911865b7a09bb
Author: Conrad Kostecki <ConiKost@gmx.de>
Date: Mon Feb 23 00:18:48 2009 +0400
Remove banner
commit 710d688641ca68d89a7b8958c7d84144d5fb1d9b
Author: Alexey Charkov <alchark@gmail.com>
Date: Mon Feb 23 00:13:03 2009 +0400
Enable autotools
I've packaged igmpproxy with GNU autotools, which will allow for a better
experience on Gentoo (CFLAGS, directory structure etc). Also, compile-time
warnings are fixed. As the project is dead, this is not even a fork :)
commit f4c36aa73287b794e2c842564e82d2d4f3c1027f
Author: Johnny Egeland <johnnyege@users.sourceforge.net>
Date: Mon Feb 23 00:10:48 2009 +0400
Initial import

View File

@ -0,0 +1,286 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS

View File

@ -0,0 +1,302 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common',
not `/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *Note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@ -0,0 +1,739 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
pkgdatadir = $(datadir)/igmpproxy
pkgincludedir = $(includedir)/igmpproxy
pkglibdir = $(libdir)/igmpproxy
pkglibexecdir = $(libexecdir)/igmpproxy
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i586-pc-linux-gnu
host_triplet = i586-pc-linux-gnu
subdir = .
DIST_COMMON = README $(am__configure_deps) $(dist_sysconf_DATA) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \
ChangeLog INSTALL NEWS config.guess config.sub depcomp \
install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(sysconfdir)"
DATA = $(dist_sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run aclocal-1.11
AMTAR = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run tar
AUTOCONF = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run automake-1.11
AWK = gawk
CC = gcc -std=gnu99
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
ECHO_N = -n
ECHO_T =
EXEEXT =
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LDFLAGS =
LIBOBJS =
LIBS =
LTLIBOBJS =
MAKEINFO = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run makeinfo
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = igmpproxy
PACKAGE_BUGREPORT =
PACKAGE_NAME = igmpproxy
PACKAGE_STRING = igmpproxy 0.1
PACKAGE_TARNAME = igmpproxy
PACKAGE_VERSION = 0.1
PATH_SEPARATOR = :
SET_MAKE =
SHELL = /bin/sh
STRIP =
VERSION = 0.1
abs_builddir = /usr/local/src/igmpproxy-0.1
abs_srcdir = /usr/local/src/igmpproxy-0.1
abs_top_builddir = /usr/local/src/igmpproxy-0.1
abs_top_srcdir = /usr/local/src/igmpproxy-0.1
ac_ct_CC = gcc
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i586-pc-linux-gnu
build_alias =
build_cpu = i586
build_os = linux-gnu
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = i586-pc-linux-gnu
host_alias =
host_cpu = i586
host_os = linux-gnu
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /usr/local/src/igmpproxy-0.1/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local/igmpproxy-0.1
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix =
top_builddir = .
top_srcdir = .
SUBDIRS = doc src
EXTRA_DIST = GPL.txt Stanford.txt
dist_sysconf_DATA = igmpproxy.conf
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
install-dist_sysconfDATA: $(dist_sysconf_DATA)
@$(NORMAL_INSTALL)
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
done
uninstall-dist_sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-dist_sysconfDATA
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-dist_sysconfDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
ctags-recursive install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
distclean distclean-generic distclean-hdr distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dist_sysconfDATA install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am \
uninstall-dist_sysconfDATA
ChangeLog:
git --git-dir=$(srcdir)/.git log > $@
AUTHORS: ChangeLog
( echo "Authors and contributors, in alphabetical order: "; echo; \
sed -r "s/^Author: (.*)/\1/;t;d" $< | sort -u ) > $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,10 @@
SUBDIRS = doc src
EXTRA_DIST = GPL.txt Stanford.txt
dist_sysconf_DATA = igmpproxy.conf
ChangeLog:
git --git-dir=$(srcdir)/.git log > $@
AUTHORS: ChangeLog
( echo "Authors and contributors, in alphabetical order: "; echo; \
sed -r "s/^Author: (.*)/\1/;t;d" $< | sort -u ) > $@

View File

@ -0,0 +1,739 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(dist_sysconf_DATA) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \
ChangeLog INSTALL NEWS config.guess config.sub depcomp \
install-sh missing
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-dvi-recursive install-exec-recursive \
install-html-recursive install-info-recursive \
install-pdf-recursive install-ps-recursive install-recursive \
installcheck-recursive installdirs-recursive pdf-recursive \
ps-recursive uninstall-recursive
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(sysconfdir)"
DATA = $(dist_sysconf_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
distclean-recursive maintainer-clean-recursive
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
distdir dist dist-all distcheck
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d "$(distdir)" \
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr "$(distdir)"; }; }
am__relativize = \
dir0=`pwd`; \
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
sed_rest='s,^[^/]*/*,,'; \
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
sed_butlast='s,/*[^/]*$$,,'; \
while test -n "$$dir1"; do \
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
if test "$$first" != "."; then \
if test "$$first" = ".."; then \
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
else \
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
if test "$$first2" = "$$first"; then \
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
else \
dir2="../$$dir2"; \
fi; \
dir0="$$dir0"/"$$first"; \
fi; \
fi; \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = doc src
EXTRA_DIST = GPL.txt Stanford.txt
dist_sysconf_DATA = igmpproxy.conf
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
am--refresh:
@:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
$(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
$(top_srcdir)/configure: $(am__configure_deps)
$(am__cd) $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
$(am__aclocal_m4_deps):
config.h: stamp-h1
@if test ! -f $@; then \
rm -f stamp-h1; \
$(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: $(am__configure_deps)
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
rm -f stamp-h1
touch $@
distclean-hdr:
-rm -f config.h stamp-h1
install-dist_sysconfDATA: $(dist_sysconf_DATA)
@$(NORMAL_INSTALL)
test -z "$(sysconfdir)" || $(MKDIR_P) "$(DESTDIR)$(sysconfdir)"
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
done
uninstall-dist_sysconfDATA:
@$(NORMAL_UNINSTALL)
@list='$(dist_sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(sysconfdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sysconfdir)" && rm -f $$files
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
$(RECURSIVE_CLEAN_TARGETS):
@failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
*) list='$(SUBDIRS)' ;; \
esac; \
rev=''; for subdir in $$list; do \
if test "$$subdir" = "."; then :; else \
rev="$$subdir $$rev"; \
fi; \
done; \
rev="$$rev ."; \
target=`echo $@ | sed s/-recursive//`; \
for subdir in $$rev; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
done
ctags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
empty_fix=.; \
else \
include_option=--include; \
empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test ! -f $$subdir/TAGS || \
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
test -d "$(distdir)/$$subdir" \
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|| exit 1; \
fi; \
done
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
$(am__relativize); \
new_distdir=$$reldir; \
dir1=$$subdir; dir2="$(top_distdir)"; \
$(am__relativize); \
new_top_distdir=$$reldir; \
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
($(am__cd) $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$$new_top_distdir" \
distdir="$$new_distdir" \
am__remove_distdir=: \
am__skip_length_check=: \
am__skip_mode_fix=: \
distdir) \
|| exit 1; \
fi; \
done
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r "$(distdir)"
dist-gzip: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-xz: distdir
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.xz*) \
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
chmod a-w $(distdir)
test -d $(distdir)/_build || exit 0; \
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
&& am__cwd=`pwd` \
&& $(am__cd) $(distdir)/_build \
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
&& $(MAKE) $(AM_MAKEFLAGS) check \
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
&& cd "$$am__cwd" \
|| exit 1
$(am__remove_distdir)
@(echo "$(distdir) archives ready for distribution: "; \
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
@$(am__cd) '$(distuninstallcheck_dir)' \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|| { echo "ERROR: files left after uninstall:" ; \
if test -n "$(DESTDIR)"; then \
echo " (check DESTDIR support)"; \
fi ; \
$(distuninstallcheck_listfiles) ; \
exit 1; } >&2
distcleancheck: distclean
@if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|| { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-recursive
all-am: Makefile $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
for dir in "$(DESTDIR)$(sysconfdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
html: html-recursive
html-am:
info: info-recursive
info-am:
install-data-am:
install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am: install-dist_sysconfDATA
install-html: install-html-recursive
install-html-am:
install-info: install-info-recursive
install-info-am:
install-man:
install-pdf: install-pdf-recursive
install-pdf-am:
install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-generic
pdf: pdf-recursive
pdf-am:
ps: ps-recursive
ps-am:
uninstall-am: uninstall-dist_sysconfDATA
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
ctags-recursive install-am install-strip tags-recursive
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
all all-am am--refresh check check-am clean clean-generic \
ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
distclean distclean-generic distclean-hdr distclean-tags \
distcleancheck distdir distuninstallcheck dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dist_sysconfDATA install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-pdf install-pdf-am install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
installdirs-am maintainer-clean maintainer-clean-generic \
mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \
tags-recursive uninstall uninstall-am \
uninstall-dist_sysconfDATA
ChangeLog:
git --git-dir=$(srcdir)/.git log > $@
AUTHORS: ChangeLog
( echo "Authors and contributors, in alphabetical order: "; echo; \
sed -r "s/^Author: (.*)/\1/;t;d" $< | sort -u ) > $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,4 @@
New releases, the Git repository and the bug tracker are accessible
at project homepage:
http://sourceforge.net/projects/igmpproxy/

View File

@ -0,0 +1,10 @@
IGMPproxy is a simple mulitcast router that only uses the IGMP protocol.
Supported operating systems:
- Linux
- FreeBSD
- NetBSD
- OpenBSD
- DragonFly BSD
This software is released under the GNU GPL license v2. See details in COPYING.

View File

@ -0,0 +1,48 @@
The mrouted program is covered by the following license. Use of the
mrouted program represents acceptance of these terms and conditions.
1. STANFORD grants to LICENSEE a nonexclusive and nontransferable license
to use, copy and modify the computer software ``mrouted'' (hereinafter
called the ``Program''), upon the terms and conditions hereinafter set
out and until Licensee discontinues use of the Licensed Program.
2. LICENSEE acknowledges that the Program is a research tool still in
the development state, that it is being supplied ``as is,'' without any
accompanying services from STANFORD, and that this license is entered
into in order to encourage scientific collaboration aimed at further
development and application of the Program.
3. LICENSEE may copy the Program and may sublicense others to use object
code copies of the Program or any derivative version of the Program.
All copies must contain all copyright and other proprietary notices found
in the Program as provided by STANFORD. Title to copyright to the
Program remains with STANFORD.
4. LICENSEE may create derivative versions of the Program. LICENSEE
hereby grants STANFORD a royalty-free license to use, copy, modify,
distribute and sublicense any such derivative works. At the time
LICENSEE provides a copy of a derivative version of the Program to a
third party, LICENSEE shall provide STANFORD with one copy of the source
code of the derivative version at no charge to STANFORD.
5. STANFORD MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.
By way of example, but not limitation, STANFORD MAKES NO REPRESENTATION
OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
THAT THE USE OF THE LICENSED PROGRAM WILL NOT INFRINGE ANY PATENTS,
COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. STANFORD shall not be held liable
for any liability nor for any direct, indirect or consequential damages
with respect to any claim by LICENSEE or any third party on account of or
arising from this Agreement or use of the Program.
6. This agreement shall be construed, interpreted and applied in
accordance with the State of California and any legal action arising
out of this Agreement or use of the Program shall be filed in a court
in the State of California.
7. Nothing in this Agreement shall be construed as conferring rights to
use in advertising, publicity or otherwise any trademark or the name
of ``Stanford''.
The mrouted program is COPYRIGHT 1989 by The Board of Trustees of
Leland Stanford Junior University.

View File

@ -0,0 +1,951 @@
# generated automatically by aclocal 1.11 -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
[m4_warning([this file was generated for autoconf 2.63.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.])])
# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
# (This private macro should not be called outside this file.)
AC_DEFUN([AM_AUTOMAKE_VERSION],
[am__api_version='1.11'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
m4_if([$1], [1.11], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
# _AM_AUTOCONF_VERSION(VERSION)
# -----------------------------
# aclocal traces this macro to find the Autoconf version.
# This is a private macro too. Using m4_define simplifies
# the logic in aclocal, which can simply ignore this definition.
m4_define([_AM_AUTOCONF_VERSION], [])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.11])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
#
# Of course, Automake must honor this variable whenever it calls a
# tool from the auxiliary directory. The problem is that $srcdir (and
# therefore $ac_aux_dir as well) can be either absolute or relative,
# depending on how configure is run. This is pretty annoying, since
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
# source directory, any form will work fine, but in subdirectories a
# relative path needs to be adjusted first.
#
# $ac_aux_dir/missing
# fails when called from a subdirectory if $ac_aux_dir is relative
# $top_srcdir/$ac_aux_dir/missing
# fails if $ac_aux_dir is absolute,
# fails when called from a subdirectory in a VPATH build with
# a relative $ac_aux_dir
#
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
# are both prefixed by $srcdir. In an in-source build this is usually
# harmless because $srcdir is `.', but things will broke when you
# start a VPATH build or use an absolute $srcdir.
#
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
# and then we would define $MISSING as
# MISSING="\${SHELL} $am_aux_dir/missing"
# This will work as long as MISSING is not called from configure, because
# unfortunately $(top_srcdir) has no meaning in configure.
# However there are other variables, like CC, which are often used in
# configure, and could therefore not use this "fixed" $ac_aux_dir.
#
# Another solution, used here, is to always expand $ac_aux_dir to an
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
AC_DEFUN([AM_AUX_DIR_EXPAND],
[dnl Rely on autoconf to set up CDPATH properly.
AC_PREREQ([2.50])dnl
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
])
# AM_CONDITIONAL -*- Autoconf -*-
# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 9
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
# -------------------------------------
# Define a conditional.
AC_DEFUN([AM_CONDITIONAL],
[AC_PREREQ(2.52)dnl
ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
AC_SUBST([$1_TRUE])dnl
AC_SUBST([$1_FALSE])dnl
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
m4_define([_AM_COND_VALUE_$1], [$2])dnl
if $2; then
$1_TRUE=
$1_FALSE='#'
else
$1_TRUE='#'
$1_FALSE=
fi
AC_CONFIG_COMMANDS_PRE(
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
AC_MSG_ERROR([[conditional "$1" was never defined.
Usually this means the macro was only invoked conditionally.]])
fi])])
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 10
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
# will think it sees a *use*, and therefore will trigger all it's
# C support machinery. Also note that it means that autoscan, seeing
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
# NAME is "CC", "CXX", "GCJ", or "OBJC".
# We try a few techniques and use that to set a single cache variable.
#
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
# dependency, and given that the user is not expected to run this macro,
# just rely on AC_PROG_CC.
AC_DEFUN([_AM_DEPENDENCIES],
[AC_REQUIRE([AM_SET_DEPDIR])dnl
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
AC_REQUIRE([AM_DEP_TRACK])dnl
ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
[$1], CXX, [depcc="$CXX" am_compiler_list=],
[$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
[$1], UPC, [depcc="$UPC" am_compiler_list=],
[$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
[depcc="$$1" am_compiler_list=])
AC_CACHE_CHECK([dependency style of $depcc],
[am_cv_$1_dependencies_compiler_type],
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named `D' -- because `-MD' means `put the output
# in D'.
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
am__universal=false
m4_case([$1], [CC],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac],
[CXX],
[case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac])
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with `-c' and `-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# after this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvisualcpp | msvcmsys)
# This compiler won't grok `-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_$1_dependencies_compiler_type=none
fi
])
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
AM_CONDITIONAL([am__fastdep$1], [
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
])
# AM_SET_DEPDIR
# -------------
# Choose a directory name for dependency files.
# This macro is AC_REQUIREd in _AM_DEPENDENCIES
AC_DEFUN([AM_SET_DEPDIR],
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
])
# AM_DEP_TRACK
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
[ --disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
fi
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])dnl
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
])
# Generate code to set up dependency tracking. -*- Autoconf -*-
# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
#serial 5
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
[{
# Autoconf 2.62 quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
case $CONFIG_FILES in
*\'*) eval set x "$CONFIG_FILES" ;;
*) set x $CONFIG_FILES ;;
esac
shift
for mf
do
# Strip MF so we end up with the name of the file.
mf=`echo "$mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile or not.
# We used to match only the files named `Makefile.in', but
# some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so.
# Grep'ing the whole file is not good either: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`AS_DIRNAME("$mf")`
else
continue
fi
# Extract the definition of DEPDIR, am__include, and am__quote
# from the Makefile without running `make'.
DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n 's/^U = //p' < "$mf"`
# Find all dependency output files, they are included files with
# $(DEPDIR) in their names. We invoke sed twice because it is the
# simplest approach to changing $(DEPDIR) to its actual value in the
# expansion.
for file in `sed -n "
s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`AS_DIRNAME(["$file"])`
AS_MKDIR_P([$dirpart/$fdir])
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
}
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
# AM_OUTPUT_DEPENDENCY_COMMANDS
# -----------------------------
# This macro should only be invoked once -- use via AC_REQUIRE.
#
# This code is only required when automatic dependency tracking
# is enabled. FIXME. This creates each `.P' file that we will
# need in order to bootstrap the dependency handling code.
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AC_CONFIG_COMMANDS([depfiles],
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
# Do all the work for Automake. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 16
# This macro actually does too much. Some checks are only needed if
# your package does certain things. But this isn't really a big deal.
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
# AM_INIT_AUTOMAKE([OPTIONS])
# -----------------------------------------------
# The call with PACKAGE and VERSION arguments is the old style
# call (pre autoconf-2.50), which is being phased out. PACKAGE
# and VERSION should now be passed to AC_INIT and removed from
# the call to AM_INIT_AUTOMAKE.
# We support both call styles for the transition. After
# the next Automake release, Autoconf can make the AC_INIT
# arguments mandatory, and then we can depend on a new Autoconf
# release and drop the old call support.
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_PREREQ([2.62])dnl
dnl Autoconf wants to disallow AM_ names. We explicitly allow
dnl the ones we care about.
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])dnl
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
AC_SUBST([CYGPATH_W])
# Define the identity of the package.
dnl Distinguish between old-style and new-style calls.
m4_ifval([$2],
[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
AC_SUBST([PACKAGE], [$1])dnl
AC_SUBST([VERSION], [$2])],
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
_AM_IF_OPTION([no-define],,
[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
# Some tools Automake needs.
AC_REQUIRE([AM_SANITY_CHECK])dnl
AC_REQUIRE([AC_ARG_PROGRAM])dnl
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
AM_MISSING_PROG(AUTOCONF, autoconf)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
AM_MISSING_PROG(AUTOHEADER, autoheader)
AM_MISSING_PROG(MAKEINFO, makeinfo)
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
AC_REQUIRE([AM_PROG_MKDIR_P])dnl
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
AC_REQUIRE([AC_PROG_AWK])dnl
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
[_AM_PROG_TAR([v7])])])
_AM_IF_OPTION([no-dependencies],,
[AC_PROVIDE_IFELSE([AC_PROG_CC],
[_AM_DEPENDENCIES(CC)],
[define([AC_PROG_CC],
defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_CXX],
[_AM_DEPENDENCIES(CXX)],
[define([AC_PROG_CXX],
defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
[_AM_DEPENDENCIES(OBJC)],
[define([AC_PROG_OBJC],
defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
])
_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
AC_CONFIG_COMMANDS_PRE(dnl
[m4_provide_if([_AM_COMPILER_EXEEXT],
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
])
dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
dnl mangled by Autoconf and run in a shell conditional statement.
m4_define([_AC_COMPILER_EXEEXT],
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
# When config.status generates a header, we must update the stamp-h file.
# This file resides in the same directory as the config header
# that is generated. The stamp files are numbered to have different names.
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
# loop where config.status creates the headers, so we can generate
# our stamp files there.
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
[# Compute $1's index in $config_headers.
_am_arg=$1
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_SH
# ------------------
# Define $install_sh.
AC_DEFUN([AM_PROG_INSTALL_SH],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
if test x"${install_sh}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
AC_SUBST(install_sh)])
# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# Check whether the underlying file-system supports filenames
# with a leading dot. For instance MS-DOS doesn't.
AC_DEFUN([AM_SET_LEADING_DOT],
[rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
AC_SUBST([am__leading_dot])])
# Check to see how 'make' treats includes. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
AC_DEFUN([AM_MAKE_INCLUDE],
[am_make=${MAKE-make}
cat > confinc << 'END'
am__doit:
@echo this is the am__doit target
.PHONY: am__doit
END
# If we don't find an include directive, just comment out the code.
AC_MSG_CHECKING([for style of include used by $am_make])
am__include="#"
am__quote=
_am_result=none
# First try GNU make style include.
echo "include confinc" > confmf
# Ignore all kinds of additional output from `make'.
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=include
am__quote=
_am_result=GNU
;;
esac
# Now try BSD make style include.
if test "$am__include" = "#"; then
echo '.include "confinc"' > confmf
case `$am_make -s -f confmf 2> /dev/null` in #(
*the\ am__doit\ target*)
am__include=.include
am__quote="\""
_am_result=BSD
;;
esac
fi
AC_SUBST([am__include])
AC_SUBST([am__quote])
AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 6
# AM_MISSING_PROG(NAME, PROGRAM)
# ------------------------------
AC_DEFUN([AM_MISSING_PROG],
[AC_REQUIRE([AM_MISSING_HAS_RUN])
$1=${$1-"${am_missing_run}$2"}
AC_SUBST($1)])
# AM_MISSING_HAS_RUN
# ------------------
# Define MISSING if not defined so far and test if it supports --run.
# If it does, set am_missing_run to use it, otherwise, to nothing.
AC_DEFUN([AM_MISSING_HAS_RUN],
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
*)
MISSING="\${SHELL} $am_aux_dir/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --run true"; then
am_missing_run="$MISSING --run "
else
am_missing_run=
AC_MSG_WARN([`missing' script is too old or missing])
fi
])
# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_MKDIR_P
# ---------------
# Check for `mkdir -p'.
AC_DEFUN([AM_PROG_MKDIR_P],
[AC_PREREQ([2.60])dnl
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
dnl while keeping a definition of mkdir_p for backward compatibility.
dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
dnl Makefile.ins that do not define MKDIR_P, so we do our own
dnl adjustment using top_builddir (which is defined more often than
dnl MKDIR_P).
AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
case $mkdir_p in
[[\\/$]]* | ?:[[\\/]]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 4
# _AM_MANGLE_OPTION(NAME)
# -----------------------
AC_DEFUN([_AM_MANGLE_OPTION],
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
# _AM_SET_OPTION(NAME)
# ------------------------------
# Set option NAME. Presently that only means defining a flag for this option.
AC_DEFUN([_AM_SET_OPTION],
[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
# _AM_SET_OPTIONS(OPTIONS)
# ----------------------------------
# OPTIONS is a space-separated list of Automake options.
AC_DEFUN([_AM_SET_OPTIONS],
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
# -------------------------------------------
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
# Check to make sure that the build environment is sane. -*- Autoconf -*-
# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
# Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 5
# AM_SANITY_CHECK
# ---------------
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
echo timestamp > conftest.file
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[[\\\"\#\$\&\'\`$am_lf]]*)
AC_MSG_ERROR([unsafe absolute working directory name]);;
esac
case $srcdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
esac
# Do `set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$[*]" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
rm -f conftest.file
if test "$[*]" != "X $srcdir/configure conftest.file" \
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
alias in your environment])
fi
test "$[2]" = conftest.file
)
then
# Ok.
:
else
AC_MSG_ERROR([newly created file is older than distributed files!
Check your system clock])
fi
AC_MSG_RESULT(yes)])
# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# AM_PROG_INSTALL_STRIP
# ---------------------
# One issue with vendor `install' (even GNU) is that you can't
# specify the program used to strip binaries. This is especially
# annoying in cross-compiling environments, where the build's strip
# is unlikely to handle the host's binaries.
# Fortunately install-sh will honor a STRIPPROG variable, so we
# always use install-sh in `make install-strip', and initialize
# STRIPPROG with the value of the STRIP variable (set by the user).
AC_DEFUN([AM_PROG_INSTALL_STRIP],
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
# Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the `STRIP' environment variable to overrule this program.
dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
if test "$cross_compiling" != no; then
AC_CHECK_TOOL([STRIP], [strip], :)
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
# This macro is traced by Automake.
AC_DEFUN([_AM_SUBST_NOTMAKE])
# AM_SUBST_NOTMAKE(VARIABLE)
# ---------------------------
# Public sister of _AM_SUBST_NOTMAKE.
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
# Check how to create a tarball. -*- Autoconf -*-
# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# serial 2
# _AM_PROG_TAR(FORMAT)
# --------------------
# Check how to create a tarball in format FORMAT.
# FORMAT should be one of `v7', `ustar', or `pax'.
#
# Substitute a variable $(am__tar) that is a command
# writing to stdout a FORMAT-tarball containing the directory
# $tardir.
# tardir=directory && $(am__tar) > result.tar
#
# Substitute a variable $(am__untar) that extract such
# a tarball read from stdin.
# $(am__untar) < result.tar
AC_DEFUN([_AM_PROG_TAR],
[# Always define AMTAR for backward compatibility.
AM_MISSING_PROG([AMTAR], [tar])
m4_if([$1], [v7],
[am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
[m4_case([$1], [ustar],, [pax],,
[m4_fatal([Unknown tar format])])
AC_MSG_CHECKING([how to create a $1 tar archive])
# Loop over all known methods to create a tar archive until one works.
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
# Do not fold the above two line into one, because Tru64 sh and
# Solaris sh will not grok spaces in the rhs of `-'.
for _am_tool in $_am_tools
do
case $_am_tool in
gnutar)
for _am_tar in tar gnutar gtar;
do
AM_RUN_LOG([$_am_tar --version]) && break
done
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
am__untar="$_am_tar -xf -"
;;
plaintar)
# Must skip GNU tar: if it does not support --format= it doesn't create
# ustar tarball either.
(tar --version) >/dev/null 2>&1 && continue
am__tar='tar chf - "$$tardir"'
am__tar_='tar chf - "$tardir"'
am__untar='tar xf -'
;;
pax)
am__tar='pax -L -x $1 -w "$$tardir"'
am__tar_='pax -L -x $1 -w "$tardir"'
am__untar='pax -r'
;;
cpio)
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
am__untar='cpio -i -H $1 -d'
;;
none)
am__tar=false
am__tar_=false
am__untar=false
;;
esac
# If the value was cached, stop now. We just wanted to have am__tar
# and am__untar set.
test -n "${am_cv_prog_tar_$1}" && break
# tar/untar a dummy directory, and stop if the command works
rm -rf conftest.dir
mkdir conftest.dir
echo GrepMe > conftest.dir/file
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
AM_RUN_LOG([$am__untar <conftest.tar])
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
fi
done
rm -rf conftest.dir
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if `sin_len' is member of `struct sockaddr_in'. */
/* #undef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
/* Define to 1 if `sa_len' is member of `struct sockaddr'. */
/* #undef HAVE_STRUCT_SOCKADDR_SA_LEN */
/* Name of package */
#define PACKAGE "igmpproxy"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME "igmpproxy"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "igmpproxy 0.1"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "igmpproxy"
/* Define to the version of this package. */
#define PACKAGE_VERSION "0.1"
/* Version number of package */
#define VERSION "0.1"

View File

@ -0,0 +1,28 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* Define to 1 if `sin_len' is member of `struct sockaddr_in'. */
#undef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
/* Define to 1 if `sa_len' is member of `struct sockaddr'. */
#undef HAVE_STRUCT_SOCKADDR_SA_LEN
/* Name of package */
#undef PACKAGE
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Version number of package */
#undef VERSION

View File

@ -0,0 +1,559 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by igmpproxy configure 0.1, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ ./configure --prefix=/usr/local/igmpproxy-0.1
## --------- ##
## Platform. ##
## --------- ##
hostname = gw-flr
uname -m = i586
uname -r = 3.2.0-4-486
uname -s = Linux
uname -v = #1 Debian 3.2.41-2
/usr/bin/uname -p = unknown
/bin/uname -X = unknown
/bin/arch = unknown
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /root/bin
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:1839: checking for a BSD-compatible install
configure:1907: result: /usr/bin/install -c
configure:1918: checking whether build environment is sane
configure:1978: result: yes
configure:2119: checking for a thread-safe mkdir -p
configure:2158: result: /bin/mkdir -p
configure:2171: checking for gawk
configure:2187: found /usr/bin/gawk
configure:2198: result: gawk
configure:2209: checking whether make sets $(MAKE)
configure:2231: result: yes
configure:2328: checking for style of include used by make
configure:2356: result: GNU
configure:2426: checking for gcc
configure:2442: found /usr/bin/gcc
configure:2453: result: gcc
configure:2685: checking for C compiler version
configure:2693: gcc --version >&5
gcc (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:2697: $? = 0
configure:2704: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.7/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.7.2-5' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)
configure:2708: $? = 0
configure:2715: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:2719: $? = 4
configure:2742: checking for C compiler default output file name
configure:2764: gcc conftest.c >&5
configure:2768: $? = 0
configure:2806: result: a.out
configure:2825: checking whether the C compiler works
configure:2835: ./a.out
configure:2839: $? = 0
configure:2858: result: yes
configure:2865: checking whether we are cross compiling
configure:2867: result: no
configure:2870: checking for suffix of executables
configure:2877: gcc -o conftest conftest.c >&5
configure:2881: $? = 0
configure:2907: result:
configure:2913: checking for suffix of object files
configure:2939: gcc -c conftest.c >&5
configure:2943: $? = 0
configure:2968: result: o
configure:2972: checking whether we are using the GNU C compiler
configure:3001: gcc -c conftest.c >&5
configure:3008: $? = 0
configure:3025: result: yes
configure:3034: checking whether gcc accepts -g
configure:3064: gcc -c -g conftest.c >&5
configure:3071: $? = 0
configure:3172: result: yes
configure:3189: checking for gcc option to accept ISO C89
configure:3263: gcc -c -g -O2 conftest.c >&5
configure:3270: $? = 0
configure:3293: result: none needed
configure:3313: checking dependency style of gcc
configure:3423: result: gcc3
configure:3438: checking for gcc option to accept ISO C99
configure:3597: gcc -c -g -O2 conftest.c >&5
conftest.c:60:29: error: expected ';', ',' or ')' before 'text'
conftest.c: In function 'main':
conftest.c:114:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'newvar'
conftest.c:114:18: error: 'newvar' undeclared (first use in this function)
conftest.c:114:18: note: each undeclared identifier is reported only once for each function it appears in
conftest.c:124:3: error: 'for' loop initial declarations are only allowed in C99 mode
conftest.c:124:3: note: use option -std=c99 or -std=gnu99 to compile your code
configure:3604: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "igmpproxy"
| #define PACKAGE_TARNAME "igmpproxy"
| #define PACKAGE_VERSION "0.1"
| #define PACKAGE_STRING "igmpproxy 0.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "igmpproxy"
| #define VERSION "0.1"
| /* end confdefs.h. */
| #include <stdarg.h>
| #include <stdbool.h>
| #include <stdlib.h>
| #include <wchar.h>
| #include <stdio.h>
|
| // Check varargs macros. These examples are taken from C99 6.10.3.5.
| #define debug(...) fprintf (stderr, __VA_ARGS__)
| #define showlist(...) puts (#__VA_ARGS__)
| #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
| static void
| test_varargs_macros (void)
| {
| int x = 1234;
| int y = 5678;
| debug ("Flag");
| debug ("X = %d\n", x);
| showlist (The first, second, and third items.);
| report (x>y, "x is %d but y is %d", x, y);
| }
|
| // Check long long types.
| #define BIG64 18446744073709551615ull
| #define BIG32 4294967295ul
| #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
| #if !BIG_OK
| your preprocessor is broken;
| #endif
| #if BIG_OK
| #else
| your preprocessor is broken;
| #endif
| static long long int bignum = -9223372036854775807LL;
| static unsigned long long int ubignum = BIG64;
|
| struct incomplete_array
| {
| int datasize;
| double data[];
| };
|
| struct named_init {
| int number;
| const wchar_t *name;
| double average;
| };
|
| typedef const char *ccp;
|
| static inline int
| test_restrict (ccp restrict text)
| {
| // See if C++-style comments work.
| // Iterate through items via the restricted pointer.
| // Also check for declarations in for loops.
| for (unsigned int i = 0; *(text+i) != '\0'; ++i)
| continue;
| return 0;
| }
|
| // Check varargs and va_copy.
| static void
| test_varargs (const char *format, ...)
| {
| va_list args;
| va_start (args, format);
| va_list args_copy;
| va_copy (args_copy, args);
|
| const char *str;
| int number;
| float fnumber;
|
| while (*format)
| {
| switch (*format++)
| {
| case 's': // string
| str = va_arg (args_copy, const char *);
| break;
| case 'd': // int
| number = va_arg (args_copy, int);
| break;
| case 'f': // float
| fnumber = va_arg (args_copy, double);
| break;
| default:
| break;
| }
| }
| va_end (args_copy);
| va_end (args);
| }
|
| int
| main ()
| {
|
| // Check bool.
| _Bool success = false;
|
| // Check restrict.
| if (test_restrict ("String literal") == 0)
| success = true;
| char *restrict newvar = "Another string";
|
| // Check varargs.
| test_varargs ("s, d' f .", "string", 65, 34.234);
| test_varargs_macros ();
|
| // Check flexible array members.
| struct incomplete_array *ia =
| malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
| ia->datasize = 10;
| for (int i = 0; i < ia->datasize; ++i)
| ia->data[i] = i * 1.234;
|
| // Check named initializers.
| struct named_init ni = {
| .number = 34,
| .name = L"Test wide string",
| .average = 543.34343,
| };
|
| ni.number = 58;
|
| int dynamic_array[ni.number];
| dynamic_array[ni.number - 1] = 543;
|
| // work around unused variable warnings
| return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
| || dynamic_array[ni.number - 1] != 543);
|
| ;
| return 0;
| }
configure:3597: gcc -std=gnu99 -c -g -O2 conftest.c >&5
configure:3604: $? = 0
configure:3634: result: -std=gnu99
configure:3647: checking build system type
configure:3665: result: i586-pc-linux-gnu
configure:3687: checking host system type
configure:3702: result: i586-pc-linux-gnu
configure:3738: checking for struct sockaddr.sa_len
configure:3770: gcc -std=gnu99 -c -g -O2 conftest.c >&5
conftest.c: In function 'main':
conftest.c:19:12: error: 'struct sockaddr' has no member named 'sa_len'
configure:3777: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "igmpproxy"
| #define PACKAGE_TARNAME "igmpproxy"
| #define PACKAGE_VERSION "0.1"
| #define PACKAGE_STRING "igmpproxy 0.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "igmpproxy"
| #define VERSION "0.1"
| /* end confdefs.h. */
|
| #include <sys/types.h>
| #include <sys/socket.h>
|
|
| int
| main ()
| {
| static struct sockaddr ac_aggr;
| if (ac_aggr.sa_len)
| return 0;
| ;
| return 0;
| }
configure:3814: gcc -std=gnu99 -c -g -O2 conftest.c >&5
conftest.c: In function 'main':
conftest.c:19:19: error: 'struct sockaddr' has no member named 'sa_len'
configure:3821: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "igmpproxy"
| #define PACKAGE_TARNAME "igmpproxy"
| #define PACKAGE_VERSION "0.1"
| #define PACKAGE_STRING "igmpproxy 0.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "igmpproxy"
| #define VERSION "0.1"
| /* end confdefs.h. */
|
| #include <sys/types.h>
| #include <sys/socket.h>
|
|
| int
| main ()
| {
| static struct sockaddr ac_aggr;
| if (sizeof ac_aggr.sa_len)
| return 0;
| ;
| return 0;
| }
configure:3839: result: no
configure:3850: checking for struct sockaddr_in.sin_len
configure:3882: gcc -std=gnu99 -c -g -O2 conftest.c >&5
conftest.c: In function 'main':
conftest.c:19:12: error: 'struct sockaddr_in' has no member named 'sin_len'
configure:3889: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "igmpproxy"
| #define PACKAGE_TARNAME "igmpproxy"
| #define PACKAGE_VERSION "0.1"
| #define PACKAGE_STRING "igmpproxy 0.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "igmpproxy"
| #define VERSION "0.1"
| /* end confdefs.h. */
|
| #include <sys/types.h>
| #include <netinet/in.h>
|
|
| int
| main ()
| {
| static struct sockaddr_in ac_aggr;
| if (ac_aggr.sin_len)
| return 0;
| ;
| return 0;
| }
configure:3926: gcc -std=gnu99 -c -g -O2 conftest.c >&5
conftest.c: In function 'main':
conftest.c:19:19: error: 'struct sockaddr_in' has no member named 'sin_len'
configure:3933: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME "igmpproxy"
| #define PACKAGE_TARNAME "igmpproxy"
| #define PACKAGE_VERSION "0.1"
| #define PACKAGE_STRING "igmpproxy 0.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "igmpproxy"
| #define VERSION "0.1"
| /* end confdefs.h. */
|
| #include <sys/types.h>
| #include <netinet/in.h>
|
|
| int
| main ()
| {
| static struct sockaddr_in ac_aggr;
| if (sizeof ac_aggr.sin_len)
| return 0;
| ;
| return 0;
| }
configure:3951: result: no
configure:4089: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by igmpproxy config.status 0.1, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on gw-flr
config.status:776: creating Makefile
config.status:776: creating doc/Makefile
config.status:776: creating src/Makefile
config.status:776: creating doc/igmpproxy.8
config.status:776: creating doc/igmpproxy.conf.5
config.status:776: creating config.h
config.status:1062: linking src/os-linux.h to src/os.h
config.status:1085: executing depfiles commands
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=i586-pc-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=i586-pc-linux-gnu
ac_cv_member_struct_sockaddr_in_sin_len=no
ac_cv_member_struct_sockaddr_sa_len=no
ac_cv_objext=o
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_cc_c89=
ac_cv_prog_cc_c99=-std=gnu99
ac_cv_prog_cc_g=yes
ac_cv_prog_make_make_set=yes
am_cv_CC_dependencies_compiler_type=gcc3
## ----------------- ##
## Output variables. ##
## ----------------- ##
ACLOCAL='${SHELL} /usr/local/src/igmpproxy-0.1/missing --run aclocal-1.11'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='${SHELL} /usr/local/src/igmpproxy-0.1/missing --run tar'
AUTOCONF='${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoconf'
AUTOHEADER='${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoheader'
AUTOMAKE='${SHELL} /usr/local/src/igmpproxy-0.1/missing --run automake-1.11'
AWK='gawk'
CC='gcc -std=gnu99'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CPPFLAGS=''
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EXEEXT=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LTLIBOBJS=''
MAKEINFO='${SHELL} /usr/local/src/igmpproxy-0.1/missing --run makeinfo'
MKDIR_P='/bin/mkdir -p'
OBJEXT='o'
PACKAGE='igmpproxy'
PACKAGE_BUGREPORT=''
PACKAGE_NAME='igmpproxy'
PACKAGE_STRING='igmpproxy 0.1'
PACKAGE_TARNAME='igmpproxy'
PACKAGE_VERSION='0.1'
PATH_SEPARATOR=':'
SET_MAKE=''
SHELL='/bin/sh'
STRIP=''
VERSION='0.1'
ac_ct_CC='gcc'
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__quote=''
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build='i586-pc-linux-gnu'
build_alias=''
build_cpu='i586'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='i586-pc-linux-gnu'
host_alias=''
host_cpu='i586'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /usr/local/src/igmpproxy-0.1/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local/igmpproxy-0.1'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
#define PACKAGE_NAME "igmpproxy"
#define PACKAGE_TARNAME "igmpproxy"
#define PACKAGE_VERSION "0.1"
#define PACKAGE_STRING "igmpproxy 0.1"
#define PACKAGE_BUGREPORT ""
#define PACKAGE "igmpproxy"
#define VERSION "0.1"
configure: exit 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5469
NONE-CKUBU/src/igmpproxy/igmpproxy-0.1/configure vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
AC_PREREQ([2.63])
AC_INIT([igmpproxy], [0.1])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/igmpproxy.c])
AC_CONFIG_HEADERS([config.h])
AC_PROG_CC_C99
AC_CANONICAL_HOST
case $host_os in
linux*) os=linux;;
freebsd*) os=freebsd;;
netbsd*) os=netbsd;;
openbsd*) os=openbsd;;
dragonfly*) os=dragonfly;;
*) AC_MSG_ERROR([OS $host_os is not supported]);;
esac
AC_CONFIG_LINKS([src/os.h:src/os-${os}.h])
AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [], [[
#include <sys/types.h>
#include <sys/socket.h>
]])
AC_CHECK_MEMBERS([struct sockaddr_in.sin_len], [], [], [[
#include <sys/types.h>
#include <netinet/in.h>
]])
AC_CONFIG_FILES([
Makefile
doc/Makefile
src/Makefile
doc/igmpproxy.8
doc/igmpproxy.conf.5
])
AC_OUTPUT

View File

@ -0,0 +1,630 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
# Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try \`$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by `PROGRAMS ARGS'.
object Object file output by `PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputing dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u="sed s,\\\\\\\\,/,g"
depmode=msvisualcpp
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say).
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
## The second -e expression handles DOS-style file names with drive letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the `deleted header file' problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
tr ' ' '
' < "$tmpdepfile" |
## Some versions of gcc put a space before the `:'. On the theory
## that the space means something, we add a space to the output as
## well.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like `#:fec' to the end of the
# dependency line.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
tr '
' ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' '
' < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts `$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
# The sourcefile does not contain any dependencies, so just
# store a dummy comment line, to avoid errors with the Makefile
# "include basename.Plo" scheme.
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
icc)
# Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
# ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
# sub/foo.o: sub/foo.c
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
# ICC 7.1 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using \ :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
# Add `dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in `foo.d' instead, so we check for that too.
# Subdirectories are respected.
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
test "x$dir" = "x$object" && dir=
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
# static library. This mechanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
# compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
tmpdepfile2=$dir$base.o.d # libtool 1.5
tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.o.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
# That's a tab and a space in the [].
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
rm -f "$tmpdepfile"
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for `:'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
"$@" $dashmflag |
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
tr ' ' '
' < "$tmpdepfile" | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
sed '1,2d' "$tmpdepfile" | tr ' ' '
' | \
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove `-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E |
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
echo " " >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -0,0 +1,447 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# doc/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
pkgdatadir = $(datadir)/igmpproxy
pkgincludedir = $(includedir)/igmpproxy
pkglibdir = $(libdir)/igmpproxy
pkglibexecdir = $(libexecdir)/igmpproxy
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i586-pc-linux-gnu
host_triplet = i586-pc-linux-gnu
subdir = doc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/igmpproxy.8.in $(srcdir)/igmpproxy.conf.5.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = igmpproxy.8 igmpproxy.conf.5
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
man5dir = $(mandir)/man5
am__installdirs = "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"
man8dir = $(mandir)/man8
NROFF = nroff
MANS = $(man_MANS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run aclocal-1.11
AMTAR = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run tar
AUTOCONF = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run automake-1.11
AWK = gawk
CC = gcc -std=gnu99
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
ECHO_N = -n
ECHO_T =
EXEEXT =
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LDFLAGS =
LIBOBJS =
LIBS =
LTLIBOBJS =
MAKEINFO = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run makeinfo
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = igmpproxy
PACKAGE_BUGREPORT =
PACKAGE_NAME = igmpproxy
PACKAGE_STRING = igmpproxy 0.1
PACKAGE_TARNAME = igmpproxy
PACKAGE_VERSION = 0.1
PATH_SEPARATOR = :
SET_MAKE =
SHELL = /bin/sh
STRIP =
VERSION = 0.1
abs_builddir = /usr/local/src/igmpproxy-0.1/doc
abs_srcdir = /usr/local/src/igmpproxy-0.1/doc
abs_top_builddir = /usr/local/src/igmpproxy-0.1
abs_top_srcdir = /usr/local/src/igmpproxy-0.1
ac_ct_CC = gcc
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i586-pc-linux-gnu
build_alias =
build_cpu = i586
build_os = linux-gnu
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = i586-pc-linux-gnu
host_alias =
host_cpu = i586
host_os = linux-gnu
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /usr/local/src/igmpproxy-0.1/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local/igmpproxy-0.1
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix = ../
top_builddir = ..
top_srcdir = ..
man_MANS = igmpproxy.8 igmpproxy.conf.5
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
igmpproxy.8: $(top_builddir)/config.status $(srcdir)/igmpproxy.8.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
igmpproxy.conf.5: $(top_builddir)/config.status $(srcdir)/igmpproxy.conf.5.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-man5: $(man_MANS)
@$(NORMAL_INSTALL)
test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
@list=''; test -n "$(man5dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.5[a-z]*$$/p'; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
done; }
uninstall-man5:
@$(NORMAL_UNINSTALL)
@list=''; test -n "$(man5dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.5[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
test -z "$$files" || { \
echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(man5dir)" && rm -f $$files; }
install-man8: $(man_MANS)
@$(NORMAL_INSTALL)
test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
@list=''; test -n "$(man8dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.8[a-z]*$$/p'; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
done; }
uninstall-man8:
@$(NORMAL_UNINSTALL)
@list=''; test -n "$(man8dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.8[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
test -z "$$files" || { \
echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(man8dir)" && rm -f $$files; }
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@list='$(MANS)'; if test -n "$$list"; then \
list=`for p in $$list; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
if test -n "$$list" && \
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
echo " typically \`make maintainer-clean' will remove them" >&2; \
exit 1; \
else :; fi; \
else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(MANS)
installdirs:
for dir in "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-man
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man: install-man5 install-man8
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-man
uninstall-man: uninstall-man5 uninstall-man8
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-man5 install-man8 install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am uninstall uninstall-am uninstall-man \
uninstall-man5 uninstall-man8
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1 @@
man_MANS = igmpproxy.8 igmpproxy.conf.5

View File

@ -0,0 +1,447 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = doc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/igmpproxy.8.in $(srcdir)/igmpproxy.conf.5.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = igmpproxy.8 igmpproxy.conf.5
CONFIG_CLEAN_VPATH_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
man5dir = $(mandir)/man5
am__installdirs = "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"
man8dir = $(mandir)/man8
NROFF = nroff
MANS = $(man_MANS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
man_MANS = igmpproxy.8 igmpproxy.conf.5
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
igmpproxy.8: $(top_builddir)/config.status $(srcdir)/igmpproxy.8.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
igmpproxy.conf.5: $(top_builddir)/config.status $(srcdir)/igmpproxy.conf.5.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-man5: $(man_MANS)
@$(NORMAL_INSTALL)
test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
@list=''; test -n "$(man5dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.5[a-z]*$$/p'; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
done; }
uninstall-man5:
@$(NORMAL_UNINSTALL)
@list=''; test -n "$(man5dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.5[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
test -z "$$files" || { \
echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(man5dir)" && rm -f $$files; }
install-man8: $(man_MANS)
@$(NORMAL_INSTALL)
test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
@list=''; test -n "$(man8dir)" || exit 0; \
{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.8[a-z]*$$/p'; \
} | while read p; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; echo "$$p"; \
done | \
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
sed 'N;N;s,\n, ,g' | { \
list=; while read file base inst; do \
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
fi; \
done; \
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
while read files; do \
test -z "$$files" || { \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
done; }
uninstall-man8:
@$(NORMAL_UNINSTALL)
@list=''; test -n "$(man8dir)" || exit 0; \
files=`{ for i in $$list; do echo "$$i"; done; \
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
sed -n '/\.8[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
test -z "$$files" || { \
echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(man8dir)" && rm -f $$files; }
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@list='$(MANS)'; if test -n "$$list"; then \
list=`for p in $$list; do \
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
if test -n "$$list" && \
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
echo " typically \`make maintainer-clean' will remove them" >&2; \
exit 1; \
else :; fi; \
else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(MANS)
installdirs:
for dir in "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-man
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man: install-man5 install-man8
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-man
uninstall-man: uninstall-man5 uninstall-man8
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
install-dvi-am install-exec install-exec-am install-html \
install-html-am install-info install-info-am install-man \
install-man5 install-man8 install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am uninstall uninstall-am uninstall-man \
uninstall-man5 uninstall-man8
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,81 @@
.\" .br - line break (nothing else on the line)
.\" .B - bold
.\" .I - green or kursive (on HTML)
.\" .TP - paragraph ? (header line, followed by indented lines)
.\"
.TH igmpproxy 8 "" "igmpproxy 0.1"
.SH NAME
igmpproxy \- Multicast router utilizing IGMP forwarding
.SH SYNOPSIS
.B igmpproxy [-h] [-d] [-v [-v]]
.I config-file
.SH DESCRIPTION
.B igmpproxy
is a simple multicast routing daemon which uses IGMP forwarding to
dynamically route multicast traffic. Routing is done by defining an
"upstream" interface on which the daemon act as a normal Multicast
client, and one or more "downstream" interfaces that serves clients
on the destination networks. This is useful in situations where other
dynamic multicast routers (like 'mrouted' or 'pimd') cannot be used.
Since
.B igmpproxy
only uses IGMP signalling, the daemon is only suited for situations
where multicast traffic comes from only one neighbouring network.
In more advanced cases, 'mrouted' or 'pimd' is probably more suited.
The daemon is not designed for cascading, and probably won't scale
very well.
Currently only IGMPv1 and v2 is supported on downstream interfaces.
On the upstream interface the kernel IGMP client implementation is used,
and supported IGMP versions is therefore limited to that supported by the
kernel.
.SH OPTIONS
.IP -h
Display help.
.IP -v
Verbose logging. Set logging level to INFO instead of WARNING used by default.
.IP -vv
More verbose logging. Set logging level to DEBUG.
.IP -d
Output log messages to STDERR instead of to
.BR syslog (3).
.SH LIMITS
The current version compiles and runs fine with the Linux kernel version 2.4. The known limits are:
.B Multicast routes:
more then 200
.B Multicast group membership:
max. 20
.SH FILES
.TP
.B /proc/net/ip_mr_cache
- contains the active multicast routes
.TP
.B /proc/net/ip_mr_vif
- contains the 'virtual' interfaces used by the active multicast routing daemon
.TP
.B /proc/sys/net/ipv4/conf/<ifname>/force_igmp_version
- can be set to control what IGMP version the kernel should use on the upstream interface.
Ex.: 'echo 2 > /proc/sys/net/ipv4/conf/eth0/force_igmp_version' will force the kernel to
use IGMPv2 on eth0 (provided this is the upstream interface).
.SH SEE ALSO
.BR igmpproxy.conf (5),
.BR mrouted,
.BR pimd,
.BR smcroute
.SH BUGS
Currently none (but there probably will be :-/ )
.SH AUTHOR
Originally written by Johnny Egeland <johnny@rlo.org>.

View File

@ -0,0 +1,81 @@
.\" .br - line break (nothing else on the line)
.\" .B - bold
.\" .I - green or kursive (on HTML)
.\" .TP - paragraph ? (header line, followed by indented lines)
.\"
.TH igmpproxy 8 "" "@PACKAGE_STRING@"
.SH NAME
igmpproxy \- Multicast router utilizing IGMP forwarding
.SH SYNOPSIS
.B igmpproxy [-h] [-d] [-v [-v]]
.I config-file
.SH DESCRIPTION
.B igmpproxy
is a simple multicast routing daemon which uses IGMP forwarding to
dynamically route multicast traffic. Routing is done by defining an
"upstream" interface on which the daemon act as a normal Multicast
client, and one or more "downstream" interfaces that serves clients
on the destination networks. This is useful in situations where other
dynamic multicast routers (like 'mrouted' or 'pimd') cannot be used.
Since
.B igmpproxy
only uses IGMP signalling, the daemon is only suited for situations
where multicast traffic comes from only one neighbouring network.
In more advanced cases, 'mrouted' or 'pimd' is probably more suited.
The daemon is not designed for cascading, and probably won't scale
very well.
Currently only IGMPv1 and v2 is supported on downstream interfaces.
On the upstream interface the kernel IGMP client implementation is used,
and supported IGMP versions is therefore limited to that supported by the
kernel.
.SH OPTIONS
.IP -h
Display help.
.IP -v
Verbose logging. Set logging level to INFO instead of WARNING used by default.
.IP -vv
More verbose logging. Set logging level to DEBUG.
.IP -d
Output log messages to STDERR instead of to
.BR syslog (3).
.SH LIMITS
The current version compiles and runs fine with the Linux kernel version 2.4. The known limits are:
.B Multicast routes:
more then 200
.B Multicast group membership:
max. 20
.SH FILES
.TP
.B /proc/net/ip_mr_cache
- contains the active multicast routes
.TP
.B /proc/net/ip_mr_vif
- contains the 'virtual' interfaces used by the active multicast routing daemon
.TP
.B /proc/sys/net/ipv4/conf/<ifname>/force_igmp_version
- can be set to control what IGMP version the kernel should use on the upstream interface.
Ex.: 'echo 2 > /proc/sys/net/ipv4/conf/eth0/force_igmp_version' will force the kernel to
use IGMPv2 on eth0 (provided this is the upstream interface).
.SH SEE ALSO
.BR igmpproxy.conf (5),
.BR mrouted,
.BR pimd,
.BR smcroute
.SH BUGS
Currently none (but there probably will be :-/ )
.SH AUTHOR
Originally written by Johnny Egeland <johnny@rlo.org>.

View File

@ -0,0 +1,146 @@
.\" .br - line break (nothing else on the line)
.\" .B - bold
.\" .I - green or kursive (on HTML)
.\" .TP - paragraph ? (header line, followed by indented lines)
.\"
.TH igmpproxy.conf 5 "" "igmpproxy 0.1"
.SH NAME
igmpproxy.conf \- Configuration file for
.BR igmpproxy (8)
multicast daemon
.SH DESCRIPTION
.B igmpproxy.conf
contains the configuration for the
.B igmpproxy
multicast daemon. It defines which network interfaces should be
used by the routing daemon. Each interface must be give one of the following roles:
.B upstream
,
.B downstream
or
.B disabled
.
The
.B upstream
network interface is the outgoing interface which is responsible for communicating
to availible multicast data sources. There can only be one upstream interface.
.B Downstream
network interfaces are the distribution interfaces to the destination networks,
where multicast clients can join groups and receive multicast data. One or more
downstream interfaces must be configured.
On
.B disabled
network interfaces all IGMP or multicast traffic is ignored altogether. If multiple
IP addresses is used on one single interface (ae. eth0:1 ...), all interface
aliases not in use should be configured as disabled.
Any line in the configuration file starting with
.B #
is treated as a comment. Keywords and parameters can be distributed over many lines.
The configuration file has two main keywords:
.B quickleave
.RS
Enables quickleave mode. In this mode the daemon will send a Leave IGMP message
upstream as soon as it recieves a Leave message for any downstream interface.
The daemon will then ask for Membership reports on the downstream interfaces,
and if a report is recieved the group is joined again upstream. Normally this
is not noticed at all by clients on the downstream networks. If it's vital
that the daemon should act exactly as a real multicast client on the upstream
interface, this function should not be used. Disabling this function increases
the risk of bandwidth saturation.
.RE
.B phyint
.I interface
.I role
[ ratelimit
.I limit
] [ threshold
.I ttl
] [ altnet
.I networkaddr ...
]
.RS
Defines the state and settings of a network interface.
.RE
.SH PHYINT OPTIONS
.B interface
.RS
The name of the interface the settings are for. This option is required for
phyint settings.
.RE
.B role
.RS
The role of the interface. This should be either
.B upstream
(only one interface),
.B downstream
(one or more interfaces) or
.B disabled
. This option is required.
.RE
.B ratelimit
.I limit
.RS
Defines a ratelimit for the network interface. If ratelimit is set to 0 (default),
no ratelimit will be applied. This setting is optional.
.RE
.B threshold
.I ttl
.RS
Defines the TTL threshold for the network interface. Packets with a lower TTL than the
threshols value will be ignored. This setting is optional, and by default the threshold is 1.
.RE
.B altnet
.I networkaddr
...
.RS
Defines alternate sources for multicasting and IGMP data. The network address must be on the
following format 'a.b.c.d/n'. By default the router will accept data from sources on the same
network as configured on an interface. If the multicast source lies on a remote network, one
must define from where traffic should be accepted.
This is especially useful for the upstream interface, since the source for multicast
traffic is often from a remote location. Any number of altnet parameters can be specified.
.RE
.SH EXAMPLE
## Enable quickleave
quickleave
.br
## Define settings for eth0 (upstream)
.br
phyint eth0 upstream
altnet 10.0.0.0/8
## Disable alternate IP on eth0 (eth0:0)
.br
phyint eth0:0 disabled
## Define settings for eth1 (downstream)
.br
phyint eth1 downstream ratelimit 0 threshold 1
## Define settings for eth2 (also downstream)
.br
phyint eth2 downstream
.SH SEE ALSO
.BR igmpproxy (8)
.SH AUTHOR
Originally written by Johnny Egeland <johnny@rlo.org>

View File

@ -0,0 +1,146 @@
.\" .br - line break (nothing else on the line)
.\" .B - bold
.\" .I - green or kursive (on HTML)
.\" .TP - paragraph ? (header line, followed by indented lines)
.\"
.TH igmpproxy.conf 5 "" "@PACKAGE_STRING@"
.SH NAME
igmpproxy.conf \- Configuration file for
.BR igmpproxy (8)
multicast daemon
.SH DESCRIPTION
.B igmpproxy.conf
contains the configuration for the
.B igmpproxy
multicast daemon. It defines which network interfaces should be
used by the routing daemon. Each interface must be give one of the following roles:
.B upstream
,
.B downstream
or
.B disabled
.
The
.B upstream
network interface is the outgoing interface which is responsible for communicating
to availible multicast data sources. There can only be one upstream interface.
.B Downstream
network interfaces are the distribution interfaces to the destination networks,
where multicast clients can join groups and receive multicast data. One or more
downstream interfaces must be configured.
On
.B disabled
network interfaces all IGMP or multicast traffic is ignored altogether. If multiple
IP addresses is used on one single interface (ae. eth0:1 ...), all interface
aliases not in use should be configured as disabled.
Any line in the configuration file starting with
.B #
is treated as a comment. Keywords and parameters can be distributed over many lines.
The configuration file has two main keywords:
.B quickleave
.RS
Enables quickleave mode. In this mode the daemon will send a Leave IGMP message
upstream as soon as it recieves a Leave message for any downstream interface.
The daemon will then ask for Membership reports on the downstream interfaces,
and if a report is recieved the group is joined again upstream. Normally this
is not noticed at all by clients on the downstream networks. If it's vital
that the daemon should act exactly as a real multicast client on the upstream
interface, this function should not be used. Disabling this function increases
the risk of bandwidth saturation.
.RE
.B phyint
.I interface
.I role
[ ratelimit
.I limit
] [ threshold
.I ttl
] [ altnet
.I networkaddr ...
]
.RS
Defines the state and settings of a network interface.
.RE
.SH PHYINT OPTIONS
.B interface
.RS
The name of the interface the settings are for. This option is required for
phyint settings.
.RE
.B role
.RS
The role of the interface. This should be either
.B upstream
(only one interface),
.B downstream
(one or more interfaces) or
.B disabled
. This option is required.
.RE
.B ratelimit
.I limit
.RS
Defines a ratelimit for the network interface. If ratelimit is set to 0 (default),
no ratelimit will be applied. This setting is optional.
.RE
.B threshold
.I ttl
.RS
Defines the TTL threshold for the network interface. Packets with a lower TTL than the
threshols value will be ignored. This setting is optional, and by default the threshold is 1.
.RE
.B altnet
.I networkaddr
...
.RS
Defines alternate sources for multicasting and IGMP data. The network address must be on the
following format 'a.b.c.d/n'. By default the router will accept data from sources on the same
network as configured on an interface. If the multicast source lies on a remote network, one
must define from where traffic should be accepted.
This is especially useful for the upstream interface, since the source for multicast
traffic is often from a remote location. Any number of altnet parameters can be specified.
.RE
.SH EXAMPLE
## Enable quickleave
quickleave
.br
## Define settings for eth0 (upstream)
.br
phyint eth0 upstream
altnet 10.0.0.0/8
## Disable alternate IP on eth0 (eth0:0)
.br
phyint eth0:0 disabled
## Define settings for eth1 (downstream)
.br
phyint eth1 downstream ratelimit 0 threshold 1
## Define settings for eth2 (also downstream)
.br
phyint eth2 downstream
.SH SEE ALSO
.BR igmpproxy (8)
.SH AUTHOR
Originally written by Johnny Egeland <johnny@rlo.org>

View File

@ -0,0 +1,46 @@
########################################################
#
# Example configuration file for the IgmpProxy
# --------------------------------------------
#
# The configuration file must define one upstream
# interface, and one or more downstream interfaces.
#
# If multicast traffic originates outside the
# upstream subnet, the "altnet" option can be
# used in order to define legal multicast sources.
# (Se example...)
#
# The "quickleave" should be used to avoid saturation
# of the upstream link. The option should only
# be used if it's absolutely nessecary to
# accurately imitate just one Client.
#
########################################################
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
##------------------------------------------------------
## Configuration for eth0 (Upstream Interface)
##------------------------------------------------------
phyint eth0 upstream ratelimit 0 threshold 1
altnet 10.0.0.0/8
altnet 192.168.0.0/24
##------------------------------------------------------
## Configuration for eth1 (Downstream Interface)
##------------------------------------------------------
phyint eth1 downstream ratelimit 0 threshold 1
##------------------------------------------------------
## Configuration for eth2 (Disabled Interface)
##------------------------------------------------------
phyint eth2 disabled

View File

@ -0,0 +1,520 @@
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2009-04-28.21; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
#
# Copyright (C) 1994 X Consortium
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor-
# tium.
#
#
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
nl='
'
IFS=" "" $nl"
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
if test -z "$doit"; then
doit_exec=exec
else
doit_exec=$doit
fi
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
chgrpprog=${CHGRPPROG-chgrp}
chmodprog=${CHMODPROG-chmod}
chownprog=${CHOWNPROG-chown}
cmpprog=${CMPPROG-cmp}
cpprog=${CPPROG-cp}
mkdirprog=${MKDIRPROG-mkdir}
mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
posix_glob='?'
initialize_posix_glob='
test "$posix_glob" != "?" || {
if (set -f) 2>/dev/null; then
posix_glob=
else
posix_glob=:
fi
}
'
posix_mkdir=
# Desired mode of installed file.
mode=0755
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
mvcmd=$mvprog
rmcmd="$rmprog -f"
stripcmd=
src=
dst=
dir_arg=
dst_arg=
copy_on_change=false
no_target_directory=
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES.
Options:
--help display this help and exit.
--version display version info and exit.
-c (ignored)
-C install only if different (preserve the last data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
-s $stripprog installed files.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
"
while test $# -ne 0; do
case $1 in
-c) ;;
-C) copy_on_change=true;;
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
case $mode in
*' '* | *' '* | *'
'* | *'*'* | *'?'* | *'['*)
echo "$0: invalid mode: $mode" >&2
exit 1;;
esac
shift;;
-o) chowncmd="$chownprog $2"
shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
--) shift
break;;
-*) echo "$0: invalid option: $1" >&2
exit 1;;
*) break;;
esac
shift
done
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
# Otherwise, the last argument is the destination. Remove it from $@.
for arg
do
if test -n "$dst_arg"; then
# $@ is not empty: it contains at least $arg.
set fnord "$@" "$dst_arg"
shift # fnord
fi
shift # arg
dst_arg=$arg
done
fi
if test $# -eq 0; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
fi
# It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
trap '(exit $?); exit' 1 2 13 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
case $mode in
# Optimize common cases.
*644) cp_umask=133;;
*755) cp_umask=22;;
*[0-7])
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
u_plus_rw=
else
u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
fi
for src
do
# Protect names starting with `-'.
case $src in
-*) src=./$src;;
esac
if test -n "$dir_arg"; then
dst=$src
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2
exit 1
fi
if test -z "$dst_arg"; then
echo "$0: no destination specified." >&2
exit 1
fi
dst=$dst_arg
# Protect names starting with `-'.
case $dst in
-*) dst=./$dst;;
esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
echo "$0: $dst_arg: Is a directory" >&2
exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
# Prefer dirname, but fall back on a substitute if dirname fails.
dstdir=`
(dirname "$dst") 2>/dev/null ||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$dst" : 'X\(//\)[^/]' \| \
X"$dst" : 'X\(//\)$' \| \
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
echo X"$dst" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'
`
test -d "$dstdir"
dstdir_status=$?
fi
fi
obsolete_mkdir_used=false
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
# Create intermediate dirs using mode 755 as modified by the umask.
# This is like FreeBSD 'install' as of 1997-10-28.
umask=`umask`
case $stripcmd.$umask in
# Optimize common cases.
*[2367][2367]) mkdir_umask=$umask;;
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
*[0-7])
mkdir_umask=`expr $umask + 22 \
- $umask % 100 % 40 + $umask % 20 \
- $umask % 10 % 4 + $umask % 2
`;;
*) mkdir_umask=$umask,go-w;;
esac
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
mkdir_mode=-m$mode
else
mkdir_mode=
fi
posix_mkdir=false
case $umask in
*[123567][0-7][0-7])
# POSIX mkdir -p sets u+wx bits regardless of umask, which
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
;;
*)
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
if (umask $mkdir_umask &&
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writeable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
ls_ld_tmpdir=`ls -ld "$tmpdir"`
case $ls_ld_tmpdir in
d????-?r-*) different_mode=700;;
d????-?--*) different_mode=755;;
*) false;;
esac &&
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
}
}
then posix_mkdir=:
fi
rmdir "$tmpdir/d" "$tmpdir"
else
# Remove any dirs left behind by ancient mkdir implementations.
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
fi
trap '' 0;;
esac;;
esac
if
$posix_mkdir && (
umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
# The umask is ridiculous, or mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
/*) prefix='/';;
-*) prefix='./';;
*) prefix='';;
esac
eval "$initialize_posix_glob"
oIFS=$IFS
IFS=/
$posix_glob set -f
set fnord $dstdir
shift
$posix_glob set +f
IFS=$oIFS
prefixes=
for d
do
test -z "$d" && continue
prefix=$prefix$d
if test -d "$prefix"; then
prefixes=
else
if $posix_mkdir; then
(umask=$mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
else
case $prefix in
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
*) qprefix=$prefix;;
esac
prefixes="$prefixes '$qprefix'"
fi
fi
prefix=$prefix/
done
if test -n "$prefixes"; then
# Don't fail if two instances are running concurrently.
(umask $mkdir_umask &&
eval "\$doit_exec \$mkdirprog $prefixes") ||
test -d "$dstdir" || exit 1
obsolete_mkdir_used=true
fi
fi
fi
if test -n "$dir_arg"; then
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
else
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
# Copy the file name to the temp name.
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
# and set any options; do chmod last to preserve setuid bits.
#
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command.
#
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
eval "$initialize_posix_glob" &&
$posix_glob set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
$posix_glob set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
rm -f "$dsttmp"
else
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
# Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
test ! -f "$dst" ||
$doit $rmcmd -f "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
}
} &&
# Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
trap '' 0
fi
done
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -0,0 +1,376 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
scriptversion=2009-04-28.21; # UTC
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
# 2008, 2009 Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
run=:
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
# In the cases where this matters, `missing' is being run in the
# srcdir already.
if test -f configure.ac; then
configure_ac=configure.ac
else
configure_ac=configure.in
fi
msg="missing on your system"
case $1 in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
# Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or
# if --run hadn't been passed.
if test $? = 63; then
run=:
msg="probably too old"
fi
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
--run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
autom4te touch the output file, or create a stub one
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
\`g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
# normalize program name to check for.
program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program). This is about non-GNU programs, so use $1 not
# $program.
case $1 in
lex*|yacc*)
# Not GNU programs, they don't have --version.
;;
tar*)
if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run"
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1
fi
;;
*)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing.
exit 1
fi
;;
esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
case $program in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
touch aclocal.m4
;;
autoconf*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
touch configure
;;
autoheader*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
case $f in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
esac
done
touch $touch_files
;;
automake*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' |
while read f; do touch "$f"; done
;;
autom4te*)
echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the
proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@"
echo "exit 0"
chmod +x $file
exit 1
fi
;;
bison*|yacc*)
echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
if test $# -ne 1; then
eval LASTARG="\${$#}"
case $LASTARG in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
if test ! -f y.tab.h; then
echo >y.tab.h
fi
if test ! -f y.tab.c; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
lex*|flex*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
if test $# -ne 1; then
eval LASTARG="\${$#}"
case $LASTARG in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if test -f "$SRCFILE"; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
if test ! -f lex.yy.c; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
help2man*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -f "$file"; then
touch $file
else
test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page"
exit $?
fi
;;
makeinfo*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
file=`echo "$*" | sed -n "$sed_output"`
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '
/^@setfilename/{
s/.* \([^ ]*\) *$/\1/
p
q
}' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
# If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything.
test -f $file || exit 1
touch $file
;;
tar*)
shift
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
# messages.
if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0
fi
if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0
fi
firstarg="$1"
if shift; then
case $firstarg in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
case $firstarg in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
;;
esac
fi
echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the
command line arguments."
exit 1
;;
*)
echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
;;
esac
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

View File

@ -0,0 +1,320 @@
callout.o: callout.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
config.o: config.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
confread.o: confread.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
ifvc.o: ifvc.c igmpproxy.h /usr/include/errno.h /usr/include/features.h \
/usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
igmp.o: igmp.c igmpproxy.h /usr/include/errno.h /usr/include/features.h \
/usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
igmpproxy.o: igmpproxy.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
kern.o: kern.c igmpproxy.h /usr/include/errno.h /usr/include/features.h \
/usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
lib.o: lib.c igmpproxy.h /usr/include/errno.h /usr/include/features.h \
/usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
mcgroup.o: mcgroup.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
mroute-api.o: mroute-api.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
request.o: request.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
rttable.o: rttable.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
syslog.o: syslog.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,320 @@
udpsock.o: udpsock.c igmpproxy.h /usr/include/errno.h \
/usr/include/features.h /usr/include/i386-linux-gnu/bits/predefs.h \
/usr/include/i386-linux-gnu/sys/cdefs.h \
/usr/include/i386-linux-gnu/bits/wordsize.h \
/usr/include/i386-linux-gnu/gnu/stubs.h \
/usr/include/i386-linux-gnu/gnu/stubs-32.h \
/usr/include/i386-linux-gnu/bits/errno.h /usr/include/linux/errno.h \
/usr/include/i386-linux-gnu/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h /usr/include/stdio.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h \
/usr/include/i386-linux-gnu/bits/types.h \
/usr/include/i386-linux-gnu/bits/typesizes.h /usr/include/libio.h \
/usr/include/_G_config.h /usr/include/wchar.h \
/usr/include/i386-linux-gnu/bits/stdio_lim.h \
/usr/include/i386-linux-gnu/bits/sys_errlist.h \
/usr/include/i386-linux-gnu/bits/stdio.h /usr/include/stdlib.h \
/usr/include/i386-linux-gnu/bits/waitflags.h \
/usr/include/i386-linux-gnu/bits/waitstatus.h /usr/include/endian.h \
/usr/include/i386-linux-gnu/bits/endian.h \
/usr/include/i386-linux-gnu/bits/byteswap.h \
/usr/include/i386-linux-gnu/sys/types.h /usr/include/time.h \
/usr/include/i386-linux-gnu/sys/select.h \
/usr/include/i386-linux-gnu/bits/select.h \
/usr/include/i386-linux-gnu/bits/sigset.h \
/usr/include/i386-linux-gnu/bits/time.h \
/usr/include/i386-linux-gnu/sys/sysmacros.h \
/usr/include/i386-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \
/usr/include/syslog.h /usr/include/i386-linux-gnu/sys/syslog.h \
/usr/include/i386-linux-gnu/bits/syslog-path.h /usr/include/signal.h \
/usr/include/i386-linux-gnu/bits/signum.h \
/usr/include/i386-linux-gnu/bits/siginfo.h \
/usr/include/i386-linux-gnu/bits/sigaction.h \
/usr/include/i386-linux-gnu/bits/sigcontext.h \
/usr/include/i386-linux-gnu/asm/sigcontext.h /usr/include/linux/types.h \
/usr/include/i386-linux-gnu/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h \
/usr/include/i386-linux-gnu/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h \
/usr/include/i386-linux-gnu/asm/posix_types.h \
/usr/include/i386-linux-gnu/asm/posix_types_32.h \
/usr/include/i386-linux-gnu/bits/sigstack.h \
/usr/include/i386-linux-gnu/sys/ucontext.h \
/usr/include/i386-linux-gnu/bits/sigthread.h /usr/include/unistd.h \
/usr/include/i386-linux-gnu/bits/posix_opt.h \
/usr/include/i386-linux-gnu/bits/environments.h \
/usr/include/i386-linux-gnu/bits/confname.h /usr/include/getopt.h \
/usr/include/string.h /usr/include/xlocale.h \
/usr/include/i386-linux-gnu/bits/string.h \
/usr/include/i386-linux-gnu/bits/string2.h /usr/include/fcntl.h \
/usr/include/i386-linux-gnu/bits/fcntl.h \
/usr/include/i386-linux-gnu/bits/stat.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h \
/usr/include/i386-linux-gnu/sys/socket.h \
/usr/include/i386-linux-gnu/sys/uio.h \
/usr/include/i386-linux-gnu/bits/uio.h \
/usr/include/i386-linux-gnu/bits/socket.h \
/usr/include/i386-linux-gnu/bits/sockaddr.h \
/usr/include/i386-linux-gnu/asm/socket.h \
/usr/include/asm-generic/socket.h \
/usr/include/i386-linux-gnu/asm/sockios.h \
/usr/include/asm-generic/sockios.h /usr/include/i386-linux-gnu/sys/un.h \
/usr/include/i386-linux-gnu/sys/time.h \
/usr/include/i386-linux-gnu/sys/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctls.h \
/usr/include/i386-linux-gnu/asm/ioctls.h \
/usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h \
/usr/include/i386-linux-gnu/asm/ioctl.h /usr/include/asm-generic/ioctl.h \
/usr/include/i386-linux-gnu/bits/ioctl-types.h \
/usr/include/i386-linux-gnu/sys/ttydefaults.h \
/usr/include/i386-linux-gnu/sys/param.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h \
/usr/include/limits.h /usr/include/i386-linux-gnu/bits/posix1_lim.h \
/usr/include/i386-linux-gnu/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/i386-linux-gnu/bits/posix2_lim.h /usr/include/linux/param.h \
/usr/include/i386-linux-gnu/asm/param.h /usr/include/asm-generic/param.h \
/usr/include/net/if.h /usr/include/netinet/in.h \
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h /usr/include/stdint.h \
/usr/include/i386-linux-gnu/bits/wchar.h \
/usr/include/i386-linux-gnu/bits/in.h /usr/include/arpa/inet.h os.h \
/usr/include/linux/mroute.h /usr/include/linux/sockios.h \
/usr/include/netinet/ip.h /usr/include/netinet/igmp.h ../config.h
igmpproxy.h:
/usr/include/errno.h:
/usr/include/features.h:
/usr/include/i386-linux-gnu/bits/predefs.h:
/usr/include/i386-linux-gnu/sys/cdefs.h:
/usr/include/i386-linux-gnu/bits/wordsize.h:
/usr/include/i386-linux-gnu/gnu/stubs.h:
/usr/include/i386-linux-gnu/gnu/stubs-32.h:
/usr/include/i386-linux-gnu/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/i386-linux-gnu/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdarg.h:
/usr/include/stdio.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stddef.h:
/usr/include/i386-linux-gnu/bits/types.h:
/usr/include/i386-linux-gnu/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/include/i386-linux-gnu/bits/stdio_lim.h:
/usr/include/i386-linux-gnu/bits/sys_errlist.h:
/usr/include/i386-linux-gnu/bits/stdio.h:
/usr/include/stdlib.h:
/usr/include/i386-linux-gnu/bits/waitflags.h:
/usr/include/i386-linux-gnu/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/i386-linux-gnu/bits/endian.h:
/usr/include/i386-linux-gnu/bits/byteswap.h:
/usr/include/i386-linux-gnu/sys/types.h:
/usr/include/time.h:
/usr/include/i386-linux-gnu/sys/select.h:
/usr/include/i386-linux-gnu/bits/select.h:
/usr/include/i386-linux-gnu/bits/sigset.h:
/usr/include/i386-linux-gnu/bits/time.h:
/usr/include/i386-linux-gnu/sys/sysmacros.h:
/usr/include/i386-linux-gnu/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/syslog.h:
/usr/include/i386-linux-gnu/sys/syslog.h:
/usr/include/i386-linux-gnu/bits/syslog-path.h:
/usr/include/signal.h:
/usr/include/i386-linux-gnu/bits/signum.h:
/usr/include/i386-linux-gnu/bits/siginfo.h:
/usr/include/i386-linux-gnu/bits/sigaction.h:
/usr/include/i386-linux-gnu/bits/sigcontext.h:
/usr/include/i386-linux-gnu/asm/sigcontext.h:
/usr/include/linux/types.h:
/usr/include/i386-linux-gnu/asm/types.h:
/usr/include/asm-generic/types.h:
/usr/include/asm-generic/int-ll64.h:
/usr/include/i386-linux-gnu/asm/bitsperlong.h:
/usr/include/asm-generic/bitsperlong.h:
/usr/include/linux/posix_types.h:
/usr/include/linux/stddef.h:
/usr/include/i386-linux-gnu/asm/posix_types.h:
/usr/include/i386-linux-gnu/asm/posix_types_32.h:
/usr/include/i386-linux-gnu/bits/sigstack.h:
/usr/include/i386-linux-gnu/sys/ucontext.h:
/usr/include/i386-linux-gnu/bits/sigthread.h:
/usr/include/unistd.h:
/usr/include/i386-linux-gnu/bits/posix_opt.h:
/usr/include/i386-linux-gnu/bits/environments.h:
/usr/include/i386-linux-gnu/bits/confname.h:
/usr/include/getopt.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/i386-linux-gnu/bits/string.h:
/usr/include/i386-linux-gnu/bits/string2.h:
/usr/include/fcntl.h:
/usr/include/i386-linux-gnu/bits/fcntl.h:
/usr/include/i386-linux-gnu/bits/stat.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdbool.h:
/usr/include/i386-linux-gnu/sys/socket.h:
/usr/include/i386-linux-gnu/sys/uio.h:
/usr/include/i386-linux-gnu/bits/uio.h:
/usr/include/i386-linux-gnu/bits/socket.h:
/usr/include/i386-linux-gnu/bits/sockaddr.h:
/usr/include/i386-linux-gnu/asm/socket.h:
/usr/include/asm-generic/socket.h:
/usr/include/i386-linux-gnu/asm/sockios.h:
/usr/include/asm-generic/sockios.h:
/usr/include/i386-linux-gnu/sys/un.h:
/usr/include/i386-linux-gnu/sys/time.h:
/usr/include/i386-linux-gnu/sys/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctls.h:
/usr/include/i386-linux-gnu/asm/ioctls.h:
/usr/include/asm-generic/ioctls.h:
/usr/include/linux/ioctl.h:
/usr/include/i386-linux-gnu/asm/ioctl.h:
/usr/include/asm-generic/ioctl.h:
/usr/include/i386-linux-gnu/bits/ioctl-types.h:
/usr/include/i386-linux-gnu/sys/ttydefaults.h:
/usr/include/i386-linux-gnu/sys/param.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/limits.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include-fixed/syslimits.h:
/usr/include/limits.h:
/usr/include/i386-linux-gnu/bits/posix1_lim.h:
/usr/include/i386-linux-gnu/bits/local_lim.h:
/usr/include/linux/limits.h:
/usr/include/i386-linux-gnu/bits/posix2_lim.h:
/usr/include/linux/param.h:
/usr/include/i386-linux-gnu/asm/param.h:
/usr/include/asm-generic/param.h:
/usr/include/net/if.h:
/usr/include/netinet/in.h:
/usr/lib/gcc/i486-linux-gnu/4.7/include/stdint.h:
/usr/include/stdint.h:
/usr/include/i386-linux-gnu/bits/wchar.h:
/usr/include/i386-linux-gnu/bits/in.h:
/usr/include/arpa/inet.h:
os.h:
/usr/include/linux/mroute.h:
/usr/include/linux/sockios.h:
/usr/include/netinet/ip.h:
/usr/include/netinet/igmp.h:
../config.h:

View File

@ -0,0 +1,493 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# src/Makefile. Generated from Makefile.in by configure.
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
pkgdatadir = $(datadir)/igmpproxy
pkgincludedir = $(includedir)/igmpproxy
pkglibdir = $(libdir)/igmpproxy
pkglibexecdir = $(libexecdir)/igmpproxy
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i586-pc-linux-gnu
host_triplet = i586-pc-linux-gnu
sbin_PROGRAMS = igmpproxy$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = os.h
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(sbindir)"
PROGRAMS = $(sbin_PROGRAMS)
am_igmpproxy_OBJECTS = callout.$(OBJEXT) config.$(OBJEXT) \
confread.$(OBJEXT) ifvc.$(OBJEXT) igmp.$(OBJEXT) \
igmpproxy.$(OBJEXT) kern.$(OBJEXT) lib.$(OBJEXT) \
mcgroup.$(OBJEXT) mroute-api.$(OBJEXT) request.$(OBJEXT) \
rttable.$(OBJEXT) syslog.$(OBJEXT) udpsock.$(OBJEXT)
igmpproxy_OBJECTS = $(am_igmpproxy_OBJECTS)
igmpproxy_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(igmpproxy_SOURCES)
DIST_SOURCES = $(igmpproxy_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run aclocal-1.11
AMTAR = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run tar
AUTOCONF = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoconf
AUTOHEADER = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run autoheader
AUTOMAKE = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run automake-1.11
AWK = gawk
CC = gcc -std=gnu99
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPPFLAGS =
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
ECHO_C =
ECHO_N = -n
ECHO_T =
EXEEXT =
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LDFLAGS =
LIBOBJS =
LIBS =
LTLIBOBJS =
MAKEINFO = ${SHELL} /usr/local/src/igmpproxy-0.1/missing --run makeinfo
MKDIR_P = /bin/mkdir -p
OBJEXT = o
PACKAGE = igmpproxy
PACKAGE_BUGREPORT =
PACKAGE_NAME = igmpproxy
PACKAGE_STRING = igmpproxy 0.1
PACKAGE_TARNAME = igmpproxy
PACKAGE_VERSION = 0.1
PATH_SEPARATOR = :
SET_MAKE =
SHELL = /bin/sh
STRIP =
VERSION = 0.1
abs_builddir = /usr/local/src/igmpproxy-0.1/src
abs_srcdir = /usr/local/src/igmpproxy-0.1/src
abs_top_builddir = /usr/local/src/igmpproxy-0.1
abs_top_srcdir = /usr/local/src/igmpproxy-0.1
ac_ct_CC = gcc
am__include = include
am__leading_dot = .
am__quote =
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i586-pc-linux-gnu
build_alias =
build_cpu = i586
build_os = linux-gnu
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = i586-pc-linux-gnu
host_alias =
host_cpu = i586
host_os = linux-gnu
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = ${SHELL} /usr/local/src/igmpproxy-0.1/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local/igmpproxy-0.1
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias =
top_build_prefix = ../
top_builddir = ..
top_srcdir = ..
igmpproxy_SOURCES = \
callout.c \
config.c \
confread.c \
ifvc.c \
igmp.c \
igmpproxy.c \
igmpproxy.h \
kern.c \
lib.c \
mcgroup.c \
mroute-api.c \
os-dragonfly.h \
os-freebsd.h \
os-linux.h \
os-netbsd.h \
os-openbsd.h \
request.c \
rttable.c \
syslog.c \
udpsock.c
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
} \
; done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
igmpproxy$(EXEEXT): $(igmpproxy_OBJECTS) $(igmpproxy_DEPENDENCIES)
@rm -f igmpproxy$(EXEEXT)
$(LINK) $(igmpproxy_OBJECTS) $(igmpproxy_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
include ./$(DEPDIR)/callout.Po
include ./$(DEPDIR)/config.Po
include ./$(DEPDIR)/confread.Po
include ./$(DEPDIR)/ifvc.Po
include ./$(DEPDIR)/igmp.Po
include ./$(DEPDIR)/igmpproxy.Po
include ./$(DEPDIR)/kern.Po
include ./$(DEPDIR)/lib.Po
include ./$(DEPDIR)/mcgroup.Po
include ./$(DEPDIR)/mroute-api.Po
include ./$(DEPDIR)/request.Po
include ./$(DEPDIR)/rttable.Po
include ./$(DEPDIR)/syslog.Po
include ./$(DEPDIR)/udpsock.Po
.c.o:
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c $<
.c.obj:
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
# source='$<' object='$@' libtool=no \
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS)
installdirs:
for dir in "$(DESTDIR)$(sbindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-sbinPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-sbinPROGRAMS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-sbinPROGRAMS ctags distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-sbinPROGRAMS install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-sbinPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,22 @@
sbin_PROGRAMS = igmpproxy
igmpproxy_SOURCES = \
callout.c \
config.c \
confread.c \
ifvc.c \
igmp.c \
igmpproxy.c \
igmpproxy.h \
kern.c \
lib.c \
mcgroup.c \
mroute-api.c \
os-dragonfly.h \
os-freebsd.h \
os-linux.h \
os-netbsd.h \
os-openbsd.h \
request.c \
rttable.c \
syslog.c \
udpsock.c

View File

@ -0,0 +1,493 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
sbin_PROGRAMS = igmpproxy$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = os.h
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(sbindir)"
PROGRAMS = $(sbin_PROGRAMS)
am_igmpproxy_OBJECTS = callout.$(OBJEXT) config.$(OBJEXT) \
confread.$(OBJEXT) ifvc.$(OBJEXT) igmp.$(OBJEXT) \
igmpproxy.$(OBJEXT) kern.$(OBJEXT) lib.$(OBJEXT) \
mcgroup.$(OBJEXT) mroute-api.$(OBJEXT) request.$(OBJEXT) \
rttable.$(OBJEXT) syslog.$(OBJEXT) udpsock.$(OBJEXT)
igmpproxy_OBJECTS = $(am_igmpproxy_OBJECTS)
igmpproxy_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(igmpproxy_SOURCES)
DIST_SOURCES = $(igmpproxy_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EXEEXT = @EXEEXT@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
igmpproxy_SOURCES = \
callout.c \
config.c \
confread.c \
ifvc.c \
igmp.c \
igmpproxy.c \
igmpproxy.h \
kern.c \
lib.c \
mcgroup.c \
mroute-api.c \
os-dragonfly.h \
os-freebsd.h \
os-linux.h \
os-netbsd.h \
os-openbsd.h \
request.c \
rttable.c \
syslog.c \
udpsock.c
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --gnu src/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
install-sbinPROGRAMS: $(sbin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
for p in $$list; do echo "$$p $$p"; done | \
sed 's/$(EXEEXT)$$//' | \
while read p p1; do if test -f $$p; \
then echo "$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) files[d] = files[d] " " $$1; \
else { print "f", $$3 "/" $$4, $$1; } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
$(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
} \
; done
uninstall-sbinPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-e 's/$$/$(EXEEXT)/' `; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
clean-sbinPROGRAMS:
-test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
igmpproxy$(EXEEXT): $(igmpproxy_OBJECTS) $(igmpproxy_DEPENDENCIES)
@rm -f igmpproxy$(EXEEXT)
$(LINK) $(igmpproxy_OBJECTS) $(igmpproxy_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callout.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/confread.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ifvc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igmpproxy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lib.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mcgroup.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mroute-api.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rttable.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/udpsock.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS)
installdirs:
for dir in "$(DESTDIR)$(sbindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-sbinPROGRAMS
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-sbinPROGRAMS
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-sbinPROGRAMS ctags distclean distclean-compile \
distclean-generic distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-dvi install-dvi-am install-exec \
install-exec-am install-html install-html-am install-info \
install-info-am install-man install-pdf install-pdf-am \
install-ps install-ps-am install-sbinPROGRAMS install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
uninstall-am uninstall-sbinPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,255 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
#include "igmpproxy.h"
/* the code below implements a callout queue */
static int id = 0;
static struct timeOutQueue *queue = 0; /* pointer to the beginning of timeout queue */
struct timeOutQueue {
struct timeOutQueue *next; // Next event in queue
int id;
timer_f func; // function to call
void *data; // Data for function
int time; // Time offset for next event
};
// Method for dumping the Queue to the log.
static void debugQueue(void);
/**
* Initializes the callout queue
*/
void callout_init() {
queue = NULL;
}
/**
* Clears all scheduled timeouts...
*/
void free_all_callouts() {
struct timeOutQueue *p;
while (queue) {
p = queue;
queue = queue->next;
free(p);
}
}
/**
* elapsed_time seconds have passed; perform all the events that should
* happen.
*/
void age_callout_queue(int elapsed_time) {
struct timeOutQueue *ptr;
int i = 0;
for (ptr = queue; ptr; ptr = queue, i++) {
if (ptr->time > elapsed_time) {
ptr->time -= elapsed_time;
return;
} else {
elapsed_time -= ptr->time;
queue = queue->next;
my_log(LOG_DEBUG, 0, "About to call timeout %d (#%d)", ptr->id, i);
if (ptr->func)
ptr->func(ptr->data);
free(ptr);
}
}
}
/**
* Return in how many seconds age_callout_queue() would like to be called.
* Return -1 if there are no events pending.
*/
int timer_nextTimer() {
if (queue) {
if (queue->time < 0) {
my_log(LOG_WARNING, 0, "timer_nextTimer top of queue says %d",
queue->time);
return 0;
}
return queue->time;
}
return -1;
}
/**
* Inserts a timer in queue.
* @param delay - Number of seconds the timeout should happen in.
* @param action - The function to call on timeout.
* @param data - Pointer to the function data to supply...
*/
int timer_setTimer(int delay, timer_f action, void *data) {
struct timeOutQueue *ptr, *node, *prev;
int i = 0;
/* create a node */
node = (struct timeOutQueue *)malloc(sizeof(struct timeOutQueue));
if (node == 0) {
my_log(LOG_WARNING, 0, "Malloc Failed in timer_settimer\n");
return -1;
}
node->func = action;
node->data = data;
node->time = delay;
node->next = 0;
node->id = ++id;
prev = ptr = queue;
/* insert node in the queue */
/* if the queue is empty, insert the node and return */
if (!queue) {
queue = node;
}
else {
/* chase the pointer looking for the right place */
while (ptr) {
if (delay < ptr->time) {
// We found the correct node
node->next = ptr;
if (ptr == queue) {
queue = node;
}
else {
prev->next = node;
}
ptr->time -= node->time;
my_log(LOG_DEBUG, 0,
"Created timeout %d (#%d) - delay %d secs",
node->id, i, node->time);
debugQueue();
return node->id;
} else {
// Continur to check nodes.
delay -= ptr->time; node->time = delay;
prev = ptr;
ptr = ptr->next;
}
i++;
}
prev->next = node;
}
my_log(LOG_DEBUG, 0, "Created timeout %d (#%d) - delay %d secs",
node->id, i, node->time);
debugQueue();
return node->id;
}
/**
* returns the time until the timer is scheduled
*/
int timer_leftTimer(int timer_id) {
struct timeOutQueue *ptr;
int left = 0;
if (!timer_id)
return -1;
for (ptr = queue; ptr; ptr = ptr->next) {
left += ptr->time;
if (ptr->id == timer_id) {
return left;
}
}
return -1;
}
/**
* clears the associated timer. Returns 1 if succeeded.
*/
int timer_clearTimer(int timer_id) {
struct timeOutQueue *ptr, *prev;
int i = 0;
if (!timer_id)
return 0;
prev = ptr = queue;
/*
* find the right node, delete it. the subsequent node's time
* gets bumped up
*/
debugQueue();
while (ptr) {
if (ptr->id == timer_id) {
/* got the right node */
/* unlink it from the queue */
if (ptr == queue)
queue = queue->next;
else
prev->next = ptr->next;
/* increment next node if any */
if (ptr->next != 0)
(ptr->next)->time += ptr->time;
if (ptr->data)
free(ptr->data);
my_log(LOG_DEBUG, 0, "deleted timer %d (#%d)", ptr->id, i);
free(ptr);
debugQueue();
return 1;
}
prev = ptr;
ptr = ptr->next;
i++;
}
// If we get here, the timer was not deleted.
my_log(LOG_DEBUG, 0, "failed to delete timer %d (#%d)", timer_id, i);
debugQueue();
return 0;
}
/**
* debugging utility
*/
static void debugQueue() {
struct timeOutQueue *ptr;
for (ptr = queue; ptr; ptr = ptr->next) {
my_log(LOG_DEBUG, 0, "(Id:%d, Time:%d) ", ptr->id, ptr->time);
}
}

Binary file not shown.

View File

@ -0,0 +1,361 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* config.c - Contains functions to load and parse config
* file, and functions to configure the daemon.
*/
#include "igmpproxy.h"
// Structure to keep configuration for VIFs...
struct vifconfig {
char* name;
short state;
int ratelimit;
int threshold;
// Keep allowed nets for VIF.
struct SubnetList* allowednets;
// Next config in list...
struct vifconfig* next;
};
// Structure to keep vif configuration
struct vifconfig* vifconf;
// Keeps common settings...
static struct Config commonConfig;
// Prototypes...
struct vifconfig *parsePhyintToken();
struct SubnetList *parseSubnetAddress(char *addrstr);
/**
* Initializes common config..
*/
void initCommonConfig() {
commonConfig.robustnessValue = DEFAULT_ROBUSTNESS;
commonConfig.queryInterval = INTERVAL_QUERY;
commonConfig.queryResponseInterval = INTERVAL_QUERY_RESPONSE;
// The defaults are calculated from other settings.
commonConfig.startupQueryInterval = (unsigned int)(INTERVAL_QUERY / 4);
commonConfig.startupQueryCount = DEFAULT_ROBUSTNESS;
// Default values for leave intervals...
commonConfig.lastMemberQueryInterval = INTERVAL_QUERY_RESPONSE;
commonConfig.lastMemberQueryCount = DEFAULT_ROBUSTNESS;
// If 1, a leave message is sent upstream on leave messages from downstream.
commonConfig.fastUpstreamLeave = 0;
}
/**
* Returns a pointer to the common config...
*/
struct Config *getCommonConfig() {
return &commonConfig;
}
/**
* Loads the configuration from file, and stores the config in
* respective holders...
*/
int loadConfig(char *configFile) {
struct vifconfig *tmpPtr;
struct vifconfig **currPtr = &vifconf;
char *token;
// Initialize common config
initCommonConfig();
// Test config file reader...
if(!openConfigFile(configFile)) {
my_log(LOG_ERR, 0, "Unable to open configfile from %s", configFile);
}
// Get first token...
token = nextConfigToken();
if(token == NULL) {
my_log(LOG_ERR, 0, "Config file was empty.");
}
// Loop until all configuration is read.
while ( token != NULL ) {
// Check token...
if(strcmp("phyint", token)==0) {
// Got a phyint token... Call phyint parser
my_log(LOG_DEBUG, 0, "Config: Got a phyint token.");
tmpPtr = parsePhyintToken();
if(tmpPtr == NULL) {
// Unparsable token... Exit...
closeConfigFile();
my_log(LOG_WARNING, 0, "Unknown token '%s' in configfile", token);
return 0;
} else {
my_log(LOG_DEBUG, 0, "IF name : %s", tmpPtr->name);
my_log(LOG_DEBUG, 0, "Next ptr : %x", tmpPtr->next);
my_log(LOG_DEBUG, 0, "Ratelimit : %d", tmpPtr->ratelimit);
my_log(LOG_DEBUG, 0, "Threshold : %d", tmpPtr->threshold);
my_log(LOG_DEBUG, 0, "State : %d", tmpPtr->state);
my_log(LOG_DEBUG, 0, "Allowednet ptr : %x", tmpPtr->allowednets);
// Insert config, and move temppointer to next location...
*currPtr = tmpPtr;
currPtr = &tmpPtr->next;
}
}
else if(strcmp("quickleave", token)==0) {
// Got a quickleave token....
my_log(LOG_DEBUG, 0, "Config: Quick leave mode enabled.");
commonConfig.fastUpstreamLeave = 1;
// Read next token...
token = nextConfigToken();
continue;
} else {
// Unparsable token... Exit...
closeConfigFile();
my_log(LOG_WARNING, 0, "Unknown token '%s' in configfile", token);
return 0;
}
// Get token that was not recognized by phyint parser.
token = getCurrentConfigToken();
}
// Close the configfile...
closeConfigFile();
return 1;
}
/**
* Appends extra VIF configuration from config file.
*/
void configureVifs() {
unsigned Ix;
struct IfDesc *Dp;
struct vifconfig *confPtr;
// If no config is availible, just return...
if(vifconf == NULL) {
return;
}
// Loop through all VIFs...
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
if ( Dp->InAdr.s_addr && ! (Dp->Flags & IFF_LOOPBACK) ) {
// Now try to find a matching config...
for( confPtr = vifconf; confPtr; confPtr = confPtr->next) {
// I the VIF names match...
if(strcmp(Dp->Name, confPtr->name)==0) {
struct SubnetList *vifLast;
my_log(LOG_DEBUG, 0, "Found config for %s", Dp->Name);
// Set the VIF state
Dp->state = confPtr->state;
Dp->threshold = confPtr->threshold;
Dp->ratelimit = confPtr->ratelimit;
// Go to last allowed net on VIF...
for(vifLast = Dp->allowednets; vifLast->next; vifLast = vifLast->next);
// Insert the configured nets...
vifLast->next = confPtr->allowednets;
break;
}
}
}
}
}
/**
* Internal function to parse phyint config
*/
struct vifconfig *parsePhyintToken() {
struct vifconfig *tmpPtr;
struct SubnetList **anetPtr;
char *token;
short parseError = 0;
// First token should be the interface name....
token = nextConfigToken();
// Sanitycheck the name...
if(token == NULL) return NULL;
if(strlen(token) >= IF_NAMESIZE) return NULL;
my_log(LOG_DEBUG, 0, "Config: IF: Config for interface %s.", token);
// Allocate memory for configuration...
tmpPtr = (struct vifconfig*)malloc(sizeof(struct vifconfig));
if(tmpPtr == NULL) {
my_log(LOG_ERR, 0, "Out of memory.");
}
// Set default values...
tmpPtr->next = NULL; // Important to avoid seg fault...
tmpPtr->ratelimit = 0;
tmpPtr->threshold = 1;
tmpPtr->state = IF_STATE_DOWNSTREAM;
tmpPtr->allowednets = NULL;
// Make a copy of the token to store the IF name
tmpPtr->name = strdup( token );
if(tmpPtr->name == NULL) {
my_log(LOG_ERR, 0, "Out of memory.");
}
// Set the altnet pointer to the allowednets pointer.
anetPtr = &tmpPtr->allowednets;
// Parse the rest of the config..
token = nextConfigToken();
while(token != NULL) {
if(strcmp("altnet", token)==0) {
// Altnet...
token = nextConfigToken();
my_log(LOG_DEBUG, 0, "Config: IF: Got altnet token %s.",token);
*anetPtr = parseSubnetAddress(token);
if(*anetPtr == NULL) {
parseError = 1;
my_log(LOG_WARNING, 0, "Unable to parse subnet address.");
break;
} else {
anetPtr = &(*anetPtr)->next;
}
}
else if(strcmp("upstream", token)==0) {
// Upstream
my_log(LOG_DEBUG, 0, "Config: IF: Got upstream token.");
tmpPtr->state = IF_STATE_UPSTREAM;
}
else if(strcmp("downstream", token)==0) {
// Downstream
my_log(LOG_DEBUG, 0, "Config: IF: Got downstream token.");
tmpPtr->state = IF_STATE_DOWNSTREAM;
}
else if(strcmp("disabled", token)==0) {
// Disabled
my_log(LOG_DEBUG, 0, "Config: IF: Got disabled token.");
tmpPtr->state = IF_STATE_DISABLED;
}
else if(strcmp("ratelimit", token)==0) {
// Ratelimit
token = nextConfigToken();
my_log(LOG_DEBUG, 0, "Config: IF: Got ratelimit token '%s'.", token);
tmpPtr->ratelimit = atoi( token );
if(tmpPtr->ratelimit < 0) {
my_log(LOG_WARNING, 0, "Ratelimit must be 0 or more.");
parseError = 1;
break;
}
}
else if(strcmp("threshold", token)==0) {
// Threshold
token = nextConfigToken();
my_log(LOG_DEBUG, 0, "Config: IF: Got threshold token '%s'.", token);
tmpPtr->threshold = atoi( token );
if(tmpPtr->threshold <= 0 || tmpPtr->threshold > 255) {
my_log(LOG_WARNING, 0, "Threshold must be between 1 and 255.");
parseError = 1;
break;
}
}
else {
// Unknown token. Break...
break;
}
token = nextConfigToken();
}
// Clean up after a parseerror...
if(parseError) {
free(tmpPtr);
tmpPtr = NULL;
}
return tmpPtr;
}
/**
* Parses a subnet address string on the format
* a.b.c.d/n into a SubnetList entry.
*/
struct SubnetList *parseSubnetAddress(char *addrstr) {
struct SubnetList *tmpSubnet;
char *tmpStr;
uint32_t addr = 0x00000000;
uint32_t mask = 0xFFFFFFFF;
// First get the network part of the address...
tmpStr = strtok(addrstr, "/");
addr = inet_addr(tmpStr);
tmpStr = strtok(NULL, "/");
if(tmpStr != NULL) {
int bitcnt = atoi(tmpStr);
if(bitcnt <= 0 || bitcnt > 32) {
my_log(LOG_WARNING, 0, "The bits part of the address is invalid : %d.",tmpStr);
return NULL;
}
mask <<= (32 - bitcnt);
}
if(addr == -1 || addr == 0) {
my_log(LOG_WARNING, 0, "Unable to parse address token '%s'.", addrstr);
return NULL;
}
tmpSubnet = (struct SubnetList*) malloc(sizeof(struct SubnetList));
tmpSubnet->subnet_addr = addr;
tmpSubnet->subnet_mask = ntohl(mask);
tmpSubnet->next = NULL;
my_log(LOG_DEBUG, 0, "Config: IF: Altnet: Parsed altnet to %s.",
inetFmts(tmpSubnet->subnet_addr, tmpSubnet->subnet_mask,s1));
return tmpSubnet;
}

Binary file not shown.

View File

@ -0,0 +1,213 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* confread.c
*
* Generic config file reader. Used to open a config file,
* and read the tokens from it. The parser is really simple,
* and does no backlogging. This means that no form of
* text escaping and qouting is currently supported.
* '#' chars are read as comments, and the comment lasts until
* a newline or EOF
*
*/
#include "igmpproxy.h"
#define READ_BUFFER_SIZE 512 // Inputbuffer size...
#ifndef MAX_TOKEN_LENGTH
#define MAX_TOKEN_LENGTH 30 // Default max token length
#endif
FILE *confFilePtr; // File handle pointer
char *iBuffer; // Inputbuffer for reading...
unsigned int bufPtr; // Buffer position pointer.
unsigned int readSize; // Number of bytes in buffer after last read...
char cToken[MAX_TOKEN_LENGTH]; // Token buffer...
short validToken;
/**
* Opens config file specified by filename.
*/
int openConfigFile(char *filename) {
// Set the buffer to null initially...
iBuffer = NULL;
// Open the file for reading...
confFilePtr = fopen(filename, "r");
// On error, return false
if(confFilePtr == NULL) {
return 0;
}
// Allocate memory for inputbuffer...
iBuffer = (char*) malloc( sizeof(char) * READ_BUFFER_SIZE );
if(iBuffer == NULL) {
closeConfigFile();
return 0;
}
// Reset bufferpointer and readsize
bufPtr = 0;
readSize = 0;
return 1;
}
/**
* Closes the currently open config file.
*/
void closeConfigFile() {
// Close the file.
if(confFilePtr!=NULL) {
fclose(confFilePtr);
}
// Free input buffer memory...
if(iBuffer != NULL) {
free(iBuffer);
}
}
/**
* Returns the next token from the configfile. The function
* return NULL if there are no more tokens in the file.
*/
char *nextConfigToken() {
validToken = 0;
// If no file or buffer, return NULL
if(confFilePtr == NULL || iBuffer == NULL) {
return NULL;
}
{
unsigned int tokenPtr = 0;
unsigned short finished = 0;
unsigned short commentFound = 0;
// Outer buffer fill loop...
while ( !finished ) {
// If readpointer is at the end of the buffer, we should read next chunk...
if(bufPtr == readSize) {
// Fill up the buffer...
readSize = fread (iBuffer, sizeof(char), READ_BUFFER_SIZE, confFilePtr);
bufPtr = 0;
// If the readsize is 0, we should just return...
if(readSize == 0) {
return NULL;
}
}
// Inner char loop...
while ( bufPtr < readSize && !finished ) {
//printf("Char %s", iBuffer[bufPtr]);
// Break loop on \0
if(iBuffer[bufPtr] == '\0') {
break;
}
if( commentFound ) {
if( iBuffer[bufPtr] == '\n' ) {
commentFound = 0;
}
} else {
// Check current char...
switch(iBuffer[bufPtr]) {
case '#':
// Found a comment start...
commentFound = 1;
break;
case '\n':
case '\r':
case '\t':
case ' ':
// Newline, CR, Tab and space are end of token, or ignored.
if(tokenPtr > 0) {
cToken[tokenPtr] = '\0'; // EOL
finished = 1;
}
break;
default:
// Append char to token...
cToken[tokenPtr++] = iBuffer[bufPtr];
break;
}
}
// Check end of token buffer !!!
if(tokenPtr == MAX_TOKEN_LENGTH - 1) {
// Prevent buffer overrun...
cToken[tokenPtr] = '\0';
finished = 1;
}
// Next char...
bufPtr++;
}
// If the readsize is less than buffersize, we assume EOF.
if(readSize < READ_BUFFER_SIZE && bufPtr == readSize) {
if (tokenPtr > 0)
finished = 1;
else
return NULL;
}
}
if(tokenPtr>0) {
validToken = 1;
return cToken;
}
}
return NULL;
}
/**
* Returns the currently active token, or null
* if no tokens are availible.
*/
char *getCurrentConfigToken() {
return validToken ? cToken : NULL;
}

Binary file not shown.

View File

@ -0,0 +1,255 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
#include "igmpproxy.h"
struct IfDesc IfDescVc[ MAX_IF ], *IfDescEp = IfDescVc;
/*
** Builds up a vector with the interface of the machine. Calls to the other functions of
** the module will fail if they are called before the vector is build.
**
*/
void buildIfVc() {
struct ifreq IfVc[ sizeof( IfDescVc ) / sizeof( IfDescVc[ 0 ] ) ];
struct ifreq *IfEp;
int Sock;
if ( (Sock = socket( AF_INET, SOCK_DGRAM, 0 )) < 0 )
my_log( LOG_ERR, errno, "RAW socket open" );
/* get If vector
*/
{
struct ifconf IoCtlReq;
IoCtlReq.ifc_buf = (void *)IfVc;
IoCtlReq.ifc_len = sizeof( IfVc );
if ( ioctl( Sock, SIOCGIFCONF, &IoCtlReq ) < 0 )
my_log( LOG_ERR, errno, "ioctl SIOCGIFCONF" );
IfEp = (void *)((char *)IfVc + IoCtlReq.ifc_len);
}
/* loop over interfaces and copy interface info to IfDescVc
*/
{
struct ifreq *IfPt, *IfNext;
// Temp keepers of interface params...
uint32_t addr, subnet, mask;
for ( IfPt = IfVc; IfPt < IfEp; IfPt = IfNext ) {
struct ifreq IfReq;
char FmtBu[ 32 ];
IfNext = (struct ifreq *)((char *)&IfPt->ifr_addr +
#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
IfPt->ifr_addr.sa_len
#else
sizeof(struct sockaddr_in)
#endif
);
if (IfNext < IfPt + 1)
IfNext = IfPt + 1;
strncpy( IfDescEp->Name, IfPt->ifr_name, sizeof( IfDescEp->Name ) );
// Currently don't set any allowed nets...
//IfDescEp->allowednets = NULL;
// Set the index to -1 by default.
IfDescEp->index = -1;
/* don't retrieve more info for non-IP interfaces
*/
if ( IfPt->ifr_addr.sa_family != AF_INET ) {
IfDescEp->InAdr.s_addr = 0; /* mark as non-IP interface */
IfDescEp++;
continue;
}
// Get the interface adress...
IfDescEp->InAdr = ((struct sockaddr_in *)&IfPt->ifr_addr)->sin_addr;
addr = IfDescEp->InAdr.s_addr;
memcpy( IfReq.ifr_name, IfDescEp->Name, sizeof( IfReq.ifr_name ) );
IfReq.ifr_addr.sa_family = AF_INET;
((struct sockaddr_in *)&IfReq.ifr_addr)->sin_addr.s_addr = addr;
// Get the subnet mask...
if (ioctl(Sock, SIOCGIFNETMASK, &IfReq ) < 0)
my_log(LOG_ERR, errno, "ioctl SIOCGIFNETMASK for %s", IfReq.ifr_name);
mask = ((struct sockaddr_in *)&IfReq.ifr_addr)->sin_addr.s_addr;
subnet = addr & mask;
/* get if flags
**
** typical flags:
** lo 0x0049 -> Running, Loopback, Up
** ethx 0x1043 -> Multicast, Running, Broadcast, Up
** ipppx 0x0091 -> NoArp, PointToPoint, Up
** grex 0x00C1 -> NoArp, Running, Up
** ipipx 0x00C1 -> NoArp, Running, Up
*/
if ( ioctl( Sock, SIOCGIFFLAGS, &IfReq ) < 0 )
my_log( LOG_ERR, errno, "ioctl SIOCGIFFLAGS" );
IfDescEp->Flags = IfReq.ifr_flags;
// Insert the verified subnet as an allowed net...
IfDescEp->allowednets = (struct SubnetList *)malloc(sizeof(struct SubnetList));
if(IfDescEp->allowednets == NULL) my_log(LOG_ERR, 0, "Out of memory !");
// Create the network address for the IF..
IfDescEp->allowednets->next = NULL;
IfDescEp->allowednets->subnet_mask = mask;
IfDescEp->allowednets->subnet_addr = subnet;
// Set the default params for the IF...
IfDescEp->state = IF_STATE_DOWNSTREAM;
IfDescEp->robustness = DEFAULT_ROBUSTNESS;
IfDescEp->threshold = DEFAULT_THRESHOLD; /* ttl limit */
IfDescEp->ratelimit = DEFAULT_RATELIMIT;
// Debug log the result...
my_log( LOG_DEBUG, 0, "buildIfVc: Interface %s Addr: %s, Flags: 0x%04x, Network: %s",
IfDescEp->Name,
fmtInAdr( FmtBu, IfDescEp->InAdr ),
IfDescEp->Flags,
inetFmts(subnet,mask, s1));
IfDescEp++;
}
}
close( Sock );
}
/*
** Returns a pointer to the IfDesc of the interface 'IfName'
**
** returns: - pointer to the IfDesc of the requested interface
** - NULL if no interface 'IfName' exists
**
*/
struct IfDesc *getIfByName( const char *IfName ) {
struct IfDesc *Dp;
for ( Dp = IfDescVc; Dp < IfDescEp; Dp++ )
if ( ! strcmp( IfName, Dp->Name ) )
return Dp;
return NULL;
}
/*
** Returns a pointer to the IfDesc of the interface 'Ix'
**
** returns: - pointer to the IfDesc of the requested interface
** - NULL if no interface 'Ix' exists
**
*/
struct IfDesc *getIfByIx( unsigned Ix ) {
struct IfDesc *Dp = &IfDescVc[ Ix ];
return Dp < IfDescEp ? Dp : NULL;
}
/**
* Returns a pointer to the IfDesc whose subnet matches
* the supplied IP adress. The IP must match a interfaces
* subnet, or any configured allowed subnet on a interface.
*/
struct IfDesc *getIfByAddress( uint32_t ipaddr ) {
struct IfDesc *Dp;
struct SubnetList *currsubnet;
struct IfDesc *res = NULL;
uint32_t last_subnet_mask = 0;
for ( Dp = IfDescVc; Dp < IfDescEp; Dp++ ) {
// Loop through all registered allowed nets of the VIF...
for(currsubnet = Dp->allowednets; currsubnet != NULL; currsubnet = currsubnet->next) {
// Check if the ip falls in under the subnet....
if(currsubnet->subnet_mask > last_subnet_mask && (ipaddr & currsubnet->subnet_mask) == currsubnet->subnet_addr) {
res = Dp;
last_subnet_mask = currsubnet->subnet_mask;
}
}
}
return res;
}
/**
* Returns a pointer to the IfDesc whose subnet matches
* the supplied IP adress. The IP must match a interfaces
* subnet, or any configured allowed subnet on a interface.
*/
struct IfDesc *getIfByVifIndex( unsigned vifindex ) {
struct IfDesc *Dp;
if(vifindex>0) {
for ( Dp = IfDescVc; Dp < IfDescEp; Dp++ ) {
if(Dp->index == vifindex) {
return Dp;
}
}
}
return NULL;
}
/**
* Function that checks if a given ipaddress is a valid
* address for the supplied VIF.
*/
int isAdressValidForIf( struct IfDesc* intrface, uint32_t ipaddr ) {
struct SubnetList *currsubnet;
if(intrface == NULL) {
return 0;
}
// Loop through all registered allowed nets of the VIF...
for(currsubnet = intrface->allowednets; currsubnet != NULL; currsubnet = currsubnet->next) {
// Check if the ip falls in under the subnet....
if((ipaddr & currsubnet->subnet_mask) == currsubnet->subnet_addr) {
return 1;
}
}
return 0;
}

Binary file not shown.

View File

@ -0,0 +1,281 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* igmp.h - Recieves IGMP requests, and handle them
* appropriately...
*/
#include "igmpproxy.h"
// Globals
uint32_t allhosts_group; /* All hosts addr in net order */
uint32_t allrouters_group; /* All hosts addr in net order */
extern int MRouterFD;
/*
* Open and initialize the igmp socket, and fill in the non-changing
* IP header fields in the output packet buffer.
*/
void initIgmp() {
struct ip *ip;
recv_buf = malloc(RECV_BUF_SIZE);
send_buf = malloc(RECV_BUF_SIZE);
k_hdr_include(true); /* include IP header when sending */
k_set_rcvbuf(256*1024,48*1024); /* lots of input buffering */
k_set_ttl(1); /* restrict multicasts to one hop */
k_set_loop(false); /* disable multicast loopback */
ip = (struct ip *)send_buf;
memset(ip, 0, sizeof(struct ip));
/*
* Fields zeroed that aren't filled in later:
* - IP ID (let the kernel fill it in)
* - Offset (we don't send fragments)
* - Checksum (let the kernel fill it in)
*/
ip->ip_v = IPVERSION;
ip->ip_hl = sizeof(struct ip) >> 2;
ip->ip_tos = 0xc0; /* Internet Control */
ip->ip_ttl = MAXTTL; /* applies to unicasts only */
ip->ip_p = IPPROTO_IGMP;
allhosts_group = htonl(INADDR_ALLHOSTS_GROUP);
allrouters_group = htonl(INADDR_ALLRTRS_GROUP);
}
/**
* Finds the textual name of the supplied IGMP request.
*/
char *igmpPacketKind(u_int type, u_int code) {
static char unknown[20];
switch (type) {
case IGMP_MEMBERSHIP_QUERY: return "Membership query ";
case IGMP_V1_MEMBERSHIP_REPORT: return "V1 member report ";
case IGMP_V2_MEMBERSHIP_REPORT: return "V2 member report ";
case IGMP_V2_LEAVE_GROUP: return "Leave message ";
default:
sprintf(unknown, "unk: 0x%02x/0x%02x ", type, code);
return unknown;
}
}
/**
* Process a newly received IGMP packet that is sitting in the input
* packet buffer.
*/
void acceptIgmp(int recvlen) {
register uint32_t src, dst, group;
struct ip *ip;
struct igmp *igmp;
int ipdatalen, iphdrlen, igmpdatalen;
if (recvlen < sizeof(struct ip)) {
my_log(LOG_WARNING, 0,
"received packet too short (%u bytes) for IP header", recvlen);
return;
}
ip = (struct ip *)recv_buf;
src = ip->ip_src.s_addr;
dst = ip->ip_dst.s_addr;
/*
* this is most likely a message from the kernel indicating that
* a new src grp pair message has arrived and so, it would be
* necessary to install a route into the kernel for this.
*/
if (ip->ip_p == 0) {
if (src == 0 || dst == 0) {
my_log(LOG_WARNING, 0, "kernel request not accurate");
}
else {
struct IfDesc *checkVIF;
// Check if the source address matches a valid address on upstream vif.
checkVIF = getIfByIx( upStreamVif );
if(checkVIF == 0) {
my_log(LOG_ERR, 0, "Upstream VIF was null.");
return;
}
else if(src == checkVIF->InAdr.s_addr) {
my_log(LOG_NOTICE, 0, "Route activation request from %s for %s is from myself. Ignoring.",
inetFmt(src, s1), inetFmt(dst, s2));
return;
}
else if(!isAdressValidForIf(checkVIF, src)) {
my_log(LOG_WARNING, 0, "The source address %s for group %s, is not in any valid net for upstream VIF.",
inetFmt(src, s1), inetFmt(dst, s2));
return;
}
// Activate the route.
my_log(LOG_DEBUG, 0, "Route activate request from %s to %s",
inetFmt(src,s1), inetFmt(dst,s2));
activateRoute(dst, src);
}
return;
}
iphdrlen = ip->ip_hl << 2;
ipdatalen = ip_data_len(ip);
if (iphdrlen + ipdatalen != recvlen) {
my_log(LOG_WARNING, 0,
"received packet from %s shorter (%u bytes) than hdr+data length (%u+%u)",
inetFmt(src, s1), recvlen, iphdrlen, ipdatalen);
return;
}
igmp = (struct igmp *)(recv_buf + iphdrlen);
group = igmp->igmp_group.s_addr;
igmpdatalen = ipdatalen - IGMP_MINLEN;
if (igmpdatalen < 0) {
my_log(LOG_WARNING, 0,
"received IP data field too short (%u bytes) for IGMP, from %s",
ipdatalen, inetFmt(src, s1));
return;
}
my_log(LOG_NOTICE, 0, "RECV %s from %-15s to %s",
igmpPacketKind(igmp->igmp_type, igmp->igmp_code),
inetFmt(src, s1), inetFmt(dst, s2) );
switch (igmp->igmp_type) {
case IGMP_V1_MEMBERSHIP_REPORT:
case IGMP_V2_MEMBERSHIP_REPORT:
acceptGroupReport(src, group, igmp->igmp_type);
return;
case IGMP_V2_LEAVE_GROUP:
acceptLeaveMessage(src, group);
return;
case IGMP_MEMBERSHIP_QUERY:
return;
default:
my_log(LOG_INFO, 0,
"ignoring unknown IGMP message type %x from %s to %s",
igmp->igmp_type, inetFmt(src, s1),
inetFmt(dst, s2));
return;
}
}
/*
* Construct an IGMP message in the output packet buffer. The caller may
* have already placed data in that buffer, of length 'datalen'.
*/
void buildIgmp(uint32_t src, uint32_t dst, int type, int code, uint32_t group, int datalen) {
struct ip *ip;
struct igmp *igmp;
extern int curttl;
ip = (struct ip *)send_buf;
ip->ip_src.s_addr = src;
ip->ip_dst.s_addr = dst;
ip_set_len(ip, MIN_IP_HEADER_LEN + IGMP_MINLEN + datalen);
if (IN_MULTICAST(ntohl(dst))) {
ip->ip_ttl = curttl;
} else {
ip->ip_ttl = MAXTTL;
}
igmp = (struct igmp *)(send_buf + MIN_IP_HEADER_LEN);
igmp->igmp_type = type;
igmp->igmp_code = code;
igmp->igmp_group.s_addr = group;
igmp->igmp_cksum = 0;
igmp->igmp_cksum = inetChksum((u_short *)igmp,
IGMP_MINLEN + datalen);
}
/*
* Call build_igmp() to build an IGMP message in the output packet buffer.
* Then send the message from the interface with IP address 'src' to
* destination 'dst'.
*/
void sendIgmp(uint32_t src, uint32_t dst, int type, int code, uint32_t group, int datalen) {
struct sockaddr_in sdst;
int setloop = 0, setigmpsource = 0;
buildIgmp(src, dst, type, code, group, datalen);
if (IN_MULTICAST(ntohl(dst))) {
k_set_if(src);
setigmpsource = 1;
if (type != IGMP_DVMRP || dst == allhosts_group) {
setloop = 1;
k_set_loop(true);
}
}
memset(&sdst, 0, sizeof(sdst));
sdst.sin_family = AF_INET;
#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
sdst.sin_len = sizeof(sdst);
#endif
sdst.sin_addr.s_addr = dst;
if (sendto(MRouterFD, send_buf,
MIN_IP_HEADER_LEN + IGMP_MINLEN + datalen, 0,
(struct sockaddr *)&sdst, sizeof(sdst)) < 0) {
if (errno == ENETDOWN)
my_log(LOG_ERR, errno, "Sender VIF was down.");
else
my_log(LOG_INFO, errno,
"sendto to %s on %s",
inetFmt(dst, s1), inetFmt(src, s2));
}
if(setigmpsource) {
if (setloop) {
k_set_loop(false);
}
// Restore original...
k_set_if(INADDR_ANY);
}
my_log(LOG_DEBUG, 0, "SENT %s from %-15s to %s",
igmpPacketKind(type, code), src == INADDR_ANY ? "INADDR_ANY" :
inetFmt(src, s1), inetFmt(dst, s2));
}

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,357 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* igmpproxy.c - The main file for the IGMP proxy application.
*
* February 2005 - Johnny Egeland
*/
#include "igmpproxy.h"
static const char Usage[] =
"Usage: igmpproxy [-h] [-d] [-v [-v]] <configfile>\n"
"\n"
" -h Display this help screen\n"
" -d Run in debug mode. Output all messages on stderr\n"
" -v Be verbose. Give twice to see even debug messages.\n"
"\n"
PACKAGE_STRING "\n"
;
// Local function Prototypes
static void signalHandler(int);
int igmpProxyInit();
void igmpProxyCleanUp();
void igmpProxyRun();
// Global vars...
static int sighandled = 0;
#define GOT_SIGINT 0x01
#define GOT_SIGHUP 0x02
#define GOT_SIGUSR1 0x04
#define GOT_SIGUSR2 0x08
// The upstream VIF index
int upStreamVif;
/**
* Program main method. Is invoked when the program is started
* on commandline. The number of commandline arguments, and a
* pointer to the arguments are recieved on the line...
*/
int main( int ArgCn, char *ArgVc[] ) {
// Parse the commandline options and setup basic settings..
for (int c; (c = getopt(ArgCn, ArgVc, "vdh")) != -1;) {
switch (c) {
case 'd':
Log2Stderr = true;
break;
case 'v':
if (LogLevel == LOG_INFO)
LogLevel = LOG_DEBUG;
else
LogLevel = LOG_INFO;
break;
case 'h':
fputs(Usage, stderr);
exit(0);
break;
default:
exit(1);
break;
}
}
if (optind != ArgCn - 1) {
fputs("You must specify the configuration file.\n", stderr);
exit(1);
}
char *configFilePath = ArgVc[optind];
// Chech that we are root
if (geteuid() != 0) {
fprintf(stderr, "igmpproxy: must be root\n");
exit(1);
}
openlog("igmpproxy", LOG_PID, LOG_USER);
// Write debug notice with file path...
my_log(LOG_DEBUG, 0, "Searching for config file at '%s'" , configFilePath);
do {
// Loads the config file...
if( ! loadConfig( configFilePath ) ) {
my_log(LOG_ERR, 0, "Unable to load config file...");
break;
}
// Initializes the deamon.
if ( !igmpProxyInit() ) {
my_log(LOG_ERR, 0, "Unable to initialize IGMPproxy.");
break;
}
// Go to the main loop.
igmpProxyRun();
// Clean up
igmpProxyCleanUp();
} while ( false );
// Inform that we are exiting.
my_log(LOG_INFO, 0, "Shutdown complete....");
exit(0);
}
/**
* Handles the initial startup of the daemon.
*/
int igmpProxyInit() {
struct sigaction sa;
int Err;
sa.sa_handler = signalHandler;
sa.sa_flags = 0; /* Interrupt system calls */
sigemptyset(&sa.sa_mask);
sigaction(SIGTERM, &sa, NULL);
sigaction(SIGINT, &sa, NULL);
// Loads configuration for Physical interfaces...
buildIfVc();
// Configures IF states and settings
configureVifs();
switch ( Err = enableMRouter() ) {
case 0: break;
case EADDRINUSE: my_log( LOG_ERR, EADDRINUSE, "MC-Router API already in use" ); break;
default: my_log( LOG_ERR, Err, "MRT_INIT failed" );
}
/* create VIFs for all IP, non-loop interfaces
*/
{
unsigned Ix;
struct IfDesc *Dp;
int vifcount = 0;
upStreamVif = -1;
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
if ( Dp->InAdr.s_addr && ! (Dp->Flags & IFF_LOOPBACK) ) {
if(Dp->state == IF_STATE_UPSTREAM) {
if(upStreamVif == -1) {
upStreamVif = Ix;
} else {
my_log(LOG_ERR, 0, "Vif #%d was already upstream. Cannot set VIF #%d as upstream as well.",
upStreamVif, Ix);
}
}
addVIF( Dp );
vifcount++;
}
}
// If there is only one VIF, or no defined upstream VIF, we send an error.
if(vifcount < 2 || upStreamVif < 0) {
my_log(LOG_ERR, 0, "There must be at least 2 Vif's where one is upstream.");
}
}
// Initialize IGMP
initIgmp();
// Initialize Routing table
initRouteTable();
// Initialize timer
callout_init();
return 1;
}
/**
* Clean up all on exit...
*/
void igmpProxyCleanUp() {
my_log( LOG_DEBUG, 0, "clean handler called" );
free_all_callouts(); // No more timeouts.
clearAllRoutes(); // Remove all routes.
disableMRouter(); // Disable the multirout API
}
/**
* Main daemon loop.
*/
void igmpProxyRun() {
// Get the config.
//struct Config *config = getCommonConfig();
// Set some needed values.
register int recvlen;
int MaxFD, Rt, secs;
fd_set ReadFDS;
socklen_t dummy = 0;
struct timeval curtime, lasttime, difftime, tv;
// The timeout is a pointer in order to set it to NULL if nessecary.
struct timeval *timeout = &tv;
// Initialize timer vars
difftime.tv_usec = 0;
gettimeofday(&curtime, NULL);
lasttime = curtime;
// First thing we send a membership query in downstream VIF's...
sendGeneralMembershipQuery();
// Loop until the end...
for (;;) {
// Process signaling...
if (sighandled) {
if (sighandled & GOT_SIGINT) {
sighandled &= ~GOT_SIGINT;
my_log(LOG_NOTICE, 0, "Got a interupt signal. Exiting.");
break;
}
}
// Prepare timeout...
secs = timer_nextTimer();
if(secs == -1) {
timeout = NULL;
} else {
timeout->tv_usec = 0;
timeout->tv_sec = secs;
}
// Prepare for select.
MaxFD = MRouterFD;
FD_ZERO( &ReadFDS );
FD_SET( MRouterFD, &ReadFDS );
// wait for input
Rt = select( MaxFD +1, &ReadFDS, NULL, NULL, timeout );
// log and ignore failures
if( Rt < 0 ) {
my_log( LOG_WARNING, errno, "select() failure" );
continue;
}
else if( Rt > 0 ) {
// Read IGMP request, and handle it...
if( FD_ISSET( MRouterFD, &ReadFDS ) ) {
recvlen = recvfrom(MRouterFD, recv_buf, RECV_BUF_SIZE,
0, NULL, &dummy);
if (recvlen < 0) {
if (errno != EINTR) my_log(LOG_ERR, errno, "recvfrom");
continue;
}
acceptIgmp(recvlen);
}
}
// At this point, we can handle timeouts...
do {
/*
* If the select timed out, then there's no other
* activity to account for and we don't need to
* call gettimeofday.
*/
if (Rt == 0) {
curtime.tv_sec = lasttime.tv_sec + secs;
curtime.tv_usec = lasttime.tv_usec;
Rt = -1; /* don't do this next time through the loop */
} else {
gettimeofday(&curtime, NULL);
}
difftime.tv_sec = curtime.tv_sec - lasttime.tv_sec;
difftime.tv_usec += curtime.tv_usec - lasttime.tv_usec;
while (difftime.tv_usec > 1000000) {
difftime.tv_sec++;
difftime.tv_usec -= 1000000;
}
if (difftime.tv_usec < 0) {
difftime.tv_sec--;
difftime.tv_usec += 1000000;
}
lasttime = curtime;
if (secs == 0 || difftime.tv_sec > 0)
age_callout_queue(difftime.tv_sec);
secs = -1;
} while (difftime.tv_sec > 0);
}
}
/*
* Signal handler. Take note of the fact that the signal arrived
* so that the main loop can take care of it.
*/
static void signalHandler(int sig) {
switch (sig) {
case SIGINT:
case SIGTERM:
sighandled |= GOT_SIGINT;
break;
/* XXX: Not in use.
case SIGHUP:
sighandled |= GOT_SIGHUP;
break;
case SIGUSR1:
sighandled |= GOT_SIGUSR1;
break;
case SIGUSR2:
sighandled |= GOT_SIGUSR2;
break;
*/
}
}

View File

@ -0,0 +1,279 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* igmpproxy.h - Header file for common includes.
*/
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <stdbool.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <sys/param.h>
#include <net/if.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "os.h"
#include "config.h"
/*
* Limit on length of route data
*/
#define MAX_IP_PACKET_LEN 576
#define MIN_IP_HEADER_LEN 20
#define MAX_IP_HEADER_LEN 60
#define MAX_MC_VIFS 32 // !!! check this const in the specific includes
// Useful macros..
#define VCMC( Vc ) (sizeof( Vc ) / sizeof( (Vc)[ 0 ] ))
#define VCEP( Vc ) (&(Vc)[ VCMC( Vc ) ])
// Bit manipulation macros...
#define BIT_ZERO(X) ((X) = 0)
#define BIT_SET(X,n) ((X) |= 1 << (n))
#define BIT_CLR(X,n) ((X) &= ~(1 << (n)))
#define BIT_TST(X,n) ((X) & 1 << (n))
//#################################################################################
// Globals
//#################################################################################
/*
* External declarations for global variables and functions.
*/
#define RECV_BUF_SIZE 8192
extern char *recv_buf;
extern char *send_buf;
extern char s1[];
extern char s2[];
extern char s3[];
extern char s4[];
//#################################################################################
// Lib function prototypes.
//#################################################################################
/* syslog.c
*/
extern bool Log2Stderr; // Log to stderr instead of to syslog
extern int LogLevel; // Log threshold, LOG_WARNING .... LOG_DEBUG
void my_log( int Serverity, int Errno, const char *FmtSt, ... );
/* ifvc.c
*/
#define MAX_IF 40 // max. number of interfaces recognized
// Interface states
#define IF_STATE_DISABLED 0 // Interface should be ignored.
#define IF_STATE_UPSTREAM 1 // Interface is the upstream interface
#define IF_STATE_DOWNSTREAM 2 // Interface is a downstream interface
// Multicast default values...
#define DEFAULT_ROBUSTNESS 2
#define DEFAULT_THRESHOLD 1
#define DEFAULT_RATELIMIT 0
// Define timer constants (in seconds...)
#define INTERVAL_QUERY 125
#define INTERVAL_QUERY_RESPONSE 10
//#define INTERVAL_QUERY_RESPONSE 10
#define ROUTESTATE_NOTJOINED 0 // The group corresponding to route is not joined
#define ROUTESTATE_JOINED 1 // The group corresponding to route is joined
#define ROUTESTATE_CHECK_LAST_MEMBER 2 // The router is checking for hosts
// Linked list of networks...
struct SubnetList {
uint32_t subnet_addr;
uint32_t subnet_mask;
struct SubnetList* next;
};
struct IfDesc {
char Name[IF_NAMESIZE];
struct in_addr InAdr; /* == 0 for non IP interfaces */
short Flags;
short state;
struct SubnetList* allowednets;
unsigned int robustness;
unsigned char threshold; /* ttl limit */
unsigned int ratelimit;
unsigned int index;
};
// Keeps common configuration settings
struct Config {
unsigned int robustnessValue;
unsigned int queryInterval;
unsigned int queryResponseInterval;
// Used on startup..
unsigned int startupQueryInterval;
unsigned int startupQueryCount;
// Last member probe...
unsigned int lastMemberQueryInterval;
unsigned int lastMemberQueryCount;
// Set if upstream leave messages should be sent instantly..
unsigned short fastUpstreamLeave;
};
// Defines the Index of the upstream VIF...
extern int upStreamVif;
/* ifvc.c
*/
void buildIfVc( void );
struct IfDesc *getIfByName( const char *IfName );
struct IfDesc *getIfByIx( unsigned Ix );
struct IfDesc *getIfByAddress( uint32_t Ix );
int isAdressValidForIf(struct IfDesc* intrface, uint32_t ipaddr);
/* mroute-api.c
*/
struct MRouteDesc {
struct in_addr OriginAdr, McAdr;
short InVif;
uint8_t TtlVc[ MAX_MC_VIFS ];
};
// IGMP socket as interface for the mrouted API
// - receives the IGMP messages
extern int MRouterFD;
int enableMRouter( void );
void disableMRouter( void );
void addVIF( struct IfDesc *Dp );
int addMRoute( struct MRouteDesc * Dp );
int delMRoute( struct MRouteDesc * Dp );
int getVifIx( struct IfDesc *IfDp );
/* config.c
*/
int loadConfig(char *configFile);
void configureVifs();
struct Config *getCommonConfig();
/* igmp.c
*/
extern uint32_t allhosts_group;
extern uint32_t allrouters_group;
void initIgmp(void);
void acceptIgmp(int);
void sendIgmp (uint32_t, uint32_t, int, int, uint32_t,int);
/* lib.c
*/
char *fmtInAdr( char *St, struct in_addr InAdr );
char *inetFmt(uint32_t addr, char *s);
char *inetFmts(uint32_t addr, uint32_t mask, char *s);
uint16_t inetChksum(uint16_t *addr, int len);
/* kern.c
*/
void k_set_rcvbuf(int bufsize, int minsize);
void k_hdr_include(int hdrincl);
void k_set_ttl(int t);
void k_set_loop(int l);
void k_set_if(uint32_t ifa);
/*
void k_join(uint32_t grp, uint32_t ifa);
void k_leave(uint32_t grp, uint32_t ifa);
*/
/* udpsock.c
*/
int openUdpSocket( uint32_t PeerInAdr, uint16_t PeerPort );
/* mcgroup.c
*/
int joinMcGroup( int UdpSock, struct IfDesc *IfDp, uint32_t mcastaddr );
int leaveMcGroup( int UdpSock, struct IfDesc *IfDp, uint32_t mcastaddr );
/* rttable.c
*/
void initRouteTable();
void clearAllRoutes();
int insertRoute(uint32_t group, int ifx);
int activateRoute(uint32_t group, uint32_t originAddr);
void ageActiveRoutes();
void setRouteLastMemberMode(uint32_t group);
int lastMemberGroupAge(uint32_t group);
/* request.c
*/
void acceptGroupReport(uint32_t src, uint32_t group, uint8_t type);
void acceptLeaveMessage(uint32_t src, uint32_t group);
void sendGeneralMembershipQuery();
/* callout.c
*/
typedef void (*timer_f)(void *);
void callout_init();
void free_all_callouts();
void age_callout_queue(int);
int timer_nextTimer();
int timer_setTimer(int, timer_f, void *);
int timer_clearTimer(int);
int timer_leftTimer(int);
/* confread.c
*/
#define MAX_TOKEN_LENGTH 30
int openConfigFile(char *filename);
void closeConfigFile();
char* nextConfigToken();
char* getCurrentConfigToken();

Binary file not shown.

View File

@ -0,0 +1,140 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
#include "igmpproxy.h"
int curttl = 0;
void k_set_rcvbuf(int bufsize, int minsize) {
int delta = bufsize / 2;
int iter = 0;
/*
* Set the socket buffer. If we can't set it as large as we
* want, search around to try to find the highest acceptable
* value. The highest acceptable value being smaller than
* minsize is a fatal error.
*/
if (setsockopt(MRouterFD, SOL_SOCKET, SO_RCVBUF,
(char *)&bufsize, sizeof(bufsize)) < 0) {
bufsize -= delta;
while (1) {
iter++;
if (delta > 1)
delta /= 2;
if (setsockopt(MRouterFD, SOL_SOCKET, SO_RCVBUF,
(char *)&bufsize, sizeof(bufsize)) < 0) {
bufsize -= delta;
} else {
if (delta < 1024)
break;
bufsize += delta;
}
}
if (bufsize < minsize) {
my_log(LOG_ERR, 0, "OS-allowed buffer size %u < app min %u",
bufsize, minsize);
/*NOTREACHED*/
}
}
my_log(LOG_DEBUG, 0, "Got %d byte buffer size in %d iterations", bufsize, iter);
}
void k_hdr_include(int hdrincl) {
if (setsockopt(MRouterFD, IPPROTO_IP, IP_HDRINCL,
(char *)&hdrincl, sizeof(hdrincl)) < 0)
my_log(LOG_ERR, errno, "setsockopt IP_HDRINCL %u", hdrincl);
}
void k_set_ttl(int t) {
#ifndef RAW_OUTPUT_IS_RAW
u_char ttl;
ttl = t;
if (setsockopt(MRouterFD, IPPROTO_IP, IP_MULTICAST_TTL,
(char *)&ttl, sizeof(ttl)) < 0)
my_log(LOG_ERR, errno, "setsockopt IP_MULTICAST_TTL %u", ttl);
#endif
curttl = t;
}
void k_set_loop(int l) {
u_char loop;
loop = l;
if (setsockopt(MRouterFD, IPPROTO_IP, IP_MULTICAST_LOOP,
(char *)&loop, sizeof(loop)) < 0)
my_log(LOG_ERR, errno, "setsockopt IP_MULTICAST_LOOP %u", loop);
}
void k_set_if(uint32_t ifa) {
struct in_addr adr;
adr.s_addr = ifa;
if (setsockopt(MRouterFD, IPPROTO_IP, IP_MULTICAST_IF,
(char *)&adr, sizeof(adr)) < 0)
my_log(LOG_ERR, errno, "setsockopt IP_MULTICAST_IF %s",
inetFmt(ifa, s1));
}
/*
void k_join(uint32_t grp, uint32_t ifa) {
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = grp;
mreq.imr_interface.s_addr = ifa;
if (setsockopt(MRouterFD, IPPROTO_IP, IP_ADD_MEMBERSHIP,
(char *)&mreq, sizeof(mreq)) < 0)
my_log(LOG_WARNING, errno, "can't join group %s on interface %s",
inetFmt(grp, s1), inetFmt(ifa, s2));
}
void k_leave(uint32_t grp, uint32_t ifa) {
struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr = grp;
mreq.imr_interface.s_addr = ifa;
if (setsockopt(MRouterFD, IPPROTO_IP, IP_DROP_MEMBERSHIP,
(char *)&mreq, sizeof(mreq)) < 0)
my_log(LOG_WARNING, errno, "can't leave group %s on interface %s",
inetFmt(grp, s1), inetFmt(ifa, s2));
}
*/

Binary file not shown.

View File

@ -0,0 +1,148 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
#include "igmpproxy.h"
/*
* Exported variables.
*/
char s1[19]; /* buffers to hold the string representations */
char s2[19]; /* of IP addresses, to be passed to inet_fmt() */
char s3[19]; /* or inet_fmts(). */
char s4[19];
/*
** Formats 'InAdr' into a dotted decimal string.
**
** returns: - pointer to 'St'
**
*/
char *fmtInAdr( char *St, struct in_addr InAdr ) {
sprintf( St, "%u.%u.%u.%u",
((uint8_t *)&InAdr.s_addr)[ 0 ],
((uint8_t *)&InAdr.s_addr)[ 1 ],
((uint8_t *)&InAdr.s_addr)[ 2 ],
((uint8_t *)&InAdr.s_addr)[ 3 ] );
return St;
}
/*
* Convert an IP address in u_long (network) format into a printable string.
*/
char *inetFmt(uint32_t addr, char *s) {
register u_char *a;
a = (u_char *)&addr;
sprintf(s, "%u.%u.%u.%u", a[0], a[1], a[2], a[3]);
return(s);
}
/*
* Convert an IP subnet number in u_long (network) format into a printable
* string including the netmask as a number of bits.
*/
char *inetFmts(uint32_t addr, uint32_t mask, char *s) {
register u_char *a, *m;
int bits;
if ((addr == 0) && (mask == 0)) {
sprintf(s, "default");
return(s);
}
a = (u_char *)&addr;
m = (u_char *)&mask;
bits = 33 - ffs(ntohl(mask));
if (m[3] != 0) sprintf(s, "%u.%u.%u.%u/%d", a[0], a[1], a[2], a[3],
bits);
else if (m[2] != 0) sprintf(s, "%u.%u.%u/%d", a[0], a[1], a[2], bits);
else if (m[1] != 0) sprintf(s, "%u.%u/%d", a[0], a[1], bits);
else sprintf(s, "%u/%d", a[0], bits);
return(s);
}
/*
* inet_cksum extracted from:
* P I N G . C
*
* Author -
* Mike Muuss
* U. S. Army Ballistic Research Laboratory
* December, 1983
* Modified at Uc Berkeley
*
* (ping.c) Status -
* Public Domain. Distribution Unlimited.
*
* I N _ C K S U M
*
* Checksum routine for Internet Protocol family headers (C Version)
*
*/
uint16_t inetChksum(uint16_t *addr, int len) {
register int nleft = len;
register uint16_t *w = addr;
uint16_t answer = 0;
register int32_t sum = 0;
/*
* Our algorithm is simple, using a 32 bit accumulator (sum),
* we add sequential 16 bit words to it, and at the end, fold
* back all the carry bits from the top 16 bits into the lower
* 16 bits.
*/
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
/* mop up an odd byte, if necessary */
if (nleft == 1) {
*(uint8_t *) (&answer) = *(uint8_t *)w ;
sum += answer;
}
/*
* add back carry outs from top 16 bits to low 16 bits
*/
sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */
sum += (sum >> 16); /* add carry */
answer = ~sum; /* truncate to 16 bits */
return(answer);
}

Binary file not shown.

View File

@ -0,0 +1,86 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* mcgroup contains functions for joining and leaving multicast groups.
*
*/
#include "igmpproxy.h"
/**
* Common function for joining or leaving a MCast group.
*/
static int joinleave( int Cmd, int UdpSock, struct IfDesc *IfDp, uint32_t mcastaddr ) {
struct ip_mreq CtlReq;
const char *CmdSt = Cmd == 'j' ? "join" : "leave";
memset(&CtlReq, 0, sizeof(CtlReq));
CtlReq.imr_multiaddr.s_addr = mcastaddr;
CtlReq.imr_interface.s_addr = IfDp->InAdr.s_addr;
{
my_log( LOG_NOTICE, 0, "%sMcGroup: %s on %s", CmdSt,
inetFmt( mcastaddr, s1 ), IfDp ? IfDp->Name : "<any>" );
}
if( setsockopt( UdpSock, IPPROTO_IP,
Cmd == 'j' ? IP_ADD_MEMBERSHIP : IP_DROP_MEMBERSHIP,
(void *)&CtlReq, sizeof( CtlReq ) ) )
{
my_log( LOG_WARNING, errno, "MRT_%s_MEMBERSHIP failed", Cmd == 'j' ? "ADD" : "DROP" );
return 1;
}
return 0;
}
/**
* Joins the MC group with the address 'McAdr' on the interface 'IfName'.
* The join is bound to the UDP socket 'UdpSock', so if this socket is
* closed the membership is dropped.
*
* @return 0 if the function succeeds, 1 if parameters are wrong or the join fails
*/
int joinMcGroup( int UdpSock, struct IfDesc *IfDp, uint32_t mcastaddr ) {
return joinleave( 'j', UdpSock, IfDp, mcastaddr );
}
/**
* Leaves the MC group with the address 'McAdr' on the interface 'IfName'.
*
* @return 0 if the function succeeds, 1 if parameters are wrong or the join fails
*/
int leaveMcGroup( int UdpSock, struct IfDesc *IfDp, uint32_t mcastaddr ) {
return joinleave( 'l', UdpSock, IfDp, mcastaddr );
}

Binary file not shown.

View File

@ -0,0 +1,242 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* mroute-api.c
*
* This module contains the interface routines to the Linux mrouted API
*/
#include "igmpproxy.h"
// MAX_MC_VIFS from mclab.h must have same value as MAXVIFS from mroute.h
#if MAX_MC_VIFS != MAXVIFS
# error "constants don't match, correct mclab.h"
#endif
// need an IGMP socket as interface for the mrouted API
// - receives the IGMP messages
int MRouterFD; /* socket for all network I/O */
char *recv_buf; /* input packet buffer */
char *send_buf; /* output packet buffer */
// my internal virtual interfaces descriptor vector
static struct VifDesc {
struct IfDesc *IfDp;
} VifDescVc[ MAXVIFS ];
/*
** Initialises the mrouted API and locks it by this exclusively.
**
** returns: - 0 if the functions succeeds
** - the errno value for non-fatal failure condition
*/
int enableMRouter()
{
int Va = 1;
if ( (MRouterFD = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP)) < 0 )
my_log( LOG_ERR, errno, "IGMP socket open" );
if ( setsockopt( MRouterFD, IPPROTO_IP, MRT_INIT,
(void *)&Va, sizeof( Va ) ) )
return errno;
return 0;
}
/*
** Diables the mrouted API and relases by this the lock.
**
*/
void disableMRouter()
{
if ( setsockopt( MRouterFD, IPPROTO_IP, MRT_DONE, NULL, 0 )
|| close( MRouterFD )
) {
MRouterFD = 0;
my_log( LOG_ERR, errno, "MRT_DONE/close" );
}
MRouterFD = 0;
}
/*
** Adds the interface '*IfDp' as virtual interface to the mrouted API
**
*/
void addVIF( struct IfDesc *IfDp )
{
struct vifctl VifCtl;
struct VifDesc *VifDp;
/* search free VifDesc
*/
for ( VifDp = VifDescVc; VifDp < VCEP( VifDescVc ); VifDp++ ) {
if ( ! VifDp->IfDp )
break;
}
/* no more space
*/
if ( VifDp >= VCEP( VifDescVc ) )
my_log( LOG_ERR, ENOMEM, "addVIF, out of VIF space" );
VifDp->IfDp = IfDp;
VifCtl.vifc_vifi = VifDp - VifDescVc;
VifCtl.vifc_flags = 0; /* no tunnel, no source routing, register ? */
VifCtl.vifc_threshold = VifDp->IfDp->threshold; // Packet TTL must be at least 1 to pass them
VifCtl.vifc_rate_limit = VifDp->IfDp->ratelimit; // Ratelimit
VifCtl.vifc_lcl_addr.s_addr = VifDp->IfDp->InAdr.s_addr;
VifCtl.vifc_rmt_addr.s_addr = INADDR_ANY;
// Set the index...
VifDp->IfDp->index = VifCtl.vifc_vifi;
my_log( LOG_NOTICE, 0, "adding VIF, Ix %d Fl 0x%x IP 0x%08x %s, Threshold: %d, Ratelimit: %d",
VifCtl.vifc_vifi, VifCtl.vifc_flags, VifCtl.vifc_lcl_addr.s_addr, VifDp->IfDp->Name,
VifCtl.vifc_threshold, VifCtl.vifc_rate_limit);
struct SubnetList *currSubnet;
for(currSubnet = IfDp->allowednets; currSubnet; currSubnet = currSubnet->next) {
my_log(LOG_DEBUG, 0, " Network for [%s] : %s",
IfDp->Name,
inetFmts(currSubnet->subnet_addr, currSubnet->subnet_mask, s1));
}
if ( setsockopt( MRouterFD, IPPROTO_IP, MRT_ADD_VIF,
(char *)&VifCtl, sizeof( VifCtl ) ) )
my_log( LOG_ERR, errno, "MRT_ADD_VIF" );
}
/*
** Adds the multicast routed '*Dp' to the kernel routes
**
** returns: - 0 if the function succeeds
** - the errno value for non-fatal failure condition
*/
int addMRoute( struct MRouteDesc *Dp )
{
struct mfcctl CtlReq;
int rc;
CtlReq.mfcc_origin = Dp->OriginAdr;
CtlReq.mfcc_mcastgrp = Dp->McAdr;
CtlReq.mfcc_parent = Dp->InVif;
/* copy the TTL vector
*/
memcpy( CtlReq.mfcc_ttls, Dp->TtlVc, sizeof( CtlReq.mfcc_ttls ) );
{
char FmtBuO[ 32 ], FmtBuM[ 32 ];
my_log( LOG_NOTICE, 0, "Adding MFC: %s -> %s, InpVIf: %d",
fmtInAdr( FmtBuO, CtlReq.mfcc_origin ),
fmtInAdr( FmtBuM, CtlReq.mfcc_mcastgrp ),
(int)CtlReq.mfcc_parent
);
}
rc = setsockopt( MRouterFD, IPPROTO_IP, MRT_ADD_MFC,
(void *)&CtlReq, sizeof( CtlReq ) );
if (rc)
my_log( LOG_WARNING, errno, "MRT_ADD_MFC" );
return rc;
}
/*
** Removes the multicast routed '*Dp' from the kernel routes
**
** returns: - 0 if the function succeeds
** - the errno value for non-fatal failure condition
*/
int delMRoute( struct MRouteDesc *Dp )
{
struct mfcctl CtlReq;
int rc;
CtlReq.mfcc_origin = Dp->OriginAdr;
CtlReq.mfcc_mcastgrp = Dp->McAdr;
CtlReq.mfcc_parent = Dp->InVif;
/* clear the TTL vector
*/
memset( CtlReq.mfcc_ttls, 0, sizeof( CtlReq.mfcc_ttls ) );
{
char FmtBuO[ 32 ], FmtBuM[ 32 ];
my_log( LOG_NOTICE, 0, "Removing MFC: %s -> %s, InpVIf: %d",
fmtInAdr( FmtBuO, CtlReq.mfcc_origin ),
fmtInAdr( FmtBuM, CtlReq.mfcc_mcastgrp ),
(int)CtlReq.mfcc_parent
);
}
rc = setsockopt( MRouterFD, IPPROTO_IP, MRT_DEL_MFC,
(void *)&CtlReq, sizeof( CtlReq ) );
if (rc)
my_log( LOG_WARNING, errno, "MRT_DEL_MFC" );
return rc;
}
/*
** Returns for the virtual interface index for '*IfDp'
**
** returns: - the vitrual interface index if the interface is registered
** - -1 if no virtual interface exists for the interface
**
*/
int getVifIx( struct IfDesc *IfDp )
{
struct VifDesc *Dp;
for ( Dp = VifDescVc; Dp < VCEP( VifDescVc ); Dp++ )
if ( Dp->IfDp == IfDp )
return Dp - VifDescVc;
return -1;
}

View File

@ -0,0 +1,14 @@
#include <net/route.h>
#include <net/ip_mroute/ip_mroute.h>
#include <netinet/ip.h>
#include <netinet/igmp.h>
static inline u_short ip_data_len(const struct ip *ip)
{
return ip->ip_len;
}
static inline void ip_set_len(struct ip *ip, u_short len)
{
ip->ip_len = len;
}

View File

@ -0,0 +1,23 @@
#include <net/route.h>
#include <netinet/in_systm.h>
#include <netinet/ip_mroute.h>
#include <netinet/ip.h>
#include <netinet/igmp.h>
#if __FreeBSD_version >= 800069 && defined BURN_BRIDGES \
|| __FreeBSD_version >= 800098
#define IGMP_MEMBERSHIP_QUERY IGMP_HOST_MEMBERSHIP_QUERY
#define IGMP_V1_MEMBERSHIP_REPORT IGMP_v1_HOST_MEMBERSHIP_REPORT
#define IGMP_V2_MEMBERSHIP_REPORT IGMP_v2_HOST_MEMBERSHIP_REPORT
#define IGMP_V2_LEAVE_GROUP IGMP_HOST_LEAVE_MESSAGE
#endif
static inline u_short ip_data_len(const struct ip *ip)
{
return ip->ip_len;
}
static inline void ip_set_len(struct ip *ip, u_short len)
{
ip->ip_len = len;
}

View File

@ -0,0 +1,15 @@
#define _LINUX_IN_H
#include <linux/types.h>
#include <linux/mroute.h>
#include <netinet/ip.h>
#include <netinet/igmp.h>
static inline u_short ip_data_len(const struct ip *ip)
{
return ntohs(ip->ip_len) - (ip->ip_hl << 2);
}
static inline void ip_set_len(struct ip *ip, u_short len)
{
ip->ip_len = htons(len);
}

View File

@ -0,0 +1,19 @@
#include <netinet/in_systm.h>
#include <netinet/ip_mroute.h>
#include <netinet/ip.h>
#include <netinet/igmp.h>
#define IGMP_MEMBERSHIP_QUERY IGMP_HOST_MEMBERSHIP_QUERY
#define IGMP_V1_MEMBERSHIP_REPORT IGMP_v1_HOST_MEMBERSHIP_REPORT
#define IGMP_V2_MEMBERSHIP_REPORT IGMP_v2_HOST_MEMBERSHIP_REPORT
#define IGMP_V2_LEAVE_GROUP IGMP_HOST_LEAVE_MESSAGE
static inline u_short ip_data_len(const struct ip *ip)
{
return ip->ip_len;
}
static inline void ip_set_len(struct ip *ip, u_short len)
{
ip->ip_len = len;
}

View File

@ -0,0 +1,21 @@
#include <netinet/in_systm.h>
#include <netinet/ip_mroute.h>
#include <netinet/ip.h>
#include <netinet/igmp.h>
#define IGMP_MEMBERSHIP_QUERY IGMP_HOST_MEMBERSHIP_QUERY
#define IGMP_V1_MEMBERSHIP_REPORT IGMP_v1_HOST_MEMBERSHIP_REPORT
#define IGMP_V2_MEMBERSHIP_REPORT IGMP_v2_HOST_MEMBERSHIP_REPORT
#define IGMP_V2_LEAVE_GROUP IGMP_HOST_LEAVE_MESSAGE
#define INADDR_ALLRTRS_GROUP INADDR_ALLROUTERS_GROUP
static inline u_short ip_data_len(const struct ip *ip)
{
return ntohs(ip->ip_len) - (ip->ip_hl << 2);
}
static inline void ip_set_len(struct ip *ip, u_short len)
{
ip->ip_len = htons(len);
}

View File

@ -0,0 +1 @@
../src/os-linux.h

View File

@ -0,0 +1,222 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* request.c
*
* Functions for recieveing and processing IGMP requests.
*
*/
#include "igmpproxy.h"
// Prototypes...
void sendGroupSpecificMemberQuery(void *argument);
typedef struct {
uint32_t group;
uint32_t vifAddr;
short started;
} GroupVifDesc;
/**
* Handles incoming membership reports, and
* appends them to the routing table.
*/
void acceptGroupReport(uint32_t src, uint32_t group, uint8_t type) {
struct IfDesc *sourceVif;
// Sanitycheck the group adress...
if(!IN_MULTICAST( ntohl(group) )) {
my_log(LOG_WARNING, 0, "The group address %s is not a valid Multicast group.",
inetFmt(group, s1));
return;
}
// Find the interface on which the report was recieved.
sourceVif = getIfByAddress( src );
if(sourceVif == NULL) {
my_log(LOG_WARNING, 0, "No interfaces found for source %s",
inetFmt(src,s1));
return;
}
if(sourceVif->InAdr.s_addr == src) {
my_log(LOG_NOTICE, 0, "The IGMP message was from myself. Ignoring.");
return;
}
// We have a IF so check that it's an downstream IF.
if(sourceVif->state == IF_STATE_DOWNSTREAM) {
my_log(LOG_DEBUG, 0, "Should insert group %s (from: %s) to route table. Vif Ix : %d",
inetFmt(group,s1), inetFmt(src,s2), sourceVif->index);
// The membership report was OK... Insert it into the route table..
insertRoute(group, sourceVif->index);
} else {
// Log the state of the interface the report was recieved on.
my_log(LOG_INFO, 0, "Mebership report was recieved on %s. Ignoring.",
sourceVif->state==IF_STATE_UPSTREAM?"the upstream interface":"a disabled interface");
}
}
/**
* Recieves and handles a group leave message.
*/
void acceptLeaveMessage(uint32_t src, uint32_t group) {
struct IfDesc *sourceVif;
my_log(LOG_DEBUG, 0,
"Got leave message from %s to %s. Starting last member detection.",
inetFmt(src, s1), inetFmt(group, s2));
// Sanitycheck the group adress...
if(!IN_MULTICAST( ntohl(group) )) {
my_log(LOG_WARNING, 0, "The group address %s is not a valid Multicast group.",
inetFmt(group, s1));
return;
}
// Find the interface on which the report was recieved.
sourceVif = getIfByAddress( src );
if(sourceVif == NULL) {
my_log(LOG_WARNING, 0, "No interfaces found for source %s",
inetFmt(src,s1));
return;
}
// We have a IF so check that it's an downstream IF.
if(sourceVif->state == IF_STATE_DOWNSTREAM) {
GroupVifDesc *gvDesc;
gvDesc = (GroupVifDesc*) malloc(sizeof(GroupVifDesc));
// Tell the route table that we are checking for remaining members...
setRouteLastMemberMode(group);
// Call the group spesific membership querier...
gvDesc->group = group;
gvDesc->vifAddr = sourceVif->InAdr.s_addr;
gvDesc->started = 0;
sendGroupSpecificMemberQuery(gvDesc);
} else {
// just ignore the leave request...
my_log(LOG_DEBUG, 0, "The found if for %s was not downstream. Ignoring leave request.", inetFmt(src, s1));
}
}
/**
* Sends a group specific member report query until the
* group times out...
*/
void sendGroupSpecificMemberQuery(void *argument) {
struct Config *conf = getCommonConfig();
// Cast argument to correct type...
GroupVifDesc *gvDesc = (GroupVifDesc*) argument;
if(gvDesc->started) {
// If aging returns false, we don't do any further action...
if(!lastMemberGroupAge(gvDesc->group)) {
return;
}
} else {
gvDesc->started = 1;
}
// Send a group specific membership query...
sendIgmp(gvDesc->vifAddr, gvDesc->group,
IGMP_MEMBERSHIP_QUERY,
conf->lastMemberQueryInterval * IGMP_TIMER_SCALE,
gvDesc->group, 0);
my_log(LOG_DEBUG, 0, "Sent membership query from %s to %s. Delay: %d",
inetFmt(gvDesc->vifAddr,s1), inetFmt(gvDesc->group,s2),
conf->lastMemberQueryInterval);
// Set timeout for next round...
timer_setTimer(conf->lastMemberQueryInterval, sendGroupSpecificMemberQuery, gvDesc);
}
/**
* Sends a general membership query on downstream VIFs
*/
void sendGeneralMembershipQuery() {
struct Config *conf = getCommonConfig();
struct IfDesc *Dp;
int Ix;
// Loop through all downstream vifs...
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
if ( Dp->InAdr.s_addr && ! (Dp->Flags & IFF_LOOPBACK) ) {
if(Dp->state == IF_STATE_DOWNSTREAM) {
// Send the membership query...
sendIgmp(Dp->InAdr.s_addr, allhosts_group,
IGMP_MEMBERSHIP_QUERY,
conf->queryResponseInterval * IGMP_TIMER_SCALE, 0, 0);
my_log(LOG_DEBUG, 0,
"Sent membership query from %s to %s. Delay: %d",
inetFmt(Dp->InAdr.s_addr,s1),
inetFmt(allhosts_group,s2),
conf->queryResponseInterval);
}
}
}
// Install timer for aging active routes.
timer_setTimer(conf->queryResponseInterval, ageActiveRoutes, NULL);
// Install timer for next general query...
if(conf->startupQueryCount>0) {
// Use quick timer...
timer_setTimer(conf->startupQueryInterval, sendGeneralMembershipQuery, NULL);
// Decrease startup counter...
conf->startupQueryCount--;
}
else {
// Use slow timer...
timer_setTimer(conf->queryInterval, sendGeneralMembershipQuery, NULL);
}
}

Binary file not shown.

View File

@ -0,0 +1,662 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* rttable.c
*
* Updates the routingtable according to
* recieved request.
*/
#include "igmpproxy.h"
/**
* Routing table structure definition. Double linked list...
*/
struct RouteTable {
struct RouteTable *nextroute; // Pointer to the next group in line.
struct RouteTable *prevroute; // Pointer to the previous group in line.
uint32_t group; // The group to route
uint32_t originAddr; // The origin adress (only set on activated routes)
uint32_t vifBits; // Bits representing recieving VIFs.
// Keeps the upstream membership state...
short upstrState; // Upstream membership state.
// These parameters contain aging details.
uint32_t ageVifBits; // Bits representing aging VIFs.
int ageValue; // Downcounter for death.
int ageActivity; // Records any acitivity that notes there are still listeners.
};
// Keeper for the routing table...
static struct RouteTable *routing_table;
// Prototypes
void logRouteTable(char *header);
int internAgeRoute(struct RouteTable* croute);
int internUpdateKernelRoute(struct RouteTable *route, int activate);
// Socket for sending join or leave requests.
int mcGroupSock = 0;
/**
* Function for retrieving the Multicast Group socket.
*/
int getMcGroupSock() {
if( ! mcGroupSock ) {
mcGroupSock = openUdpSocket( INADDR_ANY, 0 );;
}
return mcGroupSock;
}
/**
* Initializes the routing table.
*/
void initRouteTable() {
unsigned Ix;
struct IfDesc *Dp;
// Clear routing table...
routing_table = NULL;
// Join the all routers group on downstream vifs...
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
// If this is a downstream vif, we should join the All routers group...
if( Dp->InAdr.s_addr && ! (Dp->Flags & IFF_LOOPBACK) && Dp->state == IF_STATE_DOWNSTREAM) {
my_log(LOG_DEBUG, 0, "Joining all-routers group %s on vif %s",
inetFmt(allrouters_group,s1),inetFmt(Dp->InAdr.s_addr,s2));
//k_join(allrouters_group, Dp->InAdr.s_addr);
joinMcGroup( getMcGroupSock(), Dp, allrouters_group );
}
}
}
/**
* Internal function to send join or leave requests for
* a specified route upstream...
*/
void sendJoinLeaveUpstream(struct RouteTable* route, int join) {
struct IfDesc* upstrIf;
// Get the upstream VIF...
upstrIf = getIfByIx( upStreamVif );
if(upstrIf == NULL) {
my_log(LOG_ERR, 0 ,"FATAL: Unable to get Upstream IF.");
}
// Send join or leave request...
if(join) {
// Only join a group if there are listeners downstream...
if(route->vifBits > 0) {
my_log(LOG_DEBUG, 0, "Joining group %s upstream on IF address %s",
inetFmt(route->group, s1),
inetFmt(upstrIf->InAdr.s_addr, s2));
//k_join(route->group, upstrIf->InAdr.s_addr);
joinMcGroup( getMcGroupSock(), upstrIf, route->group );
route->upstrState = ROUTESTATE_JOINED;
} else {
my_log(LOG_DEBUG, 0, "No downstream listeners for group %s. No join sent.",
inetFmt(route->group, s1));
}
} else {
// Only leave if group is not left already...
if(route->upstrState != ROUTESTATE_NOTJOINED) {
my_log(LOG_DEBUG, 0, "Leaving group %s upstream on IF address %s",
inetFmt(route->group, s1),
inetFmt(upstrIf->InAdr.s_addr, s2));
//k_leave(route->group, upstrIf->InAdr.s_addr);
leaveMcGroup( getMcGroupSock(), upstrIf, route->group );
route->upstrState = ROUTESTATE_NOTJOINED;
}
}
}
/**
* Clear all routes from routing table, and alerts Leaves upstream.
*/
void clearAllRoutes() {
struct RouteTable *croute, *remainroute;
// Loop through all routes...
for(croute = routing_table; croute; croute = remainroute) {
remainroute = croute->nextroute;
// Log the cleanup in debugmode...
my_log(LOG_DEBUG, 0, "Removing route entry for %s",
inetFmt(croute->group, s1));
// Uninstall current route
if(!internUpdateKernelRoute(croute, 0)) {
my_log(LOG_WARNING, 0, "The removal from Kernel failed.");
}
// Send Leave message upstream.
sendJoinLeaveUpstream(croute, 0);
// Clear memory, and set pointer to next route...
free(croute);
}
routing_table = NULL;
// Send a notice that the routing table is empty...
my_log(LOG_NOTICE, 0, "All routes removed. Routing table is empty.");
}
/**
* Private access function to find a route from a given
* Route Descriptor.
*/
struct RouteTable *findRoute(uint32_t group) {
struct RouteTable* croute;
for(croute = routing_table; croute; croute = croute->nextroute) {
if(croute->group == group) {
return croute;
}
}
return NULL;
}
/**
* Adds a specified route to the routingtable.
* If the route already exists, the existing route
* is updated...
*/
int insertRoute(uint32_t group, int ifx) {
struct Config *conf = getCommonConfig();
struct RouteTable* croute;
// Sanitycheck the group adress...
if( ! IN_MULTICAST( ntohl(group) )) {
my_log(LOG_WARNING, 0, "The group address %s is not a valid Multicast group. Table insert failed.",
inetFmt(group, s1));
return 0;
}
// Santiycheck the VIF index...
//if(ifx < 0 || ifx >= MAX_MC_VIFS) {
if(ifx >= MAX_MC_VIFS) {
my_log(LOG_WARNING, 0, "The VIF Ix %d is out of range (0-%d). Table insert failed.",ifx,MAX_MC_VIFS);
return 0;
}
// Try to find an existing route for this group...
croute = findRoute(group);
if(croute==NULL) {
struct RouteTable* newroute;
my_log(LOG_DEBUG, 0, "No existing route for %s. Create new.",
inetFmt(group, s1));
// Create and initialize the new route table entry..
newroute = (struct RouteTable*)malloc(sizeof(struct RouteTable));
// Insert the route desc and clear all pointers...
newroute->group = group;
newroute->originAddr = 0;
newroute->nextroute = NULL;
newroute->prevroute = NULL;
// The group is not joined initially.
newroute->upstrState = ROUTESTATE_NOTJOINED;
// The route is not active yet, so the age is unimportant.
newroute->ageValue = conf->robustnessValue;
newroute->ageActivity = 0;
BIT_ZERO(newroute->ageVifBits); // Initially we assume no listeners.
// Set the listener flag...
BIT_ZERO(newroute->vifBits); // Initially no listeners...
if(ifx >= 0) {
BIT_SET(newroute->vifBits, ifx);
}
// Check if there is a table already....
if(routing_table == NULL) {
// No location set, so insert in on the table top.
routing_table = newroute;
my_log(LOG_DEBUG, 0, "No routes in table. Insert at beginning.");
} else {
my_log(LOG_DEBUG, 0, "Found existing routes. Find insert location.");
// Check if the route could be inserted at the beginning...
if(routing_table->group > group) {
my_log(LOG_DEBUG, 0, "Inserting at beginning, before route %s",inetFmt(routing_table->group,s1));
// Insert at beginning...
newroute->nextroute = routing_table;
newroute->prevroute = NULL;
routing_table = newroute;
// If the route has a next node, the previous pointer must be updated.
if(newroute->nextroute != NULL) {
newroute->nextroute->prevroute = newroute;
}
} else {
// Find the location which is closest to the route.
for( croute = routing_table; croute->nextroute != NULL; croute = croute->nextroute ) {
// Find insert position.
if(croute->nextroute->group > group) {
break;
}
}
my_log(LOG_DEBUG, 0, "Inserting after route %s",inetFmt(croute->group,s1));
// Insert after current...
newroute->nextroute = croute->nextroute;
newroute->prevroute = croute;
if(croute->nextroute != NULL) {
croute->nextroute->prevroute = newroute;
}
croute->nextroute = newroute;
}
}
// Set the new route as the current...
croute = newroute;
// Log the cleanup in debugmode...
my_log(LOG_INFO, 0, "Inserted route table entry for %s on VIF #%d",
inetFmt(croute->group, s1),ifx);
} else if(ifx >= 0) {
// The route exists already, so just update it.
BIT_SET(croute->vifBits, ifx);
// Register the VIF activity for the aging routine
BIT_SET(croute->ageVifBits, ifx);
// Log the cleanup in debugmode...
my_log(LOG_INFO, 0, "Updated route entry for %s on VIF #%d",
inetFmt(croute->group, s1), ifx);
// If the route is active, it must be reloaded into the Kernel..
if(croute->originAddr != 0) {
// Update route in kernel...
if(!internUpdateKernelRoute(croute, 1)) {
my_log(LOG_WARNING, 0, "The insertion into Kernel failed.");
return 0;
}
}
}
// Send join message upstream, if the route has no joined flag...
if(croute->upstrState != ROUTESTATE_JOINED) {
// Send Join request upstream
sendJoinLeaveUpstream(croute, 1);
}
logRouteTable("Insert Route");
return 1;
}
/**
* Activates a passive group. If the group is already
* activated, it's reinstalled in the kernel. If
* the route is activated, no originAddr is needed.
*/
int activateRoute(uint32_t group, uint32_t originAddr) {
struct RouteTable* croute;
int result = 0;
// Find the requested route.
croute = findRoute(group);
if(croute == NULL) {
my_log(LOG_DEBUG, 0,
"No table entry for %s [From: %s]. Inserting route.",
inetFmt(group, s1),inetFmt(originAddr, s2));
// Insert route, but no interfaces have yet requested it downstream.
insertRoute(group, -1);
// Retrieve the route from table...
croute = findRoute(group);
}
if(croute != NULL) {
// If the origin address is set, update the route data.
if(originAddr > 0) {
if(croute->originAddr > 0 && croute->originAddr!=originAddr) {
my_log(LOG_WARNING, 0, "The origin for route %s changed from %s to %s",
inetFmt(croute->group, s1),
inetFmt(croute->originAddr, s2),
inetFmt(originAddr, s3));
}
croute->originAddr = originAddr;
}
// Only update kernel table if there are listeners !
if(croute->vifBits > 0) {
result = internUpdateKernelRoute(croute, 1);
}
}
logRouteTable("Activate Route");
return result;
}
/**
* This function loops through all routes, and updates the age
* of any active routes.
*/
void ageActiveRoutes() {
struct RouteTable *croute, *nroute;
my_log(LOG_DEBUG, 0, "Aging routes in table.");
// Scan all routes...
for( croute = routing_table; croute != NULL; croute = nroute ) {
// Keep the next route (since current route may be removed)...
nroute = croute->nextroute;
// Run the aging round algorithm.
if(croute->upstrState != ROUTESTATE_CHECK_LAST_MEMBER) {
// Only age routes if Last member probe is not active...
internAgeRoute(croute);
}
}
logRouteTable("Age active routes");
}
/**
* Should be called when a leave message is recieved, to
* mark a route for the last member probe state.
*/
void setRouteLastMemberMode(uint32_t group) {
struct Config *conf = getCommonConfig();
struct RouteTable *croute;
croute = findRoute(group);
if(croute!=NULL) {
// Check for fast leave mode...
if(croute->upstrState == ROUTESTATE_JOINED && conf->fastUpstreamLeave) {
// Send a leave message right away..
sendJoinLeaveUpstream(croute, 0);
}
// Set the routingstate to Last member check...
croute->upstrState = ROUTESTATE_CHECK_LAST_MEMBER;
// Set the count value for expiring... (-1 since first aging)
croute->ageValue = conf->lastMemberQueryCount;
}
}
/**
* Ages groups in the last member check state. If the
* route is not found, or not in this state, 0 is returned.
*/
int lastMemberGroupAge(uint32_t group) {
struct RouteTable *croute;
croute = findRoute(group);
if(croute!=NULL) {
if(croute->upstrState == ROUTESTATE_CHECK_LAST_MEMBER) {
return !internAgeRoute(croute);
} else {
return 0;
}
}
return 0;
}
/**
* Remove a specified route. Returns 1 on success,
* and 0 if route was not found.
*/
int removeRoute(struct RouteTable* croute) {
struct Config *conf = getCommonConfig();
int result = 1;
// If croute is null, no routes was found.
if(croute==NULL) {
return 0;
}
// Log the cleanup in debugmode...
my_log(LOG_DEBUG, 0, "Removed route entry for %s from table.",
inetFmt(croute->group, s1));
//BIT_ZERO(croute->vifBits);
// Uninstall current route from kernel
if(!internUpdateKernelRoute(croute, 0)) {
my_log(LOG_WARNING, 0, "The removal from Kernel failed.");
result = 0;
}
// Send Leave request upstream if group is joined
if(croute->upstrState == ROUTESTATE_JOINED ||
(croute->upstrState == ROUTESTATE_CHECK_LAST_MEMBER && !conf->fastUpstreamLeave))
{
sendJoinLeaveUpstream(croute, 0);
}
// Update pointers...
if(croute->prevroute == NULL) {
// Topmost node...
if(croute->nextroute != NULL) {
croute->nextroute->prevroute = NULL;
}
routing_table = croute->nextroute;
} else {
croute->prevroute->nextroute = croute->nextroute;
if(croute->nextroute != NULL) {
croute->nextroute->prevroute = croute->prevroute;
}
}
// Free the memory, and set the route to NULL...
free(croute);
croute = NULL;
logRouteTable("Remove route");
return result;
}
/**
* Ages a specific route
*/
int internAgeRoute(struct RouteTable* croute) {
struct Config *conf = getCommonConfig();
int result = 0;
// Drop age by 1.
croute->ageValue--;
// Check if there has been any activity...
if( croute->ageVifBits > 0 && croute->ageActivity == 0 ) {
// There was some activity, check if all registered vifs responded.
if(croute->vifBits == croute->ageVifBits) {
// Everything is in perfect order, so we just update the route age.
croute->ageValue = conf->robustnessValue;
//croute->ageActivity = 0;
} else {
// One or more VIF has not gotten any response.
croute->ageActivity++;
// Update the actual bits for the route...
croute->vifBits = croute->ageVifBits;
}
}
// Check if there have been activity in aging process...
else if( croute->ageActivity > 0 ) {
// If the bits are different in this round, we must
if(croute->vifBits != croute->ageVifBits) {
// Or the bits together to insure we don't lose any listeners.
croute->vifBits |= croute->ageVifBits;
// Register changes in this round as well..
croute->ageActivity++;
}
}
// If the aging counter has reached zero, its time for updating...
if(croute->ageValue == 0) {
// Check for activity in the aging process,
if(croute->ageActivity>0) {
my_log(LOG_DEBUG, 0, "Updating route after aging : %s",
inetFmt(croute->group,s1));
// Just update the routing settings in kernel...
internUpdateKernelRoute(croute, 1);
// We append the activity counter to the age, and continue...
croute->ageValue = croute->ageActivity;
croute->ageActivity = 0;
} else {
my_log(LOG_DEBUG, 0, "Removing group %s. Died of old age.",
inetFmt(croute->group,s1));
// No activity was registered within the timelimit, so remove the route.
removeRoute(croute);
}
// Tell that the route was updated...
result = 1;
}
// The aging vif bits must be reset for each round...
BIT_ZERO(croute->ageVifBits);
return result;
}
/**
* Updates the Kernel routing table. If activate is 1, the route
* is (re-)activated. If activate is false, the route is removed.
*/
int internUpdateKernelRoute(struct RouteTable *route, int activate) {
struct MRouteDesc mrDesc;
struct IfDesc *Dp;
unsigned Ix;
if(route->originAddr>0) {
// Build route descriptor from table entry...
// Set the source address and group address...
mrDesc.McAdr.s_addr = route->group;
mrDesc.OriginAdr.s_addr = route->originAddr;
// clear output interfaces
memset( mrDesc.TtlVc, 0, sizeof( mrDesc.TtlVc ) );
my_log(LOG_DEBUG, 0, "Vif bits : 0x%08x", route->vifBits);
// Set the TTL's for the route descriptor...
for ( Ix = 0; (Dp = getIfByIx(Ix)); Ix++ ) {
if(Dp->state == IF_STATE_UPSTREAM) {
mrDesc.InVif = Dp->index;
}
else if(BIT_TST(route->vifBits, Dp->index)) {
my_log(LOG_DEBUG, 0, "Setting TTL for Vif %d to %d", Dp->index, Dp->threshold);
mrDesc.TtlVc[ Dp->index ] = Dp->threshold;
}
}
// Do the actual Kernel route update...
if(activate) {
// Add route in kernel...
addMRoute( &mrDesc );
} else {
// Delete the route from Kernel...
delMRoute( &mrDesc );
}
} else {
my_log(LOG_NOTICE, 0, "Route is not active. No kernel updates done.");
}
return 1;
}
/**
* Debug function that writes the routing table entries
* to the log.
*/
void logRouteTable(char *header) {
struct RouteTable* croute = routing_table;
unsigned rcount = 0;
my_log(LOG_DEBUG, 0, "");
my_log(LOG_DEBUG, 0, "Current routing table (%s):", header);
my_log(LOG_DEBUG, 0, "-----------------------------------------------------");
if(croute==NULL) {
my_log(LOG_DEBUG, 0, "No routes in table...");
} else {
do {
/*
my_log(LOG_DEBUG, 0, "#%d: Src: %s, Dst: %s, Age:%d, St: %s, Prev: 0x%08x, T: 0x%08x, Next: 0x%08x",
rcount, inetFmt(croute->originAddr, s1), inetFmt(croute->group, s2),
croute->ageValue,(croute->originAddr>0?"A":"I"),
croute->prevroute, croute, croute->nextroute);
*/
my_log(LOG_DEBUG, 0, "#%d: Src: %s, Dst: %s, Age:%d, St: %s, OutVifs: 0x%08x",
rcount, inetFmt(croute->originAddr, s1), inetFmt(croute->group, s2),
croute->ageValue,(croute->originAddr>0?"A":"I"),
croute->vifBits);
croute = croute->nextroute;
rcount++;
} while ( croute != NULL );
}
my_log(LOG_DEBUG, 0, "-----------------------------------------------------");
}

Binary file not shown.

View File

@ -0,0 +1,62 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
#include "igmpproxy.h"
int LogLevel = LOG_WARNING;
bool Log2Stderr = false;
void my_log( int Severity, int Errno, const char *FmtSt, ... )
{
char LogMsg[ 128 ];
va_list ArgPt;
unsigned Ln;
va_start( ArgPt, FmtSt );
Ln = vsnprintf( LogMsg, sizeof( LogMsg ), FmtSt, ArgPt );
if( Errno > 0 )
snprintf( LogMsg + Ln, sizeof( LogMsg ) - Ln,
"; Errno(%d): %s", Errno, strerror(Errno) );
va_end( ArgPt );
if (Severity <= LogLevel) {
if (Log2Stderr)
fprintf(stderr, "%s\n", LogMsg);
else {
syslog(Severity, "%s", LogMsg);
}
}
if( Severity <= LOG_ERR )
exit( -1 );
}

Binary file not shown.

View File

@ -0,0 +1,65 @@
/*
** igmpproxy - IGMP proxy based multicast router
** Copyright (C) 2005 Johnny Egeland <johnny@rlo.org>
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
**
**----------------------------------------------------------------------------
**
** This software is derived work from the following software. The original
** source code has been modified from it's original state by the author
** of igmpproxy.
**
** smcroute 0.92 - Copyright (C) 2001 Carsten Schill <carsten@cschill.de>
** - Licensed under the GNU General Public License, version 2
**
** mrouted 3.9-beta3 - COPYRIGHT 1989 by The Board of Trustees of
** Leland Stanford Junior University.
** - Original license can be found in the Stanford.txt file.
**
*/
/**
* udpsock.c contains function for creating a UDP socket.
*
*/
#include "igmpproxy.h"
/**
* Creates and connects a simple UDP socket to the target
* 'PeerInAdr':'PeerPort'
*
* @param PeerInAdr - The address to connect to
* @param PeerPort - The port to connect to
*
*/
int openUdpSocket( uint32_t PeerInAdr, uint16_t PeerPort ) {
int Sock;
struct sockaddr_in SockAdr;
if( (Sock = socket( AF_INET, SOCK_RAW, IPPROTO_IGMP )) < 0 )
my_log( LOG_ERR, errno, "UDP socket open" );
memset( &SockAdr, 0, sizeof( SockAdr ) );
SockAdr.sin_family = AF_INET;
SockAdr.sin_port = htons(PeerPort);
SockAdr.sin_addr.s_addr = htonl(PeerInAdr);
if( bind( Sock, (struct sockaddr *)&SockAdr, sizeof( SockAdr ) ) )
my_log( LOG_ERR, errno, "UDP socket bind" );
return Sock;
}

Binary file not shown.

View File

@ -0,0 +1 @@
timestamp for config.h

Submodule NONE-CKUBU/src/ipt-gateway added at de0ebb6162

View File

@ -0,0 +1,207 @@
TERMS AND CONDITIONS
IMPORTANT - PLEASE READ BEFORE INSTALLING OR USING THIS INTEL(C) SOFTWARE
Do not use or load this firmware (the "Software") until you have carefully read
the following terms and conditions. By loading or using the Software, you agree
to the terms of this Agreement. If you do not wish to so agree, do not install
or use the Software.
LICENSEES:
Please note:
* If you are an End-User, only Exhibit A, the SOFTWARE LICENSE AGREEMENT,
applies.
* If you are an Original Equipment Manufacturer (OEM), Independent Hardware
Vendor (IHV), or Independent Software Vendor (ISV), this complete Agreement
applies
--------------------------------------------------------------------------------
For OEMs, IHVs, and ISVs:
LICENSE. This Software is licensed for use only in conjunction with Intel
component products. Use of the Software in conjunction with non-Intel component
products is not licensed hereunder. Subject to the terms of this Agreement,
Intel grants to you a nonexclusive, nontransferable, worldwide, fully paid-up
license under Intel's copyrights to: (i) copy the Software internally for your
own development and maintenance purposes; (ii) copy and distribute the Software
to your end-users, but only under a license agreement with terms at least as
restrictive as those contained in Intel's Final, Single User License Agreement,
attached as Exhibit A; and (iii) modify, copy and distribute the end-user
documentation which may accompany the Software, but only in association with
the Software.
If you are not the final manufacturer or vendor of a computer system or software
program incorporating the Software, then you may transfer a copy of the
Software, including any related documentation (modified or unmodified) to your
recipient for use in accordance with the terms of this Agreement, provided such
recipient agrees to be fully bound by the terms hereof. You shall not otherwise
assign, sublicense, lease, or in any other way transfer or disclose Software to
any third party. You may not, nor may you assist any other person or entity to
modify, translate, convert to another programming language, decompile, reverse
engineer, or disassemble any portion of the Software or otherwise attempt to
derive source code from any object code modules of the Software or any internal
data files generated by the Software. Your rights to redistribute the Software
shall be contingent upon your installation of this Agreement in its entirety in
the same directory as the Software.
CONFIDENTIALITY. If you wish to have a third party consultant or subcontractor
("Contractor") perform work on your behalf which involves access to or use of
Software, you shall obtain a written confidentiality agreement from the
Contractor which contains provisions with respect to access to or use of the
Software no less restrictive than those set forth in this Agreement and
excluding any distribution rights, and use for any other purpose. Except as
expressly provided herein, you shall not disclose the terms or existence of
this Agreement or use Intel's name in any publications, advertisements, or
other announcements without Intel's prior written consent. You do not have any
rights to use any Intel trademarks or logos.
OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Software and accompanying materials, if
any, are owned by Intel or its suppliers and licensors and may be protected by
copyright, trademark, patent and trade secret law and international treaties.
Any rights, express or implied, in the intellectual property embodied in the
foregoing, other than those specified in this Agreement, are reserved by Intel
and its suppliers and licensors or otherwise as set forth in any applicable
open source license agreement. You will keep the Software free of liens,
attachments, and other encumbrances. You agree not to remove any proprietary
notices and/or any labels from the Software and accompanying materials without
prior written approval by Intel
LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS AND LICENSORS
BE LIABLE FOR ANY DAMAGES WHATSOEVER FROM ANY CAUSE OF ACTION OF ANY KIND
(INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS INTERRUPTION, OR LOST
INFORMATION) ARISING OUT OF THE USE, MODIFICATION, OR INABILITY TO USE THE
INTEL SOFTWARE, OR OTHERWISE, NOR FOR PUNITIVE, INCIDENTAL, CONSEQUENTIAL, OR
SPECIAL DAMAGES OF ANY KIND, EVEN IF INTEL OR ITS SUPPLIERS AND LICENSORS HAS
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT
EXCLUSION OR LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES, CONSEQUENTIAL OR
INCIDENTAL DAMAGES, SO CERTAIN LIMITATIONS MAY NOT APPLY. YOU MAY ALSO HAVE
OTHER LEGAL RIGHTS THAT VARY BETWEEN JURISDICTIONS.
EXCLUSION OF WARRANTIES. THE SOFTWARE IS PROVIDED "AS IS" AND POSSIBLY WITH
FAULTS. UNLESS EXPRESSLY AGREED OTHERWISE, INTEL AND ITS SUPPLIERS AND
LICENSORS DISCLAIM ANY AND ALL WARRANTIES AND GUARANTEES, EXPRESS, IMPLIED OR
OTHERWISE, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE. Intel does not warrant
or assume responsibility for the accuracy or completeness of any information,
text, graphics, links or other items contained within the Software. You assume
all liability, financial or otherwise, associated with Your use or disposition
of the Software.
APPLICABLE LAW. Claims arising under this Agreement shall be governed by the
laws of State of California], excluding its principles of conflict of laws and
the United Nations Convention on Contracts for the Sale of Goods.
WAIVER AND AMENDMENT. No modification, amendment or waiver of any provision of
this Agreement shall be effective unless in writing and signed by an officer of
Intel. No failure or delay in exercising any right, power, or remedy under
this Agreement shall operate as a waiver of any such right, power or remedy.
Without limiting the foregoing, terms and conditions on any purchase orders or
similar materials submitted by you to Intel, and any terms contained in Intel’s
standard acknowledgment form that are in conflict with these terms, shall be of
no force or effect.
SEVERABILITY. If any provision of this Agreement is held by a court of
competent jurisdiction to be contrary to law, such provision shall be changed
and interpreted so as to best accomplish the objectives of the original
provision to the fullest extent allowed by law and the remaining provisions of
this Agreement shall remain in full force and effect.
EXPORT RESTRICTIONS. Each party acknowledges that the Software is subject to
applicable import and export regulations of the United States and of the
countries in which each party transacts business, specifically including U.S.
Export Administration Act and Export Administration Regulations. Each party
shall comply with such laws and regulations, as well as all other laws and
regulations applicable to the Software. Without limiting the generality of the
foregoing, each party agrees that it will not export, re-export, transfer or
divert any of the Software or the direct programs thereof to any restricted
place or party in accordance with U.S. export regulations. Note that Software
containing encryption may be subject to additional restrictions.
GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED RIGHTS."
Use, duplication, or disclosure by the Government is subject to restrictions as
set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or their successors. Use
of the Software by the Government constitutes acknowledgment of Intel's
proprietary rights therein. Contractor or Manufacturer is Intel Corporation,
2200 Mission College Blvd., Santa Clara, CA 95052.
TERMINATION OF THE AGREEMENT. Intel may terminate this Agreement if you violate
its terms. Upon termination, you will immediately destroy the Software or
return all copies of the Software to Intel.
--------------------------------------------------------------------------------
EXHIBIT "A"
SOFTWARE LICENSE AGREEMENT (Final, Single User)
IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
Do not use or load this firmware image (the "Software") until you have carefully
read the following terms and conditions. By loading or using the Software, you
agree to the terms of this Agreement. If you do not wish to so agree, do not
install or use the Software.
LICENSE. You may copy and use the Software, subject to these conditions:
1. This Software is licensed for use only in conjunction with Intel component
products. Use of the Software in conjunction with non-Intel component
products is not licensed hereunder.
2. You may not copy, modify, rent, sell, distribute or transfer any part of the
Software except as provided in this Agreement, and you agree to prevent
unauthorized copying of the Software.
3. You may not reverse engineer, decompile, or disassemble the Software.
4. You may not sublicense the Software.
5. The Software may contain the software or other property of third party
suppliers.
OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the Software
remains with Intel or its suppliers. The Software is copyrighted and protected
by the laws of the United States and other countries, and international treaty
provisions. You may not remove any copyright notices from the Software. Intel
may make changes to the Software, or items referenced therein, at any time
without notice, but is not obligated to support or update the Software. Except
as otherwise expressly provided, Intel grants no express or implied right under
Intel patents, copyrights, trademarks, or other intellectual property rights.
You may transfer the Software only if a copy of this license accompanies the
Software and the recipient agrees to be fully bound by these terms.
EXCLUSION OF OTHER WARRANTIES EXCEPT AS PROVIDED ABOVE, THE SOFTWARE IS PROVIDED
"AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF ANY KIND INCLUDING
WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR FITNESS FOR A PARTICULAR
PURPOSE. Intel does not warrant or assume responsibility for the accuracy or
completeness of any information, text, graphics, links or other items contained
within the Software.
LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, LOST PROFITS, BUSINESS
INTERRUPTION, OR LOST INFORMATION) ARISING OUT OF THE USE OF OR INABILITY TO
USE THE SOFTWARE, EVEN IF INTEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES. SOME JURISDICTIONS PROHIBIT EXCLUSION OR LIMITATION OF LIABILITY FOR
IMPLIED WARRANTIES OR CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE
LIMITATION MAY NOT APPLY TO YOU. YOU MAY ALSO HAVE OTHER LEGAL RIGHTS THAT VARY
BETWEEN JURISDICTIONS.
TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at any time if
you violate its terms. Upon termination, you will immediately destroy the
Software.
APPLICABLE LAWS. Claims arising under this Agreement shall be governed by the
laws of California, excluding its principles of conflict of laws and the United
Nations Convention on Contracts for the Sale of Goods. You may not export the
Software in violation of applicable export laws and regulations. Intel is not
obligated under any other agreements unless they are in writing and signed by
an authorized representative
of Intel.
GOVERNMENT RESTRICTED RIGHTS. The Software is provided with "RESTRICTED RIGHTS."
Use, duplication, or disclosure by the Government is subject to restrictions as
set forth in FAR52.227-14 and DFAR252.227-7013 et seq. or their successors. Use
of the Software by the Government constitutes acknowledgment of Intel's
proprietary rights therein. Contractor or Manufacturer is Intel Corporation,
2200 Mission College Blvd., Santa Clara, CA 95052.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Submodule NONE-CKUBU/src/mailsystem added at 03b820b8b8