Mixes for Privacy and Anonymity in the Internet
Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
CACmdLnOptions Class Reference

Public Member Functions

 CACmdLnOptions ()
 
 ~CACmdLnOptions ()
 
SINT32 cleanup ()
 
void clean ()
 Deletes all resssource allocated by objects of this class EXPECT the locks necessary to controll access to the properties of this class. More...
 
SINT32 parse (int argc, const char **arg)
 
SINT32 initLogging ()
 
bool getDaemon ()
 
SINT32 getMixId (UINT8 *id, UINT32 len)
 
UINT16 getSOCKSServerPort ()
 
SINT32 createSockets (bool a_bPrintMessages, CASocket **a_sockets, UINT32 a_socketsLen)
 
UINT32 getListenerInterfaceCount ()
 
CAListenerInterfacegetListenerInterface (UINT32 nr)
 
UINT16 getMixPort ()
 
SINT32 getMixHost (UINT8 *host, UINT32 len)
 
UINT32 getTargetInterfaceCount ()
 
SINT32 getTargetInterface (CATargetInterface &oTargetInterface, UINT32 nr)
 Fills a TargetInterface struct with the values which belongs to the target interface nr. More...
 
UINT16 getSOCKSPort ()
 
SINT32 getSOCKSHost (UINT8 *host, UINT32 len)
 
SINT32 getMaxOpenFiles ()
 
UINT32 getVisibleAddressesCount ()
 
SINT32 getVisibleAddress (UINT8 *strAddressBuff, UINT32 len, UINT32 nr)
 Fills strAddressBuff with a outside visible adress. More...
 
CAMultiSignaturegetMultiSigner ()
 
bool verifyMixCertificates ()
 
CACertStoregetTrustedCertificateStore ()
 
CACertificategetNextMixTestCertificate ()
 
SINT32 setNextMixTestCertificate (CACertificate *cert)
 
CACertificategetPrevMixTestCertificate ()
 
SINT32 setPrevMixTestCertificate (CACertificate *cert)
 
bool hasPrevMixTestCertificate ()
 
bool hasNextMixTestCertificate ()
 
UINT32 getKeepAliveSendInterval ()
 
UINT32 getKeepAliveRecvInterval ()
 
SINT32 getMixXml (XERCES_CPP_NAMESPACE::DOMDocument *&docMixInfo)
 Returns the XML tree describing the Mix . More...
 
bool acceptReconfiguration ()
 
bool isInfoServiceEnabled ()
 
UINT32 getMaxNrOfUsers ()
 
SINT32 getCascadeName (UINT8 *name, UINT32 len) const
 
CAListenerInterface ** getInfoServices (UINT32 &r_size)
 
SINT32 setCascadeName (const UINT8 *name)
 
SINT32 getOperatorSubjectKeyIdentifier (UINT8 *buffer, UINT32 *length)
 Returns a COPY of the public test certifcate for that mix. More...
 
CAXMLPriceCert * getPriceCertificate () const
 
SINT32 getCountryStatsDBConnectionLoginData (char **db_host, char **db_user, char **db_passwd)
 
bool isEncryptedLogEnabled ()
 Returns if the encrpyted Log could/should be used. More...
 
bool isSyslogEnabled ()
 
SINT32 enableEncryptedLog (bool b)
 Set to true if the encrpyted log could/should be used. More...
 
CACertificategetLogEncryptionKey ()
 Returns a certificate which contains a key which could be used for log encryption. More...
 
DOMElement * getCascadeXML ()
 
SINT32 reread (CAMix *pMix)
 Rereads the configuration file (if one was given on startup) and reconfigures the mix according to the new values. More...
 
SINT32 getEncryptedLogDir (UINT8 *name, UINT32 len)
 
UINT32 getNumberOfTermsAndConditionsTemplates ()
 Get the XML describing the Mix. More...
 
XERCES_CPP_NAMESPACE::DOMDocument ** getAllTermsAndConditionsTemplates ()
 
DOMElement * getTermsAndConditions ()
 
SINT32 getAccessControlCredential (UINT8 *outbuff, UINT32 *outbuffsize)
 
bool isAccessControlEnabled ()
 
SYMCHANNELCIPHER_ALGORITHM getSymChannelCipherAlgorithm () const
 
bool getCompressLogs ()
 ONLY_LOCAL_PROXY or first mix. More...
 
SINT32 getLogDir (UINT8 *name, UINT32 len)
 
SINT32 setLogDir (const UINT8 *name, UINT32 len)
 
SINT32 getCredential (UINT8 *name, UINT32 len)
 
SINT64 getMaxLogFileSize ()
 
UINT32 getMaxLogFiles ()
 
SINT32 getUser (UINT8 *user, UINT32 len)
 
SINT32 getPidFile (UINT8 *pidfile, UINT32 len)
 
bool isLocalProxy ()
 
bool isFirstMix ()
 
bool isMiddleMix ()
 
bool isLastMix ()
 
bool isSock5sSupported ()
 
bool getAutoReconnect ()
 
bool getCryptoBenchmark ()
 
UINT32 getDelayChannelUnlimitTraffic ()
 
UINT32 getDelayChannelBucketGrow ()
 
UINT32 getDelayChannelBucketGrowIntervall ()
 
SINT32 getDatabaseHost (UINT8 *host, UINT32 len)
 
UINT16 getDatabasePort ()
 
SINT32 getDatabaseName (UINT8 *name, UINT32 len)
 
SINT32 getDatabaseUsername (UINT8 *user, UINT32 len)
 
SINT32 getDatabasePassword (UINT8 *pass, UINT32 len)
 
SINT32 getAiID (UINT8 *id, UINT32 len)
 
CAXMLBI * getBI ()
 Returns an CAXMLBI object, which describes the BI this AI uses. More...
 
UINT32 getPaymentHardLimit ()
 
UINT32 getPaymentSoftLimit ()
 
UINT32 getPrepaidInterval ()
 
UINT32 getPaymentSettleInterval ()
 
SINT32 setNextMix (XERCES_CPP_NAMESPACE::DOMDocument *pDoc)
 Modifies the next mix settings (target interface and certificate) according to the specified options object. More...
 
SINT32 setPrevMix (XERCES_CPP_NAMESPACE::DOMDocument *pDoc)
 Modifies the next mix settings (target interface and certificate) according to the specified options object. More...
 

Static Public Member Functions

static SINT32 createMixOnCDConfiguration (const UINT8 *strFileName)
 Writes a default configuration file into the file named by filename. More...
 
static SINT32 saveToFile (XERCES_CPP_NAMESPACE::DOMDocument *a_doc, const UINT8 *a_strFileName)
 Saves the given XML Document to a file. More...
 

Public Attributes

XERCES_CPP_NAMESPACE::DOMDocument ** m_termsAndConditionsTemplates
 
UINT32 m_nrOfTermsAndConditionsTemplates
 

Private Member Functions

SINT32 setNewValues (CACmdLnOptions &newOptions)
 Copies options from newOptions. More...
 
SINT32 clearTargetInterfaces ()
 
SINT32 clearListenerInterfaces ()
 
SINT32 parseInfoServices (DOMElement *a_infoServiceNode)
 ** More...
 
SINT32 clearVisibleAddresses ()
 
SINT32 addVisibleAddresses (DOMNode *nodeProxy)
 ** Add all the visible addresses to the list of visible addresses found in the XML description of the <Proxy> element given. More...
 
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. More...
 
SINT32 readXmlConfiguration (XERCES_CPP_NAMESPACE::DOMDocument *&docConfig, const UINT8 *const buf, UINT32 len)
 Tries to read the XML configuration from byte array buf. More...
 
SINT32 processXmlConfiguration (XERCES_CPP_NAMESPACE::DOMDocument *docConfig)
 
SINT32 setGeneralOptions (DOMElement *elemRoot)
 
SINT32 setMixDescription (DOMElement *elemRoot)
 
SINT32 setCertificateOptions (DOMElement *elemRoot)
 
SINT32 setNetworkOptions (DOMElement *elemRoot)
 
SINT32 setRessourceOptions (DOMElement *elemRoot)
 
SINT32 setTermsAndConditions (DOMElement *elemRoot)
 
SINT32 setMixType (DOMElement *elemGeneral)
 determines whether this mix is a first a middle or a last mix appears in <General></General> and must be set. More...
 
SINT32 setMixName (DOMElement *elemGeneral)
 
SINT32 setMixID (DOMElement *elemGeneral)
 
SINT32 setDynamicMix (DOMElement *elemGeneral)
 determines whether this mix is a dynamic mix or not appears in <General></General> and is optional. More...
 
SINT32 setMinCascadeLength (DOMElement *elemGeneral)
 
SINT32 setCascadeNameFromOptions (DOMElement *elemGeneral)
 
SINT32 setUserID (DOMElement *elemGeneral)
 
SINT32 setNrOfFileDescriptors (DOMElement *elemGeneral)
 
SINT32 setDaemonMode (DOMElement *elemGeneral)
 
SINT32 setLoggingOptions (DOMElement *elemGeneral)
 
SINT32 setSymChannelCipherAlgorithm (SYMCHANNELCIPHER_ALGORITHM cipherAlgorithm)
 
SINT32 setAccessControlCredential (DOMElement *elemGeneral)
 
SINT32 setPaymentReminder (DOMElement *elemGeneral)
 
SINT32 setMaxUsers (DOMElement *elemGeneral)
 
SINT32 setOwnCertificate (DOMElement *elemCertificates)
 
SINT32 setOwnOperatorCertificate (DOMElement *elemCertificates)
 
SINT32 setMixCertificateVerification (DOMElement *elemCertificates)
 
SINT32 setNextMixCertificate (DOMElement *elemCertificates)
 
SINT32 setPrevMixCertificate (DOMElement *elemCertificates)
 
SINT32 setTrustedRootCertificates (DOMElement *elemCertificates)
 
SINT32 setPriceCertificate (DOMElement *elemAccounting)
 
SINT32 setPaymentInstance (DOMElement *elemAccounting)
 
SINT32 setAccountingSoftLimit (DOMElement *elemAccounting)
 
SINT32 setAccountingHardLimit (DOMElement *elemAccounting)
 
SINT32 setPrepaidInterval (DOMElement *elemAccounting)
 
SINT32 setSettleInterval (DOMElement *elemAccounting)
 
SINT32 setAccountingDatabase (DOMElement *elemAccounting)
 
void initAccountingOptionSetters ()
 
SINT32 setAccountingOptions (DOMElement *elemRoot)
 
SINT32 setInfoServices (DOMElement *elemNetwork)
 
SINT32 setListenerInterfaces (DOMElement *elemNetwork)
 
SINT32 setTargetInterfaces (DOMElement *elemNetwork)
 This method sets the proxy or next mix settings. More...
 
SINT32 setServerMonitoring (DOMElement *elemNetwork)
 
SINT32 setKeepAliveTraffic (DOMElement *elemNetwork)
 
SINT32 setTermsAndConditionsTemplates (DOMElement *elemTnCs)
 
SINT32 setTermsAndConditionsList (DOMElement *elemTnCs)
 
SINT32 appendMixInfo_internal (DOMNode *a_node, bool with_subtree)
 
SINT32 addMixIdToMixInfo ()
 Just add the id of the Mix to the MixInfo Document. More...
 
SINT32 invokeOptionSetters (const optionSetter_pt *optionsSetters, DOMElement *target, SINT32 optionsSettersLength)
 framework-function for calling predefined option setter functions. More...
 
void initMainOptionSetters ()
 
void initGeneralOptionSetters ()
 
void initMixDescriptionSetters ()
 
void initCertificateOptionSetters ()
 
void initNetworkOptionSetters ()
 
void initTermsAndConditionsOptionSetters ()
 

Static Private Member Functions

static SINT32 buildDefaultConfig (XERCES_CPP_NAMESPACE::DOMDocument *a_doc, bool bForLastMix)
 Creates a default mix configuration. More...
 

Private Attributes

UINT8m_strConfigFile
 
bool m_bDaemon
 
UINT16 m_iSOCKSServerPort
 
UINT16 m_iTargetPort
 
char * m_strTargetHost
 
char * m_strSOCKSHost
 
UINT16 m_iSOCKSPort
 
char * m_strCredential
 
CAMultiSignaturem_pMultiSignature
 
bool m_bVerifyMixCerts
 
CACertStorem_pTrustedRootCertificates
 
CACertificatem_pNextMixCertificate
 
CACertificatem_pPrevMixCertificate
 
UINT32 m_u32KeepAliveSendInterval
 
UINT32 m_u32KeepAliveRecvInterval
 
bool m_bAcceptReconfiguration
 
UINT32 m_addrInfoServicesSize
 
UINT32 m_maxNrOfUsers
 
XERCES_CPP_NAMESPACE::DOMDocument * m_docMixInfo
 
CAListenerInterface ** m_addrInfoServices
 
DOMNodeList * m_opCertList
 
CACertificatem_OpCert
 
CACertificatem_pLogEncryptionCertificate
 
bool m_bDynamic
 
bool m_bIsRunReConfigure
 
CAMutexm_pcsReConfigure
 
CAThread m_threadReConfigure
 
CAXMLPriceCert * m_pPriceCertificate
 
SINT32 m_PaymentReminderProbability
 
DOMElement * m_pCascadeXML
 
XERCES_CPP_NAMESPACE::DOMDocument * m_docOpTnCs
 
bool m_perfTestEnabled
 
UINT8m_strAccessControlCredential
 
SYMCHANNELCIPHER_ALGORITHM m_algSymChannelCipher
 
bool m_bLocalProxy
 ONLY_LOCAL_PROXY or first. More...
 
bool m_bFirstMix
 
bool m_bMiddleMix
 
bool m_bLastMix
 
bool m_bAutoReconnect
 
UINT8m_strCascadeName
 
char * m_strLogDir
 
char * m_strLogLevel
 
SINT64 m_maxLogFileSize
 
UINT32 m_maxLogFiles
 
char * m_strEncryptedLogDir
 
bool m_bCompressedLogs
 
bool m_bCryptoBenchmark
 
bool m_bSocksSupport
 
bool m_bVPNSupport
 
bool m_bSyslog
 
bool m_bLogConsole
 
char * m_strUser
 
char * m_strPidFile
 
SINT32 m_nrOfOpenFiles
 
bool m_bSkipProxyCheck
 
char * m_strMixID
 
char * m_strMixName
 
bool m_bIsEncryptedLogEnabled
 
CATargetInterfacem_arTargetInterfaces
 
UINT32 m_cnTargets
 
CAListenerInterface ** m_arListenerInterfaces
 
UINT32 m_cnListenerInterfaces
 
UINT8 ** m_arStrVisibleAddresses
 
UINT32 m_cnVisibleAddresses
 
UINT32 m_u32DelayChannelUnlimitTraffic
 
UINT32 m_u32DelayChannelBucketGrow
 
UINT32 m_u32DelayChannelBucketGrowIntervall
 
CAXMLBI * m_pBI
 
UINT8m_strDatabaseHost
 
UINT8m_strDatabaseName
 
UINT8m_strDatabaseUser
 
UINT8m_strDatabasePassword
 
UINT8m_strAiID
 
UINT16 m_iDatabasePort
 
UINT32 m_iPaymentHardLimit
 
UINT32 m_iPaymentSoftLimit
 
UINT32 m_iPrepaidInterval
 
UINT32 m_iPaymentSettleInterval
 
optionSetter_ptaccountingOptionSetters
 
optionSetter_ptmainOptionSetters
 
optionSetter_ptgeneralOptionSetters
 
optionSetter_ptcertificateOptionSetters
 
optionSetter_ptnetworkOptionSetters
 
optionSetter_ptm_arpTermsAndConditionsOptionSetters
 
char * m_dbCountryStatsHost
 
char * m_dbCountryStatsUser
 
char * m_dbCountryStatsPasswd
 
XERCES_CPP_NAMESPACE::DOMDocument * m_docMixXml
 
UINT32 m_nCertificateOptionsSetters
 

Friends

THREAD_RETURN threadReConfigure (void *param)
 Thread that does the actual reconfigure work. More...
 

Constructor & Destructor Documentation

◆ CACmdLnOptions()

CACmdLnOptions::CACmdLnOptions ( )

References createDOMDocument(), DELAY_CHANNEL_LATENCY, DELAY_USERS_BUCKET_GROW, DELAY_USERS_BUCKET_GROW_INTERVALL, DELAY_USERS_TRAFFIC, initAccountingOptionSetters(), initCertificateOptionSetters(), initGeneralOptionSetters(), initMainOptionSetters(), initNetworkOptionSetters(), initTermsAndConditionsOptionSetters(), isFirstMix(), m_addrInfoServices, m_addrInfoServicesSize, m_arListenerInterfaces, m_arStrVisibleAddresses, m_arTargetInterfaces, m_bAcceptReconfiguration, m_bAutoReconnect, m_bCompressedLogs, m_bDaemon, m_bFirstMix, m_bIsEncryptedLogEnabled, m_bIsRunReConfigure, m_bLastMix, m_bLocalProxy, m_bLogConsole, m_bMiddleMix, m_bSkipProxyCheck, m_bSocksSupport, m_bSyslog, m_bVerifyMixCerts, m_bVPNSupport, m_cnListenerInterfaces, m_cnTargets, m_cnVisibleAddresses, m_dbCountryStatsHost, m_dbCountryStatsPasswd, m_dbCountryStatsUser, m_docMixInfo, m_docMixXml, m_docOpTnCs, m_iSOCKSPort, m_iSOCKSServerPort, m_iTargetPort, m_maxLogFileSize, m_maxNrOfUsers, m_nrOfOpenFiles, m_nrOfTermsAndConditionsTemplates, m_OpCert, m_PaymentReminderProbability, m_pBI, m_pCascadeXML, m_pcsReConfigure, m_pLogEncryptionCertificate, m_pMultiSignature, m_pNextMixCertificate, m_pPrevMixCertificate, m_pTrustedRootCertificates, m_strAccessControlCredential, m_strAiID, m_strCascadeName, m_strConfigFile, m_strCredential, m_strDatabaseHost, m_strDatabaseName, m_strDatabasePassword, m_strDatabaseUser, m_strEncryptedLogDir, m_strLogDir, m_strLogLevel, m_strMixID, m_strMixName, m_strPidFile, m_strSOCKSHost, m_strTargetHost, m_strUser, m_termsAndConditionsTemplates, m_u32DelayChannelBucketGrow, m_u32DelayChannelBucketGrowIntervall, m_u32DelayChannelUnlimitTraffic, and setZero64().

◆ ~CACmdLnOptions()

CACmdLnOptions::~CACmdLnOptions ( )

References cleanup().

Member Function Documentation

◆ acceptReconfiguration()

bool CACmdLnOptions::acceptReconfiguration ( )

References m_bAcceptReconfiguration.

Referenced by CAMix::CAMix(), and CAMix::start().

◆ addMixIdToMixInfo()

SINT32 CACmdLnOptions::addMixIdToMixInfo ( )
private

Just add the id of the Mix to the MixInfo Document.

References E_UNKNOWN, m_docMixInfo, m_strMixID, MIXINFO_ATTRIBUTE_MIX_ID, CAMsg::printMsg(), and setDOMElementAttribute().

Referenced by setMixID(), and setOwnCertificate().

◆ addVisibleAddresses()

SINT32 CACmdLnOptions::addVisibleAddresses ( DOMNode *  nodeProxy)
private

** Add all the visible addresses to the list of visible addresses found in the XML description of the <Proxy> element given.

References ASSERT_PARENT_NODE_NAME, E_SUCCESS, E_UNKNOWN, equals(), getDOMChildByName(), getDOMElementValue(), len, m_arStrVisibleAddresses, m_cnVisibleAddresses, OPTIONS_NODE_HOST, OPTIONS_NODE_PROXY, OPTIONS_NODE_VISIBLE_ADDRESS, OPTIONS_NODE_VISIBLE_ADDRESS_LIST, and TMP_BUFF_SIZE.

Referenced by setTargetInterfaces().

◆ appendMixInfo_internal()

SINT32 CACmdLnOptions::appendMixInfo_internal ( DOMNode *  a_node,
bool  with_subtree 
)
private

Here we remove any given e-mail address to reduce the spam problem.

References E_SUCCESS, E_UNKNOWN, getElementsByTagName(), m_docMixInfo, and CAMsg::printMsg().

Referenced by setListenerInterfaces(), setMinCascadeLength(), setMixDescription(), setMixType(), setPriceCertificate(), and setServerMonitoring().

◆ buildDefaultConfig()

SINT32 CACmdLnOptions::buildDefaultConfig ( XERCES_CPP_NAMESPACE::DOMDocument *  doc,
bool  bForLastMix = false 
)
staticprivate

Creates a default mix configuration.

Returns
r_doc The XML Document containing the default mix configuration
Return values
E_SUCCESS
Todo:
MixType can be chosen randomly between FirstMix and MiddleMix but not LastMix! sk13: ok this is a hack - but this way it can also create configurations for LastMixes which makes testing of the dynamic szenario much easier...

MixID must be the SubjectKeyIdentifier of the mix' certificate

Todo:
Add a list of default InfoServices to the default configuration

We add this for compatability reasons. ListenerInterfaces can be determined dynamically now

Todo:
Add Description section because InfoService doesn't accept MixInfos without Location or Operator

References createDOMElement(), DEFAULT_INFOSERVICE, E_SUCCESS, CACertificate::encode(), CASignature::generateSignKey(), CASignature::getSignKey(), CACertificate::getSubjectKeyIdentifier(), CASignature::getVerifyKey(), len, setDOMElementAttribute(), and setDOMElementValue().

Referenced by createMixOnCDConfiguration().

◆ clean()

void CACmdLnOptions::clean ( )

◆ cleanup()

SINT32 CACmdLnOptions::cleanup ( )

References clean(), E_SUCCESS, and m_pcsReConfigure.

Referenced by ~CACmdLnOptions().

◆ clearListenerInterfaces()

SINT32 CACmdLnOptions::clearListenerInterfaces ( )
private

◆ clearTargetInterfaces()

SINT32 CACmdLnOptions::clearTargetInterfaces ( )
private

◆ clearVisibleAddresses()

SINT32 CACmdLnOptions::clearVisibleAddresses ( )
private

◆ createMixOnCDConfiguration()

SINT32 CACmdLnOptions::createMixOnCDConfiguration ( const UINT8 strFileName)
static

Writes a default configuration file into the file named by filename.

Builds a default Configuration.

Parameters
strFileNamefilename of the file in which the default configuration is stored, if NULL stdout is used

References buildDefaultConfig(), createDOMDocument(), E_SUCCESS, and saveToFile().

Referenced by parse().

◆ createSockets()

SINT32 CACmdLnOptions::createSockets ( bool  a_bPrintMessages,
CASocket **  a_sockets,
UINT32  a_socketsLen 
)

◆ enableEncryptedLog()

SINT32 CACmdLnOptions::enableEncryptedLog ( bool  b)

Set to true if the encrpyted log could/should be used.

References E_SUCCESS, and m_bIsEncryptedLogEnabled.

◆ getAccessControlCredential()

SINT32 CACmdLnOptions::getAccessControlCredential ( UINT8 outbuff,
UINT32 outbuffsize 
)

◆ getAiID()

SINT32 CACmdLnOptions::getAiID ( UINT8 id,
UINT32  len 
)

◆ getAllTermsAndConditionsTemplates()

XERCES_CPP_NAMESPACE::DOMDocument ** CACmdLnOptions::getAllTermsAndConditionsTemplates ( )

◆ getAutoReconnect()

bool CACmdLnOptions::getAutoReconnect ( )

References m_bAutoReconnect.

◆ getBI()

CAXMLBI * CACmdLnOptions::getBI ( )

Returns an CAXMLBI object, which describes the BI this AI uses.

This is not a copy of the CAXMLBI object. The caller should not delete it!

Return values
NULLif BI was not set in the configuration file
Returns
information stored inthe configuration file about the BI

References m_pBI.

◆ getCascadeName()

SINT32 CACmdLnOptions::getCascadeName ( UINT8 name,
UINT32  len 
) const

◆ getCascadeXML()

DOMElement* CACmdLnOptions::getCascadeXML ( )

References m_pCascadeXML.

◆ getCompressLogs()

bool CACmdLnOptions::getCompressLogs ( )

ONLY_LOCAL_PROXY or first mix.

References m_bCompressedLogs.

Referenced by initLogging().

◆ getCountryStatsDBConnectionLoginData()

SINT32 CACmdLnOptions::getCountryStatsDBConnectionLoginData ( char **  db_host,
char **  db_user,
char **  db_passwd 
)

◆ getCredential()

SINT32 CACmdLnOptions::getCredential ( UINT8 name,
UINT32  len 
)

◆ getCryptoBenchmark()

bool CACmdLnOptions::getCryptoBenchmark ( )

References m_bCryptoBenchmark.

◆ getDaemon()

bool CACmdLnOptions::getDaemon ( )

References m_bDaemon.

Referenced by initLogging().

◆ getDatabaseHost()

SINT32 CACmdLnOptions::getDatabaseHost ( UINT8 host,
UINT32  len 
)

◆ getDatabaseName()

SINT32 CACmdLnOptions::getDatabaseName ( UINT8 name,
UINT32  len 
)

◆ getDatabasePassword()

SINT32 CACmdLnOptions::getDatabasePassword ( UINT8 pass,
UINT32  len 
)

◆ getDatabasePort()

UINT16 CACmdLnOptions::getDatabasePort ( )

◆ getDatabaseUsername()

SINT32 CACmdLnOptions::getDatabaseUsername ( UINT8 user,
UINT32  len 
)

◆ getDelayChannelBucketGrow()

UINT32 CACmdLnOptions::getDelayChannelBucketGrow ( )

References m_u32DelayChannelBucketGrow.

Referenced by setNewValues().

◆ getDelayChannelBucketGrowIntervall()

UINT32 CACmdLnOptions::getDelayChannelBucketGrowIntervall ( )

◆ getDelayChannelUnlimitTraffic()

UINT32 CACmdLnOptions::getDelayChannelUnlimitTraffic ( )

References m_u32DelayChannelUnlimitTraffic.

Referenced by setNewValues().

◆ getEncryptedLogDir()

SINT32 CACmdLnOptions::getEncryptedLogDir ( UINT8 name,
UINT32  len 
)

◆ getInfoServices()

CAListenerInterface ** CACmdLnOptions::getInfoServices ( UINT32 r_size)

◆ getKeepAliveRecvInterval()

UINT32 CACmdLnOptions::getKeepAliveRecvInterval ( )

◆ getKeepAliveSendInterval()

UINT32 CACmdLnOptions::getKeepAliveSendInterval ( )

◆ getListenerInterface()

CAListenerInterface* CACmdLnOptions::getListenerInterface ( UINT32  nr)

◆ getListenerInterfaceCount()

UINT32 CACmdLnOptions::getListenerInterfaceCount ( )

◆ getLogDir()

SINT32 CACmdLnOptions::getLogDir ( UINT8 name,
UINT32  len 
)

References E_SPACE, E_SUCCESS, E_UNKNOWN, len, and m_strLogDir.

Referenced by initLogging().

◆ getLogEncryptionKey()

CACertificate* CACmdLnOptions::getLogEncryptionKey ( )

Returns a certificate which contains a key which could be used for log encryption.

References CACertificate::clone(), and m_pLogEncryptionCertificate.

Referenced by CAMsg::openEncryptedLog().

◆ getMaxLogFiles()

UINT32 CACmdLnOptions::getMaxLogFiles ( )

References m_maxLogFiles.

Referenced by CAMsg::rotateLog().

◆ getMaxLogFileSize()

SINT64 CACmdLnOptions::getMaxLogFileSize ( )

References m_maxLogFileSize.

◆ getMaxNrOfUsers()

UINT32 CACmdLnOptions::getMaxNrOfUsers ( )

◆ getMaxOpenFiles()

SINT32 CACmdLnOptions::getMaxOpenFiles ( )

References m_nrOfOpenFiles.

◆ getMixHost()

SINT32 CACmdLnOptions::getMixHost ( UINT8 host,
UINT32  len 
)

References E_SUCCESS, E_UNKNOWN, len, and m_strTargetHost.

Referenced by CALocalProxy::init().

◆ getMixId()

SINT32 CACmdLnOptions::getMixId ( UINT8 id,
UINT32  len 
)

◆ getMixPort()

UINT16 CACmdLnOptions::getMixPort ( )

References m_iTargetPort.

◆ getMixXml()

SINT32 CACmdLnOptions::getMixXml ( XERCES_CPP_NAMESPACE::DOMDocument *&  docMixInfo)

Returns the XML tree describing the Mix .

This is NOT a copy!

Parameters
docMixInfodestination for the XML tree
Return values
E_SUCCESSif it was successful
E_UNKNOWNin case of an error

References createDOMElement(), E_SUCCESS, E_UNKNOWN, getcurrentTimeMillis(), getDOMChildByName(), m_docMixInfo, print64(), CAMsg::printMsg(), setDOMElementValue(), and UNIVERSAL_NODE_LAST_UPDATE.

◆ getMultiSigner()

CAMultiSignature* CACmdLnOptions::getMultiSigner ( )

◆ getNextMixTestCertificate()

CACertificate* CACmdLnOptions::getNextMixTestCertificate ( )

◆ getNumberOfTermsAndConditionsTemplates()

UINT32 CACmdLnOptions::getNumberOfTermsAndConditionsTemplates ( )

Get the XML describing the Mix.

this is not a string!

References m_nrOfTermsAndConditionsTemplates.

◆ getOperatorSubjectKeyIdentifier()

SINT32 CACmdLnOptions::getOperatorSubjectKeyIdentifier ( UINT8 buffer,
UINT32 length 
)

Returns a COPY of the public test certifcate for that mix.

Return values
aCOPY of the mix test certifcate. Returns a COPY of the Operator Certificate of that mix.
Returns
opCerts

References E_UNKNOWN, CACertificate::getSubjectKeyIdentifier(), and m_OpCert.

Referenced by CAInfoService::getOperatorTnCsAsStrings(), and getTermsAndConditions().

◆ getPaymentHardLimit()

UINT32 CACmdLnOptions::getPaymentHardLimit ( )

◆ getPaymentSettleInterval()

UINT32 CACmdLnOptions::getPaymentSettleInterval ( )

◆ getPaymentSoftLimit()

UINT32 CACmdLnOptions::getPaymentSoftLimit ( )

◆ getPidFile()

SINT32 CACmdLnOptions::getPidFile ( UINT8 pidfile,
UINT32  len 
)

◆ getPrepaidInterval()

UINT32 CACmdLnOptions::getPrepaidInterval ( )

◆ getPrevMixTestCertificate()

CACertificate* CACmdLnOptions::getPrevMixTestCertificate ( )

◆ getPriceCertificate()

CAXMLPriceCert* CACmdLnOptions::getPriceCertificate ( ) const

References m_pPriceCertificate.

◆ getSOCKSHost()

SINT32 CACmdLnOptions::getSOCKSHost ( UINT8 host,
UINT32  len 
)

References E_UNKNOWN, len, and m_strSOCKSHost.

◆ getSOCKSPort()

UINT16 CACmdLnOptions::getSOCKSPort ( )

References m_iSOCKSPort.

◆ getSOCKSServerPort()

UINT16 CACmdLnOptions::getSOCKSServerPort ( )

References m_iSOCKSServerPort.

Referenced by CALocalProxy::loop().

◆ getSymChannelCipherAlgorithm()

SYMCHANNELCIPHER_ALGORITHM CACmdLnOptions::getSymChannelCipherAlgorithm ( ) const

References m_algSymChannelCipher.

◆ getTargetInterface()

SINT32 CACmdLnOptions::getTargetInterface ( CATargetInterface oTargetInterface,
UINT32  nr 
)

Fills a TargetInterface struct with the values which belongs to the target interface nr.

This is actual a copy of all values, so the caller is responsible for destroying them after use!

Parameters
oTargetInterfaceTargetInterface struct, which gets filles with the values of target interface nr
nrthe index of the target interface, for whcih information is request (starting with 1 for the first interface)
Return values
E_SUCCESSif successful
E_UNKNOWNif nr is out of range

References CATargetInterface::cloneInto(), E_UNKNOWN, m_arTargetInterfaces, and m_cnTargets.

Referenced by CAFirstMix::init(), CAMiddleMix::init(), CAMix::needAutoConfig(), setNewValues(), and CALastMix::setTargets().

◆ getTargetInterfaceCount()

UINT32 CACmdLnOptions::getTargetInterfaceCount ( )

◆ getTermsAndConditions()

DOMElement * CACmdLnOptions::getTermsAndConditions ( )

◆ getTrustedCertificateStore()

CACertStore* CACmdLnOptions::getTrustedCertificateStore ( )

◆ getUser()

SINT32 CACmdLnOptions::getUser ( UINT8 user,
UINT32  len 
)

References E_SUCCESS, E_UNKNOWN, len, and m_strUser.

Referenced by setUserID().

◆ getVisibleAddress()

SINT32 CACmdLnOptions::getVisibleAddress ( UINT8 strAddressBuff,
UINT32  len,
UINT32  nr 
)

Fills strAddressBuff with a outside visible adress.

Parameters
strAddressBuffbuffer for adress information (either hostname or IP string)
lensize of strAddressBuff
nrthe number of the adress we request information about (starting with 1 for the first address)
Return values
E_SUCCESSif successful
E_SPACEif buffer is to small for the requested address
E_UNKNOWNif nr is out of range

References E_SPACE, E_SUCCESS, E_UNKNOWN, len, m_arStrVisibleAddresses, and m_cnVisibleAddresses.

Referenced by setTargetInterfaces().

◆ getVisibleAddressesCount()

UINT32 CACmdLnOptions::getVisibleAddressesCount ( )

References m_cnVisibleAddresses.

Referenced by setTargetInterfaces().

◆ hasNextMixTestCertificate()

bool CACmdLnOptions::hasNextMixTestCertificate ( )

References m_pNextMixCertificate.

◆ hasPrevMixTestCertificate()

bool CACmdLnOptions::hasPrevMixTestCertificate ( )

◆ initAccountingOptionSetters()

void CACmdLnOptions::initAccountingOptionSetters ( )
private

◆ initCertificateOptionSetters()

void CACmdLnOptions::initCertificateOptionSetters ( )
private

◆ initGeneralOptionSetters()

void CACmdLnOptions::initGeneralOptionSetters ( )
private

◆ initLogging()

SINT32 CACmdLnOptions::initLogging ( )

◆ initMainOptionSetters()

void CACmdLnOptions::initMainOptionSetters ( )
private

◆ initMixDescriptionSetters()

void CACmdLnOptions::initMixDescriptionSetters ( )
private

◆ initNetworkOptionSetters()

void CACmdLnOptions::initNetworkOptionSetters ( )
private

◆ initTermsAndConditionsOptionSetters()

void CACmdLnOptions::initTermsAndConditionsOptionSetters ( )
private

◆ invokeOptionSetters()

SINT32 CACmdLnOptions::invokeOptionSetters ( const optionSetter_pt optionsSetters,
DOMElement *  optionsSource,
SINT32  optionsSettersLength 
)
private

framework-function for calling predefined option setter functions.

Used by functions that handle a certain type of options, i.e. general settings, account setting, etc.

References E_SUCCESS, E_UNKNOWN, and CAMsg::printMsg().

Referenced by processXmlConfiguration(), setAccountingOptions(), setCertificateOptions(), setGeneralOptions(), setNetworkOptions(), and setTermsAndConditions().

◆ isAccessControlEnabled()

bool CACmdLnOptions::isAccessControlEnabled ( )

◆ isEncryptedLogEnabled()

bool CACmdLnOptions::isEncryptedLogEnabled ( )

Returns if the encrpyted Log could/should be used.

References m_bIsEncryptedLogEnabled.

Referenced by initLogging().

◆ isFirstMix()

bool CACmdLnOptions::isFirstMix ( )

References m_bFirstMix.

Referenced by CACmdLnOptions().

◆ isInfoServiceEnabled()

bool CACmdLnOptions::isInfoServiceEnabled ( )

◆ isLastMix()

bool CACmdLnOptions::isLastMix ( )

◆ isLocalProxy()

bool CACmdLnOptions::isLocalProxy ( )

References m_bLocalProxy.

◆ isMiddleMix()

bool CACmdLnOptions::isMiddleMix ( )

References m_bMiddleMix.

◆ isSock5sSupported()

bool CACmdLnOptions::isSock5sSupported ( )

References m_bSocksSupport.

◆ isSyslogEnabled()

bool CACmdLnOptions::isSyslogEnabled ( )

References m_bSyslog.

Referenced by initLogging().

◆ parse()

SINT32 CACmdLnOptions::parse ( int  argc,
const char **  arg 
)

◆ parseInfoServices()

SINT32 CACmdLnOptions::parseInfoServices ( DOMElement *  a_infoServiceNode)
private

◆ processXmlConfiguration()

SINT32 CACmdLnOptions::processXmlConfiguration ( XERCES_CPP_NAMESPACE::DOMDocument *  docConfig)
private

◆ readXmlConfiguration() [1/2]

SINT32 CACmdLnOptions::readXmlConfiguration ( XERCES_CPP_NAMESPACE::DOMDocument *&  docConfig,
const UINT8 *const  buf,
UINT32  len 
)
private

Tries to read the XML configuration from byte array buf.

The parsed XML document is parsed only, not processed. Returns the parsed document as a DOM_Document.

Parameters
docConfigon return contains the parsed XMl document
bufa byte array containing the XML data
lenthe length of the byte array
Return values
E_SUCCESSif successful
E_XML_PARSEif the data could not be parsed

References E_SUCCESS, E_UNKNOWN, len, parseDOMDocument(), and CAMsg::printMsg().

◆ readXmlConfiguration() [2/2]

SINT32 CACmdLnOptions::readXmlConfiguration ( XERCES_CPP_NAMESPACE::DOMDocument *&  docConfig,
const UINT8 *const  configFile 
)
private

Tries to read the XML configuration file configFile and parses (but not process) it.

Returns the parsed document as DOM_Document.

Parameters
docConfigon return contains the parsed XMl document
configFilefile name of the XML config file
Return values
E_SUCCESSif successful
E_FILE_OPENif error in opening the file
E_FILE_READif not the whole file could be read
E_XML_PARSEif the file could not be parsed

References E_FILE_OPEN, E_FILE_READ, filesize32(), len, and O_BINARY.

Referenced by parse().

◆ reread()

SINT32 CACmdLnOptions::reread ( CAMix pMix)

Rereads the configuration file (if one was given on startup) and reconfigures the mix according to the new values.

This is done asyncronous. A new thread is started, which does the actual work. Note: We have to avoid an blocking on any mutex, as this function typically is called from a signal handler - and who knows which mutexes are blocked if this happend...

Return values
E_SUCCESSif successful
E_UNKNOWNif an error occurs

References E_SUCCESS, E_UNKNOWN, m_bIsRunReConfigure, m_threadReConfigure, t_CMNDLN_REREAD_PARAMS::pCmdLnOptions, t_CMNDLN_REREAD_PARAMS::pMix, pMix, CAThread::setMainLoop(), CAThread::start(), and threadReConfigure.

Referenced by signal_hup().

◆ saveToFile()

SINT32 CACmdLnOptions::saveToFile ( XERCES_CPP_NAMESPACE::DOMDocument *  p_doc,
const UINT8 p_strFileName 
)
static

Saves the given XML Document to a file.

Parameters
p_docThe XML Document to be saved
p_strFileNameThe name of the file to be saved to
Return values
E_SUCCESS
Todo:
Check for errors

References DOM_Output::dumpToMem(), E_SUCCESS, and len.

Referenced by createMixOnCDConfiguration().

◆ setAccessControlCredential()

SINT32 CACmdLnOptions::setAccessControlCredential ( DOMElement *  elemGeneral)
private

◆ setAccountingDatabase()

SINT32 CACmdLnOptions::setAccountingDatabase ( DOMElement *  elemAccounting)
private

◆ setAccountingHardLimit()

SINT32 CACmdLnOptions::setAccountingHardLimit ( DOMElement *  elemAccounting)
private

◆ setAccountingOptions()

SINT32 CACmdLnOptions::setAccountingOptions ( DOMElement *  elemRoot)
private

◆ setAccountingSoftLimit()

SINT32 CACmdLnOptions::setAccountingSoftLimit ( DOMElement *  elemAccounting)
private

◆ setCascadeName()

SINT32 CACmdLnOptions::setCascadeName ( const UINT8 name)

References E_SUCCESS, and m_strCascadeName.

Referenced by setCascadeNameFromOptions().

◆ setCascadeNameFromOptions()

SINT32 CACmdLnOptions::setCascadeNameFromOptions ( DOMElement *  elemGeneral)
private

◆ setCertificateOptions()

SINT32 CACmdLnOptions::setCertificateOptions ( DOMElement *  elemRoot)
private

◆ setDaemonMode()

SINT32 CACmdLnOptions::setDaemonMode ( DOMElement *  elemGeneral)
private

◆ setDynamicMix()

SINT32 CACmdLnOptions::setDynamicMix ( DOMElement *  elemGeneral)
private

determines whether this mix is a dynamic mix or not appears in <General></General> and is optional.

References ASSERT_GENERAL_OPTIONS_PARENT, E_SUCCESS, E_UNKNOWN, getDOMChildByName(), getDOMElementValue(), m_bDynamic, OPTIONS_NODE_DYNAMIC_MIX, CAMsg::printMsg(), and TMP_BUFF_SIZE.

Referenced by initGeneralOptionSetters().

◆ setGeneralOptions()

SINT32 CACmdLnOptions::setGeneralOptions ( DOMElement *  elemRoot)
private

◆ setInfoServices()

SINT32 CACmdLnOptions::setInfoServices ( DOMElement *  elemNetwork)
private

◆ setKeepAliveTraffic()

SINT32 CACmdLnOptions::setKeepAliveTraffic ( DOMElement *  elemNetwork)
private

◆ setListenerInterfaces()

SINT32 CACmdLnOptions::setListenerInterfaces ( DOMElement *  elemNetwork)
private

◆ setLogDir()

SINT32 CACmdLnOptions::setLogDir ( const UINT8 name,
UINT32  len 
)

References E_SUCCESS, len, and m_strLogDir.

◆ setLoggingOptions()

SINT32 CACmdLnOptions::setLoggingOptions ( DOMElement *  elemGeneral)
private

◆ setMaxUsers()

SINT32 CACmdLnOptions::setMaxUsers ( DOMElement *  elemGeneral)
private

◆ setMinCascadeLength()

SINT32 CACmdLnOptions::setMinCascadeLength ( DOMElement *  elemGeneral)
private

◆ setMixCertificateVerification()

SINT32 CACmdLnOptions::setMixCertificateVerification ( DOMElement *  elemCertificates)
private

◆ setMixDescription()

SINT32 CACmdLnOptions::setMixDescription ( DOMElement *  elemRoot)
private

◆ setMixID()

SINT32 CACmdLnOptions::setMixID ( DOMElement *  elemGeneral)
private

◆ setMixName()

SINT32 CACmdLnOptions::setMixName ( DOMElement *  elemGeneral)
private

◆ setMixType()

SINT32 CACmdLnOptions::setMixType ( DOMElement *  elemGeneral)
private

◆ setNetworkOptions()

SINT32 CACmdLnOptions::setNetworkOptions ( DOMElement *  elemRoot)
private

◆ setNewValues()

SINT32 CACmdLnOptions::setNewValues ( CACmdLnOptions newOptions)
private

Copies options from newOptions.

Only those options which are specified in newOptions are copied. The others are left untouched!

Parameters
newOptionsCACmdLnOptions object from which the new values are copied
Return values
E_UNKNOWNif an error occurs
E_SUCCESSotherwise

References clearTargetInterfaces(), E_SUCCESS, getDelayChannelBucketGrow(), getDelayChannelBucketGrowIntervall(), getDelayChannelUnlimitTraffic(), getMaxNrOfUsers(), getTargetInterface(), getTargetInterfaceCount(), m_arTargetInterfaces, m_cnTargets, m_maxNrOfUsers, m_u32DelayChannelBucketGrow, m_u32DelayChannelBucketGrowIntervall, and m_u32DelayChannelUnlimitTraffic.

◆ setNextMix()

SINT32 CACmdLnOptions::setNextMix ( XERCES_CPP_NAMESPACE::DOMDocument *  doc)

Modifies the next mix settings (target interface and certificate) according to the specified options object.

Target interfaces are only copied if they denote a next mix. HTTP and SOCKS proxy settings are ignored.

Parameters
doca DOM document containing XML data with the new options

References CERT_X509CERTIFICATE, createDOMElement(), CACertificate::decode(), E_SUCCESS, getDOMChildByName(), m_docMixXml, m_pNextMixCertificate, OPTIONS_NODE_CERTIFICATE_LIST, OPTIONS_NODE_LISTENER_INTERFACE, OPTIONS_NODE_NETWORK, OPTIONS_NODE_NEXT_MIX, OPTIONS_NODE_NEXT_MIX_CERTIFICATE, OPTIONS_NODE_SIGNATURE, OPTIONS_NODE_X509DATA, CAMsg::printMsg(), and processXmlConfiguration().

◆ setNextMixCertificate()

SINT32 CACmdLnOptions::setNextMixCertificate ( DOMElement *  elemCertificates)
private

◆ setNextMixTestCertificate()

SINT32 CACmdLnOptions::setNextMixTestCertificate ( CACertificate cert)

◆ setNrOfFileDescriptors()

SINT32 CACmdLnOptions::setNrOfFileDescriptors ( DOMElement *  elemGeneral)
private

◆ setOwnCertificate()

SINT32 CACmdLnOptions::setOwnCertificate ( DOMElement *  elemCertificates)
private

◆ setOwnOperatorCertificate()

SINT32 CACmdLnOptions::setOwnOperatorCertificate ( DOMElement *  elemCertificates)
private

◆ setPaymentInstance()

SINT32 CACmdLnOptions::setPaymentInstance ( DOMElement *  elemAccounting)
private

◆ setPaymentReminder()

SINT32 CACmdLnOptions::setPaymentReminder ( DOMElement *  elemGeneral)
private

◆ setPrepaidInterval()

SINT32 CACmdLnOptions::setPrepaidInterval ( DOMElement *  elemAccounting)
private

◆ setPrevMix()

SINT32 CACmdLnOptions::setPrevMix ( XERCES_CPP_NAMESPACE::DOMDocument *  doc)

Modifies the next mix settings (target interface and certificate) according to the specified options object.

Target interfaces are only copied if they denote a next mix. HTTP and SOCKS proxy settings are ignored.

Parameters
doca DOM document containing XML data with the new options

References createDOMElement(), DOM_Output::dumpToMem(), E_SUCCESS, E_UNKNOWN, getDOMChildByName(), len, m_docMixXml, OPTIONS_NODE_CERTIFICATE_LIST, OPTIONS_NODE_PREV_MIX_CERTIFICATE, OPTIONS_NODE_SIGNATURE, OPTIONS_NODE_X509_CERTIFICATE, OPTIONS_NODE_X509DATA, CAMsg::printMsg(), and processXmlConfiguration().

◆ setPrevMixCertificate()

SINT32 CACmdLnOptions::setPrevMixCertificate ( DOMElement *  elemCertificates)
private

◆ setPrevMixTestCertificate()

SINT32 CACmdLnOptions::setPrevMixTestCertificate ( CACertificate cert)

◆ setPriceCertificate()

SINT32 CACmdLnOptions::setPriceCertificate ( DOMElement *  elemAccounting)
private

◆ setRessourceOptions()

SINT32 CACmdLnOptions::setRessourceOptions ( DOMElement *  elemRoot)
private

◆ setServerMonitoring()

SINT32 CACmdLnOptions::setServerMonitoring ( DOMElement *  elemNetwork)
private

◆ setSettleInterval()

SINT32 CACmdLnOptions::setSettleInterval ( DOMElement *  elemAccounting)
private

◆ setSymChannelCipherAlgorithm()

SINT32 CACmdLnOptions::setSymChannelCipherAlgorithm ( SYMCHANNELCIPHER_ALGORITHM  cipherAlgorithm)
private

◆ setTargetInterfaces()

SINT32 CACmdLnOptions::setTargetInterfaces ( DOMElement *  elemNetwork)
private

◆ setTermsAndConditions()

SINT32 CACmdLnOptions::setTermsAndConditions ( DOMElement *  elemRoot)
private

◆ setTermsAndConditionsList()

SINT32 CACmdLnOptions::setTermsAndConditionsList ( DOMElement *  elemTnCs)
private

◆ setTermsAndConditionsTemplates()

SINT32 CACmdLnOptions::setTermsAndConditionsTemplates ( DOMElement *  elemTnCs)
private

◆ setTrustedRootCertificates()

SINT32 CACmdLnOptions::setTrustedRootCertificates ( DOMElement *  elemCertificates)
private

◆ setUserID()

SINT32 CACmdLnOptions::setUserID ( DOMElement *  elemGeneral)
private

◆ verifyMixCertificates()

bool CACmdLnOptions::verifyMixCertificates ( )

References m_bVerifyMixCerts.

Referenced by processXmlConfiguration().

Friends And Related Function Documentation

◆ threadReConfigure

THREAD_RETURN threadReConfigure ( void *  param)
friend

Thread that does the actual reconfigure work.

Only one is running at the same time.

Parameters
parampointer to a t_CMNDLN_REREAD_PARAMS stuct containing a CACmdLnOptions object pointer and a CMix object pointer.

Referenced by reread().

Member Data Documentation

◆ accountingOptionSetters

optionSetter_pt* CACmdLnOptions::accountingOptionSetters
private

◆ certificateOptionSetters

optionSetter_pt* CACmdLnOptions::certificateOptionSetters
private

◆ generalOptionSetters

optionSetter_pt* CACmdLnOptions::generalOptionSetters
private

◆ m_addrInfoServices

CAListenerInterface** CACmdLnOptions::m_addrInfoServices
private

◆ m_addrInfoServicesSize

UINT32 CACmdLnOptions::m_addrInfoServicesSize
private

◆ m_algSymChannelCipher

SYMCHANNELCIPHER_ALGORITHM CACmdLnOptions::m_algSymChannelCipher
private

◆ m_arListenerInterfaces

CAListenerInterface** CACmdLnOptions::m_arListenerInterfaces
private

◆ m_arpTermsAndConditionsOptionSetters

optionSetter_pt* CACmdLnOptions::m_arpTermsAndConditionsOptionSetters
private

◆ m_arStrVisibleAddresses

UINT8** CACmdLnOptions::m_arStrVisibleAddresses
private

◆ m_arTargetInterfaces

CATargetInterface* CACmdLnOptions::m_arTargetInterfaces
private

◆ m_bAcceptReconfiguration

bool CACmdLnOptions::m_bAcceptReconfiguration
private

◆ m_bAutoReconnect

bool CACmdLnOptions::m_bAutoReconnect
private

◆ m_bCompressedLogs

bool CACmdLnOptions::m_bCompressedLogs
private

◆ m_bCryptoBenchmark

bool CACmdLnOptions::m_bCryptoBenchmark
private

Referenced by getCryptoBenchmark(), and parse().

◆ m_bDaemon

bool CACmdLnOptions::m_bDaemon
private

◆ m_bDynamic

bool CACmdLnOptions::m_bDynamic
private

Referenced by setDynamicMix().

◆ m_bFirstMix

bool CACmdLnOptions::m_bFirstMix
private

◆ m_bIsEncryptedLogEnabled

bool CACmdLnOptions::m_bIsEncryptedLogEnabled
private

◆ m_bIsRunReConfigure

bool CACmdLnOptions::m_bIsRunReConfigure
private

Referenced by CACmdLnOptions(), and reread().

◆ m_bLastMix

bool CACmdLnOptions::m_bLastMix
private

◆ m_bLocalProxy

bool CACmdLnOptions::m_bLocalProxy
private

ONLY_LOCAL_PROXY or first.

Referenced by CACmdLnOptions(), isLocalProxy(), and parse().

◆ m_bLogConsole

bool CACmdLnOptions::m_bLogConsole
private

◆ m_bMiddleMix

bool CACmdLnOptions::m_bMiddleMix
private

◆ m_bSkipProxyCheck

bool CACmdLnOptions::m_bSkipProxyCheck
private

◆ m_bSocksSupport

bool CACmdLnOptions::m_bSocksSupport
private

◆ m_bSyslog

bool CACmdLnOptions::m_bSyslog
private

◆ m_bVerifyMixCerts

bool CACmdLnOptions::m_bVerifyMixCerts
private

◆ m_bVPNSupport

bool CACmdLnOptions::m_bVPNSupport
private

◆ m_cnListenerInterfaces

UINT32 CACmdLnOptions::m_cnListenerInterfaces
private

◆ m_cnTargets

UINT32 CACmdLnOptions::m_cnTargets
private

◆ m_cnVisibleAddresses

UINT32 CACmdLnOptions::m_cnVisibleAddresses
private

◆ m_dbCountryStatsHost

char* CACmdLnOptions::m_dbCountryStatsHost
private

◆ m_dbCountryStatsPasswd

char* CACmdLnOptions::m_dbCountryStatsPasswd
private

◆ m_dbCountryStatsUser

char* CACmdLnOptions::m_dbCountryStatsUser
private

◆ m_docMixInfo

XERCES_CPP_NAMESPACE::DOMDocument* CACmdLnOptions::m_docMixInfo
private

◆ m_docMixXml

XERCES_CPP_NAMESPACE::DOMDocument* CACmdLnOptions::m_docMixXml
private

◆ m_docOpTnCs

XERCES_CPP_NAMESPACE::DOMDocument* CACmdLnOptions::m_docOpTnCs
private

◆ m_iDatabasePort

UINT16 CACmdLnOptions::m_iDatabasePort
private

◆ m_iPaymentHardLimit

UINT32 CACmdLnOptions::m_iPaymentHardLimit
private

◆ m_iPaymentSettleInterval

UINT32 CACmdLnOptions::m_iPaymentSettleInterval
private

◆ m_iPaymentSoftLimit

UINT32 CACmdLnOptions::m_iPaymentSoftLimit
private

◆ m_iPrepaidInterval

UINT32 CACmdLnOptions::m_iPrepaidInterval
private

◆ m_iSOCKSPort

UINT16 CACmdLnOptions::m_iSOCKSPort
private

Referenced by CACmdLnOptions(), getSOCKSPort(), and parse().

◆ m_iSOCKSServerPort

UINT16 CACmdLnOptions::m_iSOCKSServerPort
private

◆ m_iTargetPort

UINT16 CACmdLnOptions::m_iTargetPort
private

Referenced by CACmdLnOptions(), getMixPort(), and parse().

◆ m_maxLogFiles

UINT32 CACmdLnOptions::m_maxLogFiles
private

◆ m_maxLogFileSize

SINT64 CACmdLnOptions::m_maxLogFileSize
private

◆ m_maxNrOfUsers

UINT32 CACmdLnOptions::m_maxNrOfUsers
private

◆ m_nCertificateOptionsSetters

UINT32 CACmdLnOptions::m_nCertificateOptionsSetters
private

◆ m_nrOfOpenFiles

SINT32 CACmdLnOptions::m_nrOfOpenFiles
private

◆ m_nrOfTermsAndConditionsTemplates

UINT32 CACmdLnOptions::m_nrOfTermsAndConditionsTemplates

◆ m_OpCert

CACertificate* CACmdLnOptions::m_OpCert
private

◆ m_opCertList

DOMNodeList* CACmdLnOptions::m_opCertList
private

◆ m_PaymentReminderProbability

SINT32 CACmdLnOptions::m_PaymentReminderProbability
private

◆ m_pBI

CAXMLBI* CACmdLnOptions::m_pBI
private

◆ m_pCascadeXML

DOMElement* CACmdLnOptions::m_pCascadeXML
private

◆ m_pcsReConfigure

CAMutex* CACmdLnOptions::m_pcsReConfigure
private

Referenced by CACmdLnOptions(), and cleanup().

◆ m_perfTestEnabled

bool CACmdLnOptions::m_perfTestEnabled
private

◆ m_pLogEncryptionCertificate

CACertificate* CACmdLnOptions::m_pLogEncryptionCertificate
private

◆ m_pMultiSignature

CAMultiSignature* CACmdLnOptions::m_pMultiSignature
private

◆ m_pNextMixCertificate

CACertificate* CACmdLnOptions::m_pNextMixCertificate
private

◆ m_pPrevMixCertificate

CACertificate* CACmdLnOptions::m_pPrevMixCertificate
private

◆ m_pPriceCertificate

CAXMLPriceCert* CACmdLnOptions::m_pPriceCertificate
private

◆ m_pTrustedRootCertificates

CACertStore* CACmdLnOptions::m_pTrustedRootCertificates
private

◆ m_strAccessControlCredential

UINT8* CACmdLnOptions::m_strAccessControlCredential
private

◆ m_strAiID

UINT8* CACmdLnOptions::m_strAiID
private

◆ m_strCascadeName

UINT8* CACmdLnOptions::m_strCascadeName
private

◆ m_strConfigFile

UINT8* CACmdLnOptions::m_strConfigFile
private

Referenced by CACmdLnOptions(), clean(), and parse().

◆ m_strCredential

char* CACmdLnOptions::m_strCredential
private

◆ m_strDatabaseHost

UINT8* CACmdLnOptions::m_strDatabaseHost
private

◆ m_strDatabaseName

UINT8* CACmdLnOptions::m_strDatabaseName
private

◆ m_strDatabasePassword

UINT8* CACmdLnOptions::m_strDatabasePassword
private

◆ m_strDatabaseUser

UINT8* CACmdLnOptions::m_strDatabaseUser
private

◆ m_strEncryptedLogDir

char* CACmdLnOptions::m_strEncryptedLogDir
private

◆ m_strLogDir

char* CACmdLnOptions::m_strLogDir
private

◆ m_strLogLevel

char* CACmdLnOptions::m_strLogLevel
private

◆ m_strMixID

char* CACmdLnOptions::m_strMixID
private

◆ m_strMixName

char* CACmdLnOptions::m_strMixName
private

Referenced by CACmdLnOptions(), clean(), and setMixName().

◆ m_strPidFile

char* CACmdLnOptions::m_strPidFile
private

◆ m_strSOCKSHost

char* CACmdLnOptions::m_strSOCKSHost
private

◆ m_strTargetHost

char* CACmdLnOptions::m_strTargetHost
private

◆ m_strUser

char* CACmdLnOptions::m_strUser
private

◆ m_termsAndConditionsTemplates

XERCES_CPP_NAMESPACE::DOMDocument** CACmdLnOptions::m_termsAndConditionsTemplates

◆ m_threadReConfigure

CAThread CACmdLnOptions::m_threadReConfigure
private

Referenced by reread().

◆ m_u32DelayChannelBucketGrow

UINT32 CACmdLnOptions::m_u32DelayChannelBucketGrow
private

◆ m_u32DelayChannelBucketGrowIntervall

UINT32 CACmdLnOptions::m_u32DelayChannelBucketGrowIntervall
private

◆ m_u32DelayChannelUnlimitTraffic

UINT32 CACmdLnOptions::m_u32DelayChannelUnlimitTraffic
private

◆ m_u32KeepAliveRecvInterval

UINT32 CACmdLnOptions::m_u32KeepAliveRecvInterval
private

◆ m_u32KeepAliveSendInterval

UINT32 CACmdLnOptions::m_u32KeepAliveSendInterval
private

◆ mainOptionSetters

optionSetter_pt* CACmdLnOptions::mainOptionSetters
private

◆ networkOptionSetters

optionSetter_pt* CACmdLnOptions::networkOptionSetters
private