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

Generated on Mon Dec 27 21:55:22 2004 for Dibbler - a portable DHCPv6 by  doxygen 1.3.9.1