#include "app-layer-smb.h"
#include "app-layer-modbus.h"
#include "app-layer-enip.h"
+#include "app-layer-dnp3.h"
#include "util-decode-der.h"
#include "util-radix-tree.h"
{"netmap", optional_argument, 0, 0},
{"pcap", optional_argument, 0, 0},
{"simulate-ips", 0, 0 , 0},
- {"afl-rules", required_argument, 0 , 0},
+
+ /* AFL app-layer options. */
{"afl-http-request", required_argument, 0 , 0},
{"afl-http", required_argument, 0 , 0},
{"afl-tls-request", required_argument, 0 , 0},
{"afl-enip-request", required_argument, 0 , 0},
{"afl-enip", required_argument, 0 , 0},
{"afl-mime", required_argument, 0 , 0},
+ {"afl-dnp3-request", required_argument, 0, 0},
+ {"afl-dnp3", required_argument, 0, 0},
+ /* Other AFL options. */
+ {"afl-rules", required_argument, 0 , 0},
+ {"afl-mime", required_argument, 0 , 0},
{"afl-decoder-ppp", required_argument, 0 , 0},
{"afl-der", required_argument, 0, 0},
+
#ifdef BUILD_UNIX_SOCKET
{"unix-socket", optional_argument, 0, 0},
#endif
AppLayerParserSetup();
RegisterENIPTCPParsers();
exit(AppLayerParserFromFile(ALPROTO_ENIP, optarg));
+ } else if(strcmp((long_opts[option_index]).name, "afl-dnp3-request") == 0) {
+ AppLayerParserSetup();
+ RegisterDNP3Parsers();
+ exit(AppLayerParserRequestFromFile(ALPROTO_DNP3, optarg));
+ } else if(strcmp((long_opts[option_index]).name, "afl-dnp3") == 0) {
+ AppLayerParserSetup();
+ RegisterDNP3Parsers();
+ exit(AppLayerParserFromFile(ALPROTO_DNP3, optarg));
#endif
#ifdef AFLFUZZ_MIME
} else if(strcmp((long_opts[option_index]).name, "afl-mime") == 0) {