Merge pull request #3322 from projectdiscovery/optional-templates-cache

Added optional doNotCache to protocols.ExecuterOptions
This commit is contained in:
Ice3man 2023-02-13 18:24:38 +05:30 committed by GitHub
commit dbb0bf2789
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 3 deletions

View File

@ -77,6 +77,9 @@ type ExecuterOptions struct {
Operators []*operators.Operators // only used by offlinehttp module
// DoNotCache bool disables optional caching of the templates structure
DoNotCache bool
Colorizer aurora.Aurora
WorkflowLoader model.WorkflowLoader
ResumeCfg *types.ResumeCfg

View File

@ -34,8 +34,10 @@ func init() {
//
//nolint:gocritic // this cannot be passed by pointer
func Parse(filePath string, preprocessor Preprocessor, options protocols.ExecuterOptions) (*Template, error) {
if value, err := parsedTemplatesCache.Has(filePath); value != nil {
return value.(*Template), err
if !options.DoNotCache {
if value, err := parsedTemplatesCache.Has(filePath); value != nil {
return value.(*Template), err
}
}
var reader io.ReadCloser
@ -69,7 +71,9 @@ func Parse(filePath string, preprocessor Preprocessor, options protocols.Execute
template.CompiledWorkflow.Options = &options
}
template.Path = filePath
parsedTemplatesCache.Store(filePath, template, err)
if !options.DoNotCache {
parsedTemplatesCache.Store(filePath, template, err)
}
return template, nil
}