jansson: remove HAVE_LIBJANSSON guards

pull/4295/head
Victor Julien 6 years ago
parent b4318a11e3
commit edd2cd626f

@ -158,8 +158,6 @@ output_json_dnp3_objects_template = """/* Copyright (C) 2015 Open Information Se
#include "app-layer-dnp3-objects.h" #include "app-layer-dnp3-objects.h"
#include "output-json-dnp3-objects.h" #include "output-json-dnp3-objects.h"
#ifdef HAVE_LIBJANSSON
void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object, void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object,
DNP3Point *point) DNP3Point *point)
{ {
@ -215,8 +213,6 @@ void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object,
} }
#endif /* HAVE_LIBJANSSON */
""" """
def has_freeable_types(fields): def has_freeable_types(fields):

@ -53,16 +53,12 @@
#include "util-print.h" #include "util-print.h"
#include "output.h" #include "output.h"
#ifdef HAVE_LIBJANSSON
#include "output-json.h" #include "output-json.h"
#include "output-json-http.h" #include "output-json-http.h"
#include "output-json-tls.h" #include "output-json-tls.h"
#include "output-json-ssh.h" #include "output-json-ssh.h"
#include "output-json-smtp.h" #include "output-json-smtp.h"
#include "output-json-email-common.h" #include "output-json-email-common.h"
#include <jansson.h>
#endif
#include "util-privs.h" #include "util-privs.h"
#include "util-optimize.h" #include "util-optimize.h"
@ -473,7 +469,6 @@ static int AddIntData(idmef_alert_t *alert, const char *meaning, uint32_t data)
SCReturnInt(0); SCReturnInt(0);
} }
#ifdef HAVE_LIBJANSSON
/** /**
* \brief Add string data, to be stored in the Additional Data * \brief Add string data, to be stored in the Additional Data
* field of the IDMEF alert (see section 4.2.4.6 of RFC 4765). * field of the IDMEF alert (see section 4.2.4.6 of RFC 4765).
@ -568,7 +563,6 @@ static int AddRealData(idmef_alert_t *alert, const char *meaning, uint32_t data)
SCReturnInt(0); SCReturnInt(0);
} }
#endif
/** /**
* \brief Add IPv4 header data, to be stored in the Additional Data * \brief Add IPv4 header data, to be stored in the Additional Data
@ -618,7 +612,6 @@ static int PacketToDataV6(const Packet *p, const PacketAlert *pa, idmef_alert_t
SCReturnInt(0); SCReturnInt(0);
} }
#ifdef HAVE_LIBJANSSON
/** /**
* \brief Convert JSON object to Prelude additional data with * \brief Convert JSON object to Prelude additional data with
* the right type of data. Browse the JSON object to get * the right type of data. Browse the JSON object to get
@ -798,8 +791,6 @@ static void PacketToDataProtoEmail(const Packet *p, const PacketAlert *pa, idmef
} }
#endif
/** /**
* \brief Convert IP packet to an IDMEF alert (RFC 4765). * \brief Convert IP packet to an IDMEF alert (RFC 4765).
* This function stores the alert SID (description and reference), * This function stores the alert SID (description and reference),
@ -814,7 +805,6 @@ static int PacketToData(const Packet *p, const PacketAlert *pa, idmef_alert_t *a
if (unlikely(p == NULL)) if (unlikely(p == NULL))
SCReturnInt(0); SCReturnInt(0);
#ifdef HAVE_LIBJANSSON
if (p->flow != NULL) { if (p->flow != NULL) {
uint16_t proto = FlowGetAppProtocol(p->flow); uint16_t proto = FlowGetAppProtocol(p->flow);
switch (proto) { switch (proto) {
@ -834,7 +824,6 @@ static int PacketToData(const Packet *p, const PacketAlert *pa, idmef_alert_t *a
break; break;
} }
} }
#endif
AddIntData(alert, "snort_rule_sid", pa->s->id); AddIntData(alert, "snort_rule_sid", pa->s->id);
AddIntData(alert, "snort_rule_rev", pa->s->rev); AddIntData(alert, "snort_rule_rev", pa->s->rev);

@ -617,7 +617,6 @@ static int RuleMpmIsNegated(const Signature *s)
return (cd->flags & DETECT_CONTENT_NEGATED); return (cd->flags & DETECT_CONTENT_NEGATED);
} }
#ifdef HAVE_LIBJANSSON
static json_t *RulesGroupPrintSghStats(const SigGroupHead *sgh, static json_t *RulesGroupPrintSghStats(const SigGroupHead *sgh,
const int add_rules, const int add_mpm_stats) const int add_rules, const int add_mpm_stats)
{ {
@ -850,12 +849,10 @@ static json_t *RulesGroupPrintSghStats(const SigGroupHead *sgh,
return js; return js;
} }
#endif /* HAVE_LIBJANSSON */
static void RulesDumpGrouping(const DetectEngineCtx *de_ctx, static void RulesDumpGrouping(const DetectEngineCtx *de_ctx,
const int add_rules, const int add_mpm_stats) const int add_rules, const int add_mpm_stats)
{ {
#ifdef HAVE_LIBJANSSON
json_t *js = json_object(); json_t *js = json_object();
if (unlikely(js == NULL)) if (unlikely(js == NULL))
return; return;
@ -930,7 +927,6 @@ static void RulesDumpGrouping(const DetectEngineCtx *de_ctx,
fprintf(fp, "%s\n", js_s); fprintf(fp, "%s\n", js_s);
free(js_s); free(js_s);
fclose(fp); fclose(fp);
#endif
return; return;
} }
@ -1846,9 +1842,7 @@ static int SigMatchPrepare(DetectEngineCtx *de_ctx)
DetectEnginePktInspectionSetup(s); DetectEnginePktInspectionSetup(s);
if (rule_engine_analysis_set) { if (rule_engine_analysis_set) {
#ifdef HAVE_LIBJANSSON
EngineAnalysisRules2(de_ctx, s); EngineAnalysisRules2(de_ctx, s);
#endif
} }
/* free lists. Ctx' are xferred to sm_arrays so won't get freed */ /* free lists. Ctx' are xferred to sm_arrays so won't get freed */
uint32_t i; uint32_t i;

@ -33,7 +33,6 @@
#include "detect-engine-profile.h" #include "detect-engine-profile.h"
#ifdef PROFILING #ifdef PROFILING
#ifdef HAVE_LIBJANSSON
#if 0 #if 0
static void DumpFp(const SigMatch *sm, char *pat_orig, uint32_t pat_orig_sz, char *pat_chop, uint32_t pat_chop_sz) static void DumpFp(const SigMatch *sm, char *pat_orig, uint32_t pat_orig_sz, char *pat_chop, uint32_t pat_chop_sz)
{ {
@ -139,5 +138,4 @@ void RulesDumpMatchArray(const DetectEngineThreadCtx *det_ctx,
json_object_clear(js); json_object_clear(js);
json_decref(js); json_decref(js);
} }
#endif /* HAVE_LIBJANSSON */
#endif /* PROFILING */ #endif /* PROFILING */

@ -329,11 +329,9 @@ struct FBAnalyze {
uint32_t toggle_sids_size; uint32_t toggle_sids_size;
}; };
#ifdef PROFILING #ifdef PROFILING
#ifdef HAVE_LIBJANSSON
static void DetectFlowbitsAnalyzeDump(const DetectEngineCtx *de_ctx, static void DetectFlowbitsAnalyzeDump(const DetectEngineCtx *de_ctx,
struct FBAnalyze *array, uint32_t elements); struct FBAnalyze *array, uint32_t elements);
#endif #endif
#endif
void DetectFlowbitsAnalyze(DetectEngineCtx *de_ctx) void DetectFlowbitsAnalyze(DetectEngineCtx *de_ctx)
{ {
@ -520,10 +518,8 @@ void DetectFlowbitsAnalyze(DetectEngineCtx *de_ctx)
SCFree(varname); SCFree(varname);
} }
#ifdef PROFILING #ifdef PROFILING
#ifdef HAVE_LIBJANSSON
DetectFlowbitsAnalyzeDump(de_ctx, array, array_size); DetectFlowbitsAnalyzeDump(de_ctx, array, array_size);
#endif #endif
#endif
end: end:
for (uint32_t i = 0; i < array_size; i++) { for (uint32_t i = 0; i < array_size; i++) {
@ -536,7 +532,6 @@ end:
} }
#ifdef PROFILING #ifdef PROFILING
#ifdef HAVE_LIBJANSSON
#include "output-json.h" #include "output-json.h"
#include "util-buffer.h" #include "util-buffer.h"
SCMutex g_flowbits_dump_write_m = SCMUTEX_INITIALIZER; SCMutex g_flowbits_dump_write_m = SCMUTEX_INITIALIZER;
@ -664,7 +659,6 @@ static void DetectFlowbitsAnalyzeDump(const DetectEngineCtx *de_ctx,
json_object_clear(js); json_object_clear(js);
json_decref(js); json_decref(js);
} }
#endif /* HAVE_LIBJANSSON */
#endif /* PROFILING */ #endif /* PROFILING */
#ifdef UNITTESTS #ifdef UNITTESTS

@ -729,10 +729,8 @@ static inline void DetectRulePacketRules(
SGH_PROFILING_RECORD(det_ctx, scratch->sgh); SGH_PROFILING_RECORD(det_ctx, scratch->sgh);
#ifdef PROFILING #ifdef PROFILING
#ifdef HAVE_LIBJANSSON
if (match_cnt >= de_ctx->profile_match_logging_threshold) if (match_cnt >= de_ctx->profile_match_logging_threshold)
RulesDumpMatchArray(det_ctx, scratch->sgh, p); RulesDumpMatchArray(det_ctx, scratch->sgh, p);
#endif
#endif #endif
uint32_t sflags, next_sflags = 0; uint32_t sflags, next_sflags = 0;

@ -80,8 +80,6 @@
#define MODULE_NAME "JsonAlertLog" #define MODULE_NAME "JsonAlertLog"
#ifdef HAVE_LIBJANSSON
#define LOG_JSON_PAYLOAD BIT_U16(0) #define LOG_JSON_PAYLOAD BIT_U16(0)
#define LOG_JSON_PACKET BIT_U16(1) #define LOG_JSON_PACKET BIT_U16(1)
#define LOG_JSON_PAYLOAD_BASE64 BIT_U16(2) #define LOG_JSON_PAYLOAD_BASE64 BIT_U16(2)
@ -1005,12 +1003,3 @@ void JsonAlertLogRegister (void)
JsonAlertLogCondition, JsonAlertLogThreadInit, JsonAlertLogThreadDeinit, JsonAlertLogCondition, JsonAlertLogThreadInit, JsonAlertLogThreadDeinit,
NULL); NULL);
} }
#else
void JsonAlertLogRegister (void)
{
}
#endif

@ -28,10 +28,8 @@
#define __OUTPUT_JSON_ALERT_H__ #define __OUTPUT_JSON_ALERT_H__
void JsonAlertLogRegister(void); void JsonAlertLogRegister(void);
#ifdef HAVE_LIBJANSSON
void AlertJsonHeader(void *ctx, const Packet *p, const PacketAlert *pa, json_t *js, void AlertJsonHeader(void *ctx, const Packet *p, const PacketAlert *pa, json_t *js,
uint16_t flags); uint16_t flags);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_ALERT_H__ */ #endif /* __OUTPUT_JSON_ALERT_H__ */

@ -28,10 +28,8 @@
#define __OUTPUT_JSON_ANOMALY_H__ #define __OUTPUT_JSON_ANOMALY_H__
void JsonAnomalyLogRegister(void); void JsonAnomalyLogRegister(void);
#ifdef HAVE_LIBJANSSON
void AnomalyJsonHeader(void *ctx, const Packet *p, const PacketAlert *pa, json_t *js, void AnomalyJsonHeader(void *ctx, const Packet *p, const PacketAlert *pa, json_t *js,
uint16_t flags); uint16_t flags);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_ALERT_H__ */ #endif /* __OUTPUT_JSON_ALERT_H__ */

@ -41,8 +41,6 @@
#include "app-layer.h" #include "app-layer.h"
#include "app-layer-parser.h" #include "app-layer-parser.h"
#ifdef HAVE_LIBJANSSON
static void OutputJsonLogDeInitCtxSub(OutputCtx *output_ctx) static void OutputJsonLogDeInitCtxSub(OutputCtx *output_ctx)
{ {
SCFree(output_ctx->data); SCFree(output_ctx->data);
@ -108,6 +106,3 @@ TmEcode JsonLogThreadDeinit(ThreadVars *t, void *data)
SCFree(thread); SCFree(thread);
return TM_ECODE_OK; return TM_ECODE_OK;
} }
#endif /* HAVE_LIBJANSSON */

@ -31,8 +31,6 @@
#include "output-json-dnp3-objects.h" #include "output-json-dnp3-objects.h"
#include "output-json.h" #include "output-json.h"
#ifdef HAVE_LIBJANSSON
void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object, void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object,
DNP3Point *point) DNP3Point *point)
{ {
@ -2718,5 +2716,3 @@ void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object,
} }
} }
#endif /* HAVE_LIBJANSSON */

@ -18,9 +18,7 @@
#ifndef __OUTPUT_JSON_DNP3_OBJECTS_H__ #ifndef __OUTPUT_JSON_DNP3_OBJECTS_H__
#define __OUTPUT_JSON_DNP3_OBJECTS_H__ #define __OUTPUT_JSON_DNP3_OBJECTS_H__
#ifdef HAVE_LIBJANSSON
void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object, void OutputJsonDNP3SetItem(json_t *js, DNP3Object *object,
DNP3Point *item); DNP3Point *item);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_DNP3_OBJECTS_H__ */ #endif /* __OUTPUT_JSON_DNP3_OBJECTS_H__ */

@ -43,9 +43,6 @@
#include "output-json-dnp3.h" #include "output-json-dnp3.h"
#include "output-json-dnp3-objects.h" #include "output-json-dnp3-objects.h"
#ifdef HAVE_LIBJANSSON
#include <jansson.h>
typedef struct LogDNP3FileCtx_ { typedef struct LogDNP3FileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
uint32_t flags; uint32_t flags;
@ -449,11 +446,3 @@ void JsonDNP3LogRegister(void)
JsonDNP3LoggerToClient, 1, 1, JsonDNP3LogThreadInit, JsonDNP3LoggerToClient, 1, 1, JsonDNP3LogThreadInit,
JsonDNP3LogThreadDeinit, NULL); JsonDNP3LogThreadDeinit, NULL);
} }
#else
void JsonDNP3LogRegister (void)
{
}
#endif

@ -20,10 +20,8 @@
#include "app-layer-dnp3.h" #include "app-layer-dnp3.h"
#ifdef HAVE_LIBJANSSON
json_t *JsonDNP3LogRequest(DNP3Transaction *); json_t *JsonDNP3LogRequest(DNP3Transaction *);
json_t *JsonDNP3LogResponse(DNP3Transaction *); json_t *JsonDNP3LogResponse(DNP3Transaction *);
#endif /* HAVE_LIBJANSSON */
void JsonDNP3LogRegister(void); void JsonDNP3LogRegister(void);

@ -58,8 +58,6 @@
#define MODULE_NAME "JsonDropLog" #define MODULE_NAME "JsonDropLog"
#ifdef HAVE_LIBJANSSON
#define LOG_DROP_ALERTS 1 #define LOG_DROP_ALERTS 1
typedef struct JsonDropOutputCtx_ { typedef struct JsonDropOutputCtx_ {
@ -447,11 +445,3 @@ void JsonDropLogRegister (void)
JsonDropLogCondition, JsonDropLogThreadInit, JsonDropLogThreadDeinit, JsonDropLogCondition, JsonDropLogThreadInit, JsonDropLogThreadDeinit,
NULL); NULL);
} }
#else
void JsonDropLogRegister (void)
{
}
#endif

@ -53,8 +53,6 @@
#include "output-json.h" #include "output-json.h"
#include "output-json-email-common.h" #include "output-json-email-common.h"
#ifdef HAVE_LIBJANSSON
#define LOG_EMAIL_DEFAULT 0 #define LOG_EMAIL_DEFAULT 0
#define LOG_EMAIL_EXTENDED (1<<0) #define LOG_EMAIL_EXTENDED (1<<0)
#define LOG_EMAIL_ARRAY (1<<1) /* require array handling */ #define LOG_EMAIL_ARRAY (1<<1) /* require array handling */
@ -465,6 +463,3 @@ void OutputEmailInitConf(ConfNode *conf, OutputJsonEmailCtx *email_ctx)
} }
return; return;
} }
#endif

@ -24,7 +24,6 @@
#ifndef __OUTPUT_JSON_EMAIL_COMMON_H__ #ifndef __OUTPUT_JSON_EMAIL_COMMON_H__
#define __OUTPUT_JSON_EMAIL_COMMON_H__ #define __OUTPUT_JSON_EMAIL_COMMON_H__
#ifdef HAVE_LIBJANSSON
typedef struct OutputJsonEmailCtx_ { typedef struct OutputJsonEmailCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
uint32_t flags; /** Store mode */ uint32_t flags; /** Store mode */
@ -42,5 +41,4 @@ json_t *JsonEmailAddMetadata(const Flow *f, uint32_t tx_id);
void OutputEmailInitConf(ConfNode *conf, OutputJsonEmailCtx *email_ctx); void OutputEmailInitConf(ConfNode *conf, OutputJsonEmailCtx *email_ctx);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_EMAIL_COMMON_H__ */ #endif /* __OUTPUT_JSON_EMAIL_COMMON_H__ */

@ -50,8 +50,6 @@
#include "stream-tcp-private.h" #include "stream-tcp-private.h"
#include "flow-storage.h" #include "flow-storage.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogJsonFileCtx_ { typedef struct LogJsonFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
uint32_t flags; /** Store mode */ uint32_t flags; /** Store mode */
@ -540,11 +538,3 @@ void JsonFlowLogRegister (void)
"eve-log.flow", OutputFlowLogInitSub, JsonFlowLogger, "eve-log.flow", OutputFlowLogInitSub, JsonFlowLogger,
JsonFlowLogThreadInit, JsonFlowLogThreadDeinit, NULL); JsonFlowLogThreadInit, JsonFlowLogThreadDeinit, NULL);
} }
#else
void JsonFlowLogRegister (void)
{
}
#endif

@ -25,8 +25,6 @@
#define __OUTPUT_JSON_FLOW_H__ #define __OUTPUT_JSON_FLOW_H__
void JsonFlowLogRegister(void); void JsonFlowLogRegister(void);
#ifdef HAVE_LIBJANSSON
void JsonAddFlow(Flow *f, json_t *js, json_t *hjs); void JsonAddFlow(Flow *f, json_t *js, json_t *hjs);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_FLOW_H__ */ #endif /* __OUTPUT_JSON_FLOW_H__ */

@ -49,8 +49,6 @@
#include "app-layer-ftp.h" #include "app-layer-ftp.h"
#include "output-json-ftp.h" #include "output-json-ftp.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogFTPFileCtx_ { typedef struct LogFTPFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
OutputJsonCommonSettings cfg; OutputJsonCommonSettings cfg;
@ -279,10 +277,3 @@ void JsonFTPLogRegister(void)
SCLogDebug("FTP JSON logger registered."); SCLogDebug("FTP JSON logger registered.");
} }
#else /* HAVE_LIBJANSSON */
void JsonFTPLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -55,8 +55,6 @@
#include "output-json-http.h" #include "output-json-http.h"
#include "util-byte.h" #include "util-byte.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogHttpFileCtx_ { typedef struct LogHttpFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
uint32_t flags; /** Store mode */ uint32_t flags; /** Store mode */
@ -813,11 +811,3 @@ void JsonHttpLogRegister (void)
"eve-log.http", OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger, "eve-log.http", OutputHttpLogInitSub, ALPROTO_HTTP, JsonHttpLogger,
JsonHttpLogThreadInit, JsonHttpLogThreadDeinit, NULL); JsonHttpLogThreadInit, JsonHttpLogThreadDeinit, NULL);
} }
#else
void JsonHttpLogRegister (void)
{
}
#endif

@ -26,11 +26,9 @@
void JsonHttpLogRegister(void); void JsonHttpLogRegister(void);
#ifdef HAVE_LIBJANSSON
json_t *JsonHttpAddMetadata(const Flow *f, uint64_t tx_id); json_t *JsonHttpAddMetadata(const Flow *f, uint64_t tx_id);
void JsonHttpLogJSONBodyPrintable(json_t *js, Flow *f, uint64_t tx_id); void JsonHttpLogJSONBodyPrintable(json_t *js, Flow *f, uint64_t tx_id);
void JsonHttpLogJSONBodyBase64(json_t *js, Flow *f, uint64_t tx_id); void JsonHttpLogJSONBodyBase64(json_t *js, Flow *f, uint64_t tx_id);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_HTTP_H__ */ #endif /* __OUTPUT_JSON_HTTP_H__ */

@ -47,8 +47,6 @@
#include "app-layer-ikev2.h" #include "app-layer-ikev2.h"
#include "output-json-ikev2.h" #include "output-json-ikev2.h"
#ifdef HAVE_LIBJANSSON
#include "rust.h" #include "rust.h"
#include "rust-ikev2-log-gen.h" #include "rust-ikev2-log-gen.h"
@ -178,11 +176,3 @@ void JsonIKEv2LogRegister(void)
SCLogDebug("IKEv2 JSON logger registered."); SCLogDebug("IKEv2 JSON logger registered.");
} }
#else /* No JSON support. */
void JsonIKEv2LogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -47,8 +47,6 @@
#include "app-layer-krb5.h" #include "app-layer-krb5.h"
#include "output-json-krb5.h" #include "output-json-krb5.h"
#ifdef HAVE_LIBJANSSON
#include "rust.h" #include "rust.h"
#include "rust-krb-log-gen.h" #include "rust-krb-log-gen.h"
@ -179,11 +177,3 @@ void JsonKRB5LogRegister(void)
SCLogDebug("KRB5 JSON logger registered."); SCLogDebug("KRB5 JSON logger registered.");
} }
#else /* No JSON support. */
void JsonKRB5LogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -65,8 +65,6 @@
#define MODULE_NAME "JsonMetadataLog" #define MODULE_NAME "JsonMetadataLog"
#ifdef HAVE_LIBJANSSON
#define JSON_STREAM_BUFFER_SIZE 4096 #define JSON_STREAM_BUFFER_SIZE 4096
typedef struct MetadataJsonOutputCtx_ { typedef struct MetadataJsonOutputCtx_ {
@ -289,11 +287,3 @@ void JsonMetadataLogRegister (void)
JsonMetadataLogCondition, JsonMetadataLogThreadInit, JsonMetadataLogCondition, JsonMetadataLogThreadInit,
JsonMetadataLogThreadDeinit, NULL); JsonMetadataLogThreadDeinit, NULL);
} }
#else
void JsonMetadataLogRegister (void)
{
}
#endif

@ -49,8 +49,6 @@
#include "stream-tcp-private.h" #include "stream-tcp-private.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogJsonFileCtx_ { typedef struct LogJsonFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
OutputJsonCommonSettings cfg; OutputJsonCommonSettings cfg;
@ -462,11 +460,3 @@ void JsonNetFlowLogRegister(void)
"eve-log.netflow", OutputNetFlowLogInitSub, JsonNetFlowLogger, "eve-log.netflow", OutputNetFlowLogInitSub, JsonNetFlowLogger,
JsonNetFlowLogThreadInit, JsonNetFlowLogThreadDeinit, NULL); JsonNetFlowLogThreadInit, JsonNetFlowLogThreadDeinit, NULL);
} }
#else
void JsonNetFlowLogRegister (void)
{
}
#endif

@ -46,7 +46,6 @@
#include "output-json-nfs.h" #include "output-json-nfs.h"
#ifdef HAVE_LIBJANSSON
#include "rust.h" #include "rust.h"
#include "rust-nfs-log-gen.h" #include "rust-nfs-log-gen.h"
@ -133,11 +132,3 @@ void JsonNFSLogRegister(void)
SCLogDebug("NFS JSON logger registered."); SCLogDebug("NFS JSON logger registered.");
} }
#else /* No JSON support. */
void JsonNFSLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -50,8 +50,6 @@
#include "rust.h" #include "rust.h"
#include "rust-sip-log-gen.h" #include "rust-sip-log-gen.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogSIPFileCtx_ { typedef struct LogSIPFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
OutputJsonCommonSettings cfg; OutputJsonCommonSettings cfg;
@ -193,11 +191,3 @@ void JsonSIPLogRegister(void)
SCLogDebug("SIP JSON logger registered."); SCLogDebug("SIP JSON logger registered.");
} }
#else /* No JSON support. */
void JsonSIPLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -26,8 +26,6 @@
void JsonSIPLogRegister(void); void JsonSIPLogRegister(void);
#ifdef HAVE_LIBJANSSON
json_t *JsonSIPAddMetadata(const Flow *f, uint64_t tx_id); json_t *JsonSIPAddMetadata(const Flow *f, uint64_t tx_id);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_SIP_H__ */ #endif /* __OUTPUT_JSON_SIP_H__ */

@ -45,7 +45,6 @@
#include "output-json-smb.h" #include "output-json-smb.h"
#ifdef HAVE_LIBJANSSON
#include "rust.h" #include "rust.h"
#include "rust-smb-log-gen.h" #include "rust-smb-log-gen.h"
@ -107,12 +106,3 @@ void JsonSMBLogRegister(void)
SCLogDebug("SMB JSON logger registered."); SCLogDebug("SMB JSON logger registered.");
} }
#else /* No JSON support. */
void JsonSMBLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -52,8 +52,6 @@
#include "output-json-smtp.h" #include "output-json-smtp.h"
#include "output-json-email-common.h" #include "output-json-email-common.h"
#ifdef HAVE_LIBJANSSON
static json_t *JsonSmtpDataLogger(const Flow *f, void *state, void *vtx, uint64_t tx_id) static json_t *JsonSmtpDataLogger(const Flow *f, void *state, void *vtx, uint64_t tx_id)
{ {
json_t *sjs = json_object(); json_t *sjs = json_object();
@ -276,11 +274,3 @@ void JsonSmtpLogRegister (void) {
"eve-log.smtp", OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger, "eve-log.smtp", OutputSmtpLogInitSub, ALPROTO_SMTP, JsonSmtpLogger,
JsonSmtpLogThreadInit, JsonSmtpLogThreadDeinit, NULL); JsonSmtpLogThreadInit, JsonSmtpLogThreadDeinit, NULL);
} }
#else
void JsonSmtpLogRegister (void)
{
}
#endif

@ -25,8 +25,6 @@
#define __OUTPUT_JSON_SMTP_H__ #define __OUTPUT_JSON_SMTP_H__
void JsonSmtpLogRegister(void); void JsonSmtpLogRegister(void);
#ifdef HAVE_LIBJANSSON
json_t *JsonSMTPAddMetadata(const Flow *f, uint64_t tx_id); json_t *JsonSMTPAddMetadata(const Flow *f, uint64_t tx_id);
#endif
#endif /* __OUTPUT_JSON_SMTP_H__ */ #endif /* __OUTPUT_JSON_SMTP_H__ */

@ -47,8 +47,6 @@
#include "app-layer-snmp.h" #include "app-layer-snmp.h"
#include "output-json-snmp.h" #include "output-json-snmp.h"
#ifdef HAVE_LIBJANSSON
#include "rust.h" #include "rust.h"
#include "rust-snmp-log-gen.h" #include "rust-snmp-log-gen.h"
@ -178,11 +176,3 @@ void JsonSNMPLogRegister(void)
SCLogDebug("SNMP JSON logger registered."); SCLogDebug("SNMP JSON logger registered.");
} }
#else /* No JSON support. */
void JsonSNMPLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -50,8 +50,6 @@
#include "output-json.h" #include "output-json.h"
#include "output-json-ssh.h" #include "output-json-ssh.h"
#ifdef HAVE_LIBJANSSON
#define MODULE_NAME "LogSshLog" #define MODULE_NAME "LogSshLog"
typedef struct OutputSshCtx_ { typedef struct OutputSshCtx_ {
@ -273,11 +271,3 @@ void JsonSshLogRegister (void)
SSH_STATE_BANNER_DONE, SSH_STATE_BANNER_DONE, SSH_STATE_BANNER_DONE, SSH_STATE_BANNER_DONE,
JsonSshLogThreadInit, JsonSshLogThreadDeinit, NULL); JsonSshLogThreadInit, JsonSshLogThreadDeinit, NULL);
} }
#else
void JsonSshLogRegister (void)
{
}
#endif

@ -26,10 +26,8 @@
void JsonSshLogRegister(void); void JsonSshLogRegister(void);
#ifdef HAVE_LIBJANSSON
#include "app-layer-ssh.h" #include "app-layer-ssh.h"
void JsonSshLogJSON(json_t *js, SshState *tx); void JsonSshLogJSON(json_t *js, SshState *tx);
#endif
#endif /* __OUTPUT_JSON_SSH_H__ */ #endif /* __OUTPUT_JSON_SSH_H__ */

@ -50,8 +50,6 @@
#define MODULE_NAME "JsonStatsLog" #define MODULE_NAME "JsonStatsLog"
#ifdef HAVE_LIBJANSSON
extern bool stats_decoder_events; extern bool stats_decoder_events;
const char *stats_decoder_events_prefix; const char *stats_decoder_events_prefix;
@ -536,11 +534,3 @@ void JsonStatsLogRegister(void) {
"eve-log.stats", OutputStatsLogInitSub, JsonStatsLogger, "eve-log.stats", OutputStatsLogInitSub, JsonStatsLogger,
JsonStatsLogThreadInit, JsonStatsLogThreadDeinit, NULL); JsonStatsLogThreadInit, JsonStatsLogThreadDeinit, NULL);
} }
#else
void JsonStatsLogRegister (void)
{
}
#endif

@ -30,11 +30,9 @@
#define JSON_STATS_THREADS (1<<1) #define JSON_STATS_THREADS (1<<1)
#define JSON_STATS_DELTAS (1<<2) #define JSON_STATS_DELTAS (1<<2)
#ifdef HAVE_LIBJANSSON
json_t *StatsToJSON(const StatsTable *st, uint8_t flags); json_t *StatsToJSON(const StatsTable *st, uint8_t flags);
TmEcode OutputEngineStatsReloadTime(json_t **jdata); TmEcode OutputEngineStatsReloadTime(json_t **jdata);
TmEcode OutputEngineStatsRuleset(json_t **jdata); TmEcode OutputEngineStatsRuleset(json_t **jdata);
#endif
void JsonStatsLogRegister(void); void JsonStatsLogRegister(void);
#endif /* __OUTPUT_JSON_COUNTERS_H__ */ #endif /* __OUTPUT_JSON_COUNTERS_H__ */

@ -53,8 +53,6 @@
#include "app-layer-template.h" #include "app-layer-template.h"
#include "output-json-template.h" #include "output-json-template.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogTemplateFileCtx_ { typedef struct LogTemplateFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
uint32_t flags; uint32_t flags;
@ -203,11 +201,3 @@ void JsonTemplateLogRegister(void)
SCLogNotice("Template JSON logger registered."); SCLogNotice("Template JSON logger registered.");
} }
#else /* No JSON support. */
void JsonTemplateLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -51,8 +51,6 @@
#include "rust.h" #include "rust.h"
#include "rust-tftp-log-gen.h" #include "rust-tftp-log-gen.h"
#ifdef HAVE_LIBJANSSON
typedef struct LogTFTPFileCtx_ { typedef struct LogTFTPFileCtx_ {
LogFileCtx *file_ctx; LogFileCtx *file_ctx;
uint32_t flags; uint32_t flags;
@ -177,11 +175,3 @@ void JsonTFTPLogRegister(void)
SCLogDebug("TFTP JSON logger registered."); SCLogDebug("TFTP JSON logger registered.");
} }
#else /* HAVE_LIBJANSSON */
void JsonTFTPLogRegister(void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -51,8 +51,6 @@
#include "output-json.h" #include "output-json.h"
#include "output-json-tls.h" #include "output-json-tls.h"
#ifdef HAVE_LIBJANSSON
SC_ATOMIC_DECLARE(unsigned int, cert_id); SC_ATOMIC_DECLARE(unsigned int, cert_id);
#define MODULE_NAME "LogTlsLog" #define MODULE_NAME "LogTlsLog"
@ -665,12 +663,3 @@ void JsonTlsLogRegister (void)
JsonTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE, JsonTlsLogger, TLS_HANDSHAKE_DONE, TLS_HANDSHAKE_DONE,
JsonTlsLogThreadInit, JsonTlsLogThreadDeinit, NULL); JsonTlsLogThreadInit, JsonTlsLogThreadDeinit, NULL);
} }
#else
void JsonTlsLogRegister (void)
{
}
#endif /* HAVE_LIBJANSSON */

@ -26,11 +26,9 @@
void JsonTlsLogRegister(void); void JsonTlsLogRegister(void);
#ifdef HAVE_LIBJANSSON
#include "app-layer-ssl.h" #include "app-layer-ssl.h"
void JsonTlsLogJSONBasic(json_t *js, SSLState *ssl_state); void JsonTlsLogJSONBasic(json_t *js, SSLState *ssl_state);
void JsonTlsLogJSONExtended(json_t *js, SSLState *ssl_state); void JsonTlsLogJSONExtended(json_t *js, SSLState *ssl_state);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_TLS_H__ */ #endif /* __OUTPUT_JSON_TLS_H__ */

@ -66,21 +66,6 @@
#include "source-pcap-file.h" #include "source-pcap-file.h"
#ifndef HAVE_LIBJANSSON
/** Handle the case where no JSON support is compiled in.
*
*/
int OutputJsonOpenFileCtx(LogFileCtx *, char *);
void OutputJsonRegister (void)
{
SCLogDebug("Can't register JSON output - JSON support was disabled during build.");
}
#else /* implied we do have JSON support */
#define DEFAULT_LOG_FILENAME "eve.json" #define DEFAULT_LOG_FILENAME "eve.json"
#define DEFAULT_ALERT_SYSLOG_FACILITY_STR "local0" #define DEFAULT_ALERT_SYSLOG_FACILITY_STR "local0"
#define DEFAULT_ALERT_SYSLOG_FACILITY LOG_LOCAL0 #define DEFAULT_ALERT_SYSLOG_FACILITY LOG_LOCAL0
@ -1100,5 +1085,3 @@ static void OutputJsonDeInitCtx(OutputCtx *output_ctx)
SCFree(json_ctx); SCFree(json_ctx);
SCFree(output_ctx); SCFree(output_ctx);
} }
#endif

@ -33,8 +33,6 @@
void OutputJsonRegister(void); void OutputJsonRegister(void);
#ifdef HAVE_LIBJANSSON
enum OutputJsonLogDirection { enum OutputJsonLogDirection {
LOG_DIR_PACKET = 0, LOG_DIR_PACKET = 0,
LOG_DIR_FLOW, LOG_DIR_FLOW,
@ -97,6 +95,4 @@ void SCJsonDecref(json_t *js);
void JsonAddCommonOptions(const OutputJsonCommonSettings *cfg, void JsonAddCommonOptions(const OutputJsonCommonSettings *cfg,
const Packet *p, const Flow *f, json_t *js); const Packet *p, const Flow *f, json_t *js);
#endif /* HAVE_LIBJANSSON */
#endif /* __OUTPUT_JSON_H__ */ #endif /* __OUTPUT_JSON_H__ */

@ -765,14 +765,6 @@ void RunModeInitializeOutputs(void)
"recompile with --enable-prelude to add Prelude " "recompile with --enable-prelude to add Prelude "
"support."); "support.");
continue; continue;
#endif
} else if (strcmp(output->val, "eve-log") == 0) {
#ifndef HAVE_LIBJANSSON
SCLogWarning(SC_ERR_NOT_SUPPORTED,
"Eve-log support not compiled in. Reconfigure/"
"recompile with libjansson and its development "
"files installed to add eve-log support.");
continue;
#endif #endif
} else if (strcmp(output->val, "lua") == 0) { } else if (strcmp(output->val, "lua") == 0) {
#ifndef HAVE_LUA #ifndef HAVE_LUA

@ -236,7 +236,6 @@
#include <w32api/wtypes.h> #include <w32api/wtypes.h>
#endif #endif
#ifdef HAVE_LIBJANSSON
#include <jansson.h> #include <jansson.h>
#ifndef JSON_ESCAPE_SLASH #ifndef JSON_ESCAPE_SLASH
#define JSON_ESCAPE_SLASH 0 #define JSON_ESCAPE_SLASH 0
@ -246,7 +245,6 @@
#define json_boolean(val) SCJsonBool((val)) #define json_boolean(val) SCJsonBool((val))
//#define json_boolean(val) ((val) ? json_true() : json_false()) //#define json_boolean(val) ((val) ? json_true() : json_false())
#endif #endif
#endif
#ifdef HAVE_MAGIC #ifdef HAVE_MAGIC
#include <magic.h> #include <magic.h>

@ -750,9 +750,7 @@ static void PrintBuildInfo(void)
#ifdef HAVE_LUAJIT #ifdef HAVE_LUAJIT
strlcat(features, "HAVE_LUAJIT ", sizeof(features)); strlcat(features, "HAVE_LUAJIT ", sizeof(features));
#endif #endif
#ifdef HAVE_LIBJANSSON
strlcat(features, "HAVE_LIBJANSSON ", sizeof(features)); strlcat(features, "HAVE_LIBJANSSON ", sizeof(features));
#endif
#ifdef PROFILING #ifdef PROFILING
strlcat(features, "PROFILING ", sizeof(features)); strlcat(features, "PROFILING ", sizeof(features));
#endif #endif

@ -155,7 +155,6 @@ int ConfUnixSocketIsEnable(void)
} }
if (!strcmp(value, "auto")) { if (!strcmp(value, "auto")) {
#ifdef HAVE_LIBJANSSON
#ifdef OS_WIN32 #ifdef OS_WIN32
return 0; return 0;
#else #else
@ -165,9 +164,6 @@ int ConfUnixSocketIsEnable(void)
} else { } else {
return 0; return 0;
} }
#endif
#else
return 0;
#endif #endif
} }

@ -200,7 +200,6 @@ static inline void SCLogPrintToSyslog(int syslog_log_level, const char *msg)
return; return;
} }
#ifdef HAVE_LIBJANSSON
#include <jansson.h> #include <jansson.h>
/** /**
*/ */
@ -264,7 +263,6 @@ static int SCLogMessageJSON(struct timeval *tval, char *buffer, size_t buffer_si
error: error:
return -1; return -1;
} }
#endif /* HAVE_LIBJANSSON */
/** /**
* \brief Adds the global log_format to the outgoing buffer * \brief Adds the global log_format to the outgoing buffer
@ -286,10 +284,8 @@ static SCError SCLogMessageGetBuffer(
const unsigned int line, const char *function, const unsigned int line, const char *function,
const SCError error_code, const char *message) const SCError error_code, const char *message)
{ {
#ifdef HAVE_LIBJANSSON
if (type == SC_LOG_OP_TYPE_JSON) if (type == SC_LOG_OP_TYPE_JSON)
return SCLogMessageJSON(tval, buffer, buffer_size, log_level, file, line, function, error_code, message); return SCLogMessageJSON(tval, buffer, buffer_size, log_level, file, line, function, error_code, message);
#endif
char *temp = buffer; char *temp = buffer;
const char *s = NULL; const char *s = NULL;
@ -1357,13 +1353,7 @@ void SCLogLoadConfig(int daemon, int verbose)
if (strcmp(type_s, "regular") == 0) if (strcmp(type_s, "regular") == 0)
type = SC_LOG_OP_TYPE_REGULAR; type = SC_LOG_OP_TYPE_REGULAR;
else if (strcmp(type_s, "json") == 0) { else if (strcmp(type_s, "json") == 0) {
#ifdef HAVE_LIBJANSSON
type = SC_LOG_OP_TYPE_JSON; type = SC_LOG_OP_TYPE_JSON;
#else
SCLogError(SC_ERR_INVALID_ARGUMENT, "libjansson support not "
"compiled in, can't use 'json' logging");
exit(EXIT_FAILURE);
#endif /* HAVE_LIBJANSSON */
} }
} }

@ -386,7 +386,6 @@ SCConfLogOpenGeneric(ConfNode *conf,
append = DEFAULT_LOG_MODE_APPEND; append = DEFAULT_LOG_MODE_APPEND;
/* JSON flags */ /* JSON flags */
#ifdef HAVE_LIBJANSSON
log_ctx->json_flags = JSON_PRESERVE_ORDER|JSON_COMPACT| log_ctx->json_flags = JSON_PRESERVE_ORDER|JSON_COMPACT|
JSON_ENSURE_ASCII|JSON_ESCAPE_SLASH; JSON_ENSURE_ASCII|JSON_ESCAPE_SLASH;
@ -412,7 +411,6 @@ SCConfLogOpenGeneric(ConfNode *conf,
if (escape_slash != NULL && ConfValIsFalse(escape_slash)) if (escape_slash != NULL && ConfValIsFalse(escape_slash))
log_ctx->json_flags &= ~(JSON_ESCAPE_SLASH); log_ctx->json_flags &= ~(JSON_ESCAPE_SLASH);
} }
#endif /* HAVE_LIBJANSSON */
// Now, what have we been asked to open? // Now, what have we been asked to open?
if (strcasecmp(filetype, "unix_stream") == 0) { if (strcasecmp(filetype, "unix_stream") == 0) {

@ -66,9 +66,7 @@ static int profiling_sghs_output_to_file = 0;
int profiling_sghs_enabled = 0; int profiling_sghs_enabled = 0;
static char profiling_file_name[PATH_MAX]; static char profiling_file_name[PATH_MAX];
static const char *profiling_file_mode = "a"; static const char *profiling_file_mode = "a";
#ifdef HAVE_LIBJANSSON
static int profiling_rulegroup_json = 0; static int profiling_rulegroup_json = 0;
#endif
void SCProfilingSghsGlobalInit(void) void SCProfilingSghsGlobalInit(void)
{ {
@ -96,17 +94,12 @@ void SCProfilingSghsGlobalInit(void)
profiling_sghs_output_to_file = 1; profiling_sghs_output_to_file = 1;
} }
if (ConfNodeChildValueIsTrue(conf, "json")) { if (ConfNodeChildValueIsTrue(conf, "json")) {
#ifdef HAVE_LIBJANSSON
profiling_rulegroup_json = 1; profiling_rulegroup_json = 1;
#else
SCLogWarning(SC_ERR_NO_JSON_SUPPORT, "no json support compiled in, using plain output");
#endif
} }
} }
} }
} }
#ifdef HAVE_LIBJANSSON
static void DoDumpJSON(SCProfileSghDetectCtx *rules_ctx, FILE *fp, const char *name) static void DoDumpJSON(SCProfileSghDetectCtx *rules_ctx, FILE *fp, const char *name)
{ {
char timebuf[64]; char timebuf[64];
@ -165,7 +158,6 @@ static void DoDumpJSON(SCProfileSghDetectCtx *rules_ctx, FILE *fp, const char *n
} }
json_decref(js); json_decref(js);
} }
#endif /* HAVE_LIBJANSSON */
static void DoDump(SCProfileSghDetectCtx *rules_ctx, FILE *fp, const char *name) static void DoDump(SCProfileSghDetectCtx *rules_ctx, FILE *fp, const char *name)
{ {
@ -252,12 +244,9 @@ SCProfilingSghDump(DetectEngineCtx *de_ctx)
fp = stdout; fp = stdout;
} }
#ifdef HAVE_LIBJANSSON
if (profiling_rulegroup_json) { if (profiling_rulegroup_json) {
DoDumpJSON(de_ctx->profile_sgh_ctx, fp, "rule groups"); DoDumpJSON(de_ctx->profile_sgh_ctx, fp, "rule groups");
} else } else {
#endif
{
DoDump(de_ctx->profile_sgh_ctx, fp, "rule groups"); DoDump(de_ctx->profile_sgh_ctx, fp, "rule groups");
} }

@ -81,9 +81,7 @@ extern int profiling_output_to_file;
int profiling_rules_enabled = 0; int profiling_rules_enabled = 0;
static char profiling_file_name[PATH_MAX] = ""; static char profiling_file_name[PATH_MAX] = "";
static const char *profiling_file_mode = "a"; static const char *profiling_file_mode = "a";
#ifdef HAVE_LIBJANSSON
static int profiling_rule_json = 0; static int profiling_rule_json = 0;
#endif
/** /**
* Sort orders for dumping profiled rules. * Sort orders for dumping profiled rules.
@ -185,11 +183,7 @@ void SCProfilingRulesGlobalInit(void)
profiling_output_to_file = 1; profiling_output_to_file = 1;
} }
if (ConfNodeChildValueIsTrue(conf, "json")) { if (ConfNodeChildValueIsTrue(conf, "json")) {
#ifdef HAVE_LIBJANSSON
profiling_rule_json = 1; profiling_rule_json = 1;
#else
SCLogWarning(SC_ERR_NO_JSON_SUPPORT, "no json support compiled in, using plain output");
#endif
} }
} }
} }
@ -294,8 +288,6 @@ SCProfileSummarySortByMaxTicks(const void *a, const void *b)
return s0->max > s1->max ? -1 : 1; return s0->max > s1->max ? -1 : 1;
} }
#ifdef HAVE_LIBJANSSON
static void DumpJson(FILE *fp, SCProfileSummary *summary, static void DumpJson(FILE *fp, SCProfileSummary *summary,
uint32_t count, uint64_t total_ticks, uint32_t count, uint64_t total_ticks,
const char *sort_desc) const char *sort_desc)
@ -359,8 +351,6 @@ static void DumpJson(FILE *fp, SCProfileSummary *summary,
json_decref(js); json_decref(js);
} }
#endif /* HAVE_LIBJANSSON */
static void DumpText(FILE *fp, SCProfileSummary *summary, static void DumpText(FILE *fp, SCProfileSummary *summary,
uint32_t count, uint64_t total_ticks, uint32_t count, uint64_t total_ticks,
const char *sort_desc) const char *sort_desc)
@ -530,12 +520,9 @@ SCProfilingRuleDump(SCProfileDetectCtx *rules_ctx)
sort_desc = "average ticks (no match)"; sort_desc = "average ticks (no match)";
break; break;
} }
#ifdef HAVE_LIBJANSSON
if (profiling_rule_json) { if (profiling_rule_json) {
DumpJson(fp, summary, count, total_ticks, sort_desc); DumpJson(fp, summary, count, total_ticks, sort_desc);
} else } else {
#endif
{
DumpText(fp, summary, count, total_ticks, sort_desc); DumpText(fp, summary, count, total_ticks, sort_desc);
} }
order++; order++;

Loading…
Cancel
Save