rpms/dhcpv6/devel dhcpv6-0.10-man.patch, NONE, 1.1 dhcpv6-0.10-relay.patch, NONE, 1.1 dhcpv6-0.10-libdhcp6client.patch, 1.8, 1.9 dhcpv6-0.10-redhat.patch, 1.4, 1.5 dhcpv6.spec, 1.49, 1.50 dhcpv6-0.10-lsb.patch, 1.2, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Fri Feb 9 03:53:57 UTC 2007
Author: dcantrel
Update of /cvs/dist/rpms/dhcpv6/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv24793
Modified Files:
dhcpv6-0.10-libdhcp6client.patch dhcpv6-0.10-redhat.patch
dhcpv6.spec
Added Files:
dhcpv6-0.10-man.patch dhcpv6-0.10-relay.patch
Removed Files:
dhcpv6-0.10-lsb.patch
Log Message:
* Thu Feb 08 2007 David Cantrell <dcantrell at redhat.com> - 0.10-38
- Fix up libdhcp6client patch so it doesn't copy the source then patch it
- Revert LOG_INFO changes back to LOG_DEBUG
- Remove the NetBSD strlcat() and strlcpy() calls and use glibc functions
- Move non-libdhcp6client patches to the main bugfix patch
- Remove the extra noise sent to the logging function
- Correct warnings so it compiles with -Werror
- Remove local htonl.h header, just use the /usr/include definitions
- Include <netinet/in.h> and remove inclusion of <linux/ipv6.h> and "htonl.h"
- Move dhcp6r source to its own patch file
- Put man page patches in to a single patch file
- Remove periods from the end of package summary lines (package review)
- Use preferred BuildRoot (package review)
- Only export the symbols we want in libdhcp6client (#216187)
- Keep flex-generated files for the debuginfo package
dhcpv6-0.10-man.patch:
dhcp6c.conf.5 | 420 +++++++++++++++++++-----------------
dhcp6s.conf.5 | 660 +++++++++++++++++++++++++++++-----------------------------
2 files changed, 557 insertions(+), 523 deletions(-)
--- NEW FILE dhcpv6-0.10-man.patch ---
--- dhcp-0.10/dhcp6c.conf.5.man 2003-03-28 15:16:36.000000000 -0500
+++ dhcp-0.10/dhcp6c.conf.5 2007-02-08 15:44:07.000000000 -0500
@@ -1,202 +1,218 @@
-.\" $Id: dhcp6c.conf.5,v 1.2 2003/03/28 20:16:36 shirleyma Exp $
-.\"
-.\" Copyright (C) International Business Machines Corp., 2003
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the project nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.TH dhcp6c.conf 5 "17 March 2003" "dhcp6c.conf" "Linux System Manager's Manual"
-
-.SH NAME
-dhcp6c.conf \- configuration file of the DHCPv6 client daemon, dhcp6c
-
-.SH DESCRIPTION
-.B dhcp6c.conf
-is a configuration file for dhcp6c (DHCPv6 client).
-
-dhcp6c is configured by the configuration information (such as rapid-commit,
-requesting temp-address, or prefix-delegation) in this file.
-dhcp6c.conf is an ASCII text file and lines that start with # are comments.
-
-.PP
-.BI STATEMENTS
-.PP
-.nf
-.B interface\ <interface\ name>
-.B {
-.B \t[declarations]
-.B };
-.fi
-Write configurations for this interface in this statement.
-In [declarations], options can be specified.
-
-.PP
-.BI DECLARATIONS
-.PP
-.nf
-.B send\ [dhcpoptions];
-.fi
-With this declaration, dhcp6c sends specified options.
-Currently rapid\-commit is defined.
-
-.nf
-\fIsend rapid\-commit;\fR
-.fi
-This declaration enables dhcp6c to request the dhcp6s server to perform a
-Rapid Commit.
-
-.nf
-.B request\ [dhcpoptions];
-.fi
-This declaration enables dhcp6c to request specified options.
-Currently temp\-address, domain\-name\-servers, and prefix\-delegation
-are defined.
-
-.nf
-\fIrequest domain\-name\-servers;\fR
-.fi
-The DHCPv6 mechanism provides a way to obtain configuration information
-such as a list of available DNS servers or NTP servers. This declaration
-enables dhcp6c to request a DNS server address from the DHCPv6 server.
-
-.nf
-\fIrequest prefix\-delegation;\fR
-.fi
-This declaration enables dhcp6c to request a Prefix Delegation to the
-DHCPv6 server. dhcp6c gets a prefix assignment from the DHCPv6 server.
-
-.nf
-\fIrequest temp\-address;\fR
-.fi
-This declaration enables dhcp6c to request temporary addresses.
-dhcp6c requests Non-temporary Addresses as default. This option makes
-dhcp6c request Temporary Addresses.
-
-.nf
-.B information-only;
-.fi
-This declaration enables dhcp6c to request host configuration information
-from the DHCPv6 server. If dhcp6c doesn't need to be assigned any addresses,
-this option should be specified.
-
-.nf
-.B address\ {
-.B \t[<ipv6\ address>/<prefix\ length>];
-.B \t[prefer-life-time\ <preferred\-lifetime>];
-.B \t[valid-life-time\ <valid\-lifetime>];
-.B };
-.fi
-This declaration defines the dhcp6c client preferred IPv6 address,
-the preferred lifetime of the address, and the valid lifetime for this
-interface.
-
-.nf
-.B prefix\ {
-.B \t[<ipv6\ prefix>/<prefix\ length>];
-.B \t[prefer-life-time\ <preferred\-lifetime>];
-.B \t[valid-life-time\ <valid\-lifetime>];
-.B };
-.fi
-This declaration defines the dhcp6c client acting as a requesting
-router for the preferred prefix, the prefix length, and the prefix's
-preferred lifetime, and valid lifetime for this interface.
-
-.nf
-.B prefer-life-time\ <preferred\-lifetime>;
-.fi
-This declaration sets the preferred lifetime (in seconds) of the address
-or prefix. This declaration is valid only in address or prefix declarations.
-
-.nf
-.B valid-life-time\ <valid\-lifetime>;
-.fi
-This declaration sets the valid lifetime (in seconds) of the address or
-prefix.
-This declaration is valid only in address or prefix declarations.
-
-.nf
-.B renew-time\ <renew-time>;
-.fi
-This declaration specifies the Renew Time (in seconds) for this Identity
-Association (IA). Renew Time is a T1 value in an IA option. dhcp6c sets the
-Renew Time in IA options to the specified value.
-
-.nf
-.B rebind-time\ <rebind-time>;
-.fi
-This declaration specifies the Rebind Time (in seconds) for this IA. Rebind
-Time is T2 value in an IA option. dhcp6c sets the Rebind Time in IA options
-to the specified value.
-
-.PP
-.BI DHCPOPTIONS
-.PP
-.nf
-.B rapid\-commit
-.fi
-If this option is used in a "send [dhcpoptions];" declaration,
-dhcp6c sends DHCPv6 messages with a Rapid Commit option.
-
-.nf
-.B domain\-name\-servers
-.fi
-If this option is used in a "request [dhcpoptions];" declaration,
-dhcp6c requests the DNS server address via the DHCPv6 mechanism.
-
-.nf
-.B prefix\-delegation
-.fi
-If this option is used in a "request [dhcpoptions];" declaration,
-dhcp6c requests a Prefix Delegation to the DHCPv6 servers.
-
-.SH EXAMPLES
-.PP
-This is a sample of the dhcp6c.conf file.
-.nf
-.B interface eth0 {
-.B \tsend rapid-commit;
-.B \trequest prefix-delegation;
-.B \trequest domain-name-servers;
-.B \trequest temp-address;
-.B \tiaid 11111;
-.B \taddress {
-.B \t\t3ffe:10::10/64;
-.B \t\tprefer-life-time 6000;
-.B \t\tvalid-life-time 8000;
-.B \t};
-.B \trenew-time 11000;
-.B \trebind-time 21000;
-.B };
-.fi
-
-.SH SEE ALSO
-Dynamic Host Configuration Protocol for IPv6 (DHCPv6), IPv6 Prefix Options
-for DHCPv6, dhcp6c(5)
-
-.SH AUTHORS
-.LP
-Kazuo Hiekata <hiekata at yamato.ibm.com>
-
-
+.\" $Id: dhcp6c.conf.5,v 1.2 2003/03/28 20:16:36 shirleyma Exp $
+.\"
+.\" Copyright (C) International Business Machines Corp., 2003
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the project nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.TH dhcp6c.conf 5 "17 March 2003" "dhcp6c.conf" "Linux System Manager's Manual"
+
+.SH NAME
+dhcp6c.conf \- configuration file of the DHCPv6 client daemon, dhcp6c
+
+.SH DESCRIPTION
+.B dhcp6c.conf
+is a configuration file for dhcp6c (DHCPv6 client).
+
+dhcp6c is configured by the configuration information (such as rapid-commit,
+requesting temp-address, or prefix-delegation) in this file.
+dhcp6c.conf is an ASCII text file and lines that start with # are comments.
+
+.PP
+.BI STATEMENTS
+.PP
+.nf
+.B interface\ <interface\ name>
+.B {
+.B \t[declarations]
+.B };
+.fi
+Write configurations for this interface in this statement.
+In [declarations], options can be specified.
+
+.PP
+.BI DECLARATIONS
+.PP
+.nf
+.B send\ [dhcpoptions];
+.fi
+With this declaration, dhcp6c sends specified options.
+Currently rapid\-commit is defined.
+
+.nf
+\fIsend rapid\-commit;\fR
+.fi
+This declaration enables dhcp6c to request the dhcp6s server to perform a
+Rapid Commit.
+
+.nf
+.B request\ [dhcpoptions];
+.fi
+This declaration enables dhcp6c to request specified options.
+Currently temp\-address, domain\-name\-servers, and prefix\-delegation
+are defined.
+
+.nf
+\fIrequest domain\-name\-servers;\fR
+.fi
+The DHCPv6 mechanism provides a way to obtain configuration information
+such as a list of available DNS servers or NTP servers. This declaration
+enables dhcp6c to request a DNS server address from the DHCPv6 server.
+
+.nf
+\fIrequest prefix\-delegation;\fR
+.fi
+This declaration enables dhcp6c to request a Prefix Delegation to the
+DHCPv6 server. dhcp6c gets a prefix assignment from the DHCPv6 server.
+
+.nf
+\fIrequest temp\-address;\fR
+.fi
+This declaration enables dhcp6c to request temporary addresses.
+dhcp6c requests Non-temporary Addresses as default. This option makes
+dhcp6c request Temporary Addresses.
+
+.nf
+.B information-only;
+.fi
+This declaration enables dhcp6c to request host configuration information
+from the DHCPv6 server. If dhcp6c doesn't need to be assigned any addresses,
+this option should be specified.
+
+.nf
+.B address\ {
+.B \t[<ipv6\ address>/<prefix\ length>];
+.B \t[prefer-life-time\ <preferred\-lifetime>];
+.B \t[valid-life-time\ <valid\-lifetime>];
+.B };
+.fi
+This declaration defines the dhcp6c client preferred IPv6 address,
+the preferred lifetime of the address, and the valid lifetime for this
+interface.
+
+.nf
+.B prefix\ {
+.B \t[<ipv6\ prefix>/<prefix\ length>];
+.B \t[prefer-life-time\ <preferred\-lifetime>];
+.B \t[valid-life-time\ <valid\-lifetime>];
+.B };
+.fi
+This declaration defines the dhcp6c client acting as a requesting
+router for the preferred prefix, the prefix length, and the prefix's
+preferred lifetime, and valid lifetime for this interface.
+
+.nf
+.B prefer-life-time\ <preferred\-lifetime>;
+.fi
+This declaration sets the preferred lifetime (in seconds) of the address
+or prefix. This declaration is valid only in address or prefix declarations.
+
+.nf
+.B valid-life-time\ <valid\-lifetime>;
+.fi
+This declaration sets the valid lifetime (in seconds) of the address or
+prefix.
+This declaration is valid only in address or prefix declarations.
+
+.nf
+.B renew-time\ <renew-time>;
+.fi
+This declaration specifies the Renew Time (in seconds) for this Identity
+Association (IA). Renew Time is a T1 value in an IA option. dhcp6c sets the
+Renew Time in IA options to the specified value.
+
+.nf
+.B rebind-time\ <rebind-time>;
+.fi
+This declaration specifies the Rebind Time (in seconds) for this IA. Rebind
+Time is T2 value in an IA option. dhcp6c sets the Rebind Time in IA options
+to the specified value.
+
+.PP
+.BI DHCPOPTIONS
+.PP
+.nf
+.B rapid\-commit
+.fi
+If this option is used in a "send [dhcpoptions];" declaration,
+dhcp6c sends DHCPv6 messages with a Rapid Commit option.
+
+.nf
+.B domain\-name\-servers
+.fi
+If this option is used in a "request [dhcpoptions];" declaration,
+dhcp6c requests the DNS server address via the DHCPv6 mechanism.
+
+.nf
+.B prefix\-delegation
+.fi
+If this option is used in a "request [dhcpoptions];" declaration,
+dhcp6c requests a Prefix Delegation to the DHCPv6 servers.
+
+.nf
+.B prefix\-delegation\-interface <interface name>
+Specifies the name of the interface definition in radvd.conf
+that dhcp6c will write the 'prefix' declaration for. By default,
+dhcp6c will write a radvd.conf prefix declaration for the interface
+on which it receives the prefix delegation lease.
+
+.nf
+\fIuse-ra-prefix;\fR
+.fi
+This declaration tells the client not to request the address prefix configured
+in the server's address or range statements. With this option, client address
+prefixes can be set only by router advertisements, and the prefix configured in
+server address or range statements will be ignored. This is a Red Hat extension;
+previously, the only way to set client address prefixes was by router advertisement.
+
+.SH EXAMPLES
+.PP
+This is a sample of the dhcp6c.conf file.
+.nf
+.B interface eth0 {
+.B \tsend rapid-commit;
+.B \trequest prefix-delegation;
+.B \trequest domain-name-servers;
+.B \trequest temp-address;
+.B \tiaid 11111;
+.B \taddress {
+.B \t\t3ffe:10::10/64;
+.B \t\tprefer-life-time 6000;
+.B \t\tvalid-life-time 8000;
+.B \t};
+.B \trenew-time 11000;
+.B \trebind-time 21000;
+.B };
+.fi
+
+.SH SEE ALSO
+Dynamic Host Configuration Protocol for IPv6 (DHCPv6), IPv6 Prefix Options
+for DHCPv6, dhcp6c(5)
+
+.SH AUTHORS
+.LP
+Kazuo Hiekata <hiekata at yamato.ibm.com>
+
+
--- dhcp-0.10/dhcp6s.conf.5.man 2003-05-28 18:56:23.000000000 -0400
+++ dhcp-0.10/dhcp6s.conf.5 2007-02-08 15:44:07.000000000 -0500
@@ -1,322 +1,340 @@
-.\" $Id: dhcp6s.conf.5,v 1.3 2003/05/28 22:56:23 shirleyma Exp $
-.\"
-.\" Copyright (C) International Business Machines Corp., 2003
-.\" All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the project nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.TH dhcp6s.conf 5 "17 March 2003" "dhcp6s.conf" "Linux System Manager's Manual"
-
-.SH NAME
-dhcp6s.conf \- configuration file of the DHCPv6 server daemon, dhcp6s
-
-.SH DESCRIPTION
+.\" $Id: dhcp6s.conf.5,v 1.3 2003/05/28 22:56:23 shirleyma Exp $
+.\"
+.\" Copyright (C) International Business Machines Corp., 2003
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the project nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.TH dhcp6s.conf 5 "17 March 2003" "dhcp6s.conf" "Linux System Manager's Manual"
+
+.SH NAME
+dhcp6s.conf \- configuration file of the DHCPv6 server daemon, dhcp6s
+
+.SH DESCRIPTION
.B dhcp6s.conf
-contains the configuration information of addresses, prefixes, or
-various network configuration parameters for each of the interfaces.
-The network configuration parameters can be described globally for all of
-the interfaces. The default address preferred life time is 36000 seconds;
-the default address valid life time is 72000 seconds if they are not defined
-in any declaration. The specific declaration order is interface, link, host;
-within link the more specific declaration is pool.
-
- The interface definitions are described in the following form:
-.PP
-.nf
-.B \tinterface\ <interface\ name>
-.B \t{
-.B \t\t[declarations];
-.B \t};
-.fi
- where each of the declarations could be of type link, group, or host.
-Each declaration and the statements within each of these declarations
-must be terminated by a semicolon. Additional details of the declarations
-are specified below.
-
-.PP
-.BI DECLARATIONS
-.PP
-.nf
-.B interface\ <interface\ name>
-.B {
-.B \t[declarations];
-.B };
-.fi
-An interface declaration is used to inform the DHCPv6 server that the links and
-hosts declared within it are connected to the same network segment. Common
-network parameters for this network segment can be defined within the interface
-declaration.
-
-.nf
-.B link\ <link\ name>
-.B {
-.B \t[declarations];
-.B };
-.fi
-A link declaration is used to provide the DHCPv6 server the IPv6 assgined
-address ranges, prefixes, and hosts. Common network parameters for this link
-can be defined within the link declaration.
-
-.nf
-.B group
-.B {
-.B \t[declarations];
-.B };
-.fi
-A group declaration is used to group a list of declarations together to define
-the common network parameters. These network parameters are valid within this
-declaration only. Declarations can be one of the following types: interface, link,
-pool, or host.
-
-.nf
-.B pool
-.B {
-.B \t[declarations];
-.B };
-.fi
-The pool declaration is used to declare an address pool from which IPv6
-address can be allocated, with its own permit to control client access
-and its own declaration in which you can declare pool-specific network parameters.
-
-.nf
-.B host\ <host\ name>
-.B {
-.B \t[duid\ <DUID\n>];
-.B \t[iaidinfo\ {}];
-.B \t[address\ {}];
-.B \t[prefix\ <prefix>/<prefix\ length>];
-.B \t[declarations];
-.B };
-.fi
-This declaration allows administrators to describe the addresses, prefixes, and
-network configuration parameters for this host. As for this declaration, the
-DHCP Unique Identifier (DUID), Identity Association Identifier (IAID), and
-addresses must be specified. The host declaration is used to do Static
-Address Assginment for a particular DHCPv6 client.
-
-.nf
-.B address
-.B {
-.B \t[<ipv6 address>/<prefix length>];
-.B \t[prefer-life-time\ <preferred\ lifetime>];
-.B \t[valid-life-time\ <valid\ lifetime>];
-.B };
-.fi
-This statement allows administrators to specify the address for the
-host. Preferred Lifetime and Valid Lifetime also can be set in this
-statement. This statement is valid only in host {} declarations.
-
-.nf
-.B prefix\ <prefix>/<prefix\ length>;
-.fi
-This statement allows administrators to specify the prefix.
-This parameter is needed when configuring dhcp6s as the Delegation Router for
-the Prefix Delegation. dhcp6s assigns the specified prefixes
-to the requesting routers.
-
-.nf
-.B iaidinfo
-.B {
-.B \t[iaid\ <IAID\ number>];
-.B \t[renew-time\ <renew\ time>];
-.B \t[rebind-time\ <rebind\ time>];
-.B };
-.fi
-This statement allows administrators to describe the information for
-this IAID. This statement is only valid in host {} declarations.
-iaid is required; renew-time and rebind time are optional in this statement.
-
-.nf
-.B range\ <ipv6\ address>\ to\ <ipv6\ address>/<prefix\ length>;
-.fi
-This statement allows adminstrators to use "range" and "to" keywords and
-prefix length to specify an address range.
-For each range not more than one of the unassigned addresses will be
-assgined to the requested client.
-
-.nf
-.B duid\ <DUID\>;
-.fi
-DUID is a DHCP Unique Identifier for a DHCP participant. Using this option,
-the administrator can specify the DUID of this DHCPv6 client.
-The duid statement is valid only in host {} declarations.
-
-.nf
-.BI iaid\ <IAID\ number>;
-.fi
-IAID is a Identity Association Identifier. IA is a collection of addresses
-assigned to a client. Using this option, the administrator can specify the IAID
-in iaidinfo for a host declaration.
-
-.nf
-.BI renew-time\ <renew\ time>;
-.fi
-This statement allows administrators to specify the RenewTime (T1).
-The recommended value for RenewTime is .5 times the shortest preferred
-lifetime of the address in the IA, if the value is not defined.
-
-.nf
-.BI rebind-time\ <rebind\ time>;
-.fi
-This statement allows administrators to specify the RebindTime (T2).
-The recommended value for RenewTime is .8 times the shortest preferred
-lifetime of the address in the IA, if the value is not defined.
-
-.nf
-.BI prefer-life-time\ <preferred\ lifetime>;
-.fi
-This statement allows administrators to specify the Preferred Life Time for
-each address.
-
-.nf
-.BI valid-life-time\ <valid\ lifetime>;
-.fi
-This statement allows administrators to specify the Valid Life Time for
-each address.
-
-.nf
-.BI option\ dns_server\ <ipv6\ addresses\ or\ domain\ name\ list>;
-.fi
-This statement allows administrators to specify the DNS servers.
-
-.B send\ <OPTION>;
-.fi
-This declaration enables dhcp6s to include the specified option in sending
-DHCPv6 messages.
-
-.nf
-\fIsend\ unicast;\fR
-.fi
-This declaration enables dhcp6s to send a Server Unicast option. Usually
-DHCPv6 clients must use multicast addresses to contact the DHCPv6 server and
-agents. This declaration specifies that dhcp6s will accept unicast messages
-from DHCPv6 clients if they include a Server Unicast option.
-
-.nf
-\fIsend\ server-preference\ <server\ preference\ value>;\fR
-.fi
-This declaration enables dhcp6s to include a Preference option for sending
-DHCPv6 messages. DHCPv6 clients will pick up the DHCPv6 server which has
-highest preference value. The highest preference value is 255.
-
-.nf
-\fIsend\ temp-address;\fR
-.fi
-This declaration assigns a temporary address to the requesting client.
-
-.nf
-\fIsend\ information-only;\fR
-.fi
-This option enables dhcp6s to give only configuration information rather than
-assigning client addresses. This could be, for example, DNS server address
-configuration information.
-
-.nf
-.B allow\ <OPTION>;
-.fi
-This declaration allows the DHCPv6 client to specify an option in receiving
-DHCPv6 messages.
-
-.nf
-\fIallow rapid\-commit;\fR
-.fi
-This option enables dhcp6s to allow the Rapid-Commit option from the DHCPv6
-client and the Solicit-Reply message exchanges.
-
-.nf
-\fIallow\ unicast;\fR
-.fi
-This option enables dhcp6s to allow the Server Unicast option for the DHCPv6
-client. Usually DHCPv6 clients must use multicast addresses to contact DHCPv6
-server and agents. With this declaration, dhcp6s accepts unicast
-messages from DHCPv6 clients if they include a Server Unicast option.
-
-.SH EXAMPLES
-.PP
-This is a sample of the dhcp6s.conf file.
-.nf
-.B option dns\_server 2003::6:1 ibm.com;
-.B prefer\-life\-time 10000;
-.B valid\-life\-time 20000;
-.B renew\-time 5000;
-.B rebind\-time 8000;
-.B interface eth1 {
-.B \tlink AAA {
-.B \t\tallow unicast;
-.B \t\tsend unicast;
-.B \t\tallow rapid-commit;
-.B \t\tsend server-preference 5;
-.B \t\trenew-time 1000;
-.B \t\trebind-time 2400;
-.B \t\tprefer-life-time 2000;
-.B \t\tvalid-life-time 3000;
-.B \t\trange 3ffe:ffff:100::10 to 3ffe:ffff:100::110/64;
-.B \t\tprefix 3ffe:ffef:104::/64;
-.B \t\tpool {
-.B \t\t\tprefer\-life\-time 3600;
-.B \t\t\tvalid\-life\-time 7200;
-.B \t\t\trange fec0:ffff::10 to fec0:ffff::110/64;
-.B \t\t\tprefix fec0:fffe::/48;
-.B \t\t};
-.B \t};
-.B \thost host0 {
-.B \t\tduid 00:00:00:00:a0:a0;
-.B \t\tiaidinfo {
-.B \t\t\tiaid 101010;
-.B \t\t\trenew-time 1000;
-.B \t\t\trebind-time 2000;
-.B \t\t};
-.B \t\taddress {
-.B \t\t\t3ffe:ffff:102::120/64;
-.B \t\t\tprefer-life-time 2000;
-.B \t\t\tvalid-life-time 3000;
-.B \t\t};
-.B \t};
-.B \tgroup {
-.B \t\tprefer\-life\-time 5000;
-.B \t\tvalid\-life\-time 6000;
-.B \t\thost host1 {
-.B \t\t\tduid 00:00:00:00:a1:a1;
-.B \t\t\tiaidinfo {
-.B \t\t\t\tiaid 101011;
-.B \t\t\t\trenew-time 1000;
-.B \t\t\t\trebind-time 2000;
-.B \t\t\t};
-.B \t\t};
-.B \t\thost host2 {
-.B \t\t\tduid 00:00:00:00:a2:a2;
-.B \t\t\tsend information-only;
-.B \t\t};
-.B \t};
-.B };
-.fi
-
-.SH SEE ALSO
-Dynamic Host Configuration Protocol for IPv6 (DHCPv6), IPv6 Prefix Options
-for DHCPv6, dhcp6s(5)
-
-.SH AUTHORS
-.LP
-Kazuo Hiekata <hiekata at yamato.ibm.com>
+contains the configuration information of addresses, prefixes, or
+various network configuration parameters for each of the interfaces.
+The network configuration parameters can be described globally for all of
+the interfaces. The default address preferred life time is 36000 seconds;
+the default address valid life time is 72000 seconds if they are not defined
+in any declaration. The specific declaration order is interface, link, host;
+within link the more specific declaration is pool.
+
+ The interface definitions are described in the following form:
+.PP
+.nf
+.B \tinterface\ <interface\ name>
+.B \t{
+.B \t\t[declarations];
+.B \t};
+.fi
+ where each of the declarations could be of type link, group, or host.
+Each declaration and the statements within each of these declarations
+must be terminated by a semicolon. Additional details of the declarations
+are specified below.
+
+.PP
+.BI DECLARATIONS
+.PP
+.nf
+.B interface\ <interface\ name>
+.B {
+.B \t[declarations];
+.B };
+.fi
+An interface declaration is used to inform the DHCPv6 server that the links and
+hosts declared within it are connected to the same network segment. Common
+network parameters for this network segment can be defined within the interface
+declaration.
+
+.nf
+.B link\ <link\ name>
+.B {
+.B \t[declarations];
+.B };
+.fi
+A link declaration is used to provide the DHCPv6 server the IPv6 assgined
+address ranges, prefixes, and hosts. Common network parameters for this link
+can be defined within the link declaration.
+
+.nf
+.B group
+.B {
+.B \t[declarations];
+.B };
+.fi
+A group declaration is used to group a list of declarations together to define
+the common network parameters. These network parameters are valid within this
+declaration only. Declarations can be one of the following types: interface, link,
+pool, or host.
+
+.nf
+.B pool
+.B {
+.B \t[declarations];
+.B };
+.fi
+The pool declaration is used to declare an address pool from which IPv6
+address can be allocated, with its own permit to control client access
+and its own declaration in which you can declare pool-specific network parameters.
+
+.nf
+.B host\ <host\ name>
+.B {
+.B \t[duid\ <DUID\n>];
+.B \t[iaidinfo\ {}];
+.B \t[address\ {}];
+.B \t[prefix\ <prefix>/<prefix\ length>];
+.B \t[declarations];
+.B };
+.fi
+This declaration allows administrators to describe the addresses, prefixes, and
+network configuration parameters for this host. As for this declaration, the
+DHCP Unique Identifier (DUID), Identity Association Identifier (IAID), and
+addresses must be specified. The host declaration is used to do Static
+Address Assginment for a particular DHCPv6 client.
+
+.nf
+.B address
+.B {
+.B \t[<ipv6 address>/<prefix length>];
+.B \t[prefer-life-time\ <preferred\ lifetime>];
+.B \t[valid-life-time\ <valid\ lifetime>];
+.B };
+.fi
+This statement allows administrators to specify the address for the
+host. Preferred Lifetime and Valid Lifetime also can be set in this
+statement. This statement is valid only in host {} declarations.
+
+.nf
+.B prefix\ <prefix>/<prefix\ length>;
+.fi
+This statement allows administrators to specify the prefix.
+This parameter is needed when configuring dhcp6s as the Delegation Router for
+the Prefix Delegation. dhcp6s assigns the specified prefixes
+to the requesting routers.
+
+.nf
+.B relay\ <relay>/<prefix\ length>;
+.fi
+This statement specifies the prefix that the relay agent will put in the link
+address field of the RELAY-FORW message to indicate the link the client is
+attached to. If the link-address matches this prefix, this link declaration
+will be used. This statement is only valid in the link declaration.
+
+.nf
+.B iaidinfo
+.B {
+.B \t[iaid\ <IAID\ number>];
+.B \t[renew-time\ <renew\ time>];
+.B \t[rebind-time\ <rebind\ time>];
+.B };
+.fi
+This statement allows administrators to describe the information for
+this IAID. This statement is only valid in host {} declarations.
+iaid is required; renew-time and rebind time are optional in this statement.
+
+.nf
+.B range\ <ipv6\ address>\ to\ <ipv6\ address>/<prefix\ length>;
+.fi
+This statement allows adminstrators to use "range" and "to" keywords and
+prefix length to specify an address range.
+For each range not more than one of the unassigned addresses will be
+assgined to the requested client.
+
+.nf
+.B duid\ <DUID\>;
+.fi
+DUID is a DHCP Unique Identifier for a DHCP participant. Using this option,
+the administrator can specify the DUID of this DHCPv6 client.
+The duid statement is valid only in host {} declarations.
+
+.nf
+.BI iaid\ <IAID\ number>;
+.fi
+IAID is a Identity Association Identifier. IA is a collection of addresses
+assigned to a client. Using this option, the administrator can specify the IAID
+in iaidinfo for a host declaration.
+
+.nf
+.BI renew-time\ <renew\ time>;
+.fi
+This statement allows administrators to specify the RenewTime (T1).
+The recommended value for RenewTime is .5 times the shortest preferred
+lifetime of the address in the IA, if the value is not defined.
+
+.nf
+.BI rebind-time\ <rebind\ time>;
+.fi
+This statement allows administrators to specify the RebindTime (T2).
+The recommended value for RenewTime is .8 times the shortest preferred
+lifetime of the address in the IA, if the value is not defined.
+
+.nf
+.BI prefer-life-time\ <preferred\ lifetime>;
+.fi
+This statement allows administrators to specify the Preferred Life Time for
+each address.
+
+.nf
+.BI valid-life-time\ <valid\ lifetime>;
+.fi
+This statement allows administrators to specify the Valid Life Time for
+each address.
+
+.nf
+.BI option\ dns_server\ <ipv6\ addresses\ or\ domain\ name\ list>;
+.fi
+This statement allows administrators to specify the DNS servers.
+
+.B send\ <OPTION>;
+.fi
+This declaration enables dhcp6s to include the specified option in sending
+DHCPv6 messages.
+
+.nf
+\fIsend\ unicast;\fR
+.fi
+This declaration enables dhcp6s to send a Server Unicast option. Usually
+DHCPv6 clients must use multicast addresses to contact the DHCPv6 server and
+agents. This declaration specifies that dhcp6s will accept unicast messages
+from DHCPv6 clients if they include a Server Unicast option.
+
+.nf
+\fIserver-preference\ <server\ preference\ value>;\fR
+.fi
+This declaration enables dhcp6s to include a Preference option for sending
+DHCPv6 messages. DHCPv6 clients will pick up the DHCPv6 server which has
+highest preference value. The highest preference value is 255.
+
+.nf
+\fIsend\ temp-address;\fR
+.fi
+This declaration assigns a temporary address to the requesting client.
+
+.nf
+\fIsend\ information-only;\fR
+.fi
+This option enables dhcp6s to give only configuration information rather than
+assigning client addresses. This could be, for example, DNS server address
+configuration information.
+
+.nf
+.B allow\ <OPTION>;
+.fi
+This declaration allows the DHCPv6 client to specify an option in receiving
+DHCPv6 messages.
+
+.nf
+\fIallow rapid\-commit;\fR
+.fi
+This option enables dhcp6s to allow the Rapid-Commit option from the DHCPv6
+client and the Solicit-Reply message exchanges.
+
+.nf
+\fIallow\ unicast;\fR
+.fi
+This option enables dhcp6s to allow the Server Unicast option for the DHCPv6
+client. Usually DHCPv6 clients must use multicast addresses to contact DHCPv6
+server and agents. With this declaration, dhcp6s accepts unicast
+messages from DHCPv6 clients if they include a Server Unicast option.
+
+
+.nf
+\fIuse-ra-prefix;\fR
+.fi
+This declaration tells the server not to send clients the address prefix configured
+in address or range statements. With this option, client address prefixes can
+be set only by router advertisements, and the prefix configured in address or
+range statements will be ignored. This is a Red Hat extension; previously, the
+only way to set client address prefixes was by router advertisement.
+
+.SH EXAMPLES
+.PP
+This is a sample of the dhcp6s.conf file.
+.nf
+.B option dns\_server 2003::6:1 ibm.com;
+.B prefer\-life\-time 10000;
+.B valid\-life\-time 20000;
+.B renew\-time 5000;
+.B rebind\-time 8000;
+.B interface eth1 {
+.B \tlink AAA {
+.B \t\tallow unicast;
+.B \t\tsend unicast;
+.B \t\tallow rapid-commit;
+.B \t\tserver-preference 5;
+.B \t\trenew-time 1000;
+.B \t\trebind-time 2400;
+.B \t\tprefer-life-time 2000;
+.B \t\tvalid-life-time 3000;
+.B \t\trange 3ffe:ffff:100::10 to 3ffe:ffff:100::110/64;
+.B \t\tprefix 3ffe:ffef:104::/64;
+.B \t\tpool {
+.B \t\t\tprefer\-life\-time 3600;
+.B \t\t\tvalid\-life\-time 7200;
+.B \t\t\trange fec0:ffff::10 to fec0:ffff::110/64;
+.B \t\t\tprefix fec0:fffe::/48;
+.B \t\t};
+.B \t};
+.B \thost host0 {
+.B \t\tduid 00:00:00:00:a0:a0;
+.B \t\tiaidinfo {
+.B \t\t\tiaid 101010;
+.B \t\t\trenew-time 1000;
+.B \t\t\trebind-time 2000;
+.B \t\t};
+.B \t\taddress {
+.B \t\t\t3ffe:ffff:102::120/64;
+.B \t\t\tprefer-life-time 2000;
+.B \t\t\tvalid-life-time 3000;
+.B \t\t};
+.B \t};
+.B \tgroup {
+.B \t\tprefer\-life\-time 5000;
+.B \t\tvalid\-life\-time 6000;
+.B \t\thost host1 {
+.B \t\t\tduid 00:00:00:00:a1:a1;
+.B \t\t\tiaidinfo {
+.B \t\t\t\tiaid 101011;
+.B \t\t\t\trenew-time 1000;
+.B \t\t\t\trebind-time 2000;
+.B \t\t\t};
+.B \t\t};
+.B \t\thost host2 {
+.B \t\t\tduid 00:00:00:00:a2:a2;
+.B \t\t\tsend information-only;
+.B \t\t};
+.B \t};
+.B };
+.fi
+
+.SH SEE ALSO
+Dynamic Host Configuration Protocol for IPv6 (DHCPv6), IPv6 Prefix Options
+for DHCPv6, dhcp6s(5)
+
+.SH AUTHORS
+.LP
+Kazuo Hiekata <hiekata at yamato.ibm.com>
dhcpv6-0.10-relay.patch:
dhcp6r.8 | 213 ++++++++++++++
dhcp6r.c | 354 +++++++++++++++++++++++
dhcp6r.h | 74 ++++
dhcp6r.sh | 89 +++++
dhcp6r.sysconfig | 3
relay6_database.c | 574 ++++++++++++++++++++++++++++++++++++++
relay6_database.h | 98 ++++++
relay6_parser.c | 278 ++++++++++++++++++
relay6_parser.h | 62 ++++
relay6_socket.c | 802 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
relay6_socket.h | 74 ++++
11 files changed, 2621 insertions(+)
--- NEW FILE dhcpv6-0.10-relay.patch ---
--- /dev/null 2007-02-06 10:40:24.955607220 -0500
+++ dhcp-0.10/dhcp6r.8 2007-02-08 15:44:07.000000000 -0500
@@ -0,0 +1,213 @@
+.\"
+.\" Copyright (C) NEC Europe Ltd., 2003
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the project nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.de Id
+.ds Dt \\$4
+..
+.Id $Id: relay-agent.patch,v 1.1 2004/03/18 18:37:07 bbuesker Exp $
+.TH dhcp6r 8 "15 March 2004" "dhcp6r" "Linux System Manager's Manual"
+.SH NAME
+dhcp6r \- DHCPv6 relay agent
+.SH SYNOPSIS
+.B dhcp6r
+[
+.B \-d
+] [
+.I client-options
+] [
+.I server-options
+]
+.SH DESCRIPTION
+.B dhcp6r
+acts as DHCPv6 relay agent forwarding DHCPv6 messages from clients
+to servers and vice versa. DHCPv6 messages from clients are received
+at UDP port 547, they are forwarded to one or more DHCPv6
+servers by multicast and/or unicast. DHCPv6 messages from
+servers to clients are also received at UDP port 547 and
+forwarded by unicast only.
+.PP
+DHCPv6 messages received by multicast at a certain IPv6
+interface are never forwarded by multicast to the same
+interface.
+.PP
+If no options are present, the relay agent receives messages
+by unicast and multicast at all IPv6 interfaces, and
+all messages are forwarded to all IPv6 interfaces by
+multicast with the exception mentioned in the previous
+paragraph.
+.PP
+If one or more
+.I client-options
+are present, then messages are only received as specified by
+the client options. If one or more
+.I server-options
+are present, then messages are only forwarded as specified by
+the server options.
+.SH CLIENT-OPTIONS
+If no
+.I client-options
+are present, the relay receives
+messages by multicast and unicast at all IPv6 interfaces.
+.PP
+If one or more client options are present, then messages
+are only received as specified by the
+.IR client-options .
+.PP
+In any case, the relay receives client messages by
+unicast.
+.TP
+.B \-cu
+This option can be used to configure the client
+such that it receives messages from clients or other
+relay agents by unicast only.
+It does not have any effect if a
+.B \-cm
+option is present.
+.TP
+.BI "\-cm " INTERFACE
+Accept client messages multicasted at IPv6
+interface
+.IR INTERFACE .
+The others are receiving
+only unicast messages. For specifying a set of
+interfaces, an instance of this option is
+required for each interface.
+.SH SERVER-OPTIONS
+If no
+.I server-options
+are present, the relay forwards
+messages received from clients by multicast and unicast
+to all IPv6 interfaces, except the one, which the packet
+was received on.
+.PP
+If one or more
+.I server-options
+are present, then messages are forwarded as specified by the
+.IR server-options .
+.TP
+.BI "\-sm " INTERFACE
+Forward all received client messages by multicast
+at IPv6 interface
+.IR INTERFACE .
+For specifying a set of interfaces, an instance of this
+option is required for each interface.
+.TP
+.BI "\-su " ADDRESS
+Forward all received client messages by unicast
+to the IPv6 address
+.IR ADDRESS .
+For specifying a set
+of addresses, an instance of this option is
+required for each address.
+.TP
+.BI "\-sf " INTERFACE+ADDRESS
+Forward all received client messages by unicast
+to the IPv6 address
+.I ADDRESS
+through the IPv6 interface
+.IR INTERFACE .
+For specifying a set of combinations of
+interfaces and addresses, an instance of this
+option is required for each combination.
+.PP
+The
+.BR \-sm ,
+.BR \-su ,
+and
+.B \-sf
+options can be combined in arbitrary ways.
+.SH OTHER OPTIONS
+.TP
+.B \-d
+If this option is not present, dhcp6r will dump logging
+information into the file /var/log/dhcp6r.log. If the
+option is present, logging information will be sent to stderr
+instead.
+.SH EXAMPLES
+The following examples are shown as given to the shell:
+.TP
+.SH dhcp6r
+Receive messages from clients at all IPv6
+interfaces by multicast and by unicast, and
+forward them to all (other) IPv6 interfaces
+by multicast.
+.TP
+.SH dhcp6r -cu
+Receive messages from clients by unicast only,
+and forward them to all (other) IPv6 interfaces by
+multicast.
+.TP
+.SH dhcp6r -cm eth0 -cm eth2
+Receive messages from clients at interfaces
+eth0 and eth2 by multicast and by unicast, and
+forward them to all IPv6 interfaces by
+multicast (except the one at which the message
+was received by multicast).
+.TP
+.SH dhcp6r -cm eth0 -cm eth2 -sm eth1
+Receive messages from clients at interfaces
+eth0 and eth2 by multicast and by unicast, and
+forward them to interfaces eth1 by multicast.
+.TP
+.nf
+.SH dhcp6r -su fec0::204:ce33:763f:b34 -su fec0::504:ff33:73f:c557
+.fi
+Receive messages from clients at all IPv6
+interfaces by multicast and by unicast, and
+forward a copy of them to each of the specified
+addresses.
+.TP
+.SH dhcp6r -sm eth1 -su fec0::204:ce33:763f:b34
+Receive messages from clients at all IPv6
+interfaces by multicast and by unicast, and
+forward them to interface eth1 by multicast
+and to the specified unicast address.
+.TP
+.SH dhcp6r -sm eth1 -sf eth0+fec0::504:ff33:73f:c557
+Receive messages from clients at all IPv6
+interfaces by multicast and by unicast, and
+forward them to interface eth1 by multicast
+and to the specified unicast address. For the
+unicast address it is enforced that the message
[...2255 lines suppressed...]
+ "inet_pton failed in send_message()\n");
+ exit(1);
+ }
+ TRACE(dump,"%s - SOURCE ADDRESS: %s\n",dhcp6r_clock(),
+ iface->ipv6addr->gaddr);
+
+ sin6.sin6_port = htons(SERVER_PORT);
+
+ iov[0].iov_base = mesg->buffer;
+ iov[0].iov_len = mesg->datalength;
+ msg.msg_name = (void *) &sin6;
+ msg.msg_namelen = sizeof(sin6);
+ msg.msg_iov = &iov[0];
+ msg.msg_iovlen = 1;
+
+ if ((count = sendmsg(sendsock->send_sock_desc, &msg, 0)) < 0) {
+ perror("sendmsg");
+ return 0;
+ }
+
+ if (count > MAX_DHCP_MSG_LENGTH)
+ perror("bytes sendmsg");
+
+ TRACE(dump,
+ "%s - ========> RELAY_FORW, SENT TO: %s SENT_BYTES: %d\n",
+ dhcp6r_clock(), dest_addr, count);
+
+ free(recvp);
+ hit = 1;
+ } /* for */
+
+ if (hit == 0) {
+ for (iface = interface_list.next; iface != &interface_list;
+ iface = iface->next) {
+ if (mesg->interface_in == iface->devindex)
+ continue;
+
+ *(mesg->hc_pointer)= MAXHOPCOUNT;
+ bzero((char *)&sin6, sizeof(struct sockaddr_in6));
+ sin6.sin6_family = AF_INET6;
+
+ memset(dest_addr, 0, INET6_ADDRSTRLEN);
+ strcpy(dest_addr, ALL_DHCP_SERVERS);
+
+ /* destination address */
+ if (inet_pton(AF_INET6, dest_addr, &sin6.sin6_addr) <= 0) {
+ TRACE(dump, "%s - %s", dhcp6r_clock(),
+ "inet_pton failed in send_message()\n");
+ return 0;
+ }
+
+ recvmsglen = CMSG_SPACE(sizeof(struct in6_pktinfo));
+ recvp = (char *) malloc(recvmsglen*sizeof(char));
+ if (recvp ==NULL) {
+ TRACE(dump, "%s - %s", dhcp6r_clock(),
+ "ERROR-->recvp NO MORE MEMORY AVAILABLE \n");
+ exit(1);
+ }
+ memset(recvp, 0, recvmsglen);
+
+ cmsgp = (struct cmsghdr *) recvp;
+ cmsgp->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
+ cmsgp->cmsg_level = IPPROTO_IPV6;
+ cmsgp->cmsg_type = IPV6_PKTINFO;
+ in6_pkt = (struct in6_pktinfo *) CMSG_DATA(cmsgp);
+ msg.msg_control = (void *) recvp;
+ msg.msg_controllen = recvmsglen;
+
+ /* destination address */
+ if (inet_pton(AF_INET6, dest_addr, &sin6.sin6_addr) <= 0) {
+ TRACE(dump, "%s - %s", dhcp6r_clock(),
+ "inet_pton failed in send_message()\n");
+ return 0;
+ }
+ sin6.sin6_port = htons(SERVER_PORT);
+
+ in6_pkt->ipi6_ifindex = iface->devindex;
+ sin6.sin6_scope_id = in6_pkt->ipi6_ifindex;
+
+ TRACE(dump, "%s - OUTGOING DEVICE INDEX: %d\n", dhcp6r_clock(),
+ in6_pkt->ipi6_ifindex);
+ if (inet_pton(AF_INET6, iface->ipv6addr->gaddr,
+ &in6_pkt->ipi6_addr)<=0) { /* source address */
+ TRACE(dump, "%s - %s", dhcp6r_clock(),
+ "inet_pton failed in send_message()\n");
+ exit(1);
+ }
+
+ TRACE(dump, "%s - SOURCE ADDRESS: %s\n", dhcp6r_clock(),
+ iface->ipv6addr->gaddr);
+
+ iov[0].iov_base = mesg->buffer;
+ iov[0].iov_len = mesg->datalength;
+ msg.msg_name = (void *) &sin6;
+ msg.msg_namelen = sizeof(sin6);
+ msg.msg_iov = &iov[0];
+ msg.msg_iovlen = 1;
+
+ if ((count = sendmsg(sendsock->send_sock_desc, &msg, 0))< 0) {
+ perror("sendmsg");
+ return 0;
+ }
+
+ if (count > MAX_DHCP_MSG_LENGTH)
+ perror("sendmsg");
+
+ TRACE(dump,
+ "%s - ========> RELAY_FORW, SENT TO: %s SENT_BYTES: %d\n",
+ dhcp6r_clock(), dest_addr, count);
+ free(recvp);
+ } /* for */
+ }
+ }
+
+ fflush(dump);
+ mesg->sent = 1;
+ return 1;
+
+
+ TRACE(dump, "%s - %s", dhcp6r_clock(),
+ "FATAL ERROR--> NO MESSAGE TYPE TO BE SENT!\n");
+ exit(1);
+}
--- /dev/null 2007-02-06 10:40:24.955607220 -0500
+++ dhcp-0.10/relay6_socket.h 2007-02-08 15:44:07.000000000 -0500
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) NEC Europe Ltd., 2003
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef __RELAY6_SOCKET_H_DEFINED
+#define __RELAY6_SOCKET_H_DEFINED
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+#include "dhcp6r.h"
+
+fd_set readfd;
+int fdmax;
+
+struct receive {
+ struct msghdr msg;
+ struct iovec iov[1];
+ struct cmsghdr *cmsgp;
+ struct sockaddr_in6 sin6; /* my address information */
+ struct sockaddr_in6 from;
+ int recvmsglen;
+ char *recvp;
+ char src_addr[INET6_ADDRSTRLEN];
+ int pkt_interface;
+ int buflength;
+ int dst_addr_type ;
+ char *databuf;
+ int recv_sock_desc;
+};
+
+struct send {
+ int send_sock_desc;
+};
+
+struct send *sendsock;
+struct receive *recvsock;
+
+int send_message __P((void));
+int fill_addr_struct __P((void));
+int set_sock_opt __P((void));
+int recv_data __P((void));
+int check_select __P((void));
+int get_recv_data __P((void));
+int get_interface_info __P((void));
+void init_socket __P((void));
+
+#endif /* __RELAY6_SOCKET_H_DEFINED */
dhcpv6-0.10-libdhcp6client.patch:
client6_addr.c | 44 ++++--
common.c | 24 +++
dhcp6.h | 17 ++
dhcp6c.c | 284 +++++++++++++++++++++++++++++++--------
libdhcp6client/Makefile | 68 +++++++++
libdhcp6client/dhc6_alloc.c | 54 +++++++
libdhcp6client/dhc6_alloc.h | 16 ++
libdhcp6client/dhcp6client.h | 25 +++
libdhcp6client/libdhcp_control.h | 128 +++++++++++++++++
9 files changed, 596 insertions(+), 64 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.8 -r 1.9 dhcpv6-0.10-libdhcp6client.patch
Index: dhcpv6-0.10-libdhcp6client.patch
===================================================================
RCS file: /cvs/dist/rpms/dhcpv6/devel/dhcpv6-0.10-libdhcp6client.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- dhcpv6-0.10-libdhcp6client.patch 31 Oct 2006 18:29:55 -0000 1.8
+++ dhcpv6-0.10-libdhcp6client.patch 9 Feb 2007 03:53:55 -0000 1.9
@@ -1,17 +1,5 @@
---- dhcp-0.10/libdhcp6client/lease_token.l.libdhcp6client 2004-02-04 18:29:24.000000000 -0500
-+++ dhcp-0.10/libdhcp6client/lease_token.l 2006-10-31 12:07:24.000000000 -0500
-@@ -241,6 +241,9 @@
-
- fseek(file, 0, 0);
- yyin = file;
-+ yy_init=1;
-+ yy_start=0;
-+ yy_current_buffer=0;
- yylex();
- return;
- }
---- dhcp-0.10/libdhcp6client/client6_addr.c.libdhcp6client 2006-10-31 12:07:19.000000000 -0500
-+++ dhcp-0.10/libdhcp6client/client6_addr.c 2006-10-31 12:07:24.000000000 -0500
+--- dhcp-0.10/client6_addr.c.libdhcp6client 2007-02-08 22:41:35.000000000 -0500
++++ dhcp-0.10/client6_addr.c 2007-02-08 22:41:35.000000000 -0500
@@ -56,6 +56,10 @@
#include "timer.h"
#include "lease.h"
@@ -23,16 +11,7 @@
static int dhcp6_update_lease __P((struct dhcp6_addr *, struct dhcp6_lease *));
static int dhcp6_add_lease __P((struct dhcp6_addr *));
struct dhcp6_lease *dhcp6_find_lease __P((struct dhcp6_iaidaddr *,
-@@ -220,7 +224,7 @@
- sp->iaidaddr = &client6_iaidaddr;
- time(&sp->start_date);
- sp->state = ACTIVE;
-- if (write_lease(sp, client6_lease_file) != 0) {
-+ if (client6_lease_file && (write_6_lease(sp, client6_lease_file) != 0)) {
- dprintf(LOG_ERR, "%s" "failed to write a new lease address %s to lease file",
- FNAME, in6addr2str(&sp->lease_addr.addr, 0));
- if (sp->timer)
-@@ -231,14 +235,24 @@
+@@ -231,14 +235,23 @@
if (sp->lease_addr.type == IAPD) {
dprintf(LOG_INFO, "request prefix is %s/%d",
in6addr2str(&sp->lease_addr.addr, 0), sp->lease_addr.plen);
@@ -40,107 +19,69 @@
- dprintf(LOG_ERR, "%s" "adding address failed: %s",
- FNAME, in6addr2str(&addr->addr, 0));
- if (sp->timer)
-+ } else
-+#ifdef LIBDHCP
-+ if ( libdhcp_control
-+ &&(libdhcp_control->capability & DHCP_CONFIGURE_ADDRESSES)
-+ )
-+ {
-+#endif
-+ if (client6_ifaddrconf(IFADDRCONF_ADD, addr) != 0) {
-+ dprintf(LOG_ERR, "%s" "adding address failed: %s",
-+ FNAME, in6addr2str(&addr->addr, 0));
-+ if (sp->timer)
- dhcp6_remove_timer(sp->timer);
+- dhcp6_remove_timer(sp->timer);
- free(sp);
- return (-1);
-- }
-+ free(sp);
-+ return (-1);
-+ }
+#ifdef LIBDHCP
++ } else if (libdhcp_control && (libdhcp_control->capability & DHCP_CONFIGURE_ADDRESSES)) {
++#else
++ } else
++#endif
++ if (client6_ifaddrconf(IFADDRCONF_ADD, addr) != 0) {
++ dprintf(LOG_ERR, "%s" "adding address failed: %s",
++ FNAME, in6addr2str(&addr->addr, 0));
++ if (sp->timer)
++ dhcp6_remove_timer(sp->timer);
++ free(sp);
++ return (-1);
+ }
++#ifdef LIBDHCP
+ }
+#endif
++
TAILQ_INSERT_TAIL(&client6_iaidaddr.lease_list, sp, link);
/* for infinite lifetime don't do any timer */
if (sp->lease_addr.validlifetime == DHCP6_DURATITION_INFINITE ||
-@@ -285,7 +299,12 @@
+@@ -285,6 +298,9 @@
dprintf(LOG_DEBUG, "%s" "removing address %s", FNAME,
in6addr2str(&sp->lease_addr.addr, 0));
sp->state = INVALID;
-- if (write_lease(sp, client6_lease_file) != 0) {
+#ifdef LIBDHCP
-+ if ( libdhcp_control
-+ &&(libdhcp_control->capability & DHCP_USE_LEASE_DATABASE)
-+ )
++ if (libdhcp_control && (libdhcp_control->capability & DHCP_USE_LEASE_DATABASE))
+#endif
-+ if (write_6_lease(sp, client6_lease_file) != 0) {
+ if (write_lease(sp, client6_lease_file) != 0) {
dprintf(LOG_INFO, "%s"
"failed to write removed lease address %s to lease file",
- FNAME, in6addr2str(&sp->lease_addr.addr, 0));
-@@ -297,10 +316,17 @@
+@@ -296,10 +312,13 @@
+ dprintf(LOG_INFO, "request prefix is %s/%d",
in6addr2str(&sp->lease_addr.addr, 0), sp->lease_addr.plen);
/* XXX: remove from the update prefix list */
-
+-
- } else if (client6_ifaddrconf(IFADDRCONF_REMOVE, &sp->lease_addr) != 0) {
+- dprintf(LOG_INFO, "%s" "removing address %s failed",
+- FNAME, in6addr2str(&sp->lease_addr.addr, 0));
+ } else
+#ifdef LIBDHCP
-+ if ( libdhcp_control
-+ &&(libdhcp_control->capability & DHCP_CONFIGURE_ADDRESSES)
-+ )
++ if (libdhcp_control && (libdhcp_control->capability & DHCP_CONFIGURE_ADDRESSES))
+#endif
-+
-+ if (client6_ifaddrconf(IFADDRCONF_REMOVE, &sp->lease_addr) != 0) {
- dprintf(LOG_INFO, "%s" "removing address %s failed",
- FNAME, in6addr2str(&sp->lease_addr.addr, 0));
-- }
-+ }
++ if (client6_ifaddrconf(IFADDRCONF_REMOVE, &sp->lease_addr) != 0) {
++ dprintf(LOG_INFO, "%s" "removing address %s failed",
++ FNAME, in6addr2str(&sp->lease_addr.addr, 0));
+ }
/* remove expired timer for this lease. */
if (sp->timer)
- dhcp6_remove_timer(sp->timer);
-@@ -453,7 +479,12 @@
+@@ -453,6 +472,9 @@
memcpy(&sp->lease_addr, addr, sizeof(sp->lease_addr));
sp->state = ACTIVE;
time(&sp->start_date);
-- if (write_lease(sp, client6_lease_file) != 0) {
+#ifdef LIBDHCP
-+ if ( libdhcp_control
-+ &&(libdhcp_control->capability & DHCP_USE_LEASE_DATABASE)
-+ )
++ if (libdhcp_control && (libdhcp_control->capability & DHCP_USE_LEASE_DATABASE))
+#endif
-+ if (write_6_lease(sp, client6_lease_file) != 0) {
+ if (write_lease(sp, client6_lease_file) != 0) {
dprintf(LOG_ERR, "%s"
"failed to write an updated lease address %s to lease file",
- FNAME, in6addr2str(&sp->lease_addr.addr, 0));
-@@ -677,7 +708,7 @@
- return (-1);
- }
-
-- dprintf(LOG_DEBUG, "%s" "%s an address %s on %s", FNAME, cmdstr,
-+ dprintf(LOG_INFO, "%s" "%s an address %s on %s", FNAME, cmdstr,
- in6addr2str(&ifaddr->addr, 0), ifp->ifname);
- close(s);
- return (0);
-@@ -707,7 +738,7 @@
- create_iaid(struct iaid_table *iaidtab, int num_device)
- {
- struct iaid_table *temp = iaidtab;
-- struct ifaddrs *ifa=0L, *ifap=0L;
-+ struct ifaddrs *ifap=0L,*ifa=0L;
- int i;
-
- if ( getifaddrs( &ifap ) != 0 )
-@@ -716,7 +747,7 @@
- return -1;
- }
-
-- for (i=0, ifa = ifap;
-+ for (i=0, ifa=ifap;
- (ifa != 0L) && ( i < MAX_DEVICE );
- i++, ifa = ifa->ifa_next
- )
---- dhcp-0.10/libdhcp6client/dhcp6c.c.libdhcp6client 2006-10-31 12:07:19.000000000 -0500
-+++ dhcp-0.10/libdhcp6client/dhcp6c.c 2006-10-31 12:07:24.000000000 -0500
+--- dhcp-0.10/dhcp6c.c.libdhcp6client 2007-02-08 22:41:35.000000000 -0500
++++ dhcp-0.10/dhcp6c.c 2007-02-08 22:42:05.000000000 -0500
@@ -73,6 +73,9 @@
#include "common.h"
#include "timer.h"
@@ -151,20 +92,17 @@
static int debug = 0;
static u_long sig_flags = 0;
-@@ -103,9 +106,9 @@
-
- #define CLIENT6_INFO_REQ 0x10
-
--int insock; /* inbound udp port */
--int outsock; /* outbound udp port */
--int nlsock;
-+int insock = -1; /* inbound udp port */
-+int outsock= -1; /* outbound udp port */
[...1791 lines suppressed...]
- dprintf(LOG_NOTICE, "%s" "failed to open DUID file: %s",
- FNAME, idfile);
-@@ -776,6 +787,9 @@
- }
-
- /* save the (new) ID to the file for next time */
-+#ifdef LIBDHCP
-+ if ( libdhcp_control && (libdhcp_control->capability & DHCP_USE_LEASE_DATABASE))
-+#endif
- if (!fp) {
- if ((fp = fopen(idfile, "w+")) == NULL) {
- dprintf(LOG_ERR, "%s"
-@@ -823,8 +837,13 @@
- return -1;
-
- strcpy(if_hwaddr.ifr_name, ifname);
-+ dprintf(LOG_DEBUG,"gethwid: ioctl SIOCGIFHWADDR");
- if (ioctl(skfd, SIOCGIFHWADDR, &if_hwaddr) < 0)
-+ {
-+ close(skfd);
- return -1;
-+ }
-+ close(skfd);
- /* only support Ethernet */
- switch (if_hwaddr.ifr_hwaddr.sa_family) {
- case ARPHRD_ETHER:
-@@ -940,7 +959,7 @@
- cp = (char *)(p + 1);
- np = (struct dhcp6opt *)(cp + optlen);
-
-- dprintf(LOG_DEBUG, "%s" "get DHCP option %s, len %d",
-+ dprintf(LOG_INFO, "%s" "get DHCP option %s, len %d",
- FNAME, dhcp6optstr(opt), optlen);
-
- /* option length field overrun */
-@@ -1085,7 +1104,7 @@
- ntohl(*(u_int32_t *)(cp + sizeof(u_int32_t)));
- optinfo->iaidinfo.rebindtime =
- ntohl(*(u_int32_t *)(cp + 2 * sizeof(u_int32_t)));
-- dprintf(LOG_DEBUG, "get option iaid is %u, renewtime %u, "
-+ dprintf(LOG_INFO, "get option iaid is %u, renewtime %u, "
- "rebindtime %u", optinfo->iaidinfo.iaid,
- optinfo->iaidinfo.renewtime, optinfo->iaidinfo.rebindtime);
- if (get_assigned_ipv6addrs(cp + 3 * sizeof(u_int32_t),
-@@ -1189,7 +1208,7 @@
- opt = ntohs(opth.dh6opt_type);
- cp = p + sizeof(opth);
- np = cp + optlen;
-- dprintf(LOG_DEBUG, " IA address option: %s, "
-+ dprintf(LOG_INFO, " IA address option: %s, "
- "len %d", dhcp6optstr(opt), optlen);
-
- if (np > ep) {
-@@ -1219,7 +1238,7 @@
- }
- break;
- case DH6OPT_IADDR:
-- if (optlen < sizeof(ai) - sizeof(u_int32_t))
-+ if (optlen < sizeof(ai)- sizeof(u_int32_t))
- goto malformed;
- memcpy(&ai, p, sizeof(ai));
- /* copy the information into internal format */
-@@ -2028,8 +2047,16 @@
- va_list ap;
- char logbuf[LINE_MAX];
-
-+#if LIBDHCP
-+ va_start(ap, fmt);
-+ if ( libdhcp_control && libdhcp_control->eh )
-+ libdhcp_control->eh(libdhcp_control, level, fmt, ap);
-+ va_end(ap);
-+ return;
-+#endif
- va_start(ap, fmt);
- vsnprintf(logbuf, sizeof(logbuf), fmt, ap);
-+ va_end(ap);
-
- if (foreground && debug_thresh >= level) {
- time_t now;
---- dhcp-0.10/libdhcp6client/dhcp6.h.libdhcp6client 2006-10-31 12:07:19.000000000 -0500
-+++ dhcp-0.10/libdhcp6client/dhcp6.h 2006-10-31 12:07:24.000000000 -0500
-@@ -116,9 +116,24 @@
-
- typedef enum { IANA, IATA, IAPD} iatype_t;
-
--typedef enum { ACTIVE, RENEW,
-+#ifdef LIBDHCP
-+typedef enum { DHCP6_ACTIVE=1, DHCP6_RENEW,
-+ DHCP6_REBIND, DHCP6_EXPIRED,
-+ DHCP6_INVALID } state_t;
-+
-+#define ACTIVE DHCP6_ACTIVE
-+#define RENEW DHCP6_RENEW
-+#define REBIND DHCP6_REBIND
-+#define EXPIRED DHCP6_EXPIRED
-+#define INVALID DHCP6_INVALID
-+#include <libdhcp_control.h>
-+extern LIBDHCP_Control *libdhcp_control;
-+#include <dhc6_alloc.h>
-+#else
-+typedef enum { ACTIVE=1, RENEW,
- REBIND, EXPIRED,
- INVALID } state_t;
-+#endif
- /* Internal data structure */
-
- struct duid {
---- /dev/null 2006-10-31 10:23:48.419497130 -0500
-+++ dhcp-0.10/libdhcp6client/dhcp6client.h 2006-10-31 12:07:24.000000000 -0500
-@@ -0,0 +1,22 @@
+--- /dev/null 2007-02-06 10:40:24.955607220 -0500
++++ dhcp-0.10/libdhcp6client/dhcp6client.h 2007-02-08 22:41:35.000000000 -0500
+@@ -0,0 +1,25 @@
+/* dhcp6client.h
+ *
+ * Interface to the DHCPv6 client libdhcp6client library.
@@ -1456,7 +1149,81 @@
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
-+struct libdhcp_control_s; /* include libdhcp_control.h or libdhcp.h for this */
+
-+extern int dhcpv6_client( struct libdhcp_control_s *dhc_ctl, int argc, char **argv, char **envp);
++/* include libdhcp_control.h or libdhcp.h for this */
++struct libdhcp_control_s;
++
+/* the DHCPv6 client main() function */
++extern int dhcpv6_client(struct libdhcp_control_s *dhc_ctl,
++ int argc, char **argv, char **envp);
+--- /dev/null 2007-02-06 10:40:24.955607220 -0500
++++ dhcp-0.10/libdhcp6client/Makefile 2007-02-08 22:41:35.000000000 -0500
+@@ -0,0 +1,68 @@
++#
++# Makefile for libdhcp6client
++# dcantrell at redhat.com
++#
++
++include ../Makefile.inc
++
++# Version of dhcpv6
++VER = 0.10
++
++PROGS = libdhcp6client.a libdhcp6client-$(VER).so.0
++
++# Source files
++SRCS = dhcp6c.c common.c config.c timer.c client6_addr.c hash.c \
++ lease.c netlink.c lease_token.c client6_parse.c client6_token.c \
++ dad_token.c ra_token.c resolv_token.c radvd_token.c strlcpy.c \
++ dhc6_alloc.c
++OBJS = $(SRCS:.c=.o)
++
++# Files to link so that debuginfo is generated correctly
++LINKS = client6_parse.y client6_token.l dad_token.l lease_token.l lex.cpyy.c \
++ lex.ifyy.c lex.lyy.c lex.rayy.c lex.rdyy.c lex.rvyy.c ra_token.l \
++ radvd_token.l resolv_token.l y.tab.c y.tab.h
++
++CFLAGS += -I. -I.. -DLIBDHCP
++
++all: links $(PROGS)
++
++links:
++ @for f in $(LINKS) ; do \
++ if [ ! -r $$f ]; then \
++ ln ../$$f $$f ; \
++ fi ; \
++ done
++
++$(SRCS):
++ @if [ ! -r $@ ]; then \
++ if [ -r ../$@ ]; then \
++ ln ../$@ $@ ; \
++ fi ; \
++ fi
++
++%.o: %.c
++ $(CC) $(CFLAGS) -c -o $@ $<
++
++libdhcp6client.a: $(OBJS)
++ $(AR) crus $@ $(OBJS)
++
++libdhcp6client-$(VER).so.0: $(OBJS)
++ $(CC) -shared -o $@ -Wl,-soname,$@ $(OBJS) $(LIBS)
++
++install: $(PROGS)
++ $(INSTALL) -m 0755 -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp6client-$(VER).so.0 $(DESTDIR)$(LIBDIR)/libdhcp6client-$(VER).so.0
++ $(INSTALL) -m 0644 -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp6client.a $(DESTDIR)$(LIBDIR)/libdhcp6client.a
++ mkdir -p $(DESTDIR)$(INCLUDEDIR)/dhcp6client/dhcpv6
++ $(INSTALL) -m 644 -o $(INSTALL_USER) -g $(INSTALL_GROUP) dhcp6client.h $(DESTDIR)$(INCLUDEDIR)/dhcp6client/dhcp6client.h
++ $(INSTALL) -m 644 -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp_control.h $(DESTDIR)$(INCLUDEDIR)/dhcp6client/libdhcp_control.h
++ $(INSTALL) -m 644 -o $(INSTALL_USER) -g $(INSTALL_GROUP) dhc6_alloc.h $(DESTDIR)$(INCLUDEDIR)/dhcp6client/dhcpv6/dhc6_alloc.h
++ for header in common.h config.h cp.tab.h dhcp6.h hash.h lease.h queue.h timer.h ; do \
++ $(INSTALL) -m 644 -o $(INSTALL_USER) -g $(INSTALL_GROUP) ../$$header $(DESTDIR)$(INCLUDEDIR)/dhcp6client/dhcpv6/$$header ; \
++ done
++ $(INSTALL) -m 644 -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) ../libdhcp6client.pc $(DESTDIR)$(PKGCFGDIR)/libdhcp6client.pc
++ ( cd $(DESTDIR)$(LIBDIR) ; rm -f libdhcp6client.so )
++ ( cd $(DESTDIR)$(LIBDIR) ; ln -sf libdhcp6client-$(VER).so.0 libdhcp6client.so )
++
++clean:
++ -rm -f libdhcp6client.a libdhcp6client-$(VER).so.0
++ -rm -f $(OBJS)
dhcpv6-0.10-redhat.patch:
Makefile.in | 85 +++++------
Makefile.inc.in | 32 ++++
ReadMe | 10 -
client6_addr.c | 58 ++++---
client6_parse.y | 48 ++++--
client6_token.l | 9 +
common.c | 128 ++++++++++++----
common.h | 3
config.c | 94 +++++++++---
config.h | 39 +++--
configure.in | 9 -
dad_token.l | 12 +
dhcp6.h | 35 ++++
dhcp6c.c | 132 ++++++++++++-----
dhcp6relay.c | 6
dhcp6s.c | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
dhcp6s.sh | 30 ++-
dhcp6s.sysconfig | 4
ifaddrs.c | 2
lease.c | 6
lease_token.l | 12 +
netlink.c | 27 +--
ra_token.l | 11 +
radvd_token.l | 32 +++-
resolv_token.l | 57 ++++++-
server6_addr.c | 23 +--
server6_conf.c | 4
server6_conf.h | 1
server6_parse.y | 19 ++
server6_token.l | 8 -
timer.c | 2
31 files changed, 1061 insertions(+), 292 deletions(-)
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.4 -r 1.5 dhcpv6-0.10-redhat.patch
Index: dhcpv6-0.10-redhat.patch
===================================================================
RCS file: /cvs/dist/rpms/dhcpv6/devel/dhcpv6-0.10-redhat.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- dhcpv6-0.10-redhat.patch 27 Nov 2006 19:56:59 -0000 1.4
+++ dhcpv6-0.10-redhat.patch 9 Feb 2007 03:53:55 -0000 1.5
@@ -1,36 +1,44 @@
--- dhcp-0.10/Makefile.in.rh 2004-03-04 18:31:24.000000000 -0500
-+++ dhcp-0.10/Makefile.in 2006-11-27 14:55:32.000000000 -0500
-@@ -10,12 +10,14 @@
- CC= @CC@
- YACC= @YACC@
- LEX= @LEX@
++++ dhcp-0.10/Makefile.in 2007-02-08 22:33:39.000000000 -0500
+@@ -2,34 +2,9 @@
+ # $Id$
+ #
+
+-srcdir= @srcdir@
+-CFLAGS= @CFLAGS@ @DEFS@
+-LDFLAGS=@LDFLAGS@
+-LIBOBJS=@LIBOBJS@
+-LIBS= @LIBS@
+-CC= @CC@
+-YACC= @YACC@
+-LEX= @LEX@
-TARGET= dhcp6c dhcp6s
-DESTDIR=
-+TARGET= dhcp6c dhcp6s dhcp6r libdhcp6client.so.1 libdhcp6client.a
-+DESTDIR ?=
-
- INSTALL=@INSTALL@
- INSTALL_PROGRAM=@INSTALL_PROGRAM@
- INSTALL_DATA=@INSTALL_DATA@
-+INSTALL_USER ?= root
-+INSTALL_GROUP ?= root
- prefix= @prefix@
- exec_prefix= @exec_prefix@
- bindir= @bindir@
-@@ -25,8 +27,11 @@
- etc=/etc
- sysconfigdir=/etc/sysconfig
- CHKCONFIG=/sbin/chkconfig
-+LIBDIR ?= /usr/lib
-+INCLUDEDIR ?= /usr/include
-+PKGCFGDIR ?= /usr/lib/pkgconfig
-
+-
+-INSTALL=@INSTALL@
+-INSTALL_PROGRAM=@INSTALL_PROGRAM@
+-INSTALL_DATA=@INSTALL_DATA@
+-prefix= @prefix@
+-exec_prefix= @exec_prefix@
+-bindir= @bindir@
+-sbindir=@sbindir@
+-mandir= @mandir@
+-initdir=/etc/rc.d/init.d
+-etc=/etc
+-sysconfigdir=/etc/sysconfig
+-CHKCONFIG=/sbin/chkconfig
+-
-CFLAGS+= -DCONF_DH6OPT_DNS_RESOLVERS=@dhcpopt_dns_resolvers@ \
-+CFLAGS+= -Wall -DCONF_DH6OPT_DNS_RESOLVERS=@dhcpopt_dns_resolvers@ \
- -DCONF_DH6OPT_DOMAIN_LIST=@dhcpopt_domain_list@ \
- -DCONF_DH6OPT_IA_PD=@dhcpopt_pdel@ \
- -DCONF_DH6OPT_IAPREFIX=@dhcpopt_pinfo@
-@@ -41,16 +46,24 @@
+- -DCONF_DH6OPT_DOMAIN_LIST=@dhcpopt_domain_list@ \
+- -DCONF_DH6OPT_IA_PD=@dhcpopt_pdel@ \
+- -DCONF_DH6OPT_IAPREFIX=@dhcpopt_pinfo@
++include Makefile.inc
++
++TARGET= dhcp6c dhcp6s dhcp6r
+
+ COMMONGENSRCS=lease_token.c
+ CLIENTGENSRCS=client6_parse.c client6_token.c dad_token.c ra_token.c \
+@@ -41,67 +16,85 @@
SERVOBJS= dhcp6s.o common.o timer.o hash.o lease.o \
server6_conf.o server6_addr.o \
$(SERVERGENSRCS:%.c=%.o) $(COMMONGENSRCS:%.c=%.o)
@@ -54,26 +62,53 @@
+
dad_token.c: dad_token.l
$(LEX) -Pifyy dad_token.l
- mv lex.ifyy.c $@
-@@ -89,19 +102,51 @@
+- mv lex.ifyy.c $@
++ cp lex.ifyy.c $@
+
+ ra_token.c: ra_token.l
+ $(LEX) -Prayy ra_token.l
+- mv lex.rayy.c $@
++ cp lex.rayy.c $@
+
+ resolv_token.c: resolv_token.l
+ $(LEX) -Prvyy resolv_token.l
+- mv lex.rvyy.c $@
++ cp lex.rvyy.c $@
+
+ radvd_token.c: radvd_token.l
+ $(LEX) -Prdyy radvd_token.l
+- mv lex.rdyy.c $@
++ cp lex.rdyy.c $@
+
+ client6_parse.c cp.tab.h: client6_parse.y
+ $(YACC) -d -p cpyy client6_parse.y
+- mv y.tab.h cp.tab.h
+- mv y.tab.c client6_parse.c
++ cp y.tab.h cp.tab.h
++ cp y.tab.c client6_parse.c
+
+ client6_token.c: client6_token.l
+ $(LEX) -Pcpyy client6_token.l
+- mv lex.cpyy.c $@
++ cp lex.cpyy.c $@
+
+ lease_token.c: lease_token.l
+ $(LEX) -Plyy lease_token.l
+- mv lex.lyy.c $@
++ cp lex.lyy.c $@
+
+ server6_parse.c sf.tab.h: server6_parse.y
+ $(YACC) -d -p sfyy server6_parse.y
+- mv y.tab.h sf.tab.h
+- mv y.tab.c server6_parse.c
++ cp y.tab.h sf.tab.h
++ cp y.tab.c server6_parse.c
+
+ server6_token.c: server6_token.l sf.tab.h
$(LEX) -Psfyy server6_token.l
- mv lex.sfyy.c $@
+- mv lex.sfyy.c $@
++ cp lex.sfyy.c $@
-+libdhcp6client/.: $(CLIENTOBJS:%.o=%.c)
-+ mkdir -p libdhcp6client/
-+ cp -fa $(CLIENTOBJS:%.o=%.c) $(CLIENTHDRS) $(COMMONGENSRCS:%.c=%.l) $(subst client6_parse.l,client6_parse.y,$(CLIENTGENSRCS:%.c=%.l)) strlcat.c strlcpy.c libdhcp6client/
-+ cp -fa Makefile libdhcp6client/
-+
-+libdhcp6client/%.o: $(@:%.o:%.c) $(patsubst %,libdhcp6client/%,$(CLIENTHDRS))
-+ $(MAKE) -C libdhcp6client $*.o CFLAGS="$(subst -fPIE,-fPIC,$(subst -O2,-Os,$(CFLAGS))) -DLIBDHCP"
-+
-+libdhcp6client.a: libdhcp6client/. $(patsubst %,libdhcp6client/%,$(CLIENTOBJS) strlcpy.o strlcat.o dhc6_alloc.o)
-+ $(AR) cruv $@ $(patsubst %,libdhcp6client/%,$(CLIENTOBJS) strlcpy.o strlcat.o dhc6_alloc.o)
-+
-+libdhcp6client.so.1: libdhcp6client/. $(patsubst %,libdhcp6client/%,$(CLIENTOBJS) strlcpy.o strlcat.o dhc6_alloc.o)
-+ $(CC) -shared -o $@ -Wl,-soname,$@ $(patsubst %,libdhcp6client/%,$(CLIENTOBJS) strlcpy.o strlcat.o dhc6_alloc.o) -lresolv -lcrypto
-+ /bin/ln -sf $@ $(@:%=%.1)
-+
install::
$(INSTALL) -d $(DESTDIR)$(sbindir)
- $(INSTALL_PROGRAM) -s -o bin -g bin $(TARGET) $(DESTDIR)$(sbindir)
@@ -97,13 +132,6 @@
+ $(INSTALL) -d $(DESTDIR)/etc/sysconfig
+ $(INSTALL_DATA) -o $(INSTALL_USER) -g $(INSTALL_GROUP) dhcp6s.sysconfig $(DESTDIR)/etc/sysconfig/dhcp6s
+ $(INSTALL_DATA) -o $(INSTALL_USER) -g $(INSTALL_GROUP) dhcp6r.sysconfig $(DESTDIR)/etc/sysconfig/dhcp6r
-+ $(INSTALL) -m 754 -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp6client.so.1 $(DESTDIR)/$(LIBDIR)/libdhcp6client.so.1
-+ /bin/ln -sf libdhcp6client.so.1 $(DESTDIR)/$(LIBDIR)/libdhcp6client.so
-+ $(INSTALL) -m 644 -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp6client.a $(DESTDIR)/$(LIBDIR)/libdhcp6client.a
-+ mkdir -p $(DESTDIR)/$(INCLUDEDIR)/dhcp6client/dhcpv6
-+ $(INSTALL) -m 644 -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp6client/*.h $(DESTDIR)/$(INCLUDEDIR)/dhcp6client/dhcpv6
-+ mv $(DESTDIR)/$(INCLUDEDIR)/dhcp6client/dhcpv6/{libdhcp_control.h,dhcp6client.h} $(DESTDIR)/$(INCLUDEDIR)/dhcp6client
-+ $(INSTALL) -m 644 -D -o $(INSTALL_USER) -g $(INSTALL_GROUP) libdhcp6client.pc $(DESTDIR)/$(PKGCFGDIR)/libdhcp6client.pc
rh_install:: install
$(INSTALL) -d $(initdir)
@@ -115,7 +143,7 @@
$(CHKCONFIG) --add dhcp6c
--- dhcp-0.10/ReadMe.rh 2003-05-28 17:18:22.000000000 -0400
-+++ dhcp-0.10/ReadMe 2006-11-27 14:55:32.000000000 -0500
++++ dhcp-0.10/ReadMe 2007-02-08 22:32:42.000000000 -0500
@@ -18,7 +18,8 @@
This implementation supports IPv6 address assignment to the clients.
@@ -153,7 +181,7 @@
D. INSTALLATTION:
--- dhcp-0.10/client6_addr.c.rh 2003-07-01 22:21:25.000000000 -0400
-+++ dhcp-0.10/client6_addr.c 2006-11-27 14:55:32.000000000 -0500
++++ dhcp-0.10/client6_addr.c 2007-02-08 22:32:42.000000000 -0500
@@ -47,8 +47,9 @@
#include <stdlib.h>
#include <unistd.h>
@@ -165,6 +193,15 @@
#include "dhcp6.h"
#include "config.h"
#include "common.h"
+@@ -70,7 +71,7 @@
+ extern struct dhcp6_timer *client6_timo __P((void *));
+ extern void client6_send __P((struct dhcp6_event *));
+ extern void free_servers __P((struct dhcp6_if *));
+-extern ssize_t gethwid __P((char *, int, const char *, u_int16_t *));
++extern ssize_t gethwid __P((unsigned char *, int, const char *, u_int16_t *));
+
+ extern int nlsock;
+ extern FILE *client6_lease_file;
@@ -109,7 +110,11 @@
[...5016 lines suppressed...]
u_int8_t allow_flags;
@@ -5992,8 +2635,8 @@
struct scopelist {
--- dhcp-0.10/server6_parse.y.rh 2004-02-04 19:10:31.000000000 -0500
-+++ dhcp-0.10/server6_parse.y 2006-11-27 14:55:32.000000000 -0500
-@@ -33,6 +33,7 @@
++++ dhcp-0.10/server6_parse.y 2007-02-08 22:32:42.000000000 -0500
+@@ -33,14 +33,17 @@
%{
@@ -6001,10 +2644,11 @@
#include <stdio.h>
#include <string.h>
#include <syslog.h>
-@@ -40,13 +41,16 @@
+ #include <errno.h>
++#include <netinet/in.h>
#include <sys/socket.h>
#include <net/if.h>
- #include <linux/ipv6.h>
+-#include <linux/ipv6.h>
-#include "queue.h"
+#include <malloc.h>
+#include <sys/queue.h>
@@ -6012,14 +2656,7 @@
#include "dhcp6.h"
#include "config.h"
#include "common.h"
- #include "server6_conf.h"
- #include "hash.h"
- #include "lease.h"
-+#include "htonl.h"
-
- extern int num_lines;
- extern char *sfyytext;
-@@ -104,6 +108,7 @@
+@@ -104,6 +107,7 @@
%token <str> IAID IAIDINFO
%token <str> INFO_ONLY
%token <str> TO
@@ -6027,7 +2664,7 @@
%token <str> BAD_TOKEN
%type <str> name
-@@ -267,7 +272,6 @@
+@@ -267,7 +271,6 @@
linkbody
:
| linkbody linkparams
@@ -6035,7 +2672,7 @@
;
linkparams
-@@ -277,6 +281,7 @@
+@@ -277,6 +280,7 @@
| hostdef
| groupdef
| confdecl
@@ -6043,7 +2680,7 @@
;
relaylist
-@@ -900,6 +905,15 @@
+@@ -900,6 +904,15 @@
dprintf(LOG_ERR, "%s" "bad server preference number", FNAME);
currentscope->scope->server_pref = $2;
}
@@ -6060,8 +2697,8 @@
number_or_infinity
--- dhcp-0.10/server6_token.l.rh 2003-07-16 15:09:53.000000000 -0400
-+++ dhcp-0.10/server6_token.l 2006-11-27 14:55:32.000000000 -0500
-@@ -42,8 +42,8 @@
++++ dhcp-0.10/server6_token.l 2007-02-08 22:32:42.000000000 -0500
+@@ -42,14 +42,19 @@
#include <sys/socket.h>
#include <arpa/inet.h>
#include <net/if.h>
@@ -6071,7 +2708,18 @@
#include "dhcp6.h"
#include "config.h"
#include "common.h"
-@@ -118,6 +118,7 @@
+ #include <server6_conf.h>
+ #include "sf.tab.h"
+
++#define YY_NO_UNPUT 1
++#define ECHO if (fwrite(yytext, yyleng, 1, yyout) != 1) { \
++ YY_FATAL_ERROR("error performing ECHO on yytext"); \
++ }
++
+ int num_lines = 1;
+ int sfyyerrorcount = 0;
+ int sfparse(char *filename);
+@@ -118,6 +123,7 @@
valid-life-time { return VALIDLIFETIME; }
prefer-life-time { return PREFERLIFETIME; }
server-preference { return PREFERENCE; }
@@ -6080,7 +2728,7 @@
to { return TO; }
infinity { return INFINITY; }
--- dhcp-0.10/timer.c.rh 2003-03-11 18:52:23.000000000 -0500
-+++ dhcp-0.10/timer.c 2006-11-27 14:55:32.000000000 -0500
++++ dhcp-0.10/timer.c 2007-02-08 22:32:42.000000000 -0500
@@ -42,8 +42,8 @@
#if defined(__NetBSD__) || defined(__OpenBSD__)
#include <search.h>
@@ -6092,7 +2740,7 @@
#include "config.h"
#include "common.h"
--- dhcp-0.10/lease.c.rh 2004-03-03 15:11:16.000000000 -0500
-+++ dhcp-0.10/lease.c 2006-11-27 14:55:32.000000000 -0500
++++ dhcp-0.10/lease.c 2007-02-08 22:32:42.000000000 -0500
@@ -47,8 +47,8 @@
#include <net/if.h>
#include <linux/sockios.h>
@@ -6103,8 +2751,19 @@
#include "dhcp6.h"
#include "hash.h"
#include "config.h"
+@@ -354,8 +354,8 @@
+ get_linklocal(const char *ifname,
+ struct in6_addr *linklocal)
+ {
+- struct ifaddrs *ifa, *ifap;
+- struct sockaddr *sd;
++ struct ifaddrs *ifa = 0, *ifap = 0;
++ struct sockaddr *sd = 0;
+ if (getifaddrs(&ifap) < 0) {
+ dprintf(LOG_ERR, "getifaddrs error");
+ return -1;
--- dhcp-0.10/lease_token.l.rh 2004-02-04 18:29:24.000000000 -0500
-+++ dhcp-0.10/lease_token.l 2006-11-27 14:55:32.000000000 -0500
++++ dhcp-0.10/lease_token.l 2007-02-08 22:32:42.000000000 -0500
@@ -44,10 +44,10 @@
#include <errno.h>
#include <sys/socket.h>
@@ -6118,3 +2777,60 @@
#include "dhcp6.h"
#include "config.h"
#include "common.h"
+@@ -74,6 +74,11 @@
+ (a & LEASE_IAID_FLAG) && (a & LEASE_RNTIME_FLAG) && \
+ (a & LEASE_RBTIME_FLAG) && (a & LEASE_DUID_FLAG))
+
++#define YY_NO_UNPUT 1
++#define ECHO if (fwrite(yytext, yyleng, 1, yyout) != 1) { \
++ YY_FATAL_ERROR("error performing ECHO on yytext"); \
++ }
++
+ #define YYABORT(msg) dprintf(LOG_ERR, msg " %s lineno %d.", \
+ yytext, num_lines)
+
+@@ -241,6 +246,9 @@
+
+ fseek(file, 0, 0);
+ yyin = file;
++ yy_init = 1;
++ yy_start = 0;
++ yy_current_buffer = 0;
+ yylex();
+ return;
+ }
+--- /dev/null 2007-02-06 10:40:24.955607220 -0500
++++ dhcp-0.10/Makefile.inc.in 2007-02-08 22:32:42.000000000 -0500
+@@ -0,0 +1,32 @@
++srcdir= @srcdir@
++CFLAGS= -Werror -fno-strict-aliasing -fvisibility=hidden @CFLAGS@ @DEFS@
++LDFLAGS=@LDFLAGS@
++LIBOBJS=@LIBOBJS@
++LIBS= @LIBS@
++CC= @CC@
++YACC= @YACC@
++LEX= @LEX@
++DESTDIR ?=
++
++INSTALL=@INSTALL@
++INSTALL_PROGRAM=@INSTALL_PROGRAM@
++INSTALL_DATA=@INSTALL_DATA@
++INSTALL_USER ?= root
++INSTALL_GROUP ?= root
++prefix= @prefix@
++exec_prefix= @exec_prefix@
++bindir= @bindir@
++sbindir=@sbindir@
++mandir= @mandir@
++initdir=/etc/rc.d/init.d
++etc=/etc
++sysconfigdir=/etc/sysconfig
++CHKCONFIG=/sbin/chkconfig
++LIBDIR ?= /usr/lib
++INCLUDEDIR ?= /usr/include
++PKGCFGDIR ?= /usr/lib/pkgconfig
++
++CFLAGS+= -Wall -DCONF_DH6OPT_DNS_RESOLVERS=@dhcpopt_dns_resolvers@ \
++ -DCONF_DH6OPT_DOMAIN_LIST=@dhcpopt_domain_list@ \
++ -DCONF_DH6OPT_IA_PD=@dhcpopt_pdel@ \
++ -DCONF_DH6OPT_IAPREFIX=@dhcpopt_pinfo@
Index: dhcpv6.spec
===================================================================
RCS file: /cvs/dist/rpms/dhcpv6/devel/dhcpv6.spec,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- dhcpv6.spec 6 Feb 2007 20:14:25 -0000 1.49
+++ dhcpv6.spec 9 Feb 2007 03:53:55 -0000 1.50
@@ -1,7 +1,7 @@
Summary: DHCPv6 - DHCP server and client for IPv6
Name: dhcpv6
Version: 0.10
-Release: 37%{?dist}
+Release: 38%{?dist}
License: GPL
Group: System Environment/Daemons
URL: http://dhcpv6.sourceforge.net/
@@ -10,11 +10,13 @@
Source2: rfc3315.txt
Patch0: dhcpv6-0.10-redhat.patch
-Patch1: dhcpv6-0.10-lsb.patch
+Patch1: dhcpv6-0.10-relay.patch
+Patch2: dhcpv6-0.10-man.patch
+
Patch99: dhcpv6-0.10-libdhcp6client.patch
Prereq: /sbin/chkconfig, /sbin/service
-BuildRoot: %{_tmppath}/%{name}-%{version}-root
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: flex, bison, openssl-devel, autoconf, automake, libtool
%description
@@ -49,7 +51,7 @@
library for invocation by other programs.
%package -n libdhcp6client-devel
-Summary: Header files for development with the DHCPv6 client library.
+Summary: Header files for development with the DHCPv6 client library
Group: Development/Libraries
%description -n libdhcp6client-devel
@@ -58,31 +60,34 @@
%prep
%setup -q -n dhcp-%{version}
%patch0 -p1 -b .rh
-%patch1 -p1 -b .lsb
+%patch1 -p1 -b .relay
+%patch2 -p1 -b .man
+
+%patch99 -p1 -b .libdhcp6client
+
+cp -fp %{SOURCE2} docs
# more modern headers are available in /usr/include
rm -f ifaddrs.h queue.h
-
autoconf
-# configure here because we need to patch libdhcp6client subdir
-export LDFLAGS='-pie -Wl,-z,relro,-z,now,-z,nodlopen,-z,noexecstack'
-export CFLAGS="$RPM_OPT_FLAGS -fPIE -g -Wall"
-%configure --prefix=/ --mandir=%{_mandir}
-make libdhcp6client/.
-%patch99 -p1 -b .libdhcp6client
-
%build
-make
-cp -fp %{SOURCE2} docs
+%configure --prefix=/ --mandir=%{_mandir}
+%{__make} %{?_smp_mflags}
+%{__make} -C libdhcp6client %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
sed 's/@DHCPV6_VERSION@/'%{version}'/' < %{SOURCE1} > libdhcp6client.pc
-make install DESTDIR=$RPM_BUILD_ROOT \
- LIBDIR=%{_libdir} \
- PKGCFGDIR=%{_libdir}/pkgconfig \
- INSTALL_USER=`id -nu` INSTALL_GROUP=`id -gn`
+%{__make} install DESTDIR=$RPM_BUILD_ROOT \
+ LIBDIR=%{_libdir} \
+ PKGCFGDIR=%{_libdir}/pkgconfig \
+ INSTALL_USER=`id -nu` INSTALL_GROUP=`id -gn`
+%{__make} -C libdhcp6client install DESTDIR=$RPM_BUILD_ROOT \
+ LIBDIR=%{_libdir} \
+ PKGCFGDIR=%{_libdir}/pkgconfig \
+ INSTALL_USER=`id -nu` INSTALL_GROUP=`id -gn`
+
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/dhcpv6
%post
@@ -132,7 +137,7 @@
%files -n libdhcp6client
%defattr(0755,root,root,0755)
-%{_libdir}/libdhcp6client.so.*
+%{_libdir}/libdhcp6client-%{version}.so.*
%files -n libdhcp6client-devel
%defattr(0644,root,root,0755)
@@ -143,6 +148,22 @@
%{_libdir}/libdhcp6client.a
%changelog
+* Thu Feb 08 2007 David Cantrell <dcantrell at redhat.com> - 0.10-38
+- Fix up libdhcp6client patch so it doesn't copy the source then patch it
+- Revert LOG_INFO changes back to LOG_DEBUG
+- Remove the NetBSD strlcat() and strlcpy() calls and use glibc functions
+- Move non-libdhcp6client patches to the main bugfix patch
+- Remove the extra noise sent to the logging function
+- Correct warnings so it compiles with -Werror
+- Remove local htonl.h header, just use the /usr/include definitions
+- Include <netinet/in.h> and remove inclusion of <linux/ipv6.h> and "htonl.h"
+- Move dhcp6r source to its own patch file
+- Put man page patches in to a single patch file
+- Remove periods from the end of package summary lines (package review)
+- Use preferred BuildRoot (package review)
+- Only export the symbols we want in libdhcp6client (#216187)
+- Keep flex-generated files for the debuginfo package
+
* Tue Feb 06 2007 David Cantrell <dcantrell at redhat.com> - 0.10-37
- Add missing ';;' on line 72 of dhcp6r init script
--- dhcpv6-0.10-lsb.patch DELETED ---
More information about the fedora-cvs-commits
mailing list