remove files not related to busybox
This commit is contained in:
parent
6143c0719b
commit
e3412d8331
@ -1,13 +0,0 @@
|
||||
udhcp server/client package
|
||||
-----------------------
|
||||
|
||||
Russ Dill <Russ.Dill@asu.edu>
|
||||
Matthew Ramsay <matthewr@moreton.com.au>
|
||||
Chris Trew <christ@moreton.com.au>
|
||||
|
||||
Other Credits:
|
||||
--------------
|
||||
Moreton Bay (http://www.moretonbay.com/)
|
||||
Vladimir Oleynik <dzo@simtrea.ru> Size optimizations
|
||||
|
||||
|
@ -1,339 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, 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
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
@ -1,260 +0,0 @@
|
||||
0.9.9 (pending)
|
||||
+ Various other size optimizations (Vladimir)
|
||||
+ Change strerror(errno) to %m (Vladimir N. Oleynik <dzo@simtreas.ru>)
|
||||
+ Fixed a little endian problem in mton (Bastian Blank <waldi@debian.org>)
|
||||
+ Fixed a arpping alignment problem (Rui He <rhe@3eti.com>)
|
||||
+ Added sanity check for max_leases (udhcp bug #1285) (me)
|
||||
+ Finally got rid of the trailing space in enviromental vars (me)
|
||||
+ added an new enviromental variable: $mask. It contains the number
|
||||
of subnet bits for tools like ip route that require it.
|
||||
(Bastian Blank <waldi@debian.org>, me)
|
||||
|
||||
0.9.8 (021031)
|
||||
+ split up README files (me)
|
||||
+ use /dev/urandom to seed xid's (instead of time(0)) (me)
|
||||
+ fixed renew behavior (me)
|
||||
+ udhcp now fits nicely into busybox
|
||||
(Glenn McGrath <bug1@iinet.net.au> as well as myself)
|
||||
+ updated client manpage (me)
|
||||
+ both client and server now use sockets for signal handling,
|
||||
hopefully, this will be the last needed change in signal
|
||||
handling, I'm fairly certain all the possible races are now
|
||||
closed. (me)
|
||||
+ The server now restarts the auto_time timer when it receives
|
||||
a SIGUSR1 (write out config file). (me)
|
||||
+ Improve signal handling (David Poole)
|
||||
+ Fix to config file parsing (Matt Kraai)
|
||||
+ Fix load lease logic (me)
|
||||
+ Fix clear_lease logic (me)
|
||||
+ -h is now an alias for -H (udhcp bug #1253)
|
||||
+ Shorter timeout on not receiving offers (me)
|
||||
+ Improved signal behavior by client (me)
|
||||
+ Would never assign end address (Keith Smith <keith@ksmith.com>)
|
||||
+ Was improperly reporting yiaddr as siaddr (ben-udhcp@bdlow.net)
|
||||
udhcp bug#1256
|
||||
+ Fixed reading of client id (David Poole <davep@portsmith.com>)
|
||||
+ change sys_errlist[] to strerror() as it aparently doesn't exist
|
||||
(Erik Andersen <andersee@codepoet.org>)
|
||||
+ fixed get_raw_packet so it returns -2 on non fatal errors
|
||||
(Ted Lemon <Ted.Lemon@nominum.com>)
|
||||
+ Improved (hopefully) NAKing behavior (me)
|
||||
+ Added -b option (Jouni Malinen)
|
||||
+ Compute checksums correctly on big endian hosts
|
||||
(Jouni Malinen <jkmaline@cc.hut.fi>)
|
||||
|
||||
0.9.7 (020526)
|
||||
+ Use add_lease in read_leases, sanitizes leases more, and clears out exprired
|
||||
ones if there is no more room (me)
|
||||
+ Moved udhcpd.leases to /var/lib/misc/udhcpd.leases (Debian bug #147747)
|
||||
+ Change (obsolete) AF_INET in arping.c to PF_PACKET (Debian bug #127049)
|
||||
+ Added script hook for DHCPNAK (nak), as well as providing the message option
|
||||
(me)
|
||||
+ Generate the paramaters request list by seeing what options in options.c are
|
||||
ored with OPTION_REQ in options.c
|
||||
+ Fix dhcp renew forgetfullness on client (bug #1230)
|
||||
+ Fix dhcp release bug on client (bug #1231)
|
||||
+ Set option request list for DHCP renew (bug #1233)
|
||||
+ Set BOOTREQUEST/REPLY properly
|
||||
+ Change client-identifier field to popularly expected behavior (me)
|
||||
+ Only reopen port on errors (me)
|
||||
+ Change fork/close/setsid structures to daemon() (me)
|
||||
+ Allow user to specify udhcpd config file at run time (Steven, me)
|
||||
+ Write pidfile after changing it (Steven CTR Carr <Steven.CTR.Carr@tc.faa.gov>)
|
||||
+ Added env var docs to udhcpc man page (Matt)
|
||||
+ Standardized lowercase udhcp in documentation (me)
|
||||
+ Accept packets without a UDP checksum (me)
|
||||
+ Accept packets with extra garbage (me)
|
||||
+ Better error handling in files.c (me)
|
||||
+ Combined read_interface function to reduce COMBINED_BINARY size (me)
|
||||
+ Drop calc_length(), some servers choke on smaller packets (me)
|
||||
+ Try to clean some fat out (me)
|
||||
|
||||
0.9.6 (011001)
|
||||
+ Added bootp paramaters to server (me)
|
||||
+ Added bootp paramaters to client (me)
|
||||
+ Added vendor id to client (me)
|
||||
+ Better pidfile handling in client and server (me)
|
||||
+ Added man pages (Matt Kraai <kraai@alumni.carnegiemellon.edu>)
|
||||
|
||||
0.9.5 (010914)
|
||||
+ Fixed $HOME and $PATH env passing (me)
|
||||
+ Fixed client to only listen for raw packets on correct interface (me)
|
||||
+ added --quit,-q option to quit after a lease is obtained (me)
|
||||
+ Fixed 100% CPU utilization by client when interface is down (me)
|
||||
|
||||
0.9.4 (010827)
|
||||
+ Force broadcast to broken clients that request unicast (ie, MSFT 98)
|
||||
+ Make install rules (Adam J. Richter <adam@yggdrasil.com>)
|
||||
+ One scripts, instead of many (Adam)
|
||||
+ Removed script paramater info files (env vars only) (Adam)
|
||||
+ Controlling of forking behavior in client (Adam)
|
||||
+ General script.c/dhcpc.c cleanups (Adam)
|
||||
|
||||
0.9.3 (010820)
|
||||
+ Increased debugging verbosity (me)
|
||||
+ Cut trailing whitespace when reading config file (me)
|
||||
+ added hostname option to client (me)
|
||||
+ fixed a strncpy bug in script.c (me)
|
||||
+ fixed a leaky socket in dhcpc.c (me)
|
||||
+ fixed a leaky socket in dhcpd.c (me)
|
||||
|
||||
0.9.2 (010810)
|
||||
+ Added raw sockets to client (me)
|
||||
+ alignment fixes (Mark Huang)
|
||||
+ compiler warning fixes (Mark Huang)
|
||||
+ client now sends parameter list (Mark Huang/me)
|
||||
+ added ipttl option
|
||||
+ Does now not request broadcast packets
|
||||
|
||||
0.9.1 (010806)
|
||||
+ Added udhcpc client
|
||||
+ reorganized functions/files
|
||||
+ listening socket now only binds to one interface
|
||||
|
||||
0.9.0 (010720) Major rewrite, current changes, goals:
|
||||
+ should not segfault on bogus packets.
|
||||
+ Options can be read from sname and file fields.
|
||||
+ supports all DHCP messages (release, decline, inform).
|
||||
+ IP block is now specified by a range of IP's.
|
||||
+ Leases file now contains lease time (relative, or absolute).
|
||||
+ Just about any DHCP option is now supported.
|
||||
+ DNS entries are no longer read from resolv.conf
|
||||
+ Lease file can be written periodically when the process receives a SIGUSR1
|
||||
+ arpping should be supported on all arches.
|
||||
+ support for DHCP relays.
|
||||
+ DHCP messages can be unicast if the client requests it.
|
||||
+ many, many, many other things.
|
||||
|
||||
0.8.29 (000323)
|
||||
+ stable(?) release
|
||||
|
||||
|
||||
0.8.28 (000323)
|
||||
+ removed alarm as it was causing server to go down
|
||||
+ removed debugging
|
||||
+ break down dhcpd.c into manageable files
|
||||
|
||||
|
||||
0.8.27 (000221)
|
||||
+ OFFER also sends gateway/subnet (for picky dhcp clients)
|
||||
+ multiple DNS now handled from resolv.conf if available
|
||||
+ multiple WINS (from dhcpd.conf)
|
||||
|
||||
0.8.25 (000120)
|
||||
+ now compiles *and* runs on a generic linux system
|
||||
tested with a windows 98 client and the sample config
|
||||
files in the samples directory.
|
||||
|
||||
0.8.24 (000117)
|
||||
+ makeiplist tool has basic functionality in place
|
||||
+ new sample config files
|
||||
+ route add -host 255.255.255.255 dev eth0 added for generic linux
|
||||
|
||||
0.8.23 (000117)
|
||||
+ NETtel specific fix for ignoring dhcp requests on 2nd interface
|
||||
|
||||
0.8.22 (000113)
|
||||
+ minor changes to compile under a generic linux system
|
||||
+ minor config file location changes for a generic linux system
|
||||
+ makeiplist fixes.. still incomplete.. but etting closer
|
||||
|
||||
0.8.21 (000113)
|
||||
+ now sends the correct server ip instead of hardcoded value
|
||||
+ minor debugging fixes for critical messages
|
||||
|
||||
0.8.20 (000106)
|
||||
+ cut out dhcp server checking.. this was causing dialout ppp
|
||||
sessions with idle time set to never time out.
|
||||
+ also removed the 10 second pause before launching.. as this
|
||||
was originally to stop it replying to a dhcp client
|
||||
on a NETtel which was really a bad way to do it in the
|
||||
first place :-)
|
||||
|
||||
0.8.19 (000104)
|
||||
+ fixes for route add -host on a machine that needs to run both
|
||||
a DHCP client and server (dual eth box)
|
||||
|
||||
0.8.18 (991220)
|
||||
|
||||
+ Race conditions fixed by disabling alarm whilst the server is busy
|
||||
+ Fixed continous clearing of the offered array so that it is only cleared
|
||||
when it is dirty - (could change the position of when dirty is set)
|
||||
|
||||
0.8.17 (991212)
|
||||
|
||||
- has problems clearing out the offered array
|
||||
|
||||
0.8.16 (991203)
|
||||
+ Non blocking error is changes to informational as it is not really
|
||||
an error
|
||||
|
||||
0.8.15 (991129)
|
||||
+ Servs the dns field 3 times (Nettel only) so that windows servers
|
||||
dont time out whilst nettel is booting
|
||||
|
||||
0.8.14 (991126)
|
||||
+ added owner check for the offered array so clean out time may be
|
||||
increased
|
||||
+ added new func to print out chadder/MAC
|
||||
|
||||
0.8.13 (991125)
|
||||
+ added win95 support (w95 changed xid halfway through conversation)
|
||||
+ had to change the offered array to use hardware addresses instead of xid
|
||||
+ fixed re offered bug
|
||||
+ added more debugging
|
||||
|
||||
0.8.12 (991111)
|
||||
+ debugging was real bad.. cleaned up a bit.. needs overhaul
|
||||
|
||||
|
||||
0.8.11 (991110)
|
||||
+ fixed up offeredAddr array to actually be used now!! offeredAddr is
|
||||
used to see if another simultaneous connecting client was offered
|
||||
an address that we are about to offer another client (multiple
|
||||
client bug)
|
||||
+ removed re_offered variable as it breaks multiple client support
|
||||
+ added lease time to ACK -- doesn't work if in OFFER
|
||||
+ decreased internal array clear delay to 60 seconds
|
||||
+ minor findAddr bug (returning -1 instead of 0)
|
||||
+ if clients xid already in offeredAddr offer the same addr and don't add a
|
||||
new addr to offered (caused by a client issuing multiple DISCOVERs)
|
||||
|
||||
0.8.10 (991105)
|
||||
+ \n bug in arpping
|
||||
+ minor debugging changes (removed printfs etc)
|
||||
+ started browseiplist (not finished)
|
||||
|
||||
0.8.9 (19991105)
|
||||
+ fixed options array size bug (options were cut off)
|
||||
|
||||
0.8.8 (19991105)
|
||||
+ ignores requests from dhcpcd on the same machine
|
||||
|
||||
0.8.7 (19991104)
|
||||
+ don't die if we can't bind to search for existing DHCP server
|
||||
+ slightly more verbose syslogging
|
||||
|
||||
0.8.6 (19991103)
|
||||
+ added makeiplist (not finished -- core dumps)
|
||||
+ minor debug changes
|
||||
|
||||
0.8.5 (19991029)
|
||||
+ exits if another DHCP server is already on the network
|
||||
+ added Linux Makefile
|
||||
|
||||
0.8.4 (19991026)
|
||||
+ minor bug fix in findaddr preventing an addr being found
|
||||
|
||||
0.8.3 (19991025)
|
||||
+ fixed up debugging
|
||||
+ minor hwaddr issues
|
||||
|
||||
0.8.2 (19991022)
|
||||
+ free leases (new arpping code from dhcpcd)
|
||||
+ fixed bug where crashes if no leases/iplist file
|
||||
+ syslogging and debugging switch
|
||||
+ serve DNS from resolv.conf
|
||||
+ fixed bug where new lease added if same mac offered
|
||||
+ now checks the ip is free b4 offering
|
||||
+ now supports wins server
|
||||
|
@ -1,5 +0,0 @@
|
||||
ifneq ($(wildcard ../../networking/Config.in),)
|
||||
include Makefile.busybox
|
||||
else
|
||||
include Makefile.udhcp
|
||||
endif
|
@ -1,110 +0,0 @@
|
||||
# udhcp makefile
|
||||
|
||||
DESTDIR =
|
||||
prefix = /usr
|
||||
SBINDIR = /sbin
|
||||
USRSBINDIR = $(DESTDIR)$(prefix)/sbin
|
||||
USRBINDIR = $(DESTDIR)$(prefix)/bin
|
||||
USRSHAREDIR = $(DESTDIR)$(prefix)/share
|
||||
|
||||
# Uncomment this to get a shared binary. Call as udhcpd for the server,
|
||||
# and udhcpc for the client
|
||||
#COMBINED_BINARY=1
|
||||
|
||||
# Uncomment this for extra output and to compile with debugging symbols
|
||||
#UDHCP_DEBUG=1
|
||||
|
||||
# Uncomment this to output messages to syslog, otherwise, messages go to stdout
|
||||
#UDHCP_SYSLOG=1
|
||||
|
||||
# Set to the prefix of your cross-compiler
|
||||
#CROSS_COMPILE=arm-uclibc-
|
||||
|
||||
|
||||
#---------------------------------------------------#
|
||||
# You should not have to change anything below here #
|
||||
#---------------------------------------------------#
|
||||
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
LD = $(CROSS_COMPILE)gcc
|
||||
INSTALL = install
|
||||
|
||||
OBJS_SHARED = common.o options.o packet.o pidfile.o signalpipe.o socket.o
|
||||
DHCPD_OBJS = dhcpd.o arpping.o files.o leases.o serverpacket.o static_leases.o
|
||||
DHCPC_OBJS = dhcpc.o clientpacket.o clientsocket.o script.o
|
||||
|
||||
ifdef COMBINED_BINARY
|
||||
EXEC1 = udhcpd
|
||||
OBJS1 = $(DHCPD_OBJS) $(DHCPC_OBJS) $(OBJS_SHARED) frontend.o
|
||||
CFLAGS += -DCOMBINED_BINARY
|
||||
else
|
||||
EXEC1 = udhcpd
|
||||
OBJS1 = $(DHCPD_OBJS) $(OBJS_SHARED)
|
||||
|
||||
EXEC2 = udhcpc
|
||||
OBJS2 = $(DHCPC_OBJS) $(OBJS_SHARED)
|
||||
endif
|
||||
|
||||
EXEC3 = dumpleases
|
||||
OBJS3 = dumpleases.o
|
||||
|
||||
BOOT_PROGRAM = udhcpc
|
||||
DAEMON = udhcpd
|
||||
COMMAND = dumpleases
|
||||
|
||||
ifdef UDHCP_SYSLOG
|
||||
CFLAGS += -DUDHCP_SYSLOG
|
||||
endif
|
||||
|
||||
CFLAGS += -W -Wall -Wstrict-prototypes -D_GNU_SOURCE
|
||||
|
||||
ifdef UDHCP_DEBUG
|
||||
CFLAGS += -g -DUDHCP_DEBUG
|
||||
STRIP=true
|
||||
else
|
||||
CFLAGS += -Os -fomit-frame-pointer
|
||||
STRIP=$(CROSS_COMPILE)strip
|
||||
endif
|
||||
|
||||
all: $(EXEC1) $(EXEC2) $(EXEC3)
|
||||
$(STRIP) --remove-section=.note --remove-section=.comment $(EXEC1) $(EXEC2) $(EXEC3)
|
||||
|
||||
$(OBJS1) $(OBJS2) $(OBJS3): *.h Makefile
|
||||
$(EXEC1) $(EXEC2) $(EXEC3): Makefile
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CFLAGS) $<
|
||||
|
||||
$(EXEC1): $(OBJS1)
|
||||
$(LD) $(CFLAGS) $(LDFLAGS) $(OBJS1) -o $(EXEC1)
|
||||
|
||||
$(EXEC2): $(OBJS2)
|
||||
$(LD) $(CFLAGS) $(LDFLAGS) $(OBJS2) -o $(EXEC2)
|
||||
|
||||
$(EXEC3): $(OBJS3)
|
||||
$(LD) $(CFLAGS) $(LDFLAGS) $(OBJS3) -o $(EXEC3)
|
||||
|
||||
|
||||
install: all
|
||||
mkdir -p $(USRSBINDIR) $(USRBINDIR)
|
||||
$(INSTALL) -m 755 $(DAEMON) $(USRSBINDIR)
|
||||
$(INSTALL) -m 755 $(COMMAND) $(USRBINDIR)
|
||||
ifdef COMBINED_BINARY
|
||||
ln -sf $(DAEMON) $(USRSBINDIR)/$(BOOT_PROGRAM)
|
||||
else
|
||||
$(INSTALL) -m 755 $(BOOT_PROGRAM) $(USRSBINDIR)
|
||||
endif
|
||||
mkdir -p $(USRSHAREDIR)/udhcpc
|
||||
for name in bound deconfig nak renew script ; do \
|
||||
$(INSTALL) -m 755 samples/sample.$$name \
|
||||
$(USRSHAREDIR)/udhcpc/default.$$name ; \
|
||||
done
|
||||
mkdir -p $(USRSHAREDIR)/man/man1
|
||||
$(INSTALL) -m 644 dumpleases.1 $(USRSHAREDIR)/man/man1
|
||||
mkdir -p $(USRSHAREDIR)/man/man5
|
||||
$(INSTALL) -m 644 udhcpd.conf.5 $(USRSHAREDIR)/man/man5
|
||||
mkdir -p $(USRSHAREDIR)/man/man8
|
||||
$(INSTALL) -m 644 udhcpc.8 udhcpd.8 $(USRSHAREDIR)/man/man8
|
||||
|
||||
clean:
|
||||
-rm -f udhcpd udhcpc dumpleases *.o *.a core
|
@ -1,53 +0,0 @@
|
||||
udhcp server/client package readme
|
||||
-------------------------
|
||||
|
||||
The udhcp server/client package is primarily geared towards embedded
|
||||
systems. It does however, strive to be fully functional, and RFC
|
||||
compliant.
|
||||
|
||||
|
||||
compile time options
|
||||
-------------------
|
||||
|
||||
The Makefile contains three of the compile time options:
|
||||
|
||||
UDHCP_DEBUG: If UDHCP_DEBUG is defined, udhcpd will output extra
|
||||
debugging output, compile with -g, and not fork to the background when
|
||||
run.
|
||||
UDHCP_SYSLOG: If UDHCP_SYSLOG is defined, udhcpd will log all its
|
||||
messages syslog, otherwise, it will attempt to log them to stdout.
|
||||
|
||||
COMBINED_BINARY: If COMBINED_BINARY is define, one binary, udhcpd,
|
||||
is created. If called as udhcpd, the dhcp server will be started.
|
||||
If called as udhcpc, the dhcp client will be started.
|
||||
|
||||
dhcpd.h contains the other three compile time options:
|
||||
|
||||
LEASE_TIME: The default lease time if not specified in the config
|
||||
file.
|
||||
|
||||
LEASES_FILE: The default file for storing leases.
|
||||
|
||||
DHCPD_CONFIG_FILE: The defualt config file to use.
|
||||
|
||||
options.c contains a set of dhcp options for the client:
|
||||
|
||||
name[10]: The name of the option as it will appear in scripts
|
||||
|
||||
flags: The type of option, as well as if it will be requested
|
||||
by the client (OPTION_REQ)
|
||||
|
||||
code: The DHCP code for this option
|
||||
|
||||
|
||||
busybox drop-in
|
||||
--------------
|
||||
udhcp is now a drop-in component for busybox (http://busybox.net).
|
||||
To update busybox to the latest revision, simply do a:
|
||||
|
||||
cp *.[ch] README AUTHORS COPYING ChangeLog TODO \
|
||||
<busybox_source>/networking/udhcp
|
||||
|
||||
The only two files udhcp does not provide are config.in and
|
||||
Makefile.in, so these may need to be updated from time to time.
|
||||
|
@ -1,17 +0,0 @@
|
||||
udhcp lease dump (dumpleases)
|
||||
----------------------------
|
||||
|
||||
dumpleases displays the leases written out by the udhcpd server. Lease
|
||||
times are stored in the file by time remaining in lease (for systems
|
||||
without clock that works when there is no power), or by the absolute
|
||||
time that it expires in seconds from epoch. dumpleases accepts the
|
||||
following command line options:
|
||||
|
||||
-a, --absolute Interpret lease times as expiration time.
|
||||
-r, --remaining Interpret lease times as remaining time.
|
||||
-f, --file=FILE Read lease information from FILE.
|
||||
-h, --help Display help.
|
||||
|
||||
Note that if udhcpd has not written a leases file recently, the output
|
||||
of may not be up to date.
|
||||
|
@ -1,145 +0,0 @@
|
||||
udhcp client (udhcpc)
|
||||
--------------------
|
||||
|
||||
The udhcp client negotiates a lease with the DHCP server and notifies
|
||||
a set of scripts when a leases is obtained or lost.
|
||||
|
||||
|
||||
command line options
|
||||
-------------------
|
||||
|
||||
The command line options for the udhcp client are:
|
||||
|
||||
-c, --clientid=CLIENTID Set client identifier. Type is first char.
|
||||
-C, --clientid-none Suppress default client identifier
|
||||
-V, --vendorclass=CLASSID Set vendor class identifier
|
||||
-H, --hostname=HOSTNAME Client hostname
|
||||
-h, Alias for -H
|
||||
-F, --fqdn=FQDN Client fully qualified domain name
|
||||
-f, --foreground Do not fork after getting lease
|
||||
-b, --background Fork to background if lease cannot be
|
||||
immediately negotiated.
|
||||
-i, --interface=INTERFACE Interface to use (default: eth0)
|
||||
-n, --now Exit with failure if lease cannot be
|
||||
immediately negotiated.
|
||||
-p, --pidfile=file Store process ID of daemon in file
|
||||
-q, --quit Quit after obtaining lease
|
||||
-r, --request=IP IP address to request (default: none)
|
||||
-s, --script=file Run file at dhcp events (default:
|
||||
/usr/share/udhcpc/default.script)
|
||||
-t, --retries=NUM Send up to NUM request packets
|
||||
-v, --version Display version
|
||||
|
||||
|
||||
If the requested IP address cannot be obtained, the client accepts the
|
||||
address that the server offers.
|
||||
|
||||
|
||||
udhcp client scripts
|
||||
-------------------
|
||||
|
||||
When an event occurs, udhcpc calls the action script. udhcpc never does
|
||||
any configuration of the network interface itself, but instead relies on
|
||||
a set of scripts. The script by default is
|
||||
/usr/share/udhcpc/default.script but this can be changed via the command
|
||||
line arguments. The three possible arguments to the script are:
|
||||
|
||||
deconfig: This argument is used when udhcpc starts, and
|
||||
when a leases is lost. The script must put the interface in an
|
||||
up, but deconfigured state, ie: ifconfig $interface 0.0.0.0.
|
||||
|
||||
bound: This argument is used when udhcpc moves from an
|
||||
unbound, to a bound state. All of the paramaters are set in
|
||||
enviromental variables, The script should configure the interface,
|
||||
and set any other relavent parameters (default gateway, dns server,
|
||||
etc).
|
||||
|
||||
renew: This argument is used when a DHCP lease is renewed. All of
|
||||
the paramaters are set in enviromental variables. This argument is
|
||||
used when the interface is already configured, so the IP address,
|
||||
will not change, however, the other DHCP paramaters, such as the
|
||||
default gateway, subnet mask, and dns server may change.
|
||||
|
||||
nak: This argument is used with udhcpc receives a NAK message.
|
||||
The script with the deconfig argument will be called directly
|
||||
afterwards, so no changes to the network interface are neccessary.
|
||||
This hook is provided for purely informational purposes (the
|
||||
message option may contain a reason for the NAK).
|
||||
|
||||
The paramaters for enviromental variables are as follows:
|
||||
|
||||
$HOME - The set $HOME env or "/"
|
||||
$PATH - the set $PATH env or "/bin:/usr/bin:/sbin:/usr/sbin"
|
||||
$1 - What action the script should perform
|
||||
interface - The interface this was obtained on
|
||||
ip - The obtained IP
|
||||
mask - The number of bits in the netmask (ie: 24)
|
||||
siaddr - The bootp next server option
|
||||
sname - The bootp server name option
|
||||
boot_file - The bootp boot file option
|
||||
subnet - The assigend subnet mask
|
||||
timezone - Offset in seconds from UTC
|
||||
router - A list of routers
|
||||
timesvr - A list of time servers
|
||||
namesvr - A list of IEN 116 name servers
|
||||
dns - A list of DNS server
|
||||
logsvr - A list of MIT-LCS UDP log servers
|
||||
cookiesvr - A list of RFC 865 cookie servers
|
||||
lprsvr - A list of LPR servers
|
||||
hostname - The assigned hostname
|
||||
bootsize - The length in 512 octect blocks of the bootfile
|
||||
domain - The domain name of the network
|
||||
swapsvr - The IP address of the client's swap server
|
||||
rootpath - The path name of the client's root disk
|
||||
ipttl - The TTL to use for this network
|
||||
mtu - The MTU to use for this network
|
||||
broadcast - The broadcast address for this network
|
||||
ntpsrv - A list of NTP servers
|
||||
wins - A list of WINS servers
|
||||
lease - The lease time, in seconds
|
||||
dhcptype - DHCP message type (safely ignored)
|
||||
serverid - The IP of the server
|
||||
message - Reason for a DHCPNAK
|
||||
tftp - The TFTP server name
|
||||
bootfile - The bootfile name
|
||||
|
||||
additional options are easily added in options.c.
|
||||
|
||||
|
||||
note on udhcpc's random seed
|
||||
---------------------------
|
||||
|
||||
udhcpc will seed its random number generator (used for generating xid's)
|
||||
by reading /dev/urandom. If you have a lot of embedded systems on the same
|
||||
network, with no entropy, you can either seed /dev/urandom by a method of
|
||||
your own, or doing the following on startup:
|
||||
|
||||
ifconfig eth0 > /dev/urandom
|
||||
|
||||
in order to seed /dev/urandom with some data (mac address) unique to your
|
||||
system. If reading /dev/urandom fails, udhcpc will fall back to its old
|
||||
behavior of seeding with time(0).
|
||||
|
||||
|
||||
signals accepted by udhcpc
|
||||
-------------------------
|
||||
|
||||
udhcpc also responds to SIGUSR1 and SIGUSR2. SIGUSR1 will force a renew state,
|
||||
and SIGUSR2 will force a release of the current lease, and cause udhcpc to
|
||||
go into an inactive state (until it is killed, or receives a SIGUSR1). You do
|
||||
not need to sleep between sending signals, as signals received are processed
|
||||
sequencially in the order they are received.
|
||||
|
||||
|
||||
compile time options
|
||||
-------------------
|
||||
|
||||
options.c contains a set of dhcp options for the client:
|
||||
|
||||
name[10]: The name of the option as it will appear in scripts
|
||||
|
||||
flags: The type of option, as well as if it will be requested
|
||||
by the client (OPTION_REQ)
|
||||
|
||||
code: The DHCP code for this option
|
||||
|
@ -1,59 +0,0 @@
|
||||
udhcp server (udhcpd)
|
||||
--------------------
|
||||
|
||||
The only command line argument to udhcpd is an optional specifed
|
||||
config file. If no config file is specified, udhcpd uses the default
|
||||
config file, /etc/udhcpd.conf. Ex:
|
||||
|
||||
udhcpd /etc/udhcpd.eth1.conf
|
||||
|
||||
The udhcp server employs a number of simple config files:
|
||||
|
||||
udhcpd.leases
|
||||
------------
|
||||
|
||||
The udhcpd.leases behavior is designed for an embedded system. The
|
||||
file is written either every auto_time seconds, or when a SIGUSR1
|
||||
is received (the auto_time timer restarts if a SIGUSR1 is received).
|
||||
If you send a SIGTERM to udhcpd directly after a SIGUSR1, udhcpd will
|
||||
finish writing the leases file and wait for the aftermentioned script
|
||||
to be executed and finish before quiting, so you do not need to sleep
|
||||
between sending signals. When the file is written, a script can be
|
||||
optionally called to commit the file to flash. Lease times are stored
|
||||
in the file by time remaining in lease (for systems without clock
|
||||
that works when there is no power), or by the absolute time that it
|
||||
expires in seconds from epoch. In the remaining format, expired leases
|
||||
are stored as zero. The file is of the format:
|
||||
|
||||
16 byte MAC
|
||||
4 byte ip address
|
||||
u32 expire time
|
||||
16 byte MAC
|
||||
4 byte ip address
|
||||
u32 expire time
|
||||
.
|
||||
etc.
|
||||
|
||||
example: hexdump udhcpd.leases
|
||||
|
||||
0000000 1000 c95a 27d9 0000 0000 0000 0000 0000
|
||||
0000010 a8c0 150a 0d00 2d29 5000 23fc 8566 0000
|
||||
0000020 0000 0000 0000 0000 a8c0 140a 0d00 4e29
|
||||
0000030
|
||||
|
||||
|
||||
udhcpd.conf
|
||||
----------
|
||||
|
||||
The format is fairly simple, there is a sample file with all the
|
||||
available options and comments describing them in samples/udhcpd.conf
|
||||
|
||||
compile time options
|
||||
-------------------
|
||||
|
||||
dhcpd.h contains the other two compile time options:
|
||||
|
||||
LEASE_TIME: The default lease time if not specified in the config
|
||||
file.
|
||||
|
||||
DHCPD_CONFIG_FILE: The defualt config file to use.
|
@ -1,16 +0,0 @@
|
||||
TODO
|
||||
----
|
||||
+ Check for valid IP, netmask, hostname, paths, strings, etc
|
||||
+ Integrade README.*'s with manpages
|
||||
+ using time(0) breaks if the system clock changes, find a portable solution
|
||||
+ make failure of reading functions revert to previous value, not the default
|
||||
+ sanity code for option[OPT_LEN]
|
||||
+ fix aliasing (ie: eth0:0)
|
||||
+ better standard linux distro support
|
||||
+ make sure packet generation works on a wide varitey of arches
|
||||
+ Interoperability testing
|
||||
+ Hooks within the DHCP server
|
||||
* Server notification when a lease is added/removed
|
||||
+ Additional bootp support in client/server
|
||||
+ Make serverid option in server configurable
|
||||
+ Possibly add failure message to DHCP NAK
|
@ -1,30 +0,0 @@
|
||||
.TH DUMPLEASES 1 2001-09-27 GNU/Linux "GNU/Linux Administrator's Manual"
|
||||
.SH NAME
|
||||
dumpleases \- display leases granted by udhcp server
|
||||
.SH SYNOPSIS
|
||||
.B dumpleases
|
||||
.RI [ OPTION ]...
|
||||
.SH DESCRIPTION
|
||||
Display the DHCP leases granted by
|
||||
.BR udhcpd (8).
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BR \-a ,\ \-\-absolute
|
||||
Interpret lease times as expiration time.
|
||||
.TP
|
||||
.BI \-f\ FILE,\ \-\-file= FILE
|
||||
Read lease information from
|
||||
.IR FILE .
|
||||
.TP
|
||||
.BR \-h ,\ \-\-help
|
||||
Display help.
|
||||
.TP
|
||||
.BR \-r ,\ \-\-remaining
|
||||
Interpret lease times as remaining time.
|
||||
.SH FILES
|
||||
.TP
|
||||
.I /var/lib/misc/udhcpd.leases
|
||||
Lease information file.
|
||||
.SH SEE ALSO
|
||||
.BR udhcpd (8),
|
||||
.BR udhcpd.conf (5).
|
@ -1,11 +0,0 @@
|
||||
The files in this dir are:
|
||||
|
||||
udhcpd.conf: A sample udhpcd configuration file.
|
||||
|
||||
sample.script
|
||||
sample.nak
|
||||
sample.deconfig
|
||||
sample.bound
|
||||
sample.renew : sample scripts for the udhcpc client.
|
||||
|
||||
simple.script : a simple sample script for the client.
|
@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Sample udhcpc renew script
|
||||
|
||||
RESOLV_CONF="/etc/udhcpc/resolv.conf"
|
||||
|
||||
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
|
||||
[ -n "$subnet" ] && NETMASK="netmask $subnet"
|
||||
|
||||
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
|
||||
|
||||
if [ -n "$router" ]
|
||||
then
|
||||
echo "deleting routers"
|
||||
while /sbin/route del default gw 0.0.0.0 dev $interface
|
||||
do :
|
||||
done
|
||||
|
||||
for i in $router
|
||||
do
|
||||
/sbin/route add default gw $i dev $interface
|
||||
done
|
||||
fi
|
||||
|
||||
echo -n > $RESOLV_CONF
|
||||
[ -n "$domain" ] && echo domain $domain >> $RESOLV_CONF
|
||||
for i in $dns
|
||||
do
|
||||
echo adding dns $i
|
||||
echo nameserver $i >> $RESOLV_CONF
|
||||
done
|
@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Sample udhcpc deconfig script
|
||||
|
||||
/sbin/ifconfig $interface 0.0.0.0
|
@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Sample udhcpc nak script
|
||||
|
||||
echo Received a NAK: $message
|
@ -1,30 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Sample udhcpc bound script
|
||||
|
||||
RESOLV_CONF="/etc/udhcpc/resolv.conf"
|
||||
|
||||
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
|
||||
[ -n "$subnet" ] && NETMASK="netmask $subnet"
|
||||
|
||||
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
|
||||
|
||||
if [ -n "$router" ]
|
||||
then
|
||||
echo "deleting routers"
|
||||
while /sbin/route del default gw 0.0.0.0 dev $interface
|
||||
do :
|
||||
done
|
||||
|
||||
for i in $router
|
||||
do
|
||||
/sbin/route add default gw $i dev $interface
|
||||
done
|
||||
fi
|
||||
|
||||
echo -n > $RESOLV_CONF
|
||||
[ -n "$domain" ] && echo domain $domain >> $RESOLV_CONF
|
||||
for i in $dns
|
||||
do
|
||||
echo adding dns $i
|
||||
echo nameserver $i >> $RESOLV_CONF
|
||||
done
|
@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Currently, we only dispatch according to command. However, a more
|
||||
# elaborate system might dispatch by command and interface or do some
|
||||
# common initialization first, especially if more dhcp event notifications
|
||||
# are added.
|
||||
|
||||
exec /usr/share/udhcpc/sample.$1
|
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
|
||||
|
||||
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
|
||||
|
||||
RESOLV_CONF="/etc/resolv.conf"
|
||||
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
|
||||
[ -n "$subnet" ] && NETMASK="netmask $subnet"
|
||||
|
||||
case "$1" in
|
||||
deconfig)
|
||||
/sbin/ifconfig $interface 0.0.0.0
|
||||
;;
|
||||
|
||||
renew|bound)
|
||||
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
|
||||
|
||||
if [ -n "$router" ] ; then
|
||||
echo "deleting routers"
|
||||
while route del default gw 0.0.0.0 dev $interface ; do
|
||||
:
|
||||
done
|
||||
|
||||
for i in $router ; do
|
||||
route add default gw $i dev $interface
|
||||
done
|
||||
fi
|
||||
|
||||
echo -n > $RESOLV_CONF
|
||||
[ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
|
||||
for i in $dns ; do
|
||||
echo adding dns $i
|
||||
echo nameserver $i >> $RESOLV_CONF
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
@ -1,116 +0,0 @@
|
||||
# Sample udhcpd configuration file (/etc/udhcpd.conf)
|
||||
|
||||
# The start and end of the IP lease block
|
||||
|
||||
start 192.168.0.20 #default: 192.168.0.20
|
||||
end 192.168.0.254 #default: 192.168.0.254
|
||||
|
||||
|
||||
# The interface that udhcpd will use
|
||||
|
||||
interface eth0 #default: eth0
|
||||
|
||||
|
||||
# The maximim number of leases (includes addressesd reserved
|
||||
# by OFFER's, DECLINE's, and ARP conficts
|
||||
|
||||
#max_leases 254 #default: 254
|
||||
|
||||
|
||||
# If remaining is true (default), udhcpd will store the time
|
||||
# remaining for each lease in the udhcpd leases file. This is
|
||||
# for embedded systems that cannot keep time between reboots.
|
||||
# If you set remaining to no, the absolute time that the lease
|
||||
# expires at will be stored in the dhcpd.leases file.
|
||||
|
||||
#remaining yes #default: yes
|
||||
|
||||
|
||||
# The time period at which udhcpd will write out a dhcpd.leases
|
||||
# file. If this is 0, udhcpd will never automatically write a
|
||||
# lease file. (specified in seconds)
|
||||
|
||||
#auto_time 7200 #default: 7200 (2 hours)
|
||||
|
||||
|
||||
# The amount of time that an IP will be reserved (leased) for if a
|
||||
# DHCP decline message is received (seconds).
|
||||
|
||||
#decline_time 3600 #default: 3600 (1 hour)
|
||||
|
||||
|
||||
# The amount of time that an IP will be reserved (leased) for if an
|
||||
# ARP conflct occurs. (seconds
|
||||
|
||||
#conflict_time 3600 #default: 3600 (1 hour)
|
||||
|
||||
|
||||
# How long an offered address is reserved (leased) in seconds
|
||||
|
||||
#offer_time 60 #default: 60 (1 minute)
|
||||
|
||||
# If a lease to be given is below this value, the full lease time is
|
||||
# instead used (seconds).
|
||||
|
||||
#min_lease 60 #defult: 60
|
||||
|
||||
|
||||
# The location of the leases file
|
||||
|
||||
#lease_file /var/lib/misc/udhcpd.leases #defualt: /var/lib/misc/udhcpd.leases
|
||||
|
||||
# The location of the pid file
|
||||
#pidfile /var/run/udhcpd.pid #default: /var/run/udhcpd.pid
|
||||
|
||||
# Everytime udhcpd writes a leases file, the below script will be called.
|
||||
# Useful for writing the lease file to flash every few hours.
|
||||
|
||||
#notify_file #default: (no script)
|
||||
|
||||
#notify_file dumpleases # <--- usefull for debugging
|
||||
|
||||
# The following are bootp specific options, setable by udhcpd.
|
||||
|
||||
#siaddr 192.168.0.22 #default: 0.0.0.0
|
||||
|
||||
#sname zorak #default: (none)
|
||||
|
||||
#boot_file /var/nfs_root #default: (none)
|
||||
|
||||
# The remainer of options are DHCP options and can be specifed with the
|
||||
# keyword 'opt' or 'option'. If an option can take multiple items, such
|
||||
# as the dns option, they can be listed on the same line, or multiple
|
||||
# lines. The only option with a default is 'lease'.
|
||||
|
||||
#Examles
|
||||
opt dns 192.168.10.2 192.168.10.10
|
||||
option subnet 255.255.255.0
|
||||
opt router 192.168.10.2
|
||||
opt wins 192.168.10.10
|
||||
option dns 129.219.13.81 # appened to above DNS servers for a total of 3
|
||||
option domain local
|
||||
option lease 864000 # 10 days of seconds
|
||||
|
||||
|
||||
# Currently supported options, for more info, see options.c
|
||||
#opt subnet
|
||||
#opt timezone
|
||||
#opt router
|
||||
#opt timesvr
|
||||
#opt namesvr
|
||||
#opt dns
|
||||
#opt logsvr
|
||||
#opt cookiesvr
|
||||
#opt lprsvr
|
||||
#opt bootsize
|
||||
#opt domain
|
||||
#opt swapsvr
|
||||
#opt rootpath
|
||||
#opt ipttl
|
||||
#opt mtu
|
||||
#opt broadcast
|
||||
#opt wins
|
||||
#opt lease
|
||||
#opt ntpsrv
|
||||
#opt tftp
|
||||
#opt bootfile
|
@ -1,208 +0,0 @@
|
||||
.TH UDHCPC 8 2001-09-26 GNU/Linux "GNU/Linux Administrator's Manual"
|
||||
.SH NAME
|
||||
udhcpc \- very small DHCP client
|
||||
.SH SYNOPSIS
|
||||
.B udhcpc
|
||||
.RI [ OPTION ]...
|
||||
.SH DESCRIPTION
|
||||
The udhcp client negotiates a lease with the DHCP server and
|
||||
executes a script when it is obtained or lost.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BI \-c\ CLIENTID ,\ \-\-clientid= CLIENTID
|
||||
Send the client identifier
|
||||
.IR CLIENTID .
|
||||
.TP
|
||||
.BR -f ,\ \-\-foreground
|
||||
Do not fork after obtaining a lease.
|
||||
.TP
|
||||
.BI \-H\ HOSTNAME ,\ \-\-hostname= HOSTNAME
|
||||
Send the client hostname
|
||||
.IR HOSTNAME .
|
||||
.TP
|
||||
.BI \-h\ HOSTNAME
|
||||
Alias for -H
|
||||
.IR HOSTNAME .
|
||||
.TP
|
||||
.BI \-i\ INTERFACE ,\ \-\-interface= INTERFACE
|
||||
Configure
|
||||
.IR INTERFACE .
|
||||
.TP
|
||||
.BR -n ,\ \-\-now
|
||||
Exit with failure if a lease cannot be obtained.
|
||||
.TP
|
||||
.BI \-p\ FILE ,\ \-\-pidfile= FILE
|
||||
Write the process ID of the daemon to
|
||||
.IR FILE .
|
||||
.TP
|
||||
.BR -q ,\ \-\-quit
|
||||
Exit after obtaining a lease.
|
||||
.TP
|
||||
.BI \-r\ ADDRESS ,\ \-\-request= ADDRESS
|
||||
Request IP address
|
||||
.IR ADDRESS .
|
||||
.TP
|
||||
.BI \-s\ FILE ,\ \-\-script= FILE
|
||||
Use script
|
||||
.IR FILE .
|
||||
.TP
|
||||
.BR -v ,\ \-\-version
|
||||
Display version.
|
||||
.SH USAGE
|
||||
When an event occurs,
|
||||
.B udhcpc
|
||||
executes a script. There are four possible arguments to this
|
||||
script:
|
||||
.TP
|
||||
.B deconfig
|
||||
.B deconfig
|
||||
is used when
|
||||
.B udhcpc
|
||||
starts, and when a lease is lost. The script should put the
|
||||
interface in an up, but deconfigured, state.
|
||||
.TP
|
||||
.B bound
|
||||
.B bound
|
||||
is used when
|
||||
.B udhcpc
|
||||
moves from an unbound to a bound state. The script should
|
||||
configure the interface and set any other relevant parameters
|
||||
(e.g., default gateway, dns server, etc.).
|
||||
.TP
|
||||
.B renew
|
||||
.B renew
|
||||
is used when
|
||||
.B udhcpc
|
||||
when a lease is renewed. The interface is already
|
||||
configured, so the IP address will not change. Other parameters
|
||||
(e.g., default gateway, subnet mask, dns server) may.
|
||||
.TP
|
||||
.B nak
|
||||
.B nak
|
||||
is used when
|
||||
.B udhcpc
|
||||
receieves a NAK packet from the server. The
|
||||
enviromental variable
|
||||
.B $message
|
||||
will contain the reason for the
|
||||
NAK message if the server included one. Processing this message
|
||||
is optional, as the script will also be called with deconfig if
|
||||
need be.
|
||||
.PP
|
||||
Parameters are passed to the script via the following environment
|
||||
variables:
|
||||
.TP
|
||||
.B HOME
|
||||
The inherited HOME, or "/" if it is unset.
|
||||
.TP
|
||||
.B PATH
|
||||
The inherited PATH, or "/bin:/usr/bin:/sbin:/usr/sbin" if it is
|
||||
unset.
|
||||
.TP
|
||||
.B interface
|
||||
The interface.
|
||||
.TP
|
||||
.B ip
|
||||
The client IP address.
|
||||
.TP
|
||||
.B siaddr
|
||||
The BOOTP next server option.
|
||||
.TP
|
||||
.B sname
|
||||
The BOOTP server name option.
|
||||
.TP
|
||||
.B boot_file
|
||||
The BOOTP boot file option.
|
||||
.TP
|
||||
.B subnet
|
||||
The subnet mask.
|
||||
.TP
|
||||
.B timezone
|
||||
The timezone offset from UTC in seconds.
|
||||
.TP
|
||||
.B router
|
||||
The list of routers.
|
||||
.TP
|
||||
.B timesvr
|
||||
The list of time servers.
|
||||
.TP
|
||||
.B namesvr
|
||||
The list of IEN 116 name servers.
|
||||
.TP
|
||||
.B dns
|
||||
The list of DNS servers.
|
||||
.TP
|
||||
.B logsvr
|
||||
The list of MIT-LCS UDP log servers.
|
||||
.TP
|
||||
.B cookiesvr
|
||||
The list of RFC 865 cookie servers.
|
||||
.TP
|
||||
.B lprsvr
|
||||
The list of LPR servers.
|
||||
.TP
|
||||
.B hostname
|
||||
The host name.
|
||||
.TP
|
||||
.B bootsize
|
||||
The length in 512-octet blocks of the bootfile.
|
||||
.TP
|
||||
.B domain
|
||||
The domain name of the network.
|
||||
.TP
|
||||
.B swapsvr
|
||||
The client's swap server.
|
||||
.TP
|
||||
.B rootpath
|
||||
The path of the client's root dist.
|
||||
.TP
|
||||
.B ipttl
|
||||
The TTL.
|
||||
.TP
|
||||
.B mtu
|
||||
The MTU.
|
||||
.TP
|
||||
.B broadcast
|
||||
The broadcast address.
|
||||
.TP
|
||||
.B ntpsrv
|
||||
The list of NTP servers.
|
||||
.TP
|
||||
.B wins
|
||||
The list of WINS servers.
|
||||
.TP
|
||||
.B lease
|
||||
The lease time in seconds.
|
||||
.TP
|
||||
.B dhcptype
|
||||
The DHCP message type (safely ignored).
|
||||
.TP
|
||||
.B serverid
|
||||
The server IP address.
|
||||
.TP
|
||||
.B message
|
||||
Reason for a DHCPNAK.
|
||||
.TP
|
||||
.B tftp
|
||||
The TFTP server name.
|
||||
.TP
|
||||
.B bootfile
|
||||
The bootfile name.
|
||||
.SH FILES
|
||||
.TP
|
||||
.I /usr/share/udhcpc/default.script
|
||||
Script run when leases are obtained or lost.
|
||||
.SH NOTES
|
||||
.B udhcpc
|
||||
responds to the following signals:
|
||||
.TP
|
||||
.B SIGUSR1
|
||||
This signal causes
|
||||
.B udhcpc
|
||||
to renew the current lease or, if it does not have one, obtain a
|
||||
new lease.
|
||||
.TP
|
||||
.B SIGUSR2
|
||||
This signal caused
|
||||
.B udhcpc
|
||||
to release the current lease.
|
@ -1,17 +0,0 @@
|
||||
.TH UDHCPD 8 2001-09-27 GNU/Linux "GNU/Linux Administrator's Manual"
|
||||
.SH NAME
|
||||
udhcpd \- very small DHCP server
|
||||
.SH SYNOPSIS
|
||||
.B udhcpd
|
||||
.SH DESCRIPTION
|
||||
The udhcp server negotiates leases with DHCP clients.
|
||||
.SH FILES
|
||||
.TP
|
||||
.I /etc/udhcpd.conf
|
||||
Configuration file.
|
||||
.TP
|
||||
.I /var/lib/misc/udhcpd.leases
|
||||
Lease information file.
|
||||
.SH SEE ALSO
|
||||
.BR dumpleases (1),
|
||||
.BR udhcpd.conf (8).
|
@ -1,164 +0,0 @@
|
||||
.TH UDHCPD.CONF 5 2001-09-26 GNU/Linux "GNU/Linux Administrator's Manual"
|
||||
.SH NAME
|
||||
udhcpd.conf \- udhcp server configuration file
|
||||
.SH DESCRIPTION
|
||||
The file
|
||||
.I /etc/udhcpd.conf
|
||||
contains configuration information specific to the udhcp server.
|
||||
It should contain one configuration keyword per line, followed by
|
||||
appropriate configuration information.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BI start\ ADDRESS
|
||||
The starting address of the IP lease block is
|
||||
.IR ADDRESS .
|
||||
The default is
|
||||
.BR 192.168.0.20 .
|
||||
.TP
|
||||
.BI end\ ADDRESS
|
||||
The ending address of the IP lease block is
|
||||
.IR ADDRESS .
|
||||
The default is
|
||||
.BR 192.168.0.254 .
|
||||
.TP
|
||||
.BI interface\ INTERFACE
|
||||
The udhcp server should listen on
|
||||
.IR INTERFACE .
|
||||
The default is
|
||||
.BR eth0 .
|
||||
.TP
|
||||
.BI max_leases\ LEASES
|
||||
Offer at most
|
||||
.I LEASES
|
||||
leases (including those reserved by OFFERs, DECLINEs, and ARP
|
||||
conflicts). The default is
|
||||
.BR 254 .
|
||||
.TP
|
||||
.BI remaining\ REMAINING
|
||||
If
|
||||
.I REMAINING
|
||||
is
|
||||
.BR yes ,
|
||||
store the time remaining for each lease. If it is
|
||||
.BR no ,
|
||||
store the expiration time for each lease. The default is
|
||||
.BR yes .
|
||||
.TP
|
||||
.BI auto_time\ SECONDS
|
||||
Write the lease information to a file every
|
||||
.I SECONDS
|
||||
seconds. The default is
|
||||
.BR 7200 .
|
||||
.TP
|
||||
.BI decline_time\ SECONDS
|
||||
Reserve an IP for
|
||||
.I SECONDS
|
||||
seconds if a DHCP decline message is received. The default is
|
||||
.BR 3600 .
|
||||
.TP
|
||||
.BI conflict_time\ SECONDS
|
||||
Reserve an IP for
|
||||
.I SECONDS
|
||||
seconds if an ARP conflict occurs. The default is
|
||||
.BR 3600 .
|
||||
.TP
|
||||
.BI offer_time\ SECONDS
|
||||
Reserve an IP for
|
||||
.I SECONDS
|
||||
seconds if it is offered. The default is
|
||||
.BR 60 .
|
||||
.TP
|
||||
.BI min_lease\ SECONDS
|
||||
Reserve an IP for the full lease time if the lease to be given is less than
|
||||
.I SECONDS
|
||||
seconds. The default is
|
||||
.BR 60 .
|
||||
.TP
|
||||
.BI lease_file\ FILE
|
||||
Write the lease information to
|
||||
.IR FILE .
|
||||
The default is
|
||||
.BR /var/lib/misc/udhcpd.leases .
|
||||
.TP
|
||||
.BI pidfile\ FILE
|
||||
Write the process ID to
|
||||
.IR FILE .
|
||||
The default is
|
||||
.BR /var/run/udhcpd.pid .
|
||||
.TP
|
||||
.BI notify_file\ FILE
|
||||
Execute
|
||||
.I FILE
|
||||
after the lease information is written. By default, no file is executed.
|
||||
.TP
|
||||
.BI siaddr\ ADDRESS
|
||||
BOOTP specific option. The default is
|
||||
.BR 0.0.0.0 .
|
||||
.TP
|
||||
.BI sname\ NAME
|
||||
BOOTP specific option. There is no default.
|
||||
.TP
|
||||
.BI boot_file\ FILE
|
||||
BOOTP specific option. There is no default.
|
||||
.TP
|
||||
.BI option\ OPTION
|
||||
DHCP specific option.
|
||||
.RS
|
||||
.TP
|
||||
.BI subnet\ ADDRESS
|
||||
.TP
|
||||
.BI timezone\ OFFSET
|
||||
.TP
|
||||
.BI router\ ADDRESS...
|
||||
.TP
|
||||
.BI timesvr\ ADDRESS...
|
||||
.TP
|
||||
.BI namesvr\ ADDRESS...
|
||||
.TP
|
||||
.BI dns\ ADDRESS...
|
||||
.TP
|
||||
.BI logsvr\ ADDRESS...
|
||||
.TP
|
||||
.BI cookiesvr\ ADDRESS...
|
||||
.TP
|
||||
.BI lprsvr\ ADDRESS...
|
||||
.TP
|
||||
.BI hostname\ HOSTNAME
|
||||
.TP
|
||||
.BI bootsize\ SIZE
|
||||
.TP
|
||||
.BI domain\ DOMAIN
|
||||
.TP
|
||||
.BI swapsvr\ ADDRESS
|
||||
.TP
|
||||
.BI rootpath\ PATH
|
||||
.TP
|
||||
.BI ipttl\ TTL
|
||||
.TP
|
||||
.BI mtu\ MTU
|
||||
.TP
|
||||
.BI broadcast\ ADDRESS
|
||||
.TP
|
||||
.BI ntpsrv\ ADDRESS...
|
||||
.TP
|
||||
.BI wins\ ADDRESS...
|
||||
.TP
|
||||
.BI requestip\ ADDRESS
|
||||
.TP
|
||||
.BI lease\ SECONDS
|
||||
.TP
|
||||
.BI dhcptype\ TYPE
|
||||
.TP
|
||||
.BI serverid\ ADDRESS
|
||||
.TP
|
||||
.BI tftp\ FILE
|
||||
.TP
|
||||
.BI bootfile\ FILE
|
||||
The default for
|
||||
.B lease
|
||||
is
|
||||
.BR 864000 .
|
||||
There are no defaults for the other options.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.BR udhcpd (8).
|
Loading…
Reference in New Issue
Block a user