diff --git a/src/BroDoc.cc b/src/BroDoc.cc index 12b8cce284..9eb804432a 100644 --- a/src/BroDoc.cc +++ b/src/BroDoc.cc @@ -56,6 +56,22 @@ BroDoc::~BroDoc() FreeBroDocObjPtrList(redefs); } +void BroDoc::AddImport(const std::string& s) + { + size_t ext_pos = s.find_last_of('.'); + + if ( ext_pos == std::string::npos ) + imports.push_back(s); + else + { + if ( s.substr(ext_pos + 1) == "bro" ) + imports.push_back(s.substr(0, ext_pos)); + else + fprintf(stderr, "Warning: skipped documenting @load of file " + "without .bro extension: %s\n", s.c_str()); + } + } + void BroDoc::SetPacketFilter(const std::string& s) { packet_filter = s; diff --git a/src/BroDoc.h b/src/BroDoc.h index a28a07561e..3ed92d9432 100644 --- a/src/BroDoc.h +++ b/src/BroDoc.h @@ -52,10 +52,11 @@ public: /** * Schedules an import (@load) to be documented. + * If the script being loaded has a .bro suffix, it is internally stripped. * This should be called whenever the scanner sees an @load. * @param s The name of the imported script. */ - void AddImport(const std::string& s) { imports.push_back(s); } + void AddImport(const std::string& s); /** * Schedules a namespace (module) to be documented.