@@ -126,7 +126,11 @@ Transaction::Transaction(ModSecurity *ms, Rules *rules, void *logCbData)
126126#else
127127 m_json (NULL ),
128128#endif
129+ #ifdef WITH_LIBXML2
129130 m_xml (new RequestBodyProcessor::XML(this )),
131+ #else
132+ m_xml (NULL ),
133+ #endif
130134 TransactionAnchoredVariables (this ) {
131135 m_id = std::to_string (this ->m_timeStamp ) + \
132136 std::to_string (modsecurity::utils::generate_transaction_unique_id ());
@@ -159,7 +163,9 @@ Transaction::~Transaction() {
159163#ifdef WITH_YAJL
160164 delete m_json;
161165#endif
166+ #ifdef WITH_LIBXML2
162167 delete m_xml;
168+ #endif
163169}
164170
165171
@@ -666,6 +672,7 @@ int Transaction::processRequestBody() {
666672 */
667673 std::unique_ptr<std::string> a = m_variableRequestHeaders.resolveFirst (
668674 " Content-Type" );
675+ #ifdef WITH_LIBXML2
669676 if (m_requestBodyProcessor == XMLRequestBody) {
670677 std::string error;
671678 if (m_xml->init () == true ) {
@@ -685,8 +692,13 @@ int Transaction::processRequestBody() {
685692 m_variableReqbodyError.set (" 0" , m_variableOffset);
686693 m_variableReqbodyProcessorError.set (" 0" , m_variableOffset);
687694 }
695+ #endif
688696#if WITH_YAJL
697+ #ifdef WITH_LIBXML2
689698 } else if (m_requestBodyProcessor == JSONRequestBody) {
699+ #else
700+ if (m_requestBodyProcessor == JSONRequestBody) {
701+ #endif
690702 std::string error;
691703 if (m_json->init () == true ) {
692704 m_json->processChunk (m_requestBody.str ().c_str (),
@@ -706,7 +718,11 @@ int Transaction::processRequestBody() {
706718 m_variableReqbodyProcessorError.set (" 0" , m_variableOffset);
707719 }
708720#endif
721+ #if defined(WITH_LIBXML2) or defined(WITH_YAJL)
709722 } else if (m_requestBodyType == MultiPartRequestBody) {
723+ #else
724+ if (m_requestBodyType == MultiPartRequestBody) {
725+ #endif
710726 std::string error;
711727 if (a != NULL ) {
712728 Multipart m (*a, this );
0 commit comments