29 #ifndef __CACMDLNOPTIONS__
30 #define __CACMDLNOPTIONS__
32 #ifdef HAVE_UNIX_DOMAIN_PROTOCOL
50 #define REGEXP_BUFF_SIZE 4096
54 #define DEFAULT_TARGET_PORT 6544
55 #define DEFAULT_CONFIG_FILE "default.xml"
56 #define MIN_INFOSERVICES 1
59 #define WITH_SUBTREE true
60 #define WITHOUT_SUBTREE (!(WITHSUBTREE))
64 #define OPTIONS_NODE_GENERAL "General"
66 #define OPTIONS_NODE_MIX_TYPE "MixType"
67 #define OPTIONS_NODE_MIX_NAME "MixName"
68 #define OPTIONS_NODE_MIX_ID "MixID"
69 #define OPTIONS_NODE_DYNAMIC_MIX "Dynamic"
70 #define OPTIONS_NODE_MIN_CASCADE_LENGTH "MinCascadeLength"
71 #define OPTIONS_NODE_CASCADE_NAME "CascadeName"
72 #define OPTIONS_NODE_USER_ID "UserID"
73 #define OPTIONS_NODE_FD_NR "NrOfFileDescriptors"
74 #define OPTIONS_NODE_DAEMON "Daemon"
75 #define OPTIONS_NODE_CREDENTIAL "AccessControlCredential"
76 #define OPTIONS_NODE_MAX_USERS "MaxUsers"
77 #define OPTIONS_NODE_PAYMENT_REMINDER "PaymentReminderProbability"
78 #define OPTIONS_NODE_LOGGING "Logging"
79 #define OPTIONS_NODE_LOGGING_CONSOLE "Console"
80 #define OPTIONS_NODE_LOGGING_FILE "File"
81 #define OPTIONS_ATTRIBUTE_LOGGING_MAXFILESIZE "MaxFileSize"
82 #define OPTIONS_ATTRIBUTE_LOGGING_MAXFILES "MaxFiles"
83 #define LOGGING_MAXFILES_DEFAULT 10
84 #define OPTIONS_NODE_SYSLOG "Syslog"
85 #define OPTIONS_NODE_ENCRYPTED_LOG "EncryptedLog"
86 #define OPTIONS_NODE_LOGGING_KEYINFO "KeyInfo"
87 #define OPTIONS_NODE_DESCRIPTION "Description"
88 #define OPTIONS_ATTRIBUTE_NAME_FOR_CASCADE "forCascade"
91 #define OPTIONS_VALUE_OPERATOR_NAME "Operator"
92 #define OPTIONS_VALUE_MIX_NAME "Mix"
93 #define OPTIONS_VALUE_NAMETYPE_DEFAULT OPTIONS_VALUE_MIX_NAME
96 #define OPTIONS_NODE_CERTIFICATE_LIST "Certificates"
98 #define OPTIONS_NODE_OWN_CERTIFICATE "OwnCertificate"
99 #define OPTIONS_NODE_OWN_OPERATOR_CERTIFICATE "OperatorOwnCertificate"
100 #define OPTIONS_NODE_NEXT_MIX_CERTIFICATE "NextMixCertificate"
101 #define OPTIONS_NODE_NEXT_OPERATOR_CERTIFICATE "NextOperatorCertificate"
102 #define OPTIONS_NODE_PREV_MIX_CERTIFICATE "PrevMixCertificate"
103 #define OPTIONS_NODE_PREV_OPERATOR_CERTIFICATE "PrevOperatorCertificate"
104 #define OPTIONS_NODE_TRUSTED_ROOT_CERTIFICATES "TrustedRootCertificates"
105 #define OPTIONS_NODE_MIX_CERTIFICATE_VERIFICATION "MixCertificateVerification"
106 #define OPTIONS_NODE_X509DATA "X509Data"
107 #define OPTIONS_NODE_X509_CERTIFICATE "X509Certificate"
108 #define OPTIONS_NODE_X509_PKCS12 "X509PKCS12"
109 #define OPTIONS_NODE_SIGNATURE "Signature"
113 #define OPTIONS_NODE_ACCOUNTING "Accounting"
115 #define OPTIONS_NODE_PRICE_CERTIFICATE "PriceCertificate"
116 #define OPTIONS_NODE_PAYMENT_INSTANCE CAXMLBI::getXMLElementName()
117 #define OPTIONS_NODE_AI_SOFT_LIMIT "SoftLimit"
118 #define OPTIONS_NODE_AI_HARD_LIMIT "HardLimit"
119 #define OPTIONS_NODE_SETTLE_IVAL "SettleInterval"
120 #define OPTIONS_NODE_PREPAID_IVAL "PrepaidInterval"
121 #define OPTIONS_NODE_PREPAID_IVAL_KB "PrepaidIntervalKbytes"
122 #define OPTIONS_NODE_AI_DB "Database"
123 #define OPTIONS_NODE_AI_DB_HOST "Host"
124 #define OPTIONS_NODE_AI_DB_PORT "Port"
125 #define OPTIONS_NODE_AI_DB_NAME "DBName"
126 #define OPTIONS_NODE_AI_DB_USER "Username"
127 #define OPTIONS_NODE_AI_DB_PASSW "Password"
129 #define OPTIONS_DEFAULT_PREPAID_IVAL 3000000
131 #define OPTIONS_NODE_NETWORK "Network"
133 #define OPTIONS_NODE_INFOSERVICE_LIST "InfoServices"
134 #define OPTIONS_NODE_INFOSERVICE "InfoService"
135 #define OPTIONS_NODE_ALLOW_AUTO_CONF "AllowAutoConfiguration"
136 #define OPTIONS_NODE_LISTENER_INTERFACES CAListenerInterface::XML_ELEMENT_CONTAINER_NAME
137 #define OPTIONS_NODE_NEXT_MIX "NextMix"
138 #define OPTIONS_NODE_NETWORK_PROTOCOL "NetworkProtocol"
139 #define OPTIONS_NODE_IP "IP"
140 #define OPTIONS_NODE_PROXY_LIST "Proxies"
141 #define OPTIONS_NODE_PROXY "Proxy"
142 #define OPTIONS_NODE_PROXY_TYPE "ProxyType"
143 #define OPTIONS_NODE_SERVER_MONITORING "ServerMonitoring"
144 #define OPTIONS_NODE_VISIBLE_ADDRESS_LIST "VisibleAddresses"
145 #define OPTIONS_NODE_VISIBLE_ADDRESS "VisibleAddress"
146 #define OPTIONS_NODE_LISTENER_INTERFACE_LIST CAListenerInterface::XML_ELEMENT_CONTAINER_NAME
147 #define OPTIONS_NODE_LISTENER_INTERFACE CAListenerInterface::XML_ELEMENT_NAME
148 #define OPTIONS_NODE_KEEP_ALIVE "KeepAlive"
149 #define OPTIONS_NODE_KEEP_ALIVE_SEND_IVAL "SendInterval"
150 #define OPTIONS_NODE_KEEP_ALIVE_RECV_IVAL "ReceiveInterval"
151 #define OPTIONS_NODE_IP "IP"
152 #define OPTIONS_NODE_HOST "Host"
153 #define OPTIONS_NODE_PORT "Port"
154 #define OPTIONS_NODE_FILE "File"
156 #define OPTIONS_NODE_RESSOURCES "Ressources"
158 #define OPTIONS_NODE_UNLIMIT_TRAFFIC "UnlimitTraffic"
159 #define OPTIONS_NODE_BYTES_PER_IVAL "BytesPerIntervall"
160 #define OPTIONS_NODE_DELAY_IVAL "Intervall"
161 #define OPTIONS_NODE_LATENCY "Latency"
163 #define OPTIONS_NODE_TNCS_OPTS "TermsAndConditionsOptions"
164 #define OPTIONS_NODE_TNCS_TEMPLATES "Templates"
165 #define OPTIONS_NODE_TNCS_TEMPLATE "Template"
166 #define OPTIONS_NODE_TNCS "TermsAndConditions"
167 #define OPTIONS_NODE_TNCS_TRANSLATION "TCTranslation"
168 #define OPTIONS_NODE_TNCS_TRANSLATION_IMPORTS "TCTranslationImports"
169 #define OPTIONS_NODE_TNCS_OPERATOR "Operator"
170 #define OPTIONS_ATTRIBUTE_TNC_DATE "date"
171 #define OPTIONS_ATTRIBUTE_TNC_SERIAL "serial"
172 #define OPTIONS_ATTRIBUTE_TNC_VERSION "version"
173 #define OPTIONS_ATTRIBUTE_TNC_LOCALE "locale"
174 #define OPTIONS_ATTRIBUTE_TNC_TEMPLATE_TYPE "type"
175 #define OPTIONS_ATTRIBUTE_TNC_ID "id"
176 #define OPTIONS_ATTRIBUTE_TNC_TEMPLATE_REFID "referenceId"
177 #define OPTIONS_ATTRIBUTE_TNC_DEFAULT_LANG_DEFINED "default"
178 #define OPTIONS_ATTRIBUTE_TNC_DEFAULT_LANG "defaultLang"
180 #define OPTIONS_NODE_CRIME_DETECTION "CrimeDetection"
182 #define OPTIONS_NODE_CRIME_REGEXP_URL "RegExpURL"
183 #define OPTIONS_NODE_CRIME_REGEXP_PAYLOAD "RegExpPayload"
184 #define OPTIONS_NODE_CRIME_SURVEILLANCE_IP "SurveillanceIP"
185 #define OPTIONS_NODE_CRIME_SURVEILLANCE_IP_NETMASK "netmask"
186 #define OPTIONS_NODE_CRIME_SURVEILLANCE_ACCOUNT "PayAccountNumber"
187 #define OPTIONS_ATTRIBUTE_LOG_PAYLOAD "logPayload"
189 #define MIXINFO_NODE_PARENT "Mix"
190 #define MIXINFO_NODE_MIX_NAME "Name"
191 #define MIXINFO_NODE_SOFTWARE "Software"
192 #define MIXINFO_NODE_VERSION "Version"
194 #define MIXINFO_NODE_PAYMENTREMINDER "PaymentReminderProbability"
196 #define MIXINFO_ATTRIBUTE_MIX_ID "id"
198 #define LOG_NODE_NOT_FOUND(Nodename) \
199 CAMsg::printMsg(LOG_CRIT,"No \"%s\" node found in configuration file!\n", (Nodename))
201 #define LOG_NODE_EMPTY_OR_INVALID(Nodename) \
202 CAMsg::printMsg(LOG_CRIT,"Node \"%s\" is empty or has invalid content!\n", (Nodename))
204 #define LOG_NODE_WRONG_PARENT(Parentname, Childname) \
205 CAMsg::printMsg(LOG_CRIT,"\"%s\" is the wrong parent for Node \"%s\"\n", (Parentname), (Childname))
208 #define ASSERT_PARENT_NODE_NAME(Parentname, NameToMatch, Childname) \
209 if(!equals((Parentname), (NameToMatch) )) \
211 char *parentName = XMLString::transcode(Parentname); \
212 LOG_NODE_WRONG_PARENT(parentName, Childname); \
213 XMLString::release(&parentName); \
217 #define ASSERT_GENERAL_OPTIONS_PARENT(Parentname, Childname) \
218 ASSERT_PARENT_NODE_NAME(Parentname, OPTIONS_NODE_GENERAL, Childname)
220 #define ASSERT_CERTIFICATES_OPTIONS_PARENT(Parentname, Childname) \
221 ASSERT_PARENT_NODE_NAME(Parentname, OPTIONS_NODE_CERTIFICATE_LIST, Childname)
223 #define ASSERT_ACCOUNTING_OPTIONS_PARENT(Parentname, Childname) \
224 ASSERT_PARENT_NODE_NAME(Parentname, OPTIONS_NODE_ACCOUNTING, Childname)
226 #define ASSERT_NETWORK_OPTIONS_PARENT(Parentname, Childname) \
227 ASSERT_PARENT_NODE_NAME(Parentname, OPTIONS_NODE_NETWORK, Childname)
229 #define ASSERT_CRIME_DETECTION_OPTIONS_PARENT(Parentname, Childname) \
230 ASSERT_PARENT_NODE_NAME(Parentname, OPTIONS_NODE_CRIME_DETECTION, Childname)
298 #ifndef ONLY_LOCAL_PROXY
311 #if !defined ONLY_LOCAL_PROXY || defined INCLUDE_MIDDLE_MIX
409 #ifndef ONLY_LOCAL_PROXY
504 #if !defined ONLY_LOCAL_PROXY || defined INCLUDE_FIRST_MIX
537 #ifdef SERVER_MONITORING
538 char *getMonitoringListenerHost();
539 UINT16 getMonitoringListenerPort();
566 tre_regex_t* getCrimeRegExpsURL(
UINT32*
len)
568 *
len=m_nCrimeRegExpsURL;
569 return m_arCrimeRegExpsURL;
572 tre_regex_t* getCrimeRegExpsPayload(
UINT32*
len)
574 *
len=m_nCrimeRegExpsPayload;
575 return m_arCrimeRegExpsPayload;
578 UINT64* getCrimeSurveillanceAccounts()
580 return m_surveillanceAccounts;
583 UINT32 getNrOfCrimeSurveillanceAccounts()
585 return m_nrOfSurveillanceAccounts;
591 return m_surveillanceIPs;
594 UINT32 getNrOfCrimeSurveillanceIPs()
596 return m_nrOfSurveillanceIPs;
599 bool isPayloadLogged()
605 #if defined(DELAY_CHANNELS)||defined(DELAY_USERS)
620 #if defined(DELAY_CHANNELS_LATENCY)
622 UINT32 getDelayChannelLatency()
624 return m_u32DelayChannelLatency;
644 #ifdef DATA_RETENTION_LOG
648 *pKey=m_pDataRetentionPublicEncryptionKey;
653 #ifdef EXPORT_ASYM_PRIVATE_KEY
656 if(m_strImportKeyFile==NULL)
658 if(
len<=(
UINT32)strlen((
char*)m_strImportKeyFile))
662 strcpy((
char*)strFile,(
char*)m_strImportKeyFile);
667 if(m_strExportKeyFile==NULL)
669 if(
len<=(
UINT32)strlen((
char*)m_strExportKeyFile))
673 strcpy((
char*)strFile,(
char*)m_strExportKeyFile);
678 return m_strImportKeyFile!=NULL;
682 return m_strExportKeyFile!=NULL;
687 #ifndef ONLY_LOCAL_PROXY
703 SINT32 createDefaultConfiguration();
704 SINT32 addListenerInterface(DOM_Element a_elem);
705 SINT32 resetNetworkConfiguration();
713 if(m_strLastCascadeProposal != NULL)
715 delete m_strLastCascadeProposal;
716 m_strLastCascadeProposal = NULL;
718 if(a_strCascadeProposal == NULL)
720 m_strLastCascadeProposal =
new UINT8[ a_len + 1 ];
721 memcpy(m_strLastCascadeProposal, a_strCascadeProposal, a_len+1);
726 if(m_strLastCascadeProposal == NULL)
730 if(r_len >= strlen((
char*)m_strLastCascadeProposal))
732 r_len = strlen((
char*)m_strLastCascadeProposal);
733 memcpy(r_strCascadeProposal, m_strLastCascadeProposal, r_len + 1);
743 UINT8* m_strLastCascadeProposal;
745 SINT32 checkInfoServices(
UINT32 *r_runningInfoServices);
747 SINT32 checkListenerInterfaces();
748 SINT32 checkCertificates();
761 #if !defined ONLY_LOCAL_PROXY || defined INCLUDE_MIDDLE_MIX
781 #ifndef ONLY_LOCAL_PROXY
811 #if !defined ONLY_LOCAL_PROXY || defined INCLUDE_FIRST_MIX
852 tre_regex_t* m_arCrimeRegExpsURL;
853 UINT32 m_nCrimeRegExpsURL;
854 tre_regex_t* m_arCrimeRegExpsPayload;
855 UINT32 m_nCrimeRegExpsPayload;
856 UINT32 m_nrOfSurveillanceIPs;
858 UINT64* m_surveillanceAccounts;
859 UINT32 m_nrOfSurveillanceAccounts;
861 #define CRIME_DETECTION_OPTIONS_NR 4
863 SINT32 setCrimeURLRegExp(DOMElement *elemCrimeDetection);
864 SINT32 setCrimePayloadRegExp(DOMElement *elemCrimeDetection);
865 SINT32 setCrimeSurveillanceIP(DOMElement *elemCrimeDetection);
866 SINT32 setCrimeSurveillanceAccounts(DOMElement *elemCrimeDetection);
867 void initCrimeDetectionOptionSetters();
868 SINT32 setCrimeDetectionOptions(DOMElement *elemRoot);
871 #ifdef DATA_RETENTION_LOG
872 UINT8* m_strDataRetentionLogDir;
876 #ifdef EXPORT_ASYM_PRIVATE_KEY
877 UINT8* m_strImportKeyFile;
878 UINT8* m_strExportKeyFile;
882 #if defined (DELAY_CHANNELS) ||defined(DELAY_USERS)
888 #if defined (DELAY_CHANNELS_LATENCY)
889 UINT32 m_u32DelayChannelLatency;
916 #ifdef SERVER_MONITORING
918 char *m_strMonitoringListenerHost;
919 UINT16 m_iMonitoringListenerPort;
924 #ifndef ONLY_LOCAL_PROXY
935 #if !defined ONLY_LOCAL_PROXY || defined INCLUDE_MIDDLE_MIX
948 #define MAIN_OPTION_SETTERS_NR 8
957 #if !defined ONLY_LOCAL_PROXY || defined INLUCDE_MIDDLE_MIX
958 #define GENERAL_OPTIONS_NR 13
960 #define GENERAL_OPTIONS_NR 10
974 #if !defined ONLY_LOCAL_PROXY || defined INCLUDE_FIRST_MIX
977 #if !defined ONLY_LOCAL_PROXY
982 #define MAX_CERTIFICATE_OPTIONS_NR 6
993 #define ACCOUNTING_OPTIONS_NR 7
1005 #define NETWORK_OPTIONS_NR 5
1014 #define TERMS_AND_CONDITIONS_OPTIONS_NR 2
1035 tre_regex_t **regExContainer,
UINT32* regExNr);
THREAD_RETURN threadReConfigure(void *param)
Thread that does the actual reconfigure work.
SINT32(CACmdLnOptions::* optionSetter_pt)(DOMElement *)
SINT32 setRegExpressions(DOMElement *rootElement, const char *const childElementName, tre_regex_t **regExContainer, UINT32 *regExNr)
SYMCHANNELCIPHER_ALGORITHM
SINT32 getRandom(UINT32 *val)
Gets 32 random bits.
CACertificate * clone() const
UINT8 * m_strAccessControlCredential
SINT32 getAiID(UINT8 *id, UINT32 len)
SINT32 setPrevMixCertificate(DOMElement *elemCertificates)
SINT32 setMixName(DOMElement *elemGeneral)
SINT32 getDatabaseName(UINT8 *name, UINT32 len)
UINT32 getListenerInterfaceCount()
UINT8 * m_strDatabaseName
friend THREAD_RETURN threadReConfigure(void *param)
Thread that does the actual reconfigure work.
SINT32 getCredential(UINT8 *name, UINT32 len)
SINT32 processXmlConfiguration(XERCES_CPP_NAMESPACE::DOMDocument *docConfig)
XERCES_CPP_NAMESPACE::DOMDocument * m_docMixXml
bool m_bAcceptReconfiguration
CACertificate * m_pLogEncryptionCertificate
UINT32 m_nCertificateOptionsSetters
UINT32 m_addrInfoServicesSize
SINT32 createSockets(bool a_bPrintMessages, CASocket **a_sockets, UINT32 a_socketsLen)
SINT32 setNextMix(XERCES_CPP_NAMESPACE::DOMDocument *pDoc)
Modifies the next mix settings (target interface and certificate) according to the specified options ...
UINT32 getDelayChannelBucketGrow()
SINT32 getDatabasePassword(UINT8 *pass, UINT32 len)
SINT32 setGeneralOptions(DOMElement *elemRoot)
SINT32 setAccountingOptions(DOMElement *elemRoot)
optionSetter_pt * mainOptionSetters
SINT32 setMaxUsers(DOMElement *elemGeneral)
UINT8 * m_strDatabasePassword
SINT32 parse(int argc, const char **arg)
SINT32 setKeepAliveTraffic(DOMElement *elemNetwork)
SINT32 getMixHost(UINT8 *host, UINT32 len)
SINT32 getMixId(UINT8 *id, UINT32 len)
bool isInfoServiceEnabled()
DOMElement * getCascadeXML()
SINT32 setAccessControlCredential(DOMElement *elemGeneral)
DOMElement * getTermsAndConditions()
SINT32 setMixDescription(DOMElement *elemRoot)
XERCES_CPP_NAMESPACE::DOMDocument ** m_termsAndConditionsTemplates
void clean()
Deletes all resssource allocated by objects of this class EXPECT the locks necessary to controll acce...
DOMNodeList * m_opCertList
SYMCHANNELCIPHER_ALGORITHM m_algSymChannelCipher
SINT32 setMixType(DOMElement *elemGeneral)
determines whether this mix is a first a middle or a last mix appears in <General></General> and must...
bool getCryptoBenchmark()
SINT32 reread(CAMix *pMix)
Rereads the configuration file (if one was given on startup) and reconfigures the mix according to th...
CACertificate * m_pPrevMixCertificate
optionSetter_pt * generalOptionSetters
void initAccountingOptionSetters()
XERCES_CPP_NAMESPACE::DOMDocument * m_docOpTnCs
bool hasPrevMixTestCertificate()
optionSetter_pt * certificateOptionSetters
CACertificate * getLogEncryptionKey()
Returns a certificate which contains a key which could be used for log encryption.
UINT32 getDelayChannelBucketGrowIntervall()
SINT32 setTrustedRootCertificates(DOMElement *elemCertificates)
SINT32 setCertificateOptions(DOMElement *elemRoot)
UINT8 * m_strDatabaseUser
SINT32 getCascadeName(UINT8 *name, UINT32 len) const
CAThread m_threadReConfigure
SINT32 parseInfoServices(DOMElement *a_infoServiceNode)
**
bool isEncryptedLogEnabled()
Returns if the encrpyted Log could/should be used.
void initNetworkOptionSetters()
SINT32 setTermsAndConditionsList(DOMElement *elemTnCs)
char * m_strEncryptedLogDir
SINT32 setPrevMixTestCertificate(CACertificate *cert)
SINT32 setTermsAndConditionsTemplates(DOMElement *elemTnCs)
static SINT32 buildDefaultConfig(XERCES_CPP_NAMESPACE::DOMDocument *a_doc, bool bForLastMix)
Creates a default mix configuration.
SINT32 setLogDir(const UINT8 *name, UINT32 len)
char * m_dbCountryStatsHost
SINT32 setDaemonMode(DOMElement *elemGeneral)
void initTermsAndConditionsOptionSetters()
SINT32 setDynamicMix(DOMElement *elemGeneral)
determines whether this mix is a dynamic mix or not appears in <General></General> and is optional.
UINT32 getNumberOfTermsAndConditionsTemplates()
Get the XML describing the Mix.
CAListenerInterface ** m_arListenerInterfaces
SINT32 setPrevMix(XERCES_CPP_NAMESPACE::DOMDocument *pDoc)
Modifies the next mix settings (target interface and certificate) according to the specified options ...
UINT32 getKeepAliveRecvInterval()
SINT32 clearVisibleAddresses()
CAXMLPriceCert * m_pPriceCertificate
SINT32 setNetworkOptions(DOMElement *elemRoot)
SINT32 setSettleInterval(DOMElement *elemAccounting)
SINT32 setNewValues(CACmdLnOptions &newOptions)
Copies options from newOptions.
SINT32 setTermsAndConditions(DOMElement *elemRoot)
static SINT32 createMixOnCDConfiguration(const UINT8 *strFileName)
Writes a default configuration file into the file named by filename.
SINT32 getPidFile(UINT8 *pidfile, UINT32 len)
SINT64 getMaxLogFileSize()
SINT32 readXmlConfiguration(XERCES_CPP_NAMESPACE::DOMDocument *&docConfig, const UINT8 *const configFileName)
Tries to read the XML configuration file configFile and parses (but not process) it.
UINT32 m_cnListenerInterfaces
SINT32 setServerMonitoring(DOMElement *elemNetwork)
SINT32 getSOCKSHost(UINT8 *host, UINT32 len)
CAMultiSignature * getMultiSigner()
SINT32 setNrOfFileDescriptors(DOMElement *elemGeneral)
UINT8 * m_strDatabaseHost
char * m_dbCountryStatsPasswd
SINT32 getUser(UINT8 *user, UINT32 len)
CACertStore * m_pTrustedRootCertificates
bool acceptReconfiguration()
void initGeneralOptionSetters()
SINT32 setAccountingSoftLimit(DOMElement *elemAccounting)
optionSetter_pt * m_arpTermsAndConditionsOptionSetters
SINT32 setOwnCertificate(DOMElement *elemCertificates)
UINT32 getDelayChannelUnlimitTraffic()
void initCertificateOptionSetters()
UINT32 m_iPaymentSettleInterval
UINT32 m_u32KeepAliveRecvInterval
UINT32 getPaymentSettleInterval()
UINT32 m_u32DelayChannelBucketGrow
SINT32 setMixCertificateVerification(DOMElement *elemCertificates)
UINT32 m_iPaymentSoftLimit
UINT32 m_u32DelayChannelBucketGrowIntervall
SINT32 setAccountingDatabase(DOMElement *elemAccounting)
SINT32 getCountryStatsDBConnectionLoginData(char **db_host, char **db_user, char **db_passwd)
SINT32 getDatabaseHost(UINT8 *host, UINT32 len)
void initMainOptionSetters()
UINT32 getPrepaidInterval()
SINT32 setCascadeNameFromOptions(DOMElement *elemGeneral)
SINT32 getEncryptedLogDir(UINT8 *name, UINT32 len)
SINT32 addVisibleAddresses(DOMNode *nodeProxy)
** Add all the visible addresses to the list of visible addresses found in the XML description of the...
SINT32 getOperatorSubjectKeyIdentifier(UINT8 *buffer, UINT32 *length)
Returns a COPY of the public test certifcate for that mix.
SINT32 getLogDir(UINT8 *name, UINT32 len)
CAListenerInterface * getListenerInterface(UINT32 nr)
UINT32 m_iPaymentHardLimit
SINT32 m_PaymentReminderProbability
UINT32 m_iPrepaidInterval
SINT32 setInfoServices(DOMElement *elemNetwork)
CAMutex * m_pcsReConfigure
SINT32 setMixID(DOMElement *elemGeneral)
SINT32 clearListenerInterfaces()
SINT32 appendMixInfo_internal(DOMNode *a_node, bool with_subtree)
SINT32 setLoggingOptions(DOMElement *elemGeneral)
CATargetInterface * m_arTargetInterfaces
CACertificate * getNextMixTestCertificate()
UINT16 m_iSOCKSServerPort
SINT32 setNextMixTestCertificate(CACertificate *cert)
SINT32 setAccountingHardLimit(DOMElement *elemAccounting)
CAListenerInterface ** m_addrInfoServices
XERCES_CPP_NAMESPACE::DOMDocument ** getAllTermsAndConditionsTemplates()
SINT32 setTargetInterfaces(DOMElement *elemNetwork)
This method sets the proxy or next mix settings.
SINT32 getDatabaseUsername(UINT8 *user, UINT32 len)
UINT8 ** m_arStrVisibleAddresses
SINT32 setPriceCertificate(DOMElement *elemAccounting)
SINT32 setPaymentReminder(DOMElement *elemGeneral)
SINT32 setNextMixCertificate(DOMElement *elemCertificates)
UINT32 getPaymentHardLimit()
UINT32 m_nrOfTermsAndConditionsTemplates
UINT16 getSOCKSServerPort()
SYMCHANNELCIPHER_ALGORITHM getSymChannelCipherAlgorithm() const
SINT32 setRessourceOptions(DOMElement *elemRoot)
UINT32 getPaymentSoftLimit()
CAMultiSignature * m_pMultiSignature
DOMElement * m_pCascadeXML
optionSetter_pt * accountingOptionSetters
UINT32 m_u32KeepAliveSendInterval
SINT32 setSymChannelCipherAlgorithm(SYMCHANNELCIPHER_ALGORITHM cipherAlgorithm)
XERCES_CPP_NAMESPACE::DOMDocument * m_docMixInfo
optionSetter_pt * networkOptionSetters
SINT32 addMixIdToMixInfo()
Just add the id of the Mix to the MixInfo Document.
SINT32 setCascadeName(const UINT8 *name)
SINT32 enableEncryptedLog(bool b)
Set to true if the encrpyted log could/should be used.
static SINT32 saveToFile(XERCES_CPP_NAMESPACE::DOMDocument *a_doc, const UINT8 *a_strFileName)
Saves the given XML Document to a file.
UINT32 getKeepAliveSendInterval()
UINT32 m_u32DelayChannelUnlimitTraffic
bool getCompressLogs()
ONLY_LOCAL_PROXY or first mix.
SINT32 invokeOptionSetters(const optionSetter_pt *optionsSetters, DOMElement *target, SINT32 optionsSettersLength)
framework-function for calling predefined option setter functions.
bool m_bIsEncryptedLogEnabled
CACertStore * getTrustedCertificateStore()
CAXMLBI * getBI()
Returns an CAXMLBI object, which describes the BI this AI uses.
UINT32 getTargetInterfaceCount()
bool isAccessControlEnabled()
SINT32 setPrepaidInterval(DOMElement *elemAccounting)
SINT32 getAccessControlCredential(UINT8 *outbuff, UINT32 *outbuffsize)
SINT32 setPaymentInstance(DOMElement *elemAccounting)
bool verifyMixCertificates()
UINT32 m_cnVisibleAddresses
SINT32 setUserID(DOMElement *elemGeneral)
SINT32 setListenerInterfaces(DOMElement *elemNetwork)
SINT32 getMixXml(XERCES_CPP_NAMESPACE::DOMDocument *&docMixInfo)
Returns the XML tree describing the Mix .
SINT32 setMinCascadeLength(DOMElement *elemGeneral)
CACertificate * getPrevMixTestCertificate()
void initMixDescriptionSetters()
SINT32 getVisibleAddress(UINT8 *strAddressBuff, UINT32 len, UINT32 nr)
Fills strAddressBuff with a outside visible adress.
SINT32 setOwnOperatorCertificate(DOMElement *elemCertificates)
SINT32 clearTargetInterfaces()
UINT32 getVisibleAddressesCount()
bool m_bLocalProxy
ONLY_LOCAL_PROXY or first.
bool hasNextMixTestCertificate()
CAListenerInterface ** getInfoServices(UINT32 &r_size)
SINT32 getTargetInterface(CATargetInterface &oTargetInterface, UINT32 nr)
Fills a TargetInterface struct with the values which belongs to the target interface nr.
char * m_dbCountryStatsUser
CACertificate * m_pNextMixCertificate
CAXMLPriceCert * getPriceCertificate() const
This class represents a socket address for Internet (IP) connections.
SINT32 cloneInto(CATargetInterface &oTargetInterface) const