Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

ClntIfaceIface.h

Go to the documentation of this file.
00001 /*
00002  * Dibbler - a portable DHCPv6
00003  *
00004  * authors: Tomasz Mrugalski <thomson@klub.com.pl>
00005  *          Marek Senderski <msend@o2.pl>
00006  *
00007  * released under GNU GPL v2 or later licence
00008  *
00009  * $Id: ClntIfaceIface.h,v 1.4 2005/01/25 00:32:26 thomson Exp $
00010  *
00011  * $Log: ClntIfaceIface.h,v $
00012  * Revision 1.4  2005/01/25 00:32:26  thomson
00013  * Global addrs support added.
00014  *
00015  * Revision 1.3  2004/11/01 23:31:24  thomson
00016  * New options,option handling mechanism and option renewal implemented.
00017  *
00018  * Revision 1.2  2004/10/27 22:07:55  thomson
00019  * Signed/unsigned issues fixed, Lifetime option implemented, INFORMATION-REQUEST
00020  * message is now sent properly. Valid lifetime granted by server fixed.
00021  *
00022  * Revision 1.1  2004/10/25 20:45:53  thomson
00023  * Option support, parsers rewritten. ClntIfaceMgr now handles options.
00024  *
00025  */
00026 
00027 #ifndef CLNTIFACEIFACE_H
00028 #define CLNTIFACEIFACE_H
00029 
00030 #include "Iface.h"
00031 #include "SmartPtr.h"
00032 #include "DUID.h"
00033 
00034 class TClntIfaceIface: public TIfaceIface {
00035  public:
00036     friend ostream & operator <<(ostream & strum, TClntIfaceIface &x);
00037     TClntIfaceIface(char * name, int id, unsigned int flags, char* mac, 
00038                     int maclen, char* llAddr, int llAddrCnt, char * globalAddr, 
00039                     int globalAddrCnt, int hwType);
00040     ~TClntIfaceIface();
00041 
00042     bool setDNSServerLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<TIPv6Addr> > addrs);
00043     bool setDomainLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<string> > domains);
00044     bool setNTPServerLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<TIPv6Addr> > addrs);
00045     bool setTimezone(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, string timezone);
00046     bool setSIPServerLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<TIPv6Addr> > addrs);
00047     bool setSIPDomainLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<string> > domains);
00048     bool setFQDN(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, string fqdn);
00049     bool setNISServerLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<TIPv6Addr> > addrs);
00050     bool setNISDomain(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, string domain);
00051     bool setNISPServerLst(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, TContainer< SmartPtr<TIPv6Addr> > addrs);
00052     bool setNISPDomain(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, string domain);
00053     bool setLifetime(SmartPtr<TDUID> duid, SmartPtr<TIPv6Addr> srv, unsigned int life);
00054     void removeAllOpts();
00055 
00056     unsigned int getTimeout();
00057 
00058  private:
00059 
00060     void addString(const char * filename, const char * str);
00061     void delString(const char * filename, const char * str);
00062     void setString(const char * filename, const char * str);
00063 
00064     TContainer< SmartPtr<TIPv6Addr> >     DNSServerLst;
00065     SmartPtr<TIPv6Addr> DNSServerLstAddr;
00066     SmartPtr<TDUID>     DNSServerLstDUID;
00067 
00068     TContainer< SmartPtr<string> >        DomainLst;
00069     SmartPtr<TIPv6Addr> DomainLstAddr;
00070     SmartPtr<TDUID>     DomainLstDUID;
00071 
00072     TContainer< SmartPtr<TIPv6Addr> >     NTPServerLst;
00073     SmartPtr<TIPv6Addr> NTPServerLstAddr;
00074     SmartPtr<TDUID>     NTPServerLstDUID;
00075 
00076     string Timezone;
00077     SmartPtr<TIPv6Addr> TimezoneAddr;
00078     SmartPtr<TDUID>     TimezoneDUID;
00079 
00080     // FIXME: FQDN
00081 
00082     TContainer< SmartPtr<TIPv6Addr> >     SIPServerLst;
00083     SmartPtr<TIPv6Addr> SIPServerLstAddr;
00084     SmartPtr<TDUID>     SIPServerLstDUID;
00085 
00086     TContainer< SmartPtr<string> >        SIPDomainLst;
00087     SmartPtr<TIPv6Addr> SIPDomainLstAddr;
00088     SmartPtr<TDUID>     SIPDomainLstDUID;
00089 
00090     TContainer< SmartPtr<TIPv6Addr> >     NISServerLst;
00091     SmartPtr<TIPv6Addr> NISServerLstAddr;
00092     SmartPtr<TDUID>     NISServerLstDUID;
00093 
00094     string              NISDomain;
00095     SmartPtr<TIPv6Addr> NISDomainAddr;
00096     SmartPtr<TDUID>     NISDomainDUID;
00097 
00098     TContainer< SmartPtr<TIPv6Addr> >     NISPServerLst;
00099     SmartPtr<TIPv6Addr> NISPServerLstAddr;
00100     SmartPtr<TDUID>     NISPServerLstDUID;
00101 
00102     string              NISPDomain;
00103     SmartPtr<TIPv6Addr> NISPDomainAddr;
00104     SmartPtr<TDUID>     NISPDomainDUID;
00105     
00106     unsigned int LifetimeTimeout;
00107     unsigned int LifetimeTimestamp;
00108 };
00109 
00110 #endif
00111 

Generated on Wed Mar 16 00:10:25 2005 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1