--- /dev/null
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+
+PROJECT(bpdyndnsd)
+
+# if you don't want the full compiler output, remove the following line
+SET(CMAKE_VERBOSE_MAKEFILE ON)
+
+# add definitions, compiler switches, etc.
+ADD_DEFINITIONS(-Wall -O2)
+
+# list all source files here
+ADD_EXECUTABLE(bin/bpdyndnsd src/main.cpp)
+
+# find boost_program_options and link to bpdyndnsd
+FIND_LIBRARY( BOOST_PROGRAM_OPTIONS libboost_program_options.so )
+IF(BOOST_PROGRAM_OPTIONS)
+ MESSAGE(STATUS "Found boost/program_options as ${BOOST_PROGRAM_OPTIONS}")
+ TARGET_LINK_LIBRARIES(bin/bpdyndnsd ${BOOST_PROGRAM_OPTIONS})
+ELSE(BOOST_PROGRAM_OPTIONS)
+ MESSAGE(FATAL_ERROR "Could not find boost/program_options")
+ENDIF(BOOST_PROGRAM_OPTIONS)
--- /dev/null
+ 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.
+\f
+ 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.)
+\f
+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.
+\f
+ 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.
+\f
+ 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
+\f
+ 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) <year> <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) year 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.
--- /dev/null
+# Doxyfile 1.5.7.1-KDevelop
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = bpdyndnsd
+PROJECT_NUMBER = $VERSION$
+OUTPUT_DIRECTORY =
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = /home/bjoern/Documents/
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+EXTENSION_MAPPING =
+BUILTIN_STL_SUPPORT = NO
+CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+TYPEDEF_HIDES_STRUCT = NO
+SYMBOL_CACHE_SIZE = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
+EXTRACT_ANON_NSPACES = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_GROUP_NAMES = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = NO
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER =
+LAYOUT_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = /home/bjoern/bpdyndnsd
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.c \
+ *.cc \
+ *.cxx \
+ *.cpp \
+ *.c++ \
+ *.d \
+ *.java \
+ *.ii \
+ *.ixx \
+ *.ipp \
+ *.i++ \
+ *.inl \
+ *.h \
+ *.hh \
+ *.hxx \
+ *.hpp \
+ *.h++ \
+ *.idl \
+ *.odl \
+ *.cs \
+ *.php \
+ *.php3 \
+ *.inc \
+ *.m \
+ *.mm \
+ *.dox \
+ *.py \
+ *.f90 \
+ *.f \
+ *.vhd \
+ *.vhdl \
+ *.C \
+ *.CC \
+ *.C++ \
+ *.II \
+ *.I++ \
+ *.H \
+ *.HH \
+ *.H++ \
+ *.CS \
+ *.PHP \
+ *.PHP3 \
+ *.M \
+ *.MM \
+ *.PY \
+ *.F90 \
+ *.F \
+ *.VHD \
+ *.VHDL \
+ *.C \
+ *.H \
+ *.tlh \
+ *.diff \
+ *.patch \
+ *.moc \
+ *.xpm \
+ *.dox
+RECURSIVE = yes
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION = NO
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = NO
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+HTML_DYNAMIC_SECTIONS = NO
+GENERATE_DOCSET = NO
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_BUNDLE_ID = org.doxygen.Project
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE =
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUSTOM_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NONE
+TREEVIEW_WIDTH = 250
+FORMULA_FONTSIZE = 10
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = YES
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = yes
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE = bpdyndnsd.tag
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+MSCGEN_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = NO
+DOT_FONTNAME = FreeSans
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 1000
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
--- /dev/null
+-----------------------------------------------
+Simple C++ Hello World template based on cmake
+QStart
+Author: Anne-Marie Mahfouf
+Date: 2006-12-06
+-----------------------------------------------
+
+This README file explains you basic things for starting with
+this application template.
+
+-----------------------------------------------
+* REQUIREMENTS *
+- Qt version might be 3.3.4 or 3.3.5
+- kdelibs 3.5 and kdelibs headers 3.5 (devel package) in order to build this template.
+- cmake (http://www.cmake.org/) version 2.1 or 2.2 in your PATH
+-----------------------------------------------
+
+-----------------------------------------------
+* Building and running *
+- cmake will run after the template is loaded provided cmake is in your PATH. If not, you will see an error message in the terminal
+and you will need to install cmake in your PATH.
+- In the Build menu in KDevelop, click on Build Project (or use the F8 shortcut) in order to build your project.
+- Run your project using the Build menu -> Execute Program. Note that default makes your program run in KDevelop integrated terminal. You can run your program in an external terminal by changing the project options (Project -> Project Options -> Run options and check at the bottom "Start in external terminal")
+-----------------------------------------------
+
+-----------------------------------------------
+* Useful link *
+
+CMake Documentation: http://www.cmake.org/HTML/Documentation.html
+
--- /dev/null
+<?xml version = '1.0'?>
+<kdevelop>
+ <general>
+ <author>Bjoern Sikora</author>
+ <email>bjoern.sikora@intra2net.com</email>
+ <version>0.1</version>
+ <projectmanagement>KDevCustomProject</projectmanagement>
+ <primarylanguage>C++</primarylanguage>
+ <ignoreparts/>
+ <projectdirectory>.</projectdirectory>
+ <absoluteprojectpath>false</absoluteprojectpath>
+ <secondaryLanguages>
+ <language>C</language>
+ </secondaryLanguages>
+ <projectname>bpdyndnsd</projectname>
+ <description/>
+ <defaultencoding/>
+ <versioncontrol/>
+ </general>
+ <kdevcustomproject>
+ <filelistdirectory>/home/bjoern/bpdyndnsd</filelistdirectory>
+ <run>
+ <mainprogram>/home/bjoern/bpdyndnsd/bin/bpdyndnsd</mainprogram>
+ <directoryradio>custom</directoryradio>
+ <customdirectory>/home/bjoern/bpdyndnsd</customdirectory>
+ <programargs/>
+ <terminal>false</terminal>
+ <autocompile>true</autocompile>
+ <envvars/>
+ <globaldebugarguments/>
+ <globalcwd>/home/bjoern/bpdyndnsd</globalcwd>
+ <useglobalprogram>false</useglobalprogram>
+ <autoinstall>false</autoinstall>
+ <autokdesu>false</autokdesu>
+ </run>
+ <build>
+ <buildtool>make</buildtool>
+ <builddir>/home/bjoern/bpdyndnsd</builddir>
+ </build>
+ <make>
+ <abortonerror>false</abortonerror>
+ <numberofjobs>1</numberofjobs>
+ <dontact>false</dontact>
+ <makebin>/usr/bin/gmake </makebin>
+ <selectedenvironment>default</selectedenvironment>
+ <environments>
+ <default>
+ <envvar value="1" name="VERBOSE" />
+ </default>
+ </environments>
+ <prio>0</prio>
+ <defaulttarget/>
+ <makeoptions/>
+ </make>
+ <blacklist>
+ <path>CMakeFiles</path>
+ <path>CMakeFiles/CompilerIdC</path>
+ <path>CMakeFiles/CompilerIdC/CMakeCCompilerId.c</path>
+ <path>CMakeFiles/CompilerIdCXX</path>
+ <path>CMakeFiles/CompilerIdCXX/CMakeCXXCompilerId.cpp</path>
+ <path>Makefile</path>
+ </blacklist>
+ <filetypes>
+ <filetype>*.java</filetype>
+ <filetype>*.h</filetype>
+ <filetype>*.H</filetype>
+ <filetype>*.hh</filetype>
+ <filetype>*.hxx</filetype>
+ <filetype>*.hpp</filetype>
+ <filetype>*.c</filetype>
+ <filetype>*.C</filetype>
+ <filetype>*.cc</filetype>
+ <filetype>*.cpp</filetype>
+ <filetype>*.c++</filetype>
+ <filetype>*.cxx</filetype>
+ <filetype>Makefile</filetype>
+ <filetype>CMakeLists.txt</filetype>
+ </filetypes>
+ <other>
+ <prio>0</prio>
+ <otherbin/>
+ <defaulttarget/>
+ <otheroptions/>
+ <selectedenvironment>default</selectedenvironment>
+ <environments>
+ <default/>
+ </environments>
+ </other>
+ </kdevcustomproject>
+ <kdevfilecreate>
+ <filetypes/>
+ <useglobaltypes>
+ <type ext="cpp" />
+ <type ext="h" />
+ </useglobaltypes>
+ </kdevfilecreate>
+ <kdevdoctreeview>
+ <projectdoc>
+ <userdocDir>html/</userdocDir>
+ <apidocDir>html/</apidocDir>
+ </projectdoc>
+ <ignoreqt_xml/>
+ <ignoredoxygen/>
+ <ignorekdocs/>
+ <ignoretocs/>
+ <ignoredevhelp/>
+ </kdevdoctreeview>
+ <cppsupportpart>
+ <filetemplates>
+ <interfacesuffix>.h</interfacesuffix>
+ <implementationsuffix>.cpp</implementationsuffix>
+ </filetemplates>
+ </cppsupportpart>
+ <kdevcppsupport>
+ <codecompletion>
+ <includeGlobalFunctions>true</includeGlobalFunctions>
+ <includeTypes>true</includeTypes>
+ <includeEnums>true</includeEnums>
+ <includeTypedefs>false</includeTypedefs>
+ <automaticCodeCompletion>true</automaticCodeCompletion>
+ <automaticArgumentsHint>true</automaticArgumentsHint>
+ <automaticHeaderCompletion>true</automaticHeaderCompletion>
+ <codeCompletionDelay>250</codeCompletionDelay>
+ <argumentsHintDelay>400</argumentsHintDelay>
+ <headerCompletionDelay>250</headerCompletionDelay>
+ <showOnlyAccessibleItems>false</showOnlyAccessibleItems>
+ <completionBoxItemOrder>0</completionBoxItemOrder>
+ <howEvaluationContextMenu>true</howEvaluationContextMenu>
+ <showCommentWithArgumentHint>true</showCommentWithArgumentHint>
+ <statusBarTypeEvaluation>false</statusBarTypeEvaluation>
+ <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
+ <processPrimaryTypes>true</processPrimaryTypes>
+ <processFunctionArguments>false</processFunctionArguments>
+ <preProcessAllHeaders>false</preProcessAllHeaders>
+ <parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
+ <resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
+ <alwaysParseInBackground>true</alwaysParseInBackground>
+ <usePermanentCaching>true</usePermanentCaching>
+ <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
+ <includePaths>.;</includePaths>
+ </codecompletion>
+ <references/>
+ <qt>
+ <used>false</used>
+ <version>3</version>
+ <includestyle>3</includestyle>
+ <root>/usr/lib64/qt-3.3</root>
+ <designerintegration>EmbeddedKDevDesigner</designerintegration>
+ <qmake>/usr/lib64/qt-3.3/bin/qmake</qmake>
+ <designer>/usr/lib64/qt-3.3/bin/designer</designer>
+ <designerpluginpaths/>
+ </qt>
+ <creategettersetter>
+ <prefixGet/>
+ <prefixSet>set</prefixSet>
+ <prefixVariable>m_,_</prefixVariable>
+ <parameterName>theValue</parameterName>
+ <inlineGet>true</inlineGet>
+ <inlineSet>true</inlineSet>
+ </creategettersetter>
+ <splitheadersource>
+ <enabled>false</enabled>
+ <synchronize>true</synchronize>
+ <orientation>Vertical</orientation>
+ </splitheadersource>
+ </kdevcppsupport>
+ <kdevfileview>
+ <groups>
+ <group pattern="CMakeLists.txt;*.cmake;" name="CMake" />
+ <group pattern="*.h;*.hxx;*.hpp" name="Header" />
+ <group pattern="*.c" name="C Sources" />
+ <group pattern="*.cpp;*.C;*.cxx;*.cc" name="C++ Sources" />
+ <group pattern="*.ui" name="Qt Designer files" />
+ <hidenonprojectfiles>true</hidenonprojectfiles>
+ <hidenonlocation>false</hidenonlocation>
+ </groups>
+ <tree>
+ <hidepatterns>*.o,*.lo,CVS,*~,cmake*</hidepatterns>
+ <hidenonprojectfiles>true</hidenonprojectfiles>
+ </tree>
+ </kdevfileview>
+ <substmap>
+ <APPNAME>bpdyndnsd</APPNAME>
+ <APPNAMELC>bpdyndnsd</APPNAMELC>
+ <APPNAMESC>Bpdyndnsd</APPNAMESC>
+ <APPNAMEUC>BPDYNDNSD</APPNAMEUC>
+ <AUTHOR>Bjoern Sikora</AUTHOR>
+ <EMAIL>bjoern.sikora@intra2net.com</EMAIL>
+ <LICENSE>GPL</LICENSE>
+ <LICENSEFILE>COPYING</LICENSEFILE>
+ <VERSION>0.1</VERSION>
+ <YEAR>2009</YEAR>
+ <dest>/home/bjoern/bpdyndnsd</dest>
+ </substmap>
+ <kdevdebugger>
+ <general>
+ <gdbpath/>
+ <dbgshell/>
+ <configGdbScript/>
+ <runShellScript/>
+ <runGdbScript/>
+ <breakonloadinglibs>true</breakonloadinglibs>
+ <separatetty>false</separatetty>
+ <floatingtoolbar>false</floatingtoolbar>
+ <raiseGDBOnStart>false</raiseGDBOnStart>
+ </general>
+ <display>
+ <staticmembers>false</staticmembers>
+ <demanglenames>true</demanglenames>
+ <outputradix>10</outputradix>
+ </display>
+ </kdevdebugger>
+ <kdevdocumentation>
+ <projectdoc>
+ <docsystem/>
+ <docurl/>
+ <usermanualurl/>
+ </projectdoc>
+ </kdevdocumentation>
+ <ctagspart>
+ <customArguments/>
+ <customTagfilePath>/home/bjoern/bpdyndnsd/tags</customTagfilePath>
+ <activeTagsFiles/>
+ </ctagspart>
+</kdevelop>
--- /dev/null
+# KDevelop Custom Project File List
+.
+./dhs.cpp
+./dhs.h
+./ods.cpp
+./ods.h
+./service.cpp
+./service.h
+CMakeLists.txt
+src
+src/main.cpp
--- /dev/null
+<?xml version = '1.0' encoding = 'UTF-8'?>
+<!DOCTYPE KDevPrjSession>
+<KDevPrjSession>
+ <DocsAndViews NumberOfDocuments="11" >
+ <Doc0 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/main.cpp" >
+ <View0 Encoding="" line="13" Type="Source" />
+ </Doc0>
+ <Doc1 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/updater.cpp" >
+ <View0 Encoding="" line="46" Type="Source" />
+ </Doc1>
+ <Doc2 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/updater.h" >
+ <View0 Encoding="" line="31" Type="Source" />
+ </Doc2>
+ <Doc3 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/config.cpp" >
+ <View0 Encoding="" line="109" Type="Source" />
+ </Doc3>
+ <Doc4 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/config.h" >
+ <View0 Encoding="" line="46" Type="Source" />
+ </Doc4>
+ <Doc5 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/service.cpp" >
+ <View0 Encoding="" line="0" Type="Source" />
+ </Doc5>
+ <Doc6 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/service.h" >
+ <View0 Encoding="" line="27" Type="Source" />
+ </Doc6>
+ <Doc7 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/dhs.cpp" >
+ <View0 Encoding="" line="31" Type="Source" />
+ </Doc7>
+ <Doc8 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/dhs.h" >
+ <View0 Encoding="" line="24" Type="Source" />
+ </Doc8>
+ <Doc9 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/ods.cpp" >
+ <View0 Encoding="" line="20" Type="Source" />
+ </Doc9>
+ <Doc10 NumberOfViews="1" URL="file:///home/bjoern/bpdyndnsd/src/ods.h" >
+ <View0 Encoding="" line="22" Type="Source" />
+ </Doc10>
+ </DocsAndViews>
+ <pluginList>
+ <kdevdebugger>
+ <breakpointList/>
+ <showInternalCommands value="0" />
+ </kdevdebugger>
+ <kdevastyle>
+ <Extensions ext="*.cpp *.h *.hpp,*.c *.h,*.cxx *.hxx,*.c++ *.h++,*.cc *.hh,*.C *.H,*.diff ,*.inl,*.java,*.moc,*.patch,*.tlh,*.xpm" />
+ <AStyle IndentPreprocessors="0" FillCount="4" PadParenthesesOut="1" IndentNamespaces="1" IndentLabels="1" Fill="Tabs" MaxStatement="40" Brackets="Break" MinConditional="-1" IndentBrackets="0" PadParenthesesUn="1" BlockBreak="0" KeepStatements="1" KeepBlocks="1" BlockIfElse="0" IndentSwitches="1" PadOperators="0" FStyle="UserDefined" IndentCases="0" FillEmptyLines="0" BracketsCloseHeaders="0" BlockBreakAll="0" PadParenthesesIn="1" IndentClasses="1" IndentBlocks="0" FillForce="0" />
+ </kdevastyle>
+ <kdevbookmarks>
+ <bookmarks>
+ <bookmark url="/home/bjoern/bpdyndnsd/src/updater.cpp" >
+ <mark line="45" />
+ </bookmark>
+ </bookmarks>
+ </kdevbookmarks>
+ <kdevvalgrind>
+ <executable path="" params="" />
+ <valgrind path="" params="" />
+ <calltree path="" params="" />
+ <kcachegrind path="" />
+ </kdevvalgrind>
+ </pluginList>
+</KDevPrjSession>
--- /dev/null
+//
+// C++ Implementation: config
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "config.h"
+
+Config::Config()
+{
+ // define valid command line parameters
+ opt_desc_cmd = new po::options_description("Command line options");
+
+ opt_desc_cmd->add_options()
+ ("help,?","Show help.")
+ ("version,v","Show version.")
+ ("protocol,q",po::value<string>(),"Set the service protocol type.")
+ ("host,h",po::value<string>(),"Set the hostname to update.")
+ ("login,l",po::value<string>(),"Set the login.")
+ ("password,p",po::value<string>(),"Set the password.")
+ ;
+
+ // define valid config file parameters
+ opt_desc_conf = new po::options_description("Config file options");
+
+ opt_desc_conf->add_options()
+ ("help,?","Show help.")
+ ("version,v","Show version.")
+ ;
+}
+
+Config::~Config()
+{
+ delete opt_desc_cmd;
+ delete opt_desc_conf;
+}
+
+int Config::parse_cmd_line(int argc, char *argv[])
+{
+ try
+ {
+ po::variables_map vm;
+ po::store(po::parse_command_line(argc, argv, *opt_desc_cmd), vm);
+ po::notify(vm);
+
+ if(vm.count("help"))
+ return 1;
+ else if(vm.count("version"))
+ return 2;
+
+ if(vm.count("protocol") && vm.count("host") && vm.count("login") && vm.count("password"))
+ {
+ // get the cmd parameter values for protocol host login and password
+ string protocol = vm["protocol"].as<string>();
+ string host = vm["host"].as<string>();
+ string login = vm["login"].as<string>();
+ string password = vm["password"].as<string>();
+
+ //TODO: convert all options to lowercase
+
+ // create Service object
+ if(protocol == "dhs")
+ {
+ Service * service = new DHS(host,login,password);
+ this->services.push_back(service);
+ }
+ else if(protocol == "ods")
+ {
+ Service * service = new ODS(host,login,password);
+ this->services.push_back(service);
+ }
+ }
+ else
+ {
+ cout << "Not all needed options set!\n" << endl;
+ return 1;
+ }
+ }
+ catch(boost::program_options::unknown_option e)
+ {
+ cout << "Unknown option set." << endl;
+ return 1;
+ }
+ return 0;
+}
+
+void Config::print_usage()
+{
+ cout << "Usage: bpdyndnsd [Command line options]" << "\n" << endl;
+ cout << *opt_desc_cmd << endl;
+}
+
+void Config::print_version(string version)
+{
+ cout << "Bullet proof dynamic dns daemon.\nbpdyndnsd " << version << endl;
+}
+
+void Config::load_config_file(string filename)
+{
+
+}
+
+list<Service*> Config::get_services()
+{
+ return this->services;
+}
--- /dev/null
+//
+// C++ Interface: config
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include <boost/program_options.hpp>
+#include <string>
+#include <iostream>
+
+#include "service.h"
+
+#include "dhs.h"
+#include "ods.h"
+
+namespace po = boost::program_options;
+using namespace std;
+
+class Config{
+private:
+ po::options_description *opt_desc_cmd;
+ po::options_description *opt_desc_conf;
+
+ list<Service*> services;
+
+public:
+ Config();
+
+ ~Config();
+
+ int parse_cmd_line(int, char **);
+
+ void load_config_file(string);
+
+ void print_usage();
+
+ void print_version(string);
+
+ list<Service*> get_services();
+};
+
+#endif
--- /dev/null
+//
+// C++ Implementation: dhs
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "dhs.h"
+
+DHS::DHS(string hostname, string login, string password)
+{
+ this->hostname = hostname;
+ this->login = login;
+ this->password = password;
+}
+
+DHS::~DHS()
+{
+}
+
+void DHS::update(string)
+{
+ cout << "Running Update for Service DHS" << endl;
+ cout << "Hostname: " << this->hostname << endl;
+ cout << "Login: " << this->login << endl;
+ cout << "Password: " << this->password << endl;
+}
--- /dev/null
+//
+// C++ Interface: dhs
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef DHS_H
+#define DHS_H
+
+#include <string>
+#include "service.h"
+
+using namespace std;
+
+/**
+ @author Bjoern Sikora <bjoern.sikora@intra2net.com>
+*/
+class DHS : public Service {
+private:
+ string hostname;
+ string login;
+ string password;
+
+public:
+ DHS(string,string,string);
+
+ ~DHS();
+
+ void update(string);
+};
+
+#endif
--- /dev/null
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#define VERSION 0
+#define REVISION 1
+#define RELEASE 0
+
+#include <iostream>
+#include <list>
+#include <string>
+
+#include <boost/foreach.hpp>
+
+#include "updater.cpp"
+#include "config.cpp"
+
+#include "service.cpp"
+
+#include "dhs.cpp"
+#include "ods.cpp"
+
+using namespace std;
+
+/**
+ * @brief the main part.
+ * @param argc number of arguments
+ * @param argv command line arguments
+ * @return exit code for the process.
+ */
+int main(int argc, char *argv[])
+{
+ // initialize Config class
+ Config * config = new Config;
+ int ret_val = config->parse_cmd_line(argc,argv);
+ if(ret_val == 1)
+ {
+ config->print_usage();
+ return 0;
+ }
+ else if(ret_val == 2)
+ {
+ ostringstream version_string;
+ version_string << VERSION << "." << REVISION << "." << RELEASE;
+ config->print_version(version_string.str());
+ return 0;
+ }
+
+ // initialize Updater
+
+ Updater * updater = new Updater(config);
+
+ updater->update_services();
+
+ cout << "Hello World" << endl;
+
+ return 0;
+}
--- /dev/null
+//
+// C++ Implementation: ods
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "ods.h"
+
+ODS::ODS(string hostname, string login, string password)
+{
+ this->hostname = hostname;
+ this->login = login;
+ this->password = password;
+}
+
+ODS::~ODS()
+{
+}
+
+void ODS::update(string)
+{
+ cout << "Running Update for Service ODS" << endl;
+ cout << "Hostname: " << this->hostname << endl;
+ cout << "Login: " << this->login << endl;
+ cout << "Password: " << this->password << endl;
+}
--- /dev/null
+//
+// C++ Interface: ods
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef ODS_H
+#define ODS_H
+
+#include <string>
+#include "service.h"
+
+using namespace std;
+
+/**
+ @author Bjoern Sikora <bjoern.sikora@intra2net.com>
+*/
+class ODS : public Service {
+private:
+ string hostname;
+ string login;
+ string password;
+
+public:
+ ODS(string,string,string);
+
+ ~ODS();
+
+ void update(string);
+};
+
+#endif
--- /dev/null
+//
+// C++ Implementation: service
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "service.h"
+
+Service::Service()
+{
+}
+
+Service::~Service()
+{
+}
+
+
--- /dev/null
+//
+// C++ Interface: service
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef SERVICE_H
+#define SERVICE_H
+
+#include <string>
+
+using namespace std;
+
+/**
+ @author Bjoern Sikora <bjoern.sikora@intra2net.com>
+*/
+class Service{
+public:
+ Service();
+
+ ~Service();
+
+ virtual void update(string)=0;
+
+};
+
+#endif
--- /dev/null
+//
+// C++ Implementation: updater
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "updater.h"
+
+#include <boost/foreach.hpp>
+
+Updater::Updater()
+{
+}
+
+Updater::Updater(Config* conf)
+{
+ this->conf = conf;
+}
+
+Updater::~Updater()
+{
+}
+
+void Updater::set_config(Config* conf)
+{
+ this->conf = conf;
+}
+
+Config* Updater::get_config()
+{
+ return this->conf;
+}
+
+void Updater::update_services()
+{
+ list<Service*> services = this->conf->get_services();
+
+ string ip = "192.168.1.1";
+
+ BOOST_FOREACH( Service * service, services )
+ {
+ service->update(ip);
+ }
+}
\ No newline at end of file
--- /dev/null
+//
+// C++ Interface: updater
+//
+// Description:
+//
+//
+// Author: Bjoern Sikora <bjoern.sikora@intra2net.com>, (C) 2009
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef UPDATER_H
+#define UPDATER_H
+
+#include "config.h"
+
+class Updater{
+private:
+ Config* conf;
+
+public:
+ Updater();
+
+ Updater(Config*);
+
+ ~Updater();
+
+ void set_config(Config*);
+
+ Config* get_config();
+
+ void update_services();
+};
+
+#endif