mirror of
https://github.com/OJ/gobuster.git
synced 2024-05-06 23:26:02 +02:00
0a0cab949f
* retry on timeout * Google Cloud Bucket enumeration * colors in output * goreleaser * fix nil reference errors
47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package libgobuster
|
|
|
|
import "sync"
|
|
|
|
type Progress struct {
|
|
requestsExpectedMutex *sync.RWMutex
|
|
requestsExpected int
|
|
requestsCountMutex *sync.RWMutex
|
|
requestsIssued int
|
|
ResultChan chan Result
|
|
ErrorChan chan error
|
|
}
|
|
|
|
func NewProgress() *Progress {
|
|
var p Progress
|
|
p.requestsIssued = 0
|
|
p.requestsExpectedMutex = new(sync.RWMutex)
|
|
p.requestsCountMutex = new(sync.RWMutex)
|
|
p.ResultChan = make(chan Result)
|
|
p.ErrorChan = make(chan error)
|
|
return &p
|
|
}
|
|
|
|
func (p *Progress) RequestsExpected() int {
|
|
p.requestsExpectedMutex.RLock()
|
|
defer p.requestsExpectedMutex.RUnlock()
|
|
return p.requestsExpected
|
|
}
|
|
|
|
func (p *Progress) RequestsIssued() int {
|
|
p.requestsCountMutex.RLock()
|
|
defer p.requestsCountMutex.RUnlock()
|
|
return p.requestsIssued
|
|
}
|
|
|
|
func (p *Progress) incrementRequests() {
|
|
p.requestsCountMutex.Lock()
|
|
defer p.requestsCountMutex.Unlock()
|
|
p.requestsIssued++
|
|
}
|
|
|
|
func (p *Progress) IncrementTotalRequests(by int) {
|
|
p.requestsCountMutex.Lock()
|
|
defer p.requestsCountMutex.Unlock()
|
|
p.requestsExpected += by
|
|
}
|