Skip to content

Commit 08c46ff

Browse files
Added WithResponseReadSize function to allow SDK users to modify max response read opt (#5961)
* added WithResponseReadSize function to allow SDK users to modify max response read opt * Update lib/config.go improved comment, changed casing of param name, added negative input check Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fixing rabbitai commit >:( --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent 2450ecb commit 08c46ff

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

lib/config.go

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -126,39 +126,44 @@ func WithConcurrency(opts Concurrency) NucleiSDKOptions {
126126
// minimum required is 1
127127
if opts.TemplateConcurrency <= 0 {
128128
return errors.New("template threads must be at least 1")
129-
} else {
130-
e.opts.TemplateThreads = opts.TemplateConcurrency
131129
}
132130
if opts.HostConcurrency <= 0 {
133131
return errors.New("host concurrency must be at least 1")
134-
} else {
135-
e.opts.BulkSize = opts.HostConcurrency
136132
}
137133
if opts.HeadlessHostConcurrency <= 0 {
138134
return errors.New("headless host concurrency must be at least 1")
139-
} else {
140-
e.opts.HeadlessBulkSize = opts.HeadlessHostConcurrency
141135
}
142136
if opts.HeadlessTemplateConcurrency <= 0 {
143137
return errors.New("headless template threads must be at least 1")
144-
} else {
145-
e.opts.HeadlessTemplateThreads = opts.HeadlessTemplateConcurrency
146138
}
147139
if opts.JavascriptTemplateConcurrency <= 0 {
148140
return errors.New("js must be at least 1")
149-
} else {
150-
e.opts.JsConcurrency = opts.JavascriptTemplateConcurrency
151141
}
152142
if opts.TemplatePayloadConcurrency <= 0 {
153143
return errors.New("payload concurrency must be at least 1")
154-
} else {
155-
e.opts.PayloadConcurrency = opts.TemplatePayloadConcurrency
156144
}
157145
if opts.ProbeConcurrency <= 0 {
158146
return errors.New("probe concurrency must be at least 1")
159-
} else {
160-
e.opts.ProbeConcurrency = opts.ProbeConcurrency
161147
}
148+
e.opts.TemplateThreads = opts.TemplateConcurrency
149+
e.opts.BulkSize = opts.HostConcurrency
150+
e.opts.HeadlessBulkSize = opts.HeadlessHostConcurrency
151+
e.opts.HeadlessTemplateThreads = opts.HeadlessTemplateConcurrency
152+
e.opts.JsConcurrency = opts.JavascriptTemplateConcurrency
153+
e.opts.PayloadConcurrency = opts.TemplatePayloadConcurrency
154+
e.opts.ProbeConcurrency = opts.ProbeConcurrency
155+
return nil
156+
}
157+
}
158+
159+
// WithResponseReadSize sets the maximum size of response to read in bytes.
160+
// A value of 0 means no limit. Recommended values: 1MB (1048576) to 10MB (10485760).
161+
func WithResponseReadSize(responseReadSize int) NucleiSDKOptions {
162+
return func(e *NucleiEngine) error {
163+
if responseReadSize < 0 {
164+
return errors.New("response read size must be non-negative")
165+
}
166+
e.opts.ResponseReadSize = responseReadSize
162167
return nil
163168
}
164169
}

0 commit comments

Comments
 (0)