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: SrvParsIfaceOpt.h,v 1.7 2005/01/03 21:57:08 thomson Exp $ 00010 * 00011 * $Log: SrvParsIfaceOpt.h,v $ 00012 * Revision 1.7 2005/01/03 21:57:08 thomson 00013 * Relay support added. 00014 * 00015 * Revision 1.6 2004/10/25 20:45:54 thomson 00016 * Option support, parsers rewritten. ClntIfaceMgr now handles options. 00017 * 00018 * Revision 1.5 2004/09/03 23:20:23 thomson 00019 * RAPID-COMMIT support fixed. (bugs #50, #51, #52) 00020 * 00021 * Revision 1.4 2004/07/05 00:12:30 thomson 00022 * Lots of minor changes. 00023 * 00024 * Revision 1.3 2004/06/28 22:37:59 thomson 00025 * Minor changes. 00026 * 00027 */ 00028 00029 #ifndef TSRCPARSIFACEOPT_H_ 00030 #define TSRCPARSIFACEOPT_H_ 00031 #include "SrvParsClassOpt.h" 00032 00033 class TSrvParsIfaceOpt : public TSrvParsClassOpt 00034 { 00035 public: 00036 TSrvParsIfaceOpt(void); 00037 ~TSrvParsIfaceOpt(void); 00038 00039 bool uniAddress(); 00040 void setUniAddress(bool isUni); 00041 void setClntMaxLease(long maxLeases); 00042 long getClntMaxLease(); 00043 void setIfaceMaxLease(long maxLease); 00044 long getIfaceMaxLease(); 00045 00046 void setPreference(char pref); 00047 char getPreference(); 00048 00049 void setRapidCommit(bool rapidComm); 00050 bool getRapidCommit(); 00051 00052 void setUnicast(SmartPtr<TIPv6Addr> addr); 00053 SmartPtr<TIPv6Addr> getUnicast(); 00054 00055 void setRelayName(string name); 00056 void setRelayID(int ifindex); 00057 void setRelayInterfaceID(int id); 00058 string getRelayName(); 00059 int getRelayID(); 00060 int getRelayInterfaceID(); 00061 bool isRelay(); 00062 00063 //-- options related methods -- 00064 // option: DNS Servers 00065 TContainer< SmartPtr<TIPv6Addr> > * getDNSServerLst(); 00066 void setDNSServerLst(TContainer< SmartPtr<TIPv6Addr> > *lst); 00067 bool supportDNSServer(); 00068 00069 // option: Domain 00070 TContainer< SmartPtr<string> > * getDomainLst(); 00071 void setDomainLst(TContainer< SmartPtr<string> > * domains); 00072 bool supportDomain(); 00073 00074 // option: NTP servers 00075 TContainer< SmartPtr<TIPv6Addr> > * getNTPServerLst(); 00076 void setNTPServerLst(TContainer< SmartPtr<TIPv6Addr> > *lst); 00077 bool supportNTPServer(); 00078 00079 // option: Timezone 00080 string getTimezone(); 00081 void setTimezone(string timeZone); 00082 bool supportTimezone(); 00083 00084 // option: SIP servers 00085 TContainer< SmartPtr<TIPv6Addr> > * getSIPServerLst(); 00086 void setSIPServerLst(TContainer< SmartPtr<TIPv6Addr> > *addr); 00087 bool supportSIPServer(); 00088 00089 // option: SIP domains 00090 TContainer< SmartPtr<string> > * getSIPDomainLst(); 00091 void setSIPDomainLst(TContainer< SmartPtr<string> > *domainlist); 00092 bool supportSIPDomain(); 00093 00094 // option: FQDN 00095 string getFQDN(); 00096 void setFQDN(string fqdn); 00097 bool supportFQDN(); 00098 00099 // option: NIS servers 00100 TContainer< SmartPtr<TIPv6Addr> > * getNISServerLst(); 00101 void setNISServerLst( TContainer< SmartPtr<TIPv6Addr> > *nislist); 00102 bool supportNISServer(); 00103 00104 // option: NIS+ servers 00105 TContainer< SmartPtr<TIPv6Addr> > * getNISPServerLst(); 00106 void setNISPServerLst( TContainer< SmartPtr<TIPv6Addr> > *nisplist); 00107 bool supportNISPServer(); 00108 00109 // option: NIS domain 00110 string getNISDomain(); 00111 void setNISDomain(string domain); 00112 bool supportNISDomain(); 00113 00114 // option: NISP domain 00115 string getNISPDomain(); 00116 void setNISPDomain(string domain); 00117 bool supportNISPDomain(); 00118 00119 // option: LIFETIME 00120 void setLifetime(unsigned int life); 00121 unsigned int getLifetime(); 00122 bool supportLifetime(); 00123 00124 private: 00125 char Preference; 00126 bool RapidCommit; 00127 long IfaceMaxLease; 00128 long ClntMaxLease; 00129 SmartPtr<TIPv6Addr> Unicast; 00130 00131 // relay 00132 bool Relay; 00133 string RelayName; 00134 int RelayID; 00135 int RelayInterfaceID; 00136 00137 // options 00138 bool DNSServerSupport; 00139 bool DomainSupport; 00140 bool NTPServerSupport; 00141 bool TimezoneSupport; 00142 bool SIPServerSupport; 00143 bool SIPDomainSupport; 00144 bool FQDNSupport; 00145 bool NISServerSupport; 00146 bool NISDomainSupport; 00147 bool NISPServerSupport; 00148 bool NISPDomainSupport; 00149 bool LifetimeSupport; 00150 00151 TContainer< SmartPtr<TIPv6Addr> > DNSServerLst; 00152 TContainer< SmartPtr<string> > DomainLst; 00153 TContainer< SmartPtr<TIPv6Addr> > NTPServerLst; 00154 string Timezone; 00155 TContainer< SmartPtr<TIPv6Addr> > SIPServerLst; 00156 TContainer< SmartPtr<string> > SIPDomainLst; 00157 string FQDN; 00158 TContainer< SmartPtr<TIPv6Addr> > NISServerLst; 00159 TContainer< SmartPtr<TIPv6Addr> > NISPServerLst; 00160 string NISDomain; 00161 string NISPDomain; 00162 unsigned int Lifetime; 00163 }; 00164 00165 #endif 00166