New trunk created based on the old trunk/svn
git-svn-id: svn+ssh://svn.code.sf.net/p/ddclient/code/trunk@98 3873ddee-7413-0410-b6c4-c2c57c1ab35a
This commit is contained in:
commit
61cbbb806e
56 changed files with 5671 additions and 0 deletions
4
.cvsignore
Normal file
4
.cvsignore
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
.svn
|
||||||
|
patches
|
||||||
|
release
|
||||||
|
.cvsignore
|
340
COPYING
Normal file
340
COPYING
Normal file
|
@ -0,0 +1,340 @@
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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.
|
19
COPYRIGHT
Normal file
19
COPYRIGHT
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
ddclient - update client for www.dyndns.org accounts
|
||||||
|
|
||||||
|
Copyright (C) 1999 Paul Burry (paul@burry.ca)
|
||||||
|
Copyright (C) 2000 Paul Burry (paul@burry.ca)
|
||||||
|
Copyright (C) 2001 Paul Burry (paul@burry.ca)
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
304
Changelog
Normal file
304
Changelog
Normal file
|
@ -0,0 +1,304 @@
|
||||||
|
Changelog
|
||||||
|
3.7.3
|
||||||
|
* Changelog moved to more correct ChangeLog
|
||||||
|
generated by svn2cl --group-by-day -i
|
||||||
|
See http://tinyurl.com/2fzhc6
|
||||||
|
|
||||||
|
3.7.2
|
||||||
|
* Preventing unitialized values, check
|
||||||
|
https://sourceforge.net/forum/message.php?msg_id=4167772
|
||||||
|
* added a TODO list
|
||||||
|
* Removed the two empty lines at the end of ddclient
|
||||||
|
* Applied checked_ssl_load.diff from Ubuntu
|
||||||
|
* Cosmetic change about checkip
|
||||||
|
* Changed nic_namecheap_update following the suggestion of edmdude
|
||||||
|
on the forum (https://sourceforge.net/forum/message.php?msg_id=4316938)
|
||||||
|
* Applied easydns.patch
|
||||||
|
* 3com-oc-remote812 patch by The_Beast via IRC.
|
||||||
|
* Applied eurodns.patch
|
||||||
|
|
||||||
|
3.7.1
|
||||||
|
* URL of zoneedit has changed (see bug #1558483)
|
||||||
|
* Added initscript for Ubuntu (posted by Paolo Martinelli)
|
||||||
|
* Added patch "Patch: Treat --daemon values as intervals"
|
||||||
|
(submitted by James deBoer)
|
||||||
|
* Don't send any mail when in not running daemon mode
|
||||||
|
(patch submitted by Daniel Thaler)
|
||||||
|
* Changed Changelog syntax
|
||||||
|
* Applied patches submitted by Torsten:
|
||||||
|
abuse_msg.diff: ddclient still reports the email to contact dyndns.org
|
||||||
|
but they prefer a web form today (IIRC). This patch adjusts the abuse
|
||||||
|
warning printed by ddclient.
|
||||||
|
cachedir.diff: Original ddclient stores a cache file in /etc which
|
||||||
|
would belong in /var/cache in my opinion and according to the FHS.
|
||||||
|
help_nonroot.diff: Allow calling the help function as non-root.
|
||||||
|
update-new-config.patch: Force update if config has changed
|
||||||
|
smc-barricade-7401bra.patch: Support for SMC Barricade 7401BRA FW
|
||||||
|
firewall
|
||||||
|
cisco_fw.diff: Use configured hostname for firewall access
|
||||||
|
with -use=cisco (closes: #345712). Thanks to Per Carlson for the
|
||||||
|
patch! See http://bugs.debian.org/345712.
|
||||||
|
maxinterval.diff: Increase max interval for updates.
|
||||||
|
See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129370
|
||||||
|
http://www.dyndns.com/support/services/dyndns/faq.html#q15
|
||||||
|
* Changed max-interval to 25days. See
|
||||||
|
https://www.dyndns.com/services/dns/dyndns/faq.html
|
||||||
|
|
||||||
|
|
||||||
|
3.7.0
|
||||||
|
- Added vi tag
|
||||||
|
- Added support for 2Wire 1701HG Gateway (see
|
||||||
|
https://sourceforge.net/forum/message.php?msg_id=3496041 submitted by hemo)
|
||||||
|
- added ssl-support by perlhaq
|
||||||
|
- updated cvs version to 3.7.0-pre
|
||||||
|
- added support for Linksys RV042, see feature requests #1501093, #1500877
|
||||||
|
- added support for netgear-rp614, see feature request #1237039
|
||||||
|
- added support for watchguard-edge-x, patch #1468981
|
||||||
|
- added support for dlink-524, see patch #1314272
|
||||||
|
- added support for rtp300
|
||||||
|
- added support for netgear-wpn824
|
||||||
|
- added support for linksys-wcg200, see patch #1280713
|
||||||
|
- added support for netgear-dg834g, see patch #1176425
|
||||||
|
- added support for netgear-wgt624, see patch #1165209
|
||||||
|
- added support for sveasoft, see patch #1102432
|
||||||
|
- added support for smc-barricade-7004vbr, see patch #1087989
|
||||||
|
- added support for sitecom-dc202, see patch #1060119
|
||||||
|
- fixed the error of stripping out '#' in the middle of password, bug #1465932
|
||||||
|
- fixed a couple bugs in sample-etc_rc.d_init.d_ddclient and added some extra auto distro detection
|
||||||
|
- added the validation of values when reading the configuration value.
|
||||||
|
- this fixes a bug when trying to use periods/intervals in the daemon check times, bug #1209743
|
||||||
|
- added timeout option to the IO::Socket call for timing out the initial connection, bug: #1085110
|
||||||
|
|
||||||
|
3.6.7
|
||||||
|
- modified sample-etc_rc.d_init.d_ddclient.lsb (bug #1231930)
|
||||||
|
- support for ConCont Protocol (patch #1265128) submitted by seather_misery
|
||||||
|
- problem with sending mail should be solved
|
||||||
|
- corrected a few writing mistakes
|
||||||
|
- support for 'NetComm NB3' adsl modem (submitted by crazyprog)
|
||||||
|
- Added Sitelutions DynDNS, fixed minor Namecheap bug (patch #1346867)
|
||||||
|
|
||||||
|
3.6.6
|
||||||
|
- support for olitec-SX200
|
||||||
|
- added sample-etc_rc.d_init.d_ddclient.lsb as a sample script for lsb-compliant systems.
|
||||||
|
- support for linksys wrt854g (thanks to Nick Triantos)
|
||||||
|
- support for linksys ver 3
|
||||||
|
- support for Thomson (Alcatel) SpeedTouch 510 (thanks to Aldoir)
|
||||||
|
- Cosmetic fixes submitted by John Owens
|
||||||
|
|
||||||
|
3.6.5
|
||||||
|
- there was a bug in the linksys-ver2
|
||||||
|
- support for postscript (thanks to Larry Hendrickson)
|
||||||
|
- Changelog out of README
|
||||||
|
- modified all documentation to use /etc/ddclient/ddclient.conf (notified by nicolasmartin in bug [1070646])
|
||||||
|
|
||||||
|
3.6.4
|
||||||
|
- added support for NameCheap service (thanks to Dan Boardman)
|
||||||
|
- added support for linksys ver2 (thanks to Dan Perik)
|
||||||
|
|
||||||
|
3.6.3
|
||||||
|
- renamed sample-etc_dhclient-enter-hooks to sample-etc_dhclient-exit-hooks
|
||||||
|
- add support for the Allnet 1298 Router
|
||||||
|
- add -a to ifconfig to query all interfaces (for Solaris and OpenBSD)
|
||||||
|
- update the process status to reflect what is happening.
|
||||||
|
- add a To: line when sending e-mail
|
||||||
|
- add mail-failure to send mail on failures only
|
||||||
|
- try all addresses for multihomed hosts (like check.dyndns.org)
|
||||||
|
- add support for dnspark
|
||||||
|
- add sample for OrgDNS.org
|
||||||
|
|
||||||
|
3.6.2
|
||||||
|
- add support for Xsense Aero
|
||||||
|
- add support for Alcatel Speedtouch Pro
|
||||||
|
- do authentication when either the login or password are defined.
|
||||||
|
- fix parsing of web status pages
|
||||||
|
|
||||||
|
- 3.6
|
||||||
|
- add support for EasyDNS (see easydns.com)
|
||||||
|
- add warning for possible incorrect continuation lines in the .conf file.
|
||||||
|
- add if-skip with the default as was used before.
|
||||||
|
- add cmd-skip.
|
||||||
|
|
||||||
|
- 3.5.4
|
||||||
|
- added !active result code for DynDNS.org
|
||||||
|
|
||||||
|
- 3.5.2
|
||||||
|
- avoid undefined variable in get_ip
|
||||||
|
|
||||||
|
- 3.5.1
|
||||||
|
- fix parsing of quoted strings in .conf file
|
||||||
|
- add filename and line number to any warnings regarding files.
|
||||||
|
|
||||||
|
- 3.5
|
||||||
|
- allow any url to be specified for -fw {address|url}
|
||||||
|
use -fw-skip {pattern} to specify a string preceding the IP address at the URL's page
|
||||||
|
- allow any url to be specified for -web {address|url}
|
||||||
|
use -web-skip {pattern} to specify a string preceding the IP address at the URL's page
|
||||||
|
- modify -test to display any IP addresses that could be obtained from
|
||||||
|
any interfaces, builtin fw definitions, or web status pages.
|
||||||
|
|
||||||
|
- 3.4.6 (not released)
|
||||||
|
- fix errors in -help
|
||||||
|
- allow non-FQDNs as hosts; dslreports requires this.
|
||||||
|
- handle german ifconfig output
|
||||||
|
- try to get english messages from ifconfig so other languages are handled too.
|
||||||
|
- added support for com 3c886a 56k Lan Modem
|
||||||
|
|
||||||
|
- 3.4.5
|
||||||
|
- handle french ifconfig output
|
||||||
|
|
||||||
|
- 3.4.4
|
||||||
|
- added support for obtaining the IP address from a Cisco DHCP interface.
|
||||||
|
(Thanks, Tim)
|
||||||
|
|
||||||
|
- 3.4.2
|
||||||
|
- update last modified time when nochg is returned from dyndns
|
||||||
|
- add example regarding fw-login and fw-password's required by some
|
||||||
|
home routers
|
||||||
|
|
||||||
|
- 3.4.1
|
||||||
|
- add option (-pid) to record process id in a file. This option should be
|
||||||
|
defined in the .conf file as it is done in the sample.
|
||||||
|
- add detection of SIGHUP. When this signal is received, ddclient will
|
||||||
|
wake up immediately, reload it's configuration file, and update
|
||||||
|
the IP addresses if necessary.
|
||||||
|
|
||||||
|
- 3.4
|
||||||
|
- ALL PEOPLE USING THIS CLIENT ARE URGED TO UPGRADE TO 3.4 or better.
|
||||||
|
- fixed several timer related bugs.
|
||||||
|
- reformatted some messages.
|
||||||
|
|
||||||
|
- 3.3.8
|
||||||
|
- added support for the ISDN channels on ELSA LANCOM DSL/10 router
|
||||||
|
|
||||||
|
- 3.3.7
|
||||||
|
- suppress repeated identical e-mail messages.
|
||||||
|
|
||||||
|
- 3.3.6
|
||||||
|
- added support for the ELSA LANCOM DSL/10 router
|
||||||
|
- ignore 0.0.0.0 when obtained from any FW/router.
|
||||||
|
|
||||||
|
- 3.3.5
|
||||||
|
- fixed sample ddclient.conf. fw-ip= should be fw=
|
||||||
|
- fixed problem getting status pages for some routers
|
||||||
|
|
||||||
|
- 3.3.4
|
||||||
|
- added support for the MaxGate's UGATE-3x00 routers
|
||||||
|
|
||||||
|
- 3.3.3
|
||||||
|
- sample* correct checks for private addresses
|
||||||
|
- add redhat specific sample-etc_rc.d_init.d_ddclient.redhat
|
||||||
|
- make daemon-mode be the default when named ddclientd
|
||||||
|
- added support for the Linksys BEF* Internet Routers
|
||||||
|
|
||||||
|
- 3.3.2
|
||||||
|
- (sample-etc_rc.d_init.d_ddclient) set COLUMNS to a large number so that
|
||||||
|
'ps -aef' will not prematurely truncate the CMD.
|
||||||
|
|
||||||
|
- 3.3
|
||||||
|
- added rpm (thanks to Bo Forslund)
|
||||||
|
- added support for the Netgear RT3xx Internet Routers
|
||||||
|
- modified sample-etc_rc.d_init.d_ddclient to work with other Unix beside RedHat.
|
||||||
|
- avoid rewritting the ddclient.cache file unnecessarily
|
||||||
|
- fixed other minor bugs
|
||||||
|
|
||||||
|
- 3.2.0
|
||||||
|
- add support for DynDNS's custom domain service.
|
||||||
|
- change suggested directory to /usr/sbin
|
||||||
|
|
||||||
|
- 3.1.0
|
||||||
|
- clean up; fix minor bugs.
|
||||||
|
- removed -refresh
|
||||||
|
- add min-interval to avoid too frequent update attempts.
|
||||||
|
- add min-error-interval to avoid too frequent update attempts when the
|
||||||
|
service is unavailable.
|
||||||
|
|
||||||
|
- 3.0.1
|
||||||
|
- make all values case sensitive (ie. passwords)
|
||||||
|
|
||||||
|
- 3.0
|
||||||
|
- new release!
|
||||||
|
- new ddclient.conf format
|
||||||
|
- rewritten to support DynDNS's NIC2 and other dynamic DNS services
|
||||||
|
- added Hammernode (hn.org)
|
||||||
|
- added ZoneEdit (zoneedit.com)
|
||||||
|
- added DSLreports (dslreports.com) host monitoring
|
||||||
|
- added support for obtaining IP addresses from
|
||||||
|
- interfaces,
|
||||||
|
- commands,
|
||||||
|
- web,
|
||||||
|
- external commands,
|
||||||
|
- Watchguard's SOHO router
|
||||||
|
- Netopia's R910 router
|
||||||
|
- and SMC's Barracade
|
||||||
|
- added daemon mode
|
||||||
|
- added logging msgs to syslog and e-mail
|
||||||
|
|
||||||
|
- 2.3.7
|
||||||
|
- add -refresh to the sample scripts so default arguments are obtained from the cache
|
||||||
|
- added local-ip script for obtaining the address of an interface
|
||||||
|
- added public-ip script for obtaining the ip address as seen from a public web page
|
||||||
|
|
||||||
|
- 2.3.6
|
||||||
|
- fixed bug the broke enabling retrying when members.dyndns.org was down.
|
||||||
|
|
||||||
|
- 2.3.5
|
||||||
|
- prevent warnings from earlier versions of Perl.
|
||||||
|
|
||||||
|
- 2.3.4
|
||||||
|
- added sample-etc_dhclient-enter-hooks for those using the ISC DHCP client (dhclient)
|
||||||
|
|
||||||
|
- 2.3.3
|
||||||
|
- make sure that ddclient.conf is only readable by the owner so that no one
|
||||||
|
- else can see the password (courtesy of Steve Greenland).
|
||||||
|
-- NOTE: you will need to change the permissions on ddclient.conf to prevent
|
||||||
|
-- others from obtaining viewing your password.
|
||||||
|
-- ie. chmod go-rwx /etc/ddclient.conf
|
||||||
|
|
||||||
|
- 2.3.2
|
||||||
|
- make sure 'quiet' messages are printed when -verbose or -debug is enabled
|
||||||
|
- fix error messages for those people using proxies.
|
||||||
|
|
||||||
|
- 2.3
|
||||||
|
- fixed a problem reading in cached entries
|
||||||
|
|
||||||
|
|
||||||
|
- 2.2.1
|
||||||
|
- sample-etc_ppp_ip-up.local - local ip address is $4 or $PPP_LOCAL (for debian)
|
||||||
|
- use <CR><LF> as the line terminator (some proxies are strict about this)
|
||||||
|
|
||||||
|
- 2.2
|
||||||
|
- added support (-static) for updating static DNS (thanks Marc Sira)
|
||||||
|
- changed ddclient.cache format (old style is still read)
|
||||||
|
- sample-etc_ppp_ip-up.local - detect improper calling sequences
|
||||||
|
- sample-etc_ppp_ip-up.local - local ip address is $3 or $PPP_LOCAL (for debian)
|
||||||
|
|
||||||
|
- 2.1.2
|
||||||
|
- updated README
|
||||||
|
|
||||||
|
- 2.1.1
|
||||||
|
- make sure result code reflects any failures
|
||||||
|
- optionally (-quiet) omit messages for unnecessary updates
|
||||||
|
- update sample-etc_cron.d_ddclient to use -quiet
|
||||||
|
|
||||||
|
- 2.1
|
||||||
|
- avoid unnecessary updates by recording the last hosts updated in a
|
||||||
|
cache file (default /etc/ddclient.cache)
|
||||||
|
|
||||||
|
- optionally (-force) force an update, even if it may be unnecessary.
|
||||||
|
|
||||||
|
This can be used to prevent dyndns.org from deleting a host that has not
|
||||||
|
required an update for a long period of time.
|
||||||
|
|
||||||
|
- optionally (-refresh), reissue all host updates.
|
||||||
|
|
||||||
|
This can be used together with cron to periodically update DynDNS.
|
||||||
|
See sample-etc-cron.d-ddclient for details.
|
||||||
|
|
||||||
|
- optionally (-retry) save failed updates for future processing.
|
||||||
|
|
||||||
|
This feature can be used to reissue updates that may have failed due to
|
||||||
|
network connectivity problems or a DynDNS server outage
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
$Id$
|
||||||
|
------------------------------------------------------------------------
|
175
README
Normal file
175
README
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
===============================================================================
|
||||||
|
DDCLIENT v3.6.7
|
||||||
|
|
||||||
|
ddclient is a Perl client used to update dynamic DNS entries for accounts
|
||||||
|
on many dynamic DNS services.
|
||||||
|
|
||||||
|
IMPORTANT: The format and options used by ddclient have CHANGED.
|
||||||
|
Please examine the sample configuration file.
|
||||||
|
It is highly recommended that you take advantage of the
|
||||||
|
new daemon mode of operation.
|
||||||
|
|
||||||
|
IMPORTANT: The installation location for the ddclient script has changed from
|
||||||
|
/root/bin/
|
||||||
|
to
|
||||||
|
/usr/sbin/
|
||||||
|
|
||||||
|
===============================================================================
|
||||||
|
|
||||||
|
Dynamic DNS services currently supported include:
|
||||||
|
|
||||||
|
DynDNS.com - See http://www.dyndns.com for details on obtaining a free account.
|
||||||
|
Hammernode - See http://www.hn.org for details on obtaining a free account.
|
||||||
|
Zoneedit - See http://www.zoneedit.com for details.
|
||||||
|
EasyDNS - See http://www.easydns.com for details.
|
||||||
|
NameCheap - See http://www.namecheap.com for details
|
||||||
|
ConCont - See http://www.dydns.za.net for details
|
||||||
|
DnsPark - See http://www.dnspark.com for details
|
||||||
|
DslReports - See http://www.dslreports.com for details
|
||||||
|
Sitelutions - see http://www.sitelutions.com for details
|
||||||
|
|
||||||
|
DDclient now supports many of cable/dsl broadband routers.
|
||||||
|
|
||||||
|
Comments, suggestions and requests: use the forums on
|
||||||
|
http://sourceforge.net/projects/ddclient/
|
||||||
|
|
||||||
|
The code was originally written by Paul Burry and is now hosted and maintained
|
||||||
|
through sourceforge.net. Please check out http://ddclient.sf.net
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
REQUIREMENTS:
|
||||||
|
|
||||||
|
- one or more accounts from one of the dynamic DNS services
|
||||||
|
|
||||||
|
- Perl 5.004 or later
|
||||||
|
(you need the IO::Socket::SSL perl library for ssl-support)
|
||||||
|
|
||||||
|
- Linux or probably any common Unix system
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
INSTALLATION:
|
||||||
|
|
||||||
|
cp ddclient /usr/sbin/
|
||||||
|
mkdir /etc/ddclient
|
||||||
|
mkdir /var/cache/ddclient
|
||||||
|
cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
|
||||||
|
vi /etc/ddclient/ddclient.conf
|
||||||
|
-- and change hostnames, logins, and passwords appropriately
|
||||||
|
|
||||||
|
## For those using Redhat style rc files and using daemon-mode:
|
||||||
|
cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient
|
||||||
|
## enable automatic startup when booting
|
||||||
|
## check your distribution
|
||||||
|
/sbin/chkconfig --add ddclient
|
||||||
|
## start the first time by hand
|
||||||
|
/etc/rc.d/init.d/ddclient start
|
||||||
|
|
||||||
|
## If you are not using daemon-mode, configure cron and dhcp or ppp
|
||||||
|
## as described below.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
TROUBLESHOOTING:
|
||||||
|
|
||||||
|
1. enable debugging and verbose messages.
|
||||||
|
$ ddclient -daemon=0 -debug -verbose -noquiet
|
||||||
|
|
||||||
|
2. Do you need to specify a proxy?
|
||||||
|
If so, just add a
|
||||||
|
proxy=your.isp.proxy
|
||||||
|
to the ddclient.conf file.
|
||||||
|
|
||||||
|
3. Define the IP address of your router with fw=xxx.xxx.xxx.xxx in
|
||||||
|
/etc/ddclient/ddclient.conf and then try
|
||||||
|
$ ddclient -daemon=0 -query
|
||||||
|
to see if the router status web page can be understood.
|
||||||
|
|
||||||
|
4. Need support for another router/firewall?
|
||||||
|
Define the router status page yourself with:
|
||||||
|
fw=url-to-your-router's-status-page
|
||||||
|
fw-skip=any-string-preceding-your-IP-address
|
||||||
|
|
||||||
|
ddclient does something like this to provide builtin support for
|
||||||
|
common routers.
|
||||||
|
For example, the Linksys routers could have been added with:
|
||||||
|
fw=192.168.1.1/Status.htm
|
||||||
|
fw-skip=WAN.*?IP Address
|
||||||
|
|
||||||
|
OR
|
||||||
|
Send me the output from:
|
||||||
|
$ ddclient -geturl {fw-ip-status-url} [-login login [-password password]]
|
||||||
|
and I'll add it to the next release!
|
||||||
|
|
||||||
|
ie. for my fw/router I used:
|
||||||
|
$ ddclient -geturl 192.168.1.254/status.htm
|
||||||
|
|
||||||
|
5. Some broadband routers require the use of a password when ddclient
|
||||||
|
accesses its status page to determine the router's WAN IP address.
|
||||||
|
If this is the case for your router, add
|
||||||
|
fw-login=your-router-login
|
||||||
|
fw-password=your-router-password
|
||||||
|
to the beginning of your ddclient.conf file.
|
||||||
|
Note that some routers use either 'root' or 'admin' as their login
|
||||||
|
while some others accept anything.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
USING DDCLIENT WITH ppp
|
||||||
|
|
||||||
|
If you are using a ppp connection, you can easily update your DynDNS
|
||||||
|
entry with each connection, with:
|
||||||
|
## configure pppd to update DynDNS with each connection
|
||||||
|
cp sample-etc_ppp_ip-up.local /etc/ppp/ip-up.local
|
||||||
|
|
||||||
|
Alternatively, you may just configure ddclient to operate as a daemon
|
||||||
|
and monitor your ppp interface.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
USING DDCLIENT WITH cron
|
||||||
|
|
||||||
|
If you have not configured ddclient to use daemon-mode, you'll need to
|
||||||
|
configure cron to force an update once a month so that the dns entry will
|
||||||
|
not become stale.
|
||||||
|
|
||||||
|
## configure cron to force an update twice a month
|
||||||
|
cp sample-etc_cron.d_ddclient /etc/cron.d/ddclient
|
||||||
|
vi /etc/cron.d/ddclient
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
USING DDCLIENT WITH dhcpcd-1.3.17
|
||||||
|
|
||||||
|
If you are using dhcpcd-1.3.17 or thereabouts, you can easily update
|
||||||
|
your DynDNS entry automatically every time your lease is obtained
|
||||||
|
or renewed by creating an executable file named:
|
||||||
|
/etc/dhcpc/dhcpcd-{your-interface}.exe
|
||||||
|
ie.:
|
||||||
|
cp sample-etc_dhcpc_dhcpcd-eth0.exe /etc/dhcpc/dhcpcd-{your-interface}.exe
|
||||||
|
|
||||||
|
In my case, it is named dhcpcd-eth0.exe and contains the lines:
|
||||||
|
#!/bin/sh
|
||||||
|
PATH=/usr/sbin:/root/bin:${PATH}
|
||||||
|
logger -t dhcpcd IP address changed to $1
|
||||||
|
ddclient -proxy fasthttp.sympatico.ca -wildcard -ip $1 | logger -t ddclient
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
Other DHCP clients may have another method of calling out to programs
|
||||||
|
for updating DNS entries.
|
||||||
|
|
||||||
|
Alternatively, you may just configure ddclient to operate as a daemon
|
||||||
|
and monitor your ethernet interface.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
USING DDCLIENT WITH dhclient
|
||||||
|
|
||||||
|
If you are using the ISC DHCP client (dhclient), you can update
|
||||||
|
your DynDNS entry automatically every time your lease is obtained
|
||||||
|
or renewed by creating an executable file named:
|
||||||
|
/etc/dhclient-exit-hooks
|
||||||
|
ie.:
|
||||||
|
cp sample-etc_dhclient-exit-hooks /etc/dhclient-exit-hooks
|
||||||
|
|
||||||
|
Edit /etc/dhclient-exit-hooks to change any options required.
|
||||||
|
|
||||||
|
Alternatively, you may just configure ddclient to operate as a daemon
|
||||||
|
and monitor your ethernet interface.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
$Id$
|
35
README.cisco
Normal file
35
README.cisco
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
$Id$
|
||||||
|
Method 1 ------------------------------------------------------
|
||||||
|
|
||||||
|
The following config will allow the Linux machine (10.1.1.2) to read
|
||||||
|
the IP address from the DHCP interface on the Cisco router (eth0) as
|
||||||
|
user ddclient. Since ddclient is configured with a priv level of 1 it
|
||||||
|
cannot do anything except look at the routers stats, ip addresses,
|
||||||
|
etc. This should be pretty harmless even if ddclient's password were
|
||||||
|
to be discovered.
|
||||||
|
|
||||||
|
This has been tested with Cisco IOS 12.1(5)T5 running on a Cisco 2621
|
||||||
|
router.
|
||||||
|
|
||||||
|
Cisco Router Config (Assuming eth0 is DHCP interface)
|
||||||
|
-----------------------------------------------------
|
||||||
|
user ddclient password password
|
||||||
|
user ddclient priv 1
|
||||||
|
ip http auth local
|
||||||
|
ip http access-class 99
|
||||||
|
ip http port 1021
|
||||||
|
ip http server
|
||||||
|
access-list 99 permit host 10.1.1.2
|
||||||
|
|
||||||
|
DDClient Config
|
||||||
|
---------------------------------------------------
|
||||||
|
use=cisco, fw=10.1.1.1, if=eth0, fw-login=ddclient, fw-password=password
|
||||||
|
|
||||||
|
|
||||||
|
Method 2 ------------------------------------------------------
|
||||||
|
|
||||||
|
use=fw
|
||||||
|
fw=192.168.1.1/exec/show/interfaces/CR
|
||||||
|
fw-skip=FastEthernet0/0
|
||||||
|
fw-login=ddclient
|
||||||
|
fw-password=xxxxxxxx
|
10
README.ssl
Normal file
10
README.ssl
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
Since 3.7.0, ddclient support ssl-updates
|
||||||
|
To use ssl, put "ssl=yes" in your configuration and make sure
|
||||||
|
you have IO::Socket::SSL.
|
||||||
|
|
||||||
|
On debian, you need libio-socket-ssl-perl to have IO::Socket::SSL
|
||||||
|
|
||||||
|
ssl support is tested on folowing dynamic dns providers:
|
||||||
|
- dyndns.com
|
0
RELEASENOTE
Normal file
0
RELEASENOTE
Normal file
12
TODO
Normal file
12
TODO
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
* ssl:
|
||||||
|
- check if the library can be used
|
||||||
|
- ssl on routers
|
||||||
|
- ssl on other providers
|
||||||
|
|
||||||
|
* notice about irc: there's almost always someone there but we're sometimes idle
|
||||||
|
or at work...
|
||||||
|
* adding router: halted, only in patches section.
|
||||||
|
* add doc postscript
|
||||||
|
* FAQ: bad hostname (checkip)
|
||||||
|
* note about init-scripts.
|
||||||
|
* request from dyndns: http://tinyurl.com/2l3twf
|
0
UPGRADE
Normal file
0
UPGRADE
Normal file
20
patches/3com-oc-remote812.patch
Normal file
20
patches/3com-oc-remote812.patch
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#
|
||||||
|
# patch created with `svn diff -r53 . > patches/3com-oc-remote812.patch`
|
||||||
|
# on Wed Jun 6 15:07:45 CEST 2007
|
||||||
|
# applied on r53
|
||||||
|
#
|
||||||
|
# This patch was send to me by The_Beast on IRC.
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 53)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -162,7 +162,7 @@
|
||||||
|
'3com-oc-remote812' => {
|
||||||
|
'name' => '3com OfficeConnect Remote 812',
|
||||||
|
'url' => '/callEvent',
|
||||||
|
- 'skip' => '.*IP address in use',
|
||||||
|
+ 'skip' => '.*LOCAL',
|
||||||
|
},
|
||||||
|
'e-tech' => {
|
||||||
|
'name' => 'E-tech Router',
|
16
patches/create_patch.sh
Executable file
16
patches/create_patch.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# whichlist
|
||||||
|
# * add getopt
|
||||||
|
# * automatic version
|
||||||
|
|
||||||
|
{
|
||||||
|
cat <<EOF
|
||||||
|
#
|
||||||
|
# patch created with \`svn diff -r$1 . > patches/$2\`
|
||||||
|
# on $(date)
|
||||||
|
# applied on r$1
|
||||||
|
#
|
||||||
|
EOF
|
||||||
|
svn diff -r$1 ddclient
|
||||||
|
} > patches/$2.new
|
||||||
|
|
183
patches/ddclient-noip.patch
Normal file
183
patches/ddclient-noip.patch
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
--- ddclient 2007-08-28 15:41:51.000000000 -0700
|
||||||
|
+++ ddclient.noip 2007-08-28 15:37:32.000000000 -0700
|
||||||
|
@@ -376,6 +376,25 @@
|
||||||
|
'mx' => setv(T_OFQDN, 0, 1, 1, '', undef),
|
||||||
|
'mxpri' => setv(T_NUMBER, 0, 0, 1, 5, undef),
|
||||||
|
},
|
||||||
|
+ 'noip-common-defaults' => {
|
||||||
|
+ 'static' => setv(T_BOOL, 0, 1, 1, 0, undef),
|
||||||
|
+ },
|
||||||
|
+ 'noip-service-common-defaults' => {
|
||||||
|
+ 'server' => setv(T_FQDNP, 1, 0, 1, 'dynupdate.no-ip.com', undef),
|
||||||
|
+ 'login' => setv(T_LOGIN, 1, 0, 1, '', undef),
|
||||||
|
+ 'password' => setv(T_PASSWD, 1, 0, 1, '', undef),
|
||||||
|
+ 'host' => setv(T_STRING, 1, 1, 1, '', undef),
|
||||||
|
+ 'ip' => setv(T_IP, 0, 1, 0, undef, undef),
|
||||||
|
+ 'wtime' => setv(T_DELAY, 0, 1, 1, 0, interval('30s')),
|
||||||
|
+ 'mtime' => setv(T_NUMBER, 0, 1, 0, 0, undef),
|
||||||
|
+ 'atime' => setv(T_NUMBER, 0, 1, 0, 0, undef),
|
||||||
|
+ 'status' => setv(T_ANY, 0, 1, 0, '', undef),
|
||||||
|
+ 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('30s'), 0),
|
||||||
|
+ 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('25d'), 0),
|
||||||
|
+ 'min-error-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0),
|
||||||
|
+ 'warned-min-interval' => setv(T_ANY, 0, 1, 0, 0, undef),
|
||||||
|
+ 'warned-min-error-interval' => setv(T_ANY, 0, 1, 0, 0, undef),
|
||||||
|
+ },
|
||||||
|
);
|
||||||
|
my %services = (
|
||||||
|
'dyndns1' => {
|
||||||
|
@@ -398,6 +417,16 @@
|
||||||
|
$variables{'service-common-defaults'},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
+ 'noip' => {
|
||||||
|
+ 'updateable' => undef,
|
||||||
|
+ 'update' => \&nic_noip_update,
|
||||||
|
+ 'examples' => \&nic_noip_examples,
|
||||||
|
+ 'variables' => merge(
|
||||||
|
+ { 'custom' => setv(T_BOOL, 0, 1, 1, 0, undef), },
|
||||||
|
+ $variables{'noip-common-defaults'},
|
||||||
|
+ $variables{'noip-service-common-defaults'},
|
||||||
|
+ ),
|
||||||
|
+ },
|
||||||
|
'concont' => {
|
||||||
|
'updateable' => undef,
|
||||||
|
'update' => \&nic_concont_update,
|
||||||
|
@@ -2359,6 +2388,137 @@
|
||||||
|
if $state ne 'results2';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+######################################################################
|
||||||
|
+## nic_noip_update
|
||||||
|
+## Note: uses same features as nic_dyndns2_update, less return codes
|
||||||
|
+######################################################################
|
||||||
|
+sub nic_noip_update {
|
||||||
|
+ debug("\nnic_noip_update -------------------");
|
||||||
|
+
|
||||||
|
+ ## group hosts with identical attributes together
|
||||||
|
+ my %groups = group_hosts_by([ @_ ], [ qw(login password server static custom wildcard mx backupmx) ]);
|
||||||
|
+
|
||||||
|
+ my %errors = (
|
||||||
|
+ 'badauth' => 'Invalid username or password',
|
||||||
|
+ 'badagent' => 'Invalid user agent',
|
||||||
|
+ 'nohost' => 'The hostname specified does not exist in the database',
|
||||||
|
+ '!donator' => 'The offline setting was set, when the user is not a donator',
|
||||||
|
+ 'abuse', => 'The hostname specified is blocked for abuse; open a trouble ticket at http://www.no-ip.com',
|
||||||
|
+ 'numhost' => 'System error: Too many or too few hosts found. open a trouble ticket at http://www.no-ip.com',
|
||||||
|
+ 'dnserr' => 'System error: DNS error encountered. Contact support@dyndns.org',
|
||||||
|
+ 'nochg' => 'No update required; unnecessary attempts to change to the current address are considered abusive',
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+ ## update each set of hosts that had similar configurations
|
||||||
|
+ foreach my $sig (keys %groups) {
|
||||||
|
+ my @hosts = @{$groups{$sig}};
|
||||||
|
+ my $hosts = join(',', @hosts);
|
||||||
|
+ my $h = $hosts[0];
|
||||||
|
+
|
||||||
|
+ info("setting IP address to %s for %s", $ip, $hosts);
|
||||||
|
+ verbose("UPDATE:","updating %s", $hosts);
|
||||||
|
+
|
||||||
|
+ my $url = "http://$config{$h}{'server'}/nic/update?system=";
|
||||||
|
+ $url .= 'noip';
|
||||||
|
+ $url .= "&hostname=$hosts";
|
||||||
|
+ $url .= "&myip=";
|
||||||
|
+ $url .= $ip if $ip;
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ print "here..." . $config{$h}{'login'} . " --> " . $config{$h}{'password'} . "\n";
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ my $reply = geturl(opt('proxy'), $url, $config{$h}{'login'}, $config{$h}{'password'});
|
||||||
|
+ if (!defined($reply) || !$reply) {
|
||||||
|
+ failed("updating %s: Could not connect to %s.", $hosts, $config{$h}{'server'});
|
||||||
|
+ last;
|
||||||
|
+ }
|
||||||
|
+ last if !header_ok($hosts, $reply);
|
||||||
|
+
|
||||||
|
+ my @reply = split /\n/, $reply;
|
||||||
|
+ my $state = 'header';
|
||||||
|
+ foreach my $line (@reply) {
|
||||||
|
+ if ($state eq 'header') {
|
||||||
|
+ $state = 'body';
|
||||||
|
+
|
||||||
|
+ } elsif ($state eq 'body') {
|
||||||
|
+ $state = 'results' if $line eq '';
|
||||||
|
+
|
||||||
|
+ } elsif ($state =~ /^results/) {
|
||||||
|
+ $state = 'results2';
|
||||||
|
+
|
||||||
|
+ my ($status, $ip) = split / /, lc $line;
|
||||||
|
+ my $h = shift @hosts;
|
||||||
|
+
|
||||||
|
+ $config{$h}{'status'} = $status;
|
||||||
|
+ if ($status eq 'good') {
|
||||||
|
+ $config{$h}{'ip'} = $ip;
|
||||||
|
+ $config{$h}{'mtime'} = $now;
|
||||||
|
+ success("updating %s: %s: IP address set to %s", $h, $status, $ip);
|
||||||
|
+
|
||||||
|
+ } elsif (exists $errors{$status}) {
|
||||||
|
+ if ($status eq 'nochg') {
|
||||||
|
+ warning("updating %s: %s: %s", $h, $status, $errors{$status});
|
||||||
|
+ $config{$h}{'ip'} = $ip;
|
||||||
|
+ $config{$h}{'mtime'} = $now;
|
||||||
|
+ $config{$h}{'status'} = 'good';
|
||||||
|
+
|
||||||
|
+ } else {
|
||||||
|
+ failed("updating %s: %s: %s", $h, $status, $errors{$status});
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ } elsif ($status =~ /w(\d+)(.)/) {
|
||||||
|
+ my ($wait, $units) = ($1, lc $2);
|
||||||
|
+ my ($sec, $scale) = ($wait, 1);
|
||||||
|
+
|
||||||
|
+ ($scale, $units) = (1, 'seconds') if $units eq 's';
|
||||||
|
+ ($scale, $units) = (60, 'minutes') if $units eq 'm';
|
||||||
|
+ ($scale, $units) = (60*60, 'hours') if $units eq 'h';
|
||||||
|
+
|
||||||
|
+ $sec = $wait * $scale;
|
||||||
|
+ $config{$h}{'wtime'} = $now + $sec;
|
||||||
|
+ warning("updating %s: %s: wait $wait $units before further updates", $h, $status, $ip);
|
||||||
|
+
|
||||||
|
+ } else {
|
||||||
|
+ failed("updating %s: %s: unexpected status (%s)", $h, $line);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ failed("updating %s: Could not connect to %s.", $hosts, $config{$h}{'server'})
|
||||||
|
+ if $state ne 'results2';
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+######################################################################
|
||||||
|
+## nic_noip_examples
|
||||||
|
+######################################################################
|
||||||
|
+sub nic_noip_examples {
|
||||||
|
+ return <<EoEXAMPLE;
|
||||||
|
+o 'noip'
|
||||||
|
+
|
||||||
|
+The 'No-IP Compatible' protocol is used to make dynamic dns updates
|
||||||
|
+over an http request. Details of the protocol are outlined at:
|
||||||
|
+http://www.no-ip.com/integrate/
|
||||||
|
+
|
||||||
|
+Configuration variables applicable to the 'noip' protocol are:
|
||||||
|
+ protocol=noip ##
|
||||||
|
+ server=fqdn.of.service ## defaults to dynupdate.no-ip.com
|
||||||
|
+ login=service-login ## login name and password registered with the service
|
||||||
|
+ password=service-password ##
|
||||||
|
+ fully.qualified.host ## the host registered with the service.
|
||||||
|
+
|
||||||
|
+Example ${program}.conf file entries:
|
||||||
|
+ ## single host update
|
||||||
|
+ protocol=noip, \\
|
||||||
|
+ login=userlogin\@domain.com, \\
|
||||||
|
+ password=noip-password \\
|
||||||
|
+ myhost.no-ip.biz
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+EoEXAMPLE
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
######################################################################
|
||||||
|
## nic_concont_examples
|
||||||
|
######################################################################
|
33
patches/ddclient.daemon-timeout.patch
Normal file
33
patches/ddclient.daemon-timeout.patch
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
#
|
||||||
|
# patch added to revision 28
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 27)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -593,7 +593,7 @@
|
||||||
|
usage("invalid argument '-use %s'; possible values are:\n%s", $opt{'use'}, join("\n",ip_strategies_usage()))
|
||||||
|
unless exists $ip_strategies{lc opt('use')};
|
||||||
|
|
||||||
|
- $daemon = define($opt{'daemon'}, $globals{'daemon'});
|
||||||
|
+ $daemon = $opt{'daemon'};
|
||||||
|
$daemon = 0 if opt('force');
|
||||||
|
|
||||||
|
## obtain the IP address to use.
|
||||||
|
@@ -979,9 +979,13 @@
|
||||||
|
$opt{'min-error-interval'} = max(interval(opt('min-error-interval')), interval(default('min-error-interval')));
|
||||||
|
|
||||||
|
$opt{'timeout'} = 0 if opt('timeout') < 0;
|
||||||
|
- $opt{'daemon'} = minimum('daemon')
|
||||||
|
- if define($opt{'daemon'},$globals{'daemon'},0)
|
||||||
|
- && define($opt{'daemon'},$globals{'daemon'}) < minimum('daemon');
|
||||||
|
+
|
||||||
|
+ ## only set $opt{'daemon'} if it has been explicitly passed in
|
||||||
|
+ if (define($opt{'daemon'},$globals{'daemon'},0)) {
|
||||||
|
+ $opt{'daemon'} = interval(opt('daemon'));
|
||||||
|
+ $opt{'daemon'} = minimum('daemon')
|
||||||
|
+ if ($opt{'daemon'} < minimum('daemon'));
|
||||||
|
+ }
|
||||||
|
|
||||||
|
## define or modify host options specified on the command-line
|
||||||
|
if (exists $opt{'options'} && defined $opt{'options'}) {
|
14
patches/debianpatches/abuse_msg.diff
Normal file
14
patches/debianpatches/abuse_msg.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.043910433 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:24:59.469182565 +0100
|
||||||
|
@@ -2231,7 +2231,7 @@
|
||||||
|
'!yours' => 'The hostname specified exists, but not under the username currently being used',
|
||||||
|
'!donator' => 'The offline setting was set, when the user is not a donator',
|
||||||
|
'!active' => 'The hostname specified is in a Custom DNS domain which has not yet been activated.',
|
||||||
|
- 'abuse', => 'The hostname specified is blocked for abuse; contact support@dyndns.org to be unblocked',
|
||||||
|
+ 'abuse', => 'The hostname specified is blocked for abuse; fill in the form at http://support.dyndns.org/abuse.php to be unblocked',
|
||||||
|
|
||||||
|
'numhost' => 'System error: Too many or too few hosts found. Contact support@dyndns.org',
|
||||||
|
'dnserr' => 'System error: DNS error encountered. Contact support@dyndns.org',
|
||||||
|
|
22
patches/debianpatches/cachedir.diff
Normal file
22
patches/debianpatches/cachedir.diff
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-06-14 22:03:52.000000000 +0200
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:25:19.748088891 +0100
|
||||||
|
@@ -22,6 +22,7 @@
|
||||||
|
my $now = time;
|
||||||
|
my $hostname = hostname();
|
||||||
|
my $etc = ($program =~ /test/i) ? './' : '/etc/ddclient/';
|
||||||
|
+my $cachedir = ($program =~ /test/i) ? './' : '/var/cache/ddclient/';
|
||||||
|
my $savedir = ($program =~ /test/i) ? 'URL/' : '/tmp/';
|
||||||
|
my $msgs = '';
|
||||||
|
my $last_msgs = '';
|
||||||
|
@@ -296,7 +297,7 @@
|
||||||
|
'global-defaults' => {
|
||||||
|
'daemon' => setv(T_DELAY, 0, 0, 1, 0, interval('60s')),
|
||||||
|
'file' => setv(T_FILE, 0, 0, 1, "$etc$program.conf", undef),
|
||||||
|
- 'cache' => setv(T_FILE, 0, 0, 1, "$etc$program.cache", undef),
|
||||||
|
+ 'cache' => setv(T_FILE, 0, 0, 1, "$cachedir$program.cache", undef),
|
||||||
|
'pid' => setv(T_FILE, 0, 0, 1, "", undef),
|
||||||
|
'proxy' => setv(T_FQDNP, 0, 0, 1, '', undef),
|
||||||
|
'protocol' => setv(T_PROTO, 0, 0, 1, 'dyndns2', undef),
|
||||||
|
|
14
patches/debianpatches/cisco_fw.diff
Normal file
14
patches/debianpatches/cisco_fw.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.121898536 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:24:41.551915957 +0100
|
||||||
|
@@ -1823,7 +1823,7 @@
|
||||||
|
# Protect special HTML characters (like '?')
|
||||||
|
$queryif =~ s/([\?&= ])/sprintf("%%%02x",ord($1))/ge;
|
||||||
|
|
||||||
|
- $url = "http://${arg}/level/1/exec/show/ip/interface/brief/${queryif}/CR";
|
||||||
|
+ $url = "http://".opt('fw')."/level/1/exec/show/ip/interface/brief/${queryif}/CR";
|
||||||
|
$reply = geturl('', $url, opt('fw-login'), opt('fw-password')) || '';
|
||||||
|
$arg = $url;
|
||||||
|
|
||||||
|
|
14
patches/debianpatches/config_path.diff
Normal file
14
patches/debianpatches/config_path.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.151893960 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:22:37.171890909 +0100
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
$program =~ s/d$//;
|
||||||
|
my $now = time;
|
||||||
|
my $hostname = hostname();
|
||||||
|
-my $etc = ($program =~ /test/i) ? './' : '/etc/ddclient/';
|
||||||
|
+my $etc = ($program =~ /test/i) ? './' : '/etc/';
|
||||||
|
my $cachedir = ($program =~ /test/i) ? './' : '/var/cache/ddclient/';
|
||||||
|
my $savedir = ($program =~ /test/i) ? 'URL/' : '/tmp/';
|
||||||
|
my $msgs = '';
|
||||||
|
|
16
patches/debianpatches/daemon_check.diff
Normal file
16
patches/debianpatches/daemon_check.diff
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.023913484 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:25:03.977494794 +0100
|
||||||
|
@@ -993,8 +993,8 @@
|
||||||
|
|
||||||
|
$opt{'timeout'} = 0 if opt('timeout') < 0;
|
||||||
|
$opt{'daemon'} = minimum('daemon')
|
||||||
|
- if define($opt{'daemon'},$globals{'daemon'},0)
|
||||||
|
- && define($opt{'daemon'},$globals{'daemon'}) < minimum('daemon');
|
||||||
|
+ if interval(define($opt{'daemon'},$globals{'daemon'},0))
|
||||||
|
+ && interval(define($opt{'daemon'},$globals{'daemon'})) < minimum('daemon');
|
||||||
|
|
||||||
|
## define or modify host options specified on the command-line
|
||||||
|
if (exists $opt{'options'} && defined $opt{'options'}) {
|
||||||
|
|
14
patches/debianpatches/daemon_interval.diff
Normal file
14
patches/debianpatches/daemon_interval.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:36.919929347 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:25:15.960666685 +0100
|
||||||
|
@@ -966,6 +966,8 @@
|
||||||
|
sub init_config {
|
||||||
|
%opt = %saved_opt;
|
||||||
|
|
||||||
|
+ $opt{'daemon'}=interval($opt{'daemon'}) if defined $opt{'daemon'};
|
||||||
|
+
|
||||||
|
##
|
||||||
|
$opt{'quiet'} = 0 if opt('verbose');
|
||||||
|
|
||||||
|
|
46
patches/debianpatches/help_nonroot(2).diff
Normal file
46
patches/debianpatches/help_nonroot(2).diff
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.083904332 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:24:46.118219338 +0100
|
||||||
|
@@ -553,6 +553,12 @@
|
||||||
|
|
||||||
|
test_geturl(opt('geturl')) if opt('geturl');
|
||||||
|
|
||||||
|
+## process help option
|
||||||
|
+if (opt('help')) {
|
||||||
|
+ *STDERR = *STDOUT;
|
||||||
|
+ usage(0);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
## read config file because 'daemon' mode may be defined there.
|
||||||
|
read_config(define($opt{'file'}, default('file')), \%config, \%globals);
|
||||||
|
init_config();
|
||||||
|
@@ -1109,16 +1115,14 @@
|
||||||
|
$config{$h}{'cacheable'} = [ @{$services{$proto}{'cacheable'}} ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (opt('help')) {
|
||||||
|
- *STDERR = *STDOUT;
|
||||||
|
- usage();
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
## usage
|
||||||
|
######################################################################
|
||||||
|
sub usage {
|
||||||
|
+ my $exitcode = 1;
|
||||||
|
+ $exitcode = shift if @_ != 0; # use first arg if given
|
||||||
|
my $msg = '';
|
||||||
|
if (@_) {
|
||||||
|
my $format = shift;
|
||||||
|
@@ -1128,7 +1132,7 @@
|
||||||
|
}
|
||||||
|
printf STDERR "%s%s\n", $msg, $opt_usage;
|
||||||
|
sendmail();
|
||||||
|
- exit 1;
|
||||||
|
+ exit $exitcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
|
46
patches/debianpatches/help_nonroot.diff
Normal file
46
patches/debianpatches/help_nonroot.diff
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.083904332 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:24:46.118219338 +0100
|
||||||
|
@@ -553,6 +553,12 @@
|
||||||
|
|
||||||
|
test_geturl(opt('geturl')) if opt('geturl');
|
||||||
|
|
||||||
|
+## process help option
|
||||||
|
+if (opt('help')) {
|
||||||
|
+ *STDERR = *STDOUT;
|
||||||
|
+ usage(0);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
## read config file because 'daemon' mode may be defined there.
|
||||||
|
read_config(define($opt{'file'}, default('file')), \%config, \%globals);
|
||||||
|
init_config();
|
||||||
|
@@ -1109,16 +1115,14 @@
|
||||||
|
$config{$h}{'cacheable'} = [ @{$services{$proto}{'cacheable'}} ];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (opt('help')) {
|
||||||
|
- *STDERR = *STDOUT;
|
||||||
|
- usage();
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
## usage
|
||||||
|
######################################################################
|
||||||
|
sub usage {
|
||||||
|
+ my $exitcode = 1;
|
||||||
|
+ $exitcode = shift if @_ != 0; # use first arg if given
|
||||||
|
my $msg = '';
|
||||||
|
if (@_) {
|
||||||
|
my $format = shift;
|
||||||
|
@@ -1128,7 +1132,7 @@
|
||||||
|
}
|
||||||
|
printf STDERR "%s%s\n", $msg, $opt_usage;
|
||||||
|
sendmail();
|
||||||
|
- exit 1;
|
||||||
|
+ exit $exitcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
|
14
patches/debianpatches/ip-up_run-parts.diff
Normal file
14
patches/debianpatches/ip-up_run-parts.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Index: ddclient-3.7.0/sample-etc_ppp_ip-up.local
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/sample-etc_ppp_ip-up.local 2006-06-14 21:59:40.000000000 +0200
|
||||||
|
+++ ddclient-3.7.0/sample-etc_ppp_ip-up.local 2006-12-01 23:22:37.101901586 +0100
|
||||||
|
@@ -34,7 +34,7 @@
|
||||||
|
;;
|
||||||
|
*) (
|
||||||
|
sleep 5
|
||||||
|
- ddclient -daemon=0 -syslog -use=if -if=$1 >/dev/null 2>&1
|
||||||
|
+ ddclient -daemon=0 -syslog -use=if -if=$IP >/dev/null 2>&1
|
||||||
|
) &
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
14
patches/debianpatches/maxinterval.diff
Normal file
14
patches/debianpatches/maxinterval.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.062907535 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:24:53.543086628 +0100
|
||||||
|
@@ -357,7 +357,7 @@
|
||||||
|
'atime' => setv(T_NUMBER, 0, 1, 0, 0, undef),
|
||||||
|
'status' => setv(T_ANY, 0, 1, 0, '', undef),
|
||||||
|
'min-interval' => setv(T_DELAY, 0, 0, 1, interval('30s'), 0),
|
||||||
|
- 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('15d'), 0),
|
||||||
|
+ 'max-interval' => setv(T_DELAY, 0, 0, 1, interval('30d'), 0),
|
||||||
|
'min-error-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0),
|
||||||
|
|
||||||
|
'warned-min-interval' => setv(T_ANY, 0, 1, 0, 0, undef),
|
||||||
|
|
24
patches/debianpatches/readme.txt
Normal file
24
patches/debianpatches/readme.txt
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
(submitted by Torsten)
|
||||||
|
|
||||||
|
cisco_fw.diff
|
||||||
|
config_path.diff
|
||||||
|
daemon_check.diff
|
||||||
|
daemon_interval.diff
|
||||||
|
maxinterval.diff
|
||||||
|
sample_path.diff
|
||||||
|
smc-barricade-7401bra.patch
|
||||||
|
smc-barricade-fw-alt.diff
|
||||||
|
update-new-config.patch
|
||||||
|
|
||||||
|
cisco_fw.diff: Not sure what this change was about, have to check my
|
||||||
|
change log.
|
||||||
|
daemon_check.diff: Changes interpretation of the daemon parameter
|
||||||
|
to interval (to allow 5m for minutes etc.) when checking for min
|
||||||
|
value.
|
||||||
|
daemon_interval.diff: Changes interpretation of daemon interval during
|
||||||
|
input (now that I look at this, those two could probably be merged).
|
||||||
|
maxinterval.diff: Increase max interval for updates.
|
||||||
|
sample_path.diff: Adjust path in stamples.
|
||||||
|
update-new-config.patch: Force update if config has changed (still
|
||||||
|
needed?)
|
||||||
|
smc-*: Support for two more routers.
|
26
patches/debianpatches/sample_path.diff
Normal file
26
patches/debianpatches/sample_path.diff
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
Index: ddclient-3.6.2/sample-etc_cron.d_ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.6.2.orig/sample-etc_cron.d_ddclient 2002-01-04 00:56:34.000000000 +0100
|
||||||
|
+++ ddclient-3.6.2/sample-etc_cron.d_ddclient 2005-10-18 23:41:12.000000000 +0200
|
||||||
|
@@ -10,7 +10,7 @@
|
||||||
|
######################################################################
|
||||||
|
## force an update twice a month
|
||||||
|
##
|
||||||
|
-30 23 1,15 * * root /root/bin/ddclient -daemon=0 -syslog -quiet -force
|
||||||
|
+30 23 1,15 * * root /usr/sbin/ddclient -daemon=0 -syslog -quiet -force
|
||||||
|
######################################################################
|
||||||
|
## retry failed updates every hour (only if you are not using daemon-mode)
|
||||||
|
##
|
||||||
|
Index: ddclient-3.6.2/sample-etc_dhcpc_dhcpcd-eth0.exe
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.6.2.orig/sample-etc_dhcpc_dhcpcd-eth0.exe 2005-10-18 23:40:22.000000000 +0200
|
||||||
|
+++ ddclient-3.6.2/sample-etc_dhcpc_dhcpcd-eth0.exe 2005-10-18 23:41:02.000000000 +0200
|
||||||
|
@@ -15,6 +15,6 @@
|
||||||
|
192.168.*) ;;
|
||||||
|
*)
|
||||||
|
logger -t dhcpcd IP address changed to $1
|
||||||
|
- /root/bin/ddclient -daemon=0 -syslog -use=ip -ip=$1 >/dev/null 2>&1
|
||||||
|
+ /usr/sbin/ddclient -daemon=0 -syslog -use=ip -ip=$1 >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
23
patches/debianpatches/smc-barricade-7401bra.patch
Normal file
23
patches/debianpatches/smc-barricade-7401bra.patch
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
Add support for SMC7401BRA:
|
||||||
|
|
||||||
|
ddclient support several kind of firewall to retrieve IP address, two of
|
||||||
|
them are smc-barricade and smc-barricade-alt, but these both doesn't
|
||||||
|
work with an SMC7401BRA.
|
||||||
|
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient.orig 2006-12-01 23:22:36.958923399 +0100
|
||||||
|
+++ ddclient 2006-12-01 23:25:09.796607052 +0100
|
||||||
|
@@ -73,6 +73,11 @@
|
||||||
|
'url' => '/status.htm',
|
||||||
|
'skip' => 'IP Address',
|
||||||
|
},
|
||||||
|
+ 'smc-barricade-7401bra' => {
|
||||||
|
+ 'name' => 'SMC Barricade 7401BRA FW',
|
||||||
|
+ 'url' => '/admin/wan1.htm',
|
||||||
|
+ 'skip' => 'IP Address',
|
||||||
|
+ },
|
||||||
|
'netgear-rt3xx' => {
|
||||||
|
'name' => 'Netgear FW',
|
||||||
|
'url' => '/mtenSysStatus.html',
|
||||||
|
|
17
patches/debianpatches/smc-barricade-fw-alt.diff
Normal file
17
patches/debianpatches/smc-barricade-fw-alt.diff
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
Index: ddclient-3.7.0/ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient-3.7.0.orig/ddclient 2006-12-01 23:22:37.003916535 +0100
|
||||||
|
+++ ddclient-3.7.0/ddclient 2006-12-01 23:25:06.131166238 +0100
|
||||||
|
@@ -73,6 +73,11 @@
|
||||||
|
'url' => '/status.htm',
|
||||||
|
'skip' => 'IP Address',
|
||||||
|
},
|
||||||
|
+ 'smc-barricade-alt' => {
|
||||||
|
+ 'name' => 'SMC Barricade FW (alternate config)',
|
||||||
|
+ 'url' => '/status.HTM',
|
||||||
|
+ 'skip' => 'WAN IP',
|
||||||
|
+ },
|
||||||
|
'smc-barricade-7401bra' => {
|
||||||
|
'name' => 'SMC Barricade 7401BRA FW',
|
||||||
|
'url' => '/admin/wan1.htm',
|
||||||
|
|
22
patches/debianpatches/update-new-config.patch
Normal file
22
patches/debianpatches/update-new-config.patch
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
ddclient did not update the dynamic DNS entry if the config changes.
|
||||||
|
This patch by Frans Pop to fixes this problem reported as Debian bug
|
||||||
|
#217041.
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient.orig 2006-12-01 23:22:36.938926449 +0100
|
||||||
|
+++ ddclient 2006-12-01 23:25:12.987120319 +0100
|
||||||
|
@@ -1998,6 +1998,13 @@
|
||||||
|
} elsif (defined($sub) && &$sub($host)) {
|
||||||
|
$update = 1;
|
||||||
|
|
||||||
|
+ } elsif (($cache{$host}{'static'} ne $config{$host}{'static'}) ||
|
||||||
|
+ ($cache{$host}{'wildcard'} ne $config{$host}{'wildcard'}) ||
|
||||||
|
+ ($cache{$host}{'mx'} ne $config{$host}{'mx'}) ||
|
||||||
|
+ ($cache{$host}{'backupmx'} ne $config{$host}{'backupmx'})) {
|
||||||
|
+ info("updating %s because host settings have been changed.", $host);
|
||||||
|
+ $update = 1;
|
||||||
|
+
|
||||||
|
} else {
|
||||||
|
success("%s: skipped: IP address was already set to %s.", $host, $ip)
|
||||||
|
if opt('verbose');
|
||||||
|
|
44
patches/easydns.patch
Normal file
44
patches/easydns.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#
|
||||||
|
# patch from
|
||||||
|
#
|
||||||
|
--- ddclient 2004-11-24 17:23:56.000000000 +0100
|
||||||
|
+++ ddclient.orig 2005-01-25 10:03:22.640483000 +0100
|
||||||
|
@@ -257,6 +257,11 @@
|
||||||
|
'mx' => setv(T_OFQDN, 0, 1, 1, '', undef),
|
||||||
|
'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef),
|
||||||
|
},
|
||||||
|
+ 'easydns-common-defaults' => {
|
||||||
|
+ 'wildcard' => setv(T_BOOL, 0, 1, 1, 0, undef),
|
||||||
|
+ 'mx' => setv(T_OFQDN, 0, 1, 1, '', undef),
|
||||||
|
+ 'backupmx' => setv(T_BOOL, 0, 1, 1, 0, undef),
|
||||||
|
+ },
|
||||||
|
'dnspark-common-defaults' => {
|
||||||
|
'mx' => setv(T_OFQDN, 0, 1, 1, '', undef),
|
||||||
|
'mxpri' => setv(T_NUMBER, 0, 0, 1, 5, undef),
|
||||||
|
@@ -319,6 +324,7 @@
|
||||||
|
'variables' => merge(
|
||||||
|
{ 'server' => setv(T_FQDNP, 1, 0, 1, 'members.easydns.com', undef) },
|
||||||
|
{ 'min-interval' => setv(T_DELAY, 0, 0, 1, interval('5m'), 0),},
|
||||||
|
+ $variables{'easydns-common-defaults'},
|
||||||
|
$variables{'service-common-defaults'},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
@@ -2487,14 +2493,14 @@
|
||||||
|
info("setting IP address to %s for %s", $ip, $hosts);
|
||||||
|
verbose("UPDATE:","updating %s", $hosts);
|
||||||
|
|
||||||
|
- #'http://members.easydns.com:80/dyn/ez-ipupdate.php?action=edit&myip=10.20.30.40&host_id=test.burry.ca&'
|
||||||
|
+ #'http://members.easydns.com/dyn/dyndns.php?hostname=test.burry.ca&myip=10.20.30.40&wildcard=ON'
|
||||||
|
|
||||||
|
my $url;
|
||||||
|
- $url = "http://$config{$h}{'server'}/dyn/ez-ipupdate.php?action=edit";
|
||||||
|
- $url .= "&host_id=$hosts";
|
||||||
|
+ $url = "http://$config{$h}{'server'}/dyn/dyndns.php?";
|
||||||
|
+ $url .= "hostname=$hosts";
|
||||||
|
$url .= "&myip=";
|
||||||
|
$url .= $ip if $ip;
|
||||||
|
- $url .= "&wildcard=" . ynu($config{$h}{'wildcard'}, 'YES', 'NO', 'NO') if defined $config{$h}{'wildcard'};
|
||||||
|
+ $url .= "&wildcard=" . ynu($config{$h}{'wildcard'}, 'ON', 'OFF', 'OFF') if defined $config{$h}{'wildcard'};
|
||||||
|
|
||||||
|
if ($config{$h}{'mx'}) {
|
||||||
|
$url .= "&mx=$config{$h}{'mx'}";
|
23
patches/eurodns.patch
Normal file
23
patches/eurodns.patch
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#
|
||||||
|
# patch created with `svn diff -r83 . > patches/eurodns`
|
||||||
|
# on Tue Feb 19 15:57:27 CET 2008
|
||||||
|
#
|
||||||
|
# This patch is based on the original patch from patch #1668836
|
||||||
|
# It's currently not applied to subversion version of ddclient
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 83)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -2303,6 +2303,11 @@
|
||||||
|
|
||||||
|
## Select the DynDNS system to update
|
||||||
|
my $url = "http://$config{$h}{'server'}/nic/update?system=";
|
||||||
|
+ # hack for EuroDynDNS
|
||||||
|
+ if ($config{$h}{'server'} =~ /.*eurodyndns.*/i) {
|
||||||
|
+ $url = "http://$config{$h}{'server'}/update/?system=";
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if ($config{$h}{'custom'}) {
|
||||||
|
warning("updating %s: 'custom' and 'static' may not be used together. ('static' ignored)", $hosts)
|
||||||
|
if $config{$h}{'static'};
|
44
patches/mail-on-kill.patch
Normal file
44
patches/mail-on-kill.patch
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
#
|
||||||
|
# patch created with `svn diff -r82 . > patches/mail-on-kill.patch`
|
||||||
|
# on Fri Feb 8 11:03:01 CET 2008
|
||||||
|
# applied on r82
|
||||||
|
#
|
||||||
|
# This patch prevent ddclient sending out mail when interrupted by
|
||||||
|
# a TERM signal. It still sends mail ended by a KILL signal.
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 82)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -602,8 +602,10 @@
|
||||||
|
}
|
||||||
|
my $caught_hup = 0;
|
||||||
|
my $caught_term = 0;
|
||||||
|
+my $caught_kill = 0;
|
||||||
|
$SIG{'HUP'} = sub { $caught_hup = 1; };
|
||||||
|
$SIG{'TERM'} = sub { $caught_term = 1; };
|
||||||
|
+$SIG{'KILL'} = sub { $caught_kill = 1; };
|
||||||
|
if (opt('daemon') && !opt('force')) {
|
||||||
|
$SIG{'CHLD'} = 'IGNORE';
|
||||||
|
my $pid = fork;
|
||||||
|
@@ -665,7 +667,7 @@
|
||||||
|
sendmail();
|
||||||
|
|
||||||
|
my $left = $daemon;
|
||||||
|
- while (($left > 0) && !$caught_hup && !$caught_term) {
|
||||||
|
+ while (($left > 0) && !$caught_hup && !$caught_term && !$caught_kill) {
|
||||||
|
my $delay = $left > 10 ? 10 : $left;
|
||||||
|
|
||||||
|
$0 = sprintf("%s - sleeping for %s seconds", $program, $left);
|
||||||
|
@@ -681,9 +683,9 @@
|
||||||
|
} else {
|
||||||
|
$result = $result eq 'OK' ? 0 : 1;
|
||||||
|
}
|
||||||
|
-} while ($daemon && !$result && !$caught_term);
|
||||||
|
+} while ($daemon && !$result && !$caught_term && !$caught_kill);
|
||||||
|
|
||||||
|
-warning("caught SIGTERM; exiting") if $caught_term;
|
||||||
|
+warning("caught SIGKILL; exiting") if $caught_kill;
|
||||||
|
unlink_pid();
|
||||||
|
sendmail();
|
||||||
|
|
13
patches/no-host.patch
Normal file
13
patches/no-host.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 88)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -1996,7 +1996,7 @@
|
||||||
|
my $sub = shift;
|
||||||
|
my $update = 0;
|
||||||
|
|
||||||
|
- if ($config{$host}{'login'} eq '') {
|
||||||
|
+ if (!($config{$host}{'login'})) {
|
||||||
|
warning("null login name specified for host %s.", $host);
|
||||||
|
|
||||||
|
} elsif ($config{$host}{'password'} eq '') {
|
18
patches/opendns.patch
Normal file
18
patches/opendns.patch
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# patch created with `svn diff -r65 . > patches/opendns`
|
||||||
|
# on Mon Jul 23 14:20:22 CEST 2007
|
||||||
|
# applied on r65
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 65)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -2272,7 +2272,7 @@
|
||||||
|
verbose("UPDATE:","updating %s", $hosts);
|
||||||
|
|
||||||
|
## Select the DynDNS system to update
|
||||||
|
- my $url = "http://$config{$h}{'server'}/nic/update?system=";
|
||||||
|
+ my $url = "https://updates.opendns.com/account/ddns.php?system=";
|
||||||
|
if ($config{$h}{'custom'}) {
|
||||||
|
warning("updating %s: 'custom' and 'static' may not be used together. ('static' ignored)", $hosts)
|
||||||
|
if $config{$h}{'static'};
|
24
patches/readme.patch
Normal file
24
patches/readme.patch
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#
|
||||||
|
# patch submitted by Kmos
|
||||||
|
# See tracker #1752931
|
||||||
|
#
|
||||||
|
--- README.orig 2007-07-09 23:50:01.000000000 +0100
|
||||||
|
+++ README 2007-07-12 20:50:28.000000000 +0100
|
||||||
|
@@ -18,7 +16,7 @@
|
||||||
|
|
||||||
|
Dynamic DNS services currently supported include:
|
||||||
|
|
||||||
|
-DynDNS.org - See http://www.dyndns.org for details on obtaining a free account.
|
||||||
|
+DynDNS.com - See http://www.dyndns.com for details on obtaining a free account.
|
||||||
|
Hammernode - See http://www.hn.org for details on obtaining a free account.
|
||||||
|
Zoneedit - See http://www.zoneedit.com for details.
|
||||||
|
EasyDNS - See http://www.easydns.com for details.
|
||||||
|
@@ -34,7 +32,7 @@
|
||||||
|
http://sourceforge.net/projects/ddclient/
|
||||||
|
|
||||||
|
The code was originally written by Paul Burry and is now hosted and maintained
|
||||||
|
-through sf.net. Please check out http://ddclient.sf.net and the project page.
|
||||||
|
+through sourceforge.net. Please check out http://ddclient.sf.net
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
REQUIREMENTS:
|
23
patches/regex_vlan.patch
Normal file
23
patches/regex_vlan.patch
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
#
|
||||||
|
# patch created with `svn diff -r61 . > patches/regex_vlan.patch`
|
||||||
|
# on Tue Jul 10 21:29:49 CEST 2007
|
||||||
|
# applied on r61
|
||||||
|
#
|
||||||
|
# bug originally reported on ubuntu:
|
||||||
|
# https://bugs.edge.launchpad.net/ubuntu/+source/ddclient/+bug/77570
|
||||||
|
# posted upstream as bug #1747337
|
||||||
|
# patch written by marclogghe
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 61)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -1601,7 +1601,7 @@
|
||||||
|
return undef if $value eq "";
|
||||||
|
|
||||||
|
} elsif ($type eq T_IF) {
|
||||||
|
- return undef if $value !~ /^[a-z0-9:_-]+$/;
|
||||||
|
+ return undef if $value !~ /^[a-z0-9:._-]+$/;
|
||||||
|
|
||||||
|
} elsif ($type eq T_PROG) {
|
||||||
|
return undef if $value eq "";
|
15
patches/typo_dnspark.patch
Normal file
15
patches/typo_dnspark.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#
|
||||||
|
# typo_dnspark.patch send by Marco.
|
||||||
|
# Applied on ddclient Rev 72
|
||||||
|
#
|
||||||
|
--- ddclient.orig 2007-07-31 15:44:20.000000000 +0100
|
||||||
|
+++ ddclient 2007-07-31 15:45:52.000000000 +0100
|
||||||
|
@@ -2875,7 +2875,7 @@
|
||||||
|
|
||||||
|
The 'dnspark' protocol is used by DNS service offered by www.dnspark.com.
|
||||||
|
|
||||||
|
-Configuration variables applicable to the 'easydns' protocol are:
|
||||||
|
+Configuration variables applicable to the 'dnspark' protocol are:
|
||||||
|
protocol=dnspark ##
|
||||||
|
server=fqdn.of.service ## defaults to www.dnspark.com
|
||||||
|
backupmx=no|yes ## indicates that DNSPark should be the secondary MX
|
18
patches/typo_namecheap_patch.diff.new
Normal file
18
patches/typo_namecheap_patch.diff.new
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# patch created with `svn diff -r57 . > patches/typo_namecheap_patch.diff`
|
||||||
|
# on Tue Jul 10 09:25:19 CEST 2007
|
||||||
|
# applied on r57
|
||||||
|
#
|
||||||
|
Index: ddclient
|
||||||
|
===================================================================
|
||||||
|
--- ddclient (revision 59)
|
||||||
|
+++ ddclient (working copy)
|
||||||
|
@@ -3014,7 +3014,7 @@
|
||||||
|
|
||||||
|
The 'namecheap' protocol is used by DNS service offered by www.namecheap.com.
|
||||||
|
|
||||||
|
-Configuration variables applicable to the 'easydns' protocol are:
|
||||||
|
+Configuration variables applicable to the 'namecheap' protocol are:
|
||||||
|
protocol=namecheap ##
|
||||||
|
server=fqdn.of.service ## defaults to dynamicdns.park-your-domain.com
|
||||||
|
login=service-login ## login name and password registered with the service
|
34
patches/ubuntu/checked_ssl_load.diff
Normal file
34
patches/ubuntu/checked_ssl_load.diff
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
--- ddclient-3.7.1/ddclient.orig 2007-05-03 23:24:39.000000000 +0100
|
||||||
|
+++ ddclient-3.7.1/ddclient 2007-05-03 23:27:44.000000000 +0100
|
||||||
|
@@ -1635,6 +1642,20 @@
|
||||||
|
$res;
|
||||||
|
}
|
||||||
|
######################################################################
|
||||||
|
+## load_ssl_support
|
||||||
|
+######################################################################
|
||||||
|
+sub load_ssl_support {
|
||||||
|
+ my $ssl_loaded = eval {require IO::Socket::SSL};
|
||||||
|
+ unless ($ssl_loaded) {
|
||||||
|
+ fatal(<<"EOM");
|
||||||
|
+Error loading the Perl module IO::Socket::SSL needed for SSL connect.
|
||||||
|
+On Debian, the package libio-socket-ssl-perl must be installed.
|
||||||
|
+EOM
|
||||||
|
+ }
|
||||||
|
+ import IO::Socket::SSL;
|
||||||
|
+ { no warnings; $IO::Socket::SSL::DEBUG = 0; }
|
||||||
|
+}
|
||||||
|
+######################################################################
|
||||||
|
## geturl
|
||||||
|
######################################################################
|
||||||
|
sub geturl {
|
||||||
|
@@ -1663,9 +1684,7 @@
|
||||||
|
if ( $globals{'ssl'} and (caller(1))[3] ne 'main::get_ip' ) {
|
||||||
|
$use_ssl = 1;
|
||||||
|
$default_port = 443;
|
||||||
|
- require IO::Socket::SSL;
|
||||||
|
- import IO::Socket::SSL;
|
||||||
|
- { no warnings; $IO::Socket::SSL::DEBUG = 0; }
|
||||||
|
+ load_ssl_support;
|
||||||
|
} else {
|
||||||
|
$use_ssl = 0;
|
||||||
|
$default_port = 80;
|
11
patches/ubuntu/config_path.diff
Normal file
11
patches/ubuntu/config_path.diff
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- ddclient-3.7.1/ddclient.orig 2007-04-28 14:31:23.000000000 +0100
|
||||||
|
+++ ddclient-3.7.1/ddclient 2007-04-28 14:31:33.000000000 +0100
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
$program =~ s/d$//;
|
||||||
|
my $now = time;
|
||||||
|
my $hostname = hostname();
|
||||||
|
-my $etc = ($program =~ /test/i) ? './' : '/etc/ddclient/';
|
||||||
|
+my $etc = ($program =~ /test/i) ? './' : '/etc/';
|
||||||
|
my $cachedir = ($program =~ /test/i) ? './' : '/var/cache/ddclient/';
|
||||||
|
my $savedir = ($program =~ /test/i) ? 'URL/' : '/tmp/';
|
||||||
|
my $msgs = '';
|
11
patches/ubuntu/daemon_interval.diff
Normal file
11
patches/ubuntu/daemon_interval.diff
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- ddclient-3.7.1/ddclient.orig 2007-04-28 20:43:53.000000000 +0100
|
||||||
|
+++ ddclient-3.7.1/ddclient 2007-04-28 20:42:57.000000000 +0100
|
||||||
|
@@ -977,6 +977,8 @@
|
||||||
|
sub init_config {
|
||||||
|
%opt = %saved_opt;
|
||||||
|
|
||||||
|
+ $opt{'daemon'}=interval($opt{'daemon'}) if defined $opt{'daemon'};
|
||||||
|
+
|
||||||
|
##
|
||||||
|
$opt{'quiet'} = 0 if opt('verbose');
|
||||||
|
|
13
patches/ubuntu/default-timeout.patch
Normal file
13
patches/ubuntu/default-timeout.patch
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# patch original from ubuntu forum:
|
||||||
|
# https://bugs.launchpad.net/ubuntu/+source/ddclient/+bug/116066
|
||||||
|
--- ddclient 2007-10-25 19:39:46.000000000 +0300
|
||||||
|
+++ ddclient 2007-10-25 19:36:41.000000000 +0300
|
||||||
|
@@ -328,7 +328,7 @@
|
||||||
|
'cmd' => setv(T_PROG, 0, 0, 1, '', undef),
|
||||||
|
'cmd-skip' => setv(T_STRING,1, 0, 1, '', undef),
|
||||||
|
|
||||||
|
- 'timeout' => setv(T_DELAY, 0, 0, 1, 0, interval('120s')),
|
||||||
|
+ 'timeout' => setv(T_DELAY, 0, 0, 1, interval('120s'), interval('120s')),
|
||||||
|
'retry' => setv(T_BOOL, 0, 0, 0, 0, undef),
|
||||||
|
'force' => setv(T_BOOL, 0, 0, 0, 0, undef),
|
||||||
|
'ssl' => setv(T_BOOL, 0, 0, 0, 0, undef),
|
11
patches/ubuntu/sample_ubuntu.diff
Normal file
11
patches/ubuntu/sample_ubuntu.diff
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- ddclient-3.7.1/sample-etc_rc.d_init.d_ddclient.ubuntu.orig 2007-04-28 13:01:23.000000000 +0100
|
||||||
|
+++ ddclient-3.7.1/sample-etc_rc.d_init.d_ddclient.ubuntu 2007-04-28 13:01:51.000000000 +0100
|
||||||
|
@@ -5,7 +5,7 @@
|
||||||
|
# Submitted by paolo martinelli
|
||||||
|
|
||||||
|
DDCLIENT=/usr/sbin/ddclient
|
||||||
|
-CONF=/etc/ddclient/ddclient.conf
|
||||||
|
+CONF=/etc/ddclient.conf
|
||||||
|
PIDFILE=/var/run/ddclient.pid
|
||||||
|
|
||||||
|
test -x $DDCLIENT || exit 0
|
6
patches/ubuntu/series
Normal file
6
patches/ubuntu/series
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
config_path.diff
|
||||||
|
dyndns_com.diff
|
||||||
|
daemon_interval.diff
|
||||||
|
sample_ubuntu.diff
|
||||||
|
smc-barricade-fw-alt.diff
|
||||||
|
checked_ssl_load.diff
|
14
patches/ubuntu/smc-barricade-fw-alt.diff
Normal file
14
patches/ubuntu/smc-barricade-fw-alt.diff
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
--- ddclient-3.7.1/ddclient.orig 2007-04-30 00:43:32.000000000 +0100
|
||||||
|
+++ ddclient-3.7.1/ddclient 2007-05-03 23:07:24.000000000 +0100
|
||||||
|
@@ -73,6 +73,11 @@
|
||||||
|
'url' => '/status.htm',
|
||||||
|
'skip' => 'IP Address',
|
||||||
|
},
|
||||||
|
+ 'smc-barricade-alt' => {
|
||||||
|
+ 'name' => 'SMC Barricade FW (alternate config)',
|
||||||
|
+ 'url' => '/status.HTM',
|
||||||
|
+ 'skip' => 'WAN IP',
|
||||||
|
+ },
|
||||||
|
'smc-barricade-7401bra' => {
|
||||||
|
'name' => 'SMC Barricade 7401BRA FW',
|
||||||
|
'url' => '/admin/wan1.htm',
|
36
release/readme.txt
Normal file
36
release/readme.txt
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
This directory will contain anything related to releasing a new version of
|
||||||
|
ddclient. It will be a replacement for
|
||||||
|
http://ddclient.wiki.sourceforge.net/HowtoRelease
|
||||||
|
|
||||||
|
Releasing files
|
||||||
|
|
||||||
|
* tagging current version: see svn book
|
||||||
|
* svn copy https://ddclient.svn.sourceforge.net/svnroot/ddclient/trunk https://ddclient.svn.sourceforge.net/svnroot/ddclient/tags/release-3.7.2
|
||||||
|
* version nr aanpassen
|
||||||
|
* bz2 en gz file aanmaken
|
||||||
|
* ftp naar sf.net
|
||||||
|
* aanmaken release:
|
||||||
|
|
||||||
|
Release Notes 3.6.5 2004-11-24
|
||||||
|
ddclient-3.6.5.tar.bz2 33311 0 Any .bz2
|
||||||
|
ddclient-3.6.5.tar.gz 35726 0 Any .gz
|
||||||
|
|
||||||
|
* mail naar ddclient-support
|
||||||
|
* news updaten
|
||||||
|
|
||||||
|
|
||||||
|
* freshmeat updaten
|
||||||
|
* website bijtimmeren: versie nummer aanpassen
|
||||||
|
* [https://www.dyndns.com/developers/listings/3 dyndns update]
|
||||||
|
|
||||||
|
|
||||||
|
website
|
||||||
|
|
||||||
|
* recentste routers
|
||||||
|
* postscript
|
||||||
|
|
||||||
|
|
||||||
|
rss feeds
|
||||||
|
|
||||||
|
* see https://sourceforge.net/export/rss2_project.php?group_id=116817
|
||||||
|
|
17
sample-etc_cron.d_ddclient
Normal file
17
sample-etc_cron.d_ddclient
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
######################################################################
|
||||||
|
## ddclient is an IP address updater for www.dyndns.org
|
||||||
|
## $Id$
|
||||||
|
######################################################################
|
||||||
|
## minute 0-59
|
||||||
|
## hour 0-23
|
||||||
|
## day of month 1-31
|
||||||
|
## month 1-12 (or names, see below)
|
||||||
|
## day of week 0-7 (0 or 7 is Sun, or use names)
|
||||||
|
######################################################################
|
||||||
|
## force an update twice a month (only if you are not using daemon-mode)
|
||||||
|
##
|
||||||
|
## 30 23 1,15 * * root /usr/sbin/ddclient -daemon=0 -syslog -quiet -force
|
||||||
|
######################################################################
|
||||||
|
## retry failed updates every hour (only if you are not using daemon-mode)
|
||||||
|
##
|
||||||
|
## 0 * * * * root /usr/sbin/ddclient -daemon=0 -syslog -quiet retry
|
160
sample-etc_ddclient.conf
Normal file
160
sample-etc_ddclient.conf
Normal file
|
@ -0,0 +1,160 @@
|
||||||
|
######################################################################
|
||||||
|
##
|
||||||
|
## $Id$
|
||||||
|
##
|
||||||
|
## Define default global variables with lines like:
|
||||||
|
## var=value [, var=value]*
|
||||||
|
## These values will be used for each following host unless overridden
|
||||||
|
## with a local variable definition.
|
||||||
|
##
|
||||||
|
## Define local variables for one or more hosts with:
|
||||||
|
## var=value [, var=value]* host.and.domain[,host2.and.domain...]
|
||||||
|
##
|
||||||
|
## Lines can be continued on the following line by ending the line
|
||||||
|
## with a \
|
||||||
|
##
|
||||||
|
##
|
||||||
|
## Warning: not all supported routers or dynamic DNS services
|
||||||
|
## are mentioned here.
|
||||||
|
##
|
||||||
|
######################################################################
|
||||||
|
daemon=300 # check every 300 seconds
|
||||||
|
syslog=yes # log update msgs to syslog
|
||||||
|
mail=root # mail all msgs to root
|
||||||
|
mail-failure=root # mail failed update msgs to root
|
||||||
|
pid=/var/run/ddclient.pid # record PID in file.
|
||||||
|
ssl=yes # use ssl-support. Works with
|
||||||
|
# ssl-library
|
||||||
|
#
|
||||||
|
#use=watchguard-soho, fw=192.168.111.1:80 # via Watchguard's SOHO FW
|
||||||
|
#use=netopia-r910, fw=192.168.111.1:80 # via Netopia R910 FW
|
||||||
|
#use=smc-barricade, fw=192.168.123.254:80 # via SMC's Barricade FW
|
||||||
|
#use=netgear-rt3xx, fw=192.168.0.1:80 # via Netgear's internet FW
|
||||||
|
#use=linksys, fw=192.168.1.1:80 # via Linksys's internet FW
|
||||||
|
#use=maxgate-ugate3x00, fw=192.168.0.1:80 # via MaxGate's UGATE-3x00 FW
|
||||||
|
#use=elsa-lancom-dsl10, fw=10.0.0.254:80 # via ELSA LanCom DSL/10 DSL Router
|
||||||
|
#use=elsa-lancom-dsl10-ch01, fw=10.0.0.254:80 # via ELSA LanCom DSL/10 DSL Router
|
||||||
|
#use=elsa-lancom-dsl10-ch02, fw=10.0.0.254:80 # via ELSA LanCom DSL/10 DSL Router
|
||||||
|
#use=alcatel-stp, fw=10.0.0.138:80 # via Alcatel Speed Touch Pro
|
||||||
|
#use=xsense-aero, fw=192.168.1.1:80 # via Xsense Aero Router
|
||||||
|
#use=allnet-1298, fw=192.168.1.1:80 # via AllNet 1298 DSL Router
|
||||||
|
#use=3com-oc-remote812, fw=192.168.0.254:80 # via 3com OfficeConnect Remote 812
|
||||||
|
#use=e-tech, fw=192.168.1.1:80 # via E-tech Router
|
||||||
|
#use=cayman-3220h, fw=192.168.0.1:1080 # via Cayman 3220-H DSL Router
|
||||||
|
#
|
||||||
|
#fw-login=admin, fw-password=XXXXXX # FW login and password
|
||||||
|
#
|
||||||
|
## To obtain an IP address from FW status page (using fw-login, fw-password)
|
||||||
|
#use=fw, fw=192.168.1.254/status.htm, fw-skip='IP Address' # found after IP Address
|
||||||
|
#
|
||||||
|
## To obtain an IP address from Web status page (using the proxy if defined)
|
||||||
|
#use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
|
||||||
|
#
|
||||||
|
#use=ip, ip=127.0.0.1 # via static IP's
|
||||||
|
#use=if, if=eth0 # via interfaces
|
||||||
|
#use=web # via web
|
||||||
|
#
|
||||||
|
#protocol=dyndns2 # default protocol
|
||||||
|
#proxy=fasthttp.sympatico.ca:80 # default proxy
|
||||||
|
#server=members.dyndns.org # default server
|
||||||
|
#server=members.dyndns.org:8245 # default server (bypassing proxies)
|
||||||
|
|
||||||
|
#login=your-login # default login
|
||||||
|
#password=test # default password
|
||||||
|
#mx=mx.for.your.host # default MX
|
||||||
|
#backupmx=yes|no # host is primary MX?
|
||||||
|
#wildcard=yes|no # add wildcard CNAME?
|
||||||
|
|
||||||
|
##
|
||||||
|
## dyndns.org dynamic addresses
|
||||||
|
##
|
||||||
|
## (supports variables: wildcard,mx,backupmx)
|
||||||
|
##
|
||||||
|
# server=members.dyndns.org, \
|
||||||
|
# protocol=dyndns2 \
|
||||||
|
# your-dynamic-host.dyndns.org
|
||||||
|
|
||||||
|
##
|
||||||
|
## dyndns.org static addresses
|
||||||
|
##
|
||||||
|
## (supports variables: wildcard,mx,backupmx)
|
||||||
|
##
|
||||||
|
# static=yes, \
|
||||||
|
# server=members.dyndns.org, \
|
||||||
|
# protocol=dyndns2 \
|
||||||
|
# your-static-host.dyndns.org
|
||||||
|
|
||||||
|
##
|
||||||
|
##
|
||||||
|
## dyndns.org custom addresses
|
||||||
|
##
|
||||||
|
## (supports variables: wildcard,mx,backupmx)
|
||||||
|
##
|
||||||
|
# custom=yes, \
|
||||||
|
# server=members.dyndns.org, \
|
||||||
|
# protocol=dyndns2 \
|
||||||
|
# your-domain.top-level,your-other-domain.top-level
|
||||||
|
|
||||||
|
##
|
||||||
|
## ZoneEdit (zoneedit.com)
|
||||||
|
##
|
||||||
|
# server=dynamic.zoneedit.com, \
|
||||||
|
# protocol=zoneedit1, \
|
||||||
|
# login=your-zoneedit-login, \
|
||||||
|
# password=your-zoneedit-password \
|
||||||
|
# your.any.domain,your-2nd.any.dom
|
||||||
|
|
||||||
|
##
|
||||||
|
## EasyDNS (easydns.com)
|
||||||
|
##
|
||||||
|
# server=members.easydns.com, \
|
||||||
|
# protocol=easydns, \
|
||||||
|
# login=your-easydns-login, \
|
||||||
|
# password=your-easydns-password \
|
||||||
|
# your.any.domain,your-2nd.any.domain
|
||||||
|
|
||||||
|
##
|
||||||
|
## Hammernode (hn.org) dynamic addresses
|
||||||
|
##
|
||||||
|
# server=dup.hn.org, \
|
||||||
|
# protocol=hammernode1, \
|
||||||
|
# login=your-hn-login, \
|
||||||
|
# password=your-hn-password \
|
||||||
|
# your-hn-host.hn.org,your-2nd-hn-host.hn.org
|
||||||
|
|
||||||
|
##
|
||||||
|
## dslreports.com dynamic-host monitoring
|
||||||
|
##
|
||||||
|
# server=members.dslreports.com \
|
||||||
|
# protocol=dslreports1, \
|
||||||
|
# login=dslreports-login, \
|
||||||
|
# password=dslreports-password \
|
||||||
|
# dslreports-unique-id
|
||||||
|
|
||||||
|
##
|
||||||
|
## OrgDNS.org account-configuration
|
||||||
|
##
|
||||||
|
# use=web, web=members.orgdns.org/nic/ip
|
||||||
|
# server=www.orgdns.org \
|
||||||
|
# protocol=dyndns2 \
|
||||||
|
# login=yourLoginName \
|
||||||
|
# password=yourPassword \
|
||||||
|
# yourSubdomain.orgdns.org
|
||||||
|
|
||||||
|
##
|
||||||
|
## dnspark.com
|
||||||
|
## (supports variables: mx, mxpri)
|
||||||
|
##
|
||||||
|
# use=web, web=ipdetect.dnspark.com, web-skip='Current Address:'
|
||||||
|
# protocol=dnspark, \
|
||||||
|
# server=www.dnspark.com, \
|
||||||
|
# your-host.dnspark.com
|
||||||
|
|
||||||
|
##
|
||||||
|
## NameCheap (namecheap.com)
|
||||||
|
##
|
||||||
|
# protocol=namecheap, \
|
||||||
|
# server=dynamicdns.park-your-domain.com, \
|
||||||
|
# login=my-namecheap.com-login, \
|
||||||
|
# password=my-namecheap.com-password \
|
||||||
|
# myhost.namecheap.com
|
17
sample-etc_dhclient-exit-hooks
Normal file
17
sample-etc_dhclient-exit-hooks
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
######################################################################
|
||||||
|
## $Id$
|
||||||
|
######################################################################
|
||||||
|
# The /etc/dhclient-enter-hooks script is run by the ISC DHCP client's standard
|
||||||
|
# update script whenever dhclient obtains or renews an address.
|
||||||
|
|
||||||
|
PATH=/usr/sbin:${PATH}
|
||||||
|
case "$new_ip_address" in
|
||||||
|
10.*) ;;
|
||||||
|
172.1[6-9].* | 172.2[0-9].* | 172.3[0-1].*) ;;
|
||||||
|
192.168.*) ;;
|
||||||
|
*)
|
||||||
|
logger -t dhclient IP address changed to $new_ip_address
|
||||||
|
ddclient -daemon=0 -syslog -use=ip -ip=$new_ip_address >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
esac
|
20
sample-etc_dhcpc_dhcpcd-eth0.exe
Normal file
20
sample-etc_dhcpc_dhcpcd-eth0.exe
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/sh
|
||||||
|
######################################################################
|
||||||
|
## $Id$
|
||||||
|
######################################################################
|
||||||
|
PATH=/usr/sbin:${PATH}
|
||||||
|
|
||||||
|
## update the DNS server unless the IP address is a private address
|
||||||
|
## that may be used as an internal LAN address. This may be true if
|
||||||
|
## other interfaces are assigned private addresses from internal
|
||||||
|
## DHCP server.
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
10.*) ;;
|
||||||
|
172.1[6-9].* | 172.2[0-9].* | 172.3[0-1].*) ;;
|
||||||
|
192.168.*) ;;
|
||||||
|
*)
|
||||||
|
logger -t dhcpcd IP address changed to $1
|
||||||
|
ddclient -daemon=0 -syslog -use=ip -ip=$1 >/dev/null 2>&1
|
||||||
|
;;
|
||||||
|
esac
|
40
sample-etc_ppp_ip-up.local
Normal file
40
sample-etc_ppp_ip-up.local
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/sh
|
||||||
|
######################################################################
|
||||||
|
## $Id$
|
||||||
|
######################################################################
|
||||||
|
##
|
||||||
|
## On my host, pppd invokes this script with args:
|
||||||
|
## /etc/ppp/ip-up.local ppp0 /dev/pts/1 115200 192.168.2.1 192.168.2.3
|
||||||
|
##
|
||||||
|
## From the manual page for my pppd, these aguments are:
|
||||||
|
## scriptname interface-name tty-device speed local-IP-address remote-IP-address ipparam
|
||||||
|
##
|
||||||
|
## Some people have reported that their pppd returns their
|
||||||
|
## local-IP-address as $3. If that's also the case for you,
|
||||||
|
## you may need to change the $4 below to $3. This may not
|
||||||
|
## be necessary if your pppd also passes the local-ip-address
|
||||||
|
## in the environment as either PPP_LOCAL or IPLOCAL.
|
||||||
|
##
|
||||||
|
######################################################################
|
||||||
|
PATH=/usr/sbin:${PATH}
|
||||||
|
IP=
|
||||||
|
IP=${IP:-$PPP_LOCAL}
|
||||||
|
IP=${IP:-$IPLOCAL}
|
||||||
|
IP=${IP:-$4}
|
||||||
|
|
||||||
|
## update the DNS server unless the IP address is a private address
|
||||||
|
## that may be used as an internal LAN address (or PPtP tunnel).
|
||||||
|
|
||||||
|
logger -t ddclient $0 $*
|
||||||
|
case "$IP" in
|
||||||
|
10.*) ;;
|
||||||
|
172.1[6-9].* | 172.2[0-9].* | 172.3[0-1].*) ;;
|
||||||
|
192.168.*) ;;
|
||||||
|
"") logger -t ddclient No local IP given so cannot update
|
||||||
|
;;
|
||||||
|
*) (
|
||||||
|
sleep 5
|
||||||
|
ddclient -daemon=0 -syslog -use=if -if=$1 >/dev/null 2>&1
|
||||||
|
) &
|
||||||
|
;;
|
||||||
|
esac
|
91
sample-etc_rc.d_init.d_ddclient
Executable file
91
sample-etc_rc.d_init.d_ddclient
Executable file
|
@ -0,0 +1,91 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# ddclient This shell script takes care of starting and stopping
|
||||||
|
# ddclient.
|
||||||
|
#
|
||||||
|
# chkconfig: 2345 65 35
|
||||||
|
# description: ddclient provides support for updating dynamic DNS services.
|
||||||
|
|
||||||
|
CONF=/etc/ddclient/ddclient.conf
|
||||||
|
program=ddclient
|
||||||
|
|
||||||
|
[ -f $CONF ] || exit 0
|
||||||
|
|
||||||
|
system=unknown
|
||||||
|
if [ -f /etc/fedora-release ]; then
|
||||||
|
system=fedora
|
||||||
|
elif [ -f /etc/redhat-release ]; then
|
||||||
|
system=redhat
|
||||||
|
elif [ -f /etc/debian_version ]; then
|
||||||
|
system=debian
|
||||||
|
fi
|
||||||
|
|
||||||
|
PID=''
|
||||||
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
||||||
|
. /etc/init.d/functions
|
||||||
|
PID=`pidofproc $program`
|
||||||
|
else
|
||||||
|
PID=`ps -aef | grep "$program - sleep" | grep -v grep | awk '{print $2}'`
|
||||||
|
fi
|
||||||
|
|
||||||
|
PATH=/usr/sbin:/usr/local/sbin:${PATH}
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
# Start daemon.
|
||||||
|
DELAY=`grep -v '^\s*#' $CONF | grep -i -m 1 "daemon" | awk -F '=' '{print $2}'`
|
||||||
|
if [ -z "$DELAY" ] ; then
|
||||||
|
DELAY="-daemon 300"
|
||||||
|
else
|
||||||
|
DELAY=''
|
||||||
|
fi
|
||||||
|
echo -n "Starting ddclient: "
|
||||||
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
||||||
|
daemon $program $DELAY
|
||||||
|
else
|
||||||
|
ddclient $DELAY
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
# Stop daemon.
|
||||||
|
echo -n "Shutting down ddclient: "
|
||||||
|
if [ -n "$PID" ] ; then
|
||||||
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
||||||
|
killproc $program
|
||||||
|
else
|
||||||
|
kill $PID
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "ddclient is not running"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
||||||
|
status $program
|
||||||
|
else
|
||||||
|
if test "$PID"
|
||||||
|
then
|
||||||
|
for p in $PID
|
||||||
|
do
|
||||||
|
echo "$program (pid $p) is running"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "$program is stopped"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: ddclient {start|stop|restart|status}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
66
sample-etc_rc.d_init.d_ddclient.lsb
Executable file
66
sample-etc_rc.d_init.d_ddclient.lsb
Executable file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# ddclient This shell script takes care of starting and stopping
|
||||||
|
# ddclient.
|
||||||
|
#
|
||||||
|
# chkconfig: 2345 65 35
|
||||||
|
# description: ddclient provides support for updating dynamic DNS services.
|
||||||
|
#
|
||||||
|
# Above is for RedHat and now the LSB part
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: ddclient
|
||||||
|
# Required-Start: $syslog $remote_fs
|
||||||
|
# Should-Start: $time ypbind sendmail
|
||||||
|
# Required-Stop: $syslog $remote_fs
|
||||||
|
# Should-Stop: $time ypbind sendmail
|
||||||
|
# Default-Start: 3 5
|
||||||
|
# Default-Stop: 0 1 2 6
|
||||||
|
# Short-Description: ddclient provides support for updating dynamic DNS services
|
||||||
|
# Description: ddclient is a Perl client used to update dynamic DNS
|
||||||
|
# entries for accounts on many dynamic DNS services and
|
||||||
|
# can be used on many types of firewalls
|
||||||
|
### END INIT INFO
|
||||||
|
#
|
||||||
|
# $Id$
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
[ -f /etc/ddclient/ddclient.conf ] || exit 0
|
||||||
|
|
||||||
|
DDCLIENT_BIN=/usr/sbin/ddclient
|
||||||
|
|
||||||
|
#
|
||||||
|
# LSB Standard (SuSE,RedHat,...)
|
||||||
|
#
|
||||||
|
if [ -f /lib/lsb/init-functions ] ; then
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
fi
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo -n "Starting ddclient "
|
||||||
|
start_daemon $DDCLIENT_BIN -daemon 300
|
||||||
|
rc_status -v
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
echo -n "Shutting down ddclient "
|
||||||
|
killproc -TERM `basename $DDCLIENT_BIN`
|
||||||
|
rc_status -v
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
rc_status
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
echo -n "Checking for service ddclient "
|
||||||
|
checkproc `basename $DDCLIENT_BIN`w
|
||||||
|
rc_status -v
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: ddclient {start|stop|restart|status}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
41
sample-etc_rc.d_init.d_ddclient.redhat
Executable file
41
sample-etc_rc.d_init.d_ddclient.redhat
Executable file
|
@ -0,0 +1,41 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# $Id$
|
||||||
|
# ddclient This shell script takes care of starting and stopping
|
||||||
|
# ddclient.
|
||||||
|
#
|
||||||
|
# chkconfig: 2345 65 35
|
||||||
|
# description: ddclient provides support for updating dynamic DNS services.
|
||||||
|
|
||||||
|
[ -f /etc/ddclient/ddclient.conf ] || exit 0
|
||||||
|
|
||||||
|
. /etc/rc.d/init.d/functions
|
||||||
|
|
||||||
|
# See how we were called.
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
# Start daemon.
|
||||||
|
echo -n "Starting ddclient: "
|
||||||
|
touch /var/lock/subsys/ddclient
|
||||||
|
daemon ddclient -daemon 300
|
||||||
|
echo
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
# Stop daemon.
|
||||||
|
echo -n "Shutting down ddclient: "
|
||||||
|
killproc ddclient
|
||||||
|
echo
|
||||||
|
rm -f /var/lock/subsys/ddclient
|
||||||
|
;;
|
||||||
|
restart)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status ddclient
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: ddclient {start|stop|restart|status}"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
47
sample-etc_rc.d_init.d_ddclient.ubuntu
Executable file
47
sample-etc_rc.d_init.d_ddclient.ubuntu
Executable file
|
@ -0,0 +1,47 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Start ddclient that provides support for updating dynamic DNS services.
|
||||||
|
#
|
||||||
|
# Submitted by paolo martinelli
|
||||||
|
|
||||||
|
DDCLIENT=/usr/sbin/ddclient
|
||||||
|
CONF=/etc/ddclient/ddclient.conf
|
||||||
|
PIDFILE=/var/run/ddclient.pid
|
||||||
|
|
||||||
|
test -x $DDCLIENT || exit 0
|
||||||
|
test -f $CONF || exit 0
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
log_begin_msg "Starting ddclient..."
|
||||||
|
DELAY=`grep -v '^\s*#' $CONF | grep -i -m 1 "daemon" | awk -F '=' '{print $2}'`
|
||||||
|
if [ -z "$DELAY" ] ; then
|
||||||
|
DELAY="-daemon 300"
|
||||||
|
else
|
||||||
|
DELAY=''
|
||||||
|
fi
|
||||||
|
start-stop-daemon -S -q -p $PIDFILE -x $DDCLIENT -- $DELAY
|
||||||
|
log_end_msg $?
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
if [ -f $PIDFILE ] ; then
|
||||||
|
log_begin_msg "Stopping ddclient..."
|
||||||
|
start-stop-daemon -K -q -p $PIDFILE
|
||||||
|
log_end_msg $?
|
||||||
|
rm -f $PIDFILE
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
restart|reload|force-reload)
|
||||||
|
$0 stop
|
||||||
|
$0 start
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log_success_msg "Usage: $0 {start|stop|restart|reload|force-reload}"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue