diff --git a/modules/api_rest.go b/modules/api_rest.go index 28c504f7..920fd044 100644 --- a/modules/api_rest.go +++ b/modules/api_rest.go @@ -113,7 +113,9 @@ func (api *RestAPI) Configure() error { var ip string var port int - if err, ip = api.StringParam("api.rest.address"); err != nil { + if api.Running() { + return session.ErrAlreadyStarted + } else if err, ip = api.StringParam("api.rest.address"); err != nil { return err } else if err, port = api.IntParam("api.rest.port"); err != nil { return err @@ -155,9 +157,7 @@ func (api *RestAPI) Configure() error { } func (api *RestAPI) Start() error { - if api.Running() == true { - return session.ErrAlreadyStarted - } else if err := api.Configure(); err != nil { + if err := api.Configure(); err != nil { return err } diff --git a/modules/ble_recon.go b/modules/ble_recon.go index e88eaa31..2a47959f 100644 --- a/modules/ble_recon.go +++ b/modules/ble_recon.go @@ -111,7 +111,9 @@ func (d *BLERecon) isEnumerating() bool { } func (d *BLERecon) Configure() (err error) { - if d.gattDevice == nil { + if d.Running() { + return session.ErrAlreadyStarted + } else if d.gattDevice == nil { log.Info("Initializing BLE device ...") // hey Paypal GATT library, could you please just STFU?! @@ -147,9 +149,7 @@ func (d *BLERecon) pruner() { } func (d *BLERecon) Start() error { - if d.Running() { - return session.ErrAlreadyStarted - } else if err := d.Configure(); err != nil { + if err := d.Configure(); err != nil { return err } diff --git a/modules/dhcp6_spoof.go b/modules/dhcp6_spoof.go index 960b7768..3d9438da 100644 --- a/modules/dhcp6_spoof.go +++ b/modules/dhcp6_spoof.go @@ -77,6 +77,10 @@ func (s DHCP6Spoofer) Author() string { func (s *DHCP6Spoofer) Configure() error { var err error + if s.Running() { + return session.ErrAlreadyStarted + } + if s.Handle, err = pcap.OpenLive(s.Session.Interface.Name(), 65536, true, pcap.BlockForever); err != nil { return err } @@ -354,9 +358,7 @@ func (s *DHCP6Spoofer) onPacket(pkt gopacket.Packet) { } func (s *DHCP6Spoofer) Start() error { - if s.Running() == true { - return session.ErrAlreadyStarted - } else if err := s.Configure(); err != nil { + if err := s.Configure(); err != nil { return err } diff --git a/modules/dns_spoof.go b/modules/dns_spoof.go index 1c2a607f..bf44c8ff 100644 --- a/modules/dns_spoof.go +++ b/modules/dns_spoof.go @@ -80,6 +80,10 @@ func (s *DNSSpoofer) Configure() error { var err error var addr string + if s.Running() { + return session.ErrAlreadyStarted + } + if s.Handle, err = pcap.OpenLive(s.Session.Interface.Name(), 65536, true, pcap.BlockForever); err != nil { return err } @@ -264,9 +268,7 @@ func (s *DNSSpoofer) onPacket(pkt gopacket.Packet) { } func (s *DNSSpoofer) Start() error { - if s.Running() == true { - return session.ErrAlreadyStarted - } else if err := s.Configure(); err != nil { + if err := s.Configure(); err != nil { return err } diff --git a/modules/events_stream.go b/modules/events_stream.go index 99d009e2..fa1e9d8b 100644 --- a/modules/events_stream.go +++ b/modules/events_stream.go @@ -125,7 +125,6 @@ func (s *EventsStream) Configure() error { func (s *EventsStream) Start() error { return s.SetRunning(true, func() { - s.eventListener = s.Session.Events.Listen() for { var e session.Event diff --git a/modules/gps.go b/modules/gps.go index 2825a1ed..e76c5ceb 100644 --- a/modules/gps.go +++ b/modules/gps.go @@ -71,7 +71,9 @@ func (gps *GPS) Author() string { } func (gps *GPS) Configure() (err error) { - if err, gps.serialPort = gps.StringParam("gps.device"); err != nil { + if gps.Running() { + return session.ErrAlreadyStarted + } else if err, gps.serialPort = gps.StringParam("gps.device"); err != nil { return err } else if err, gps.baudRate = gps.IntParam("gps.baudrate"); err != nil { return err @@ -117,9 +119,7 @@ func (gps *GPS) Show() error { } func (gps *GPS) Start() error { - if gps.Running() == true { - return session.ErrAlreadyStarted - } else if err := gps.Configure(); err != nil { + if err := gps.Configure(); err != nil { return err } diff --git a/modules/http_proxy.go b/modules/http_proxy.go index 670bfbe3..002a1fb8 100644 --- a/modules/http_proxy.go +++ b/modules/http_proxy.go @@ -67,19 +67,15 @@ func (p *HttpProxy) Configure() error { var httpPort int var scriptPath string - if err, address = p.StringParam("http.proxy.address"); err != nil { + if p.Running() == true { + return session.ErrAlreadyStarted + } else if err, address = p.StringParam("http.proxy.address"); err != nil { return err - } - - if err, proxyPort = p.IntParam("http.proxy.port"); err != nil { + } else if err, proxyPort = p.IntParam("http.proxy.port"); err != nil { return err - } - - if err, httpPort = p.IntParam("http.port"); err != nil { + } else if err, httpPort = p.IntParam("http.port"); err != nil { return err - } - - if err, scriptPath = p.StringParam("http.proxy.script"); err != nil { + } else if err, scriptPath = p.StringParam("http.proxy.script"); err != nil { return err } @@ -87,9 +83,7 @@ func (p *HttpProxy) Configure() error { } func (p *HttpProxy) Start() error { - if p.Running() == true { - return session.ErrAlreadyStarted - } else if err := p.Configure(); err != nil { + if err := p.Configure(); err != nil { return err } diff --git a/modules/http_server.go b/modules/http_server.go index 30c00d50..1180cbd3 100644 --- a/modules/http_server.go +++ b/modules/http_server.go @@ -89,6 +89,10 @@ func (httpd *HttpServer) Configure() error { var certFile string var keyFile string + if httpd.Running() == true { + return session.ErrAlreadyStarted + } + if err, path = httpd.StringParam("http.server.path"); err != nil { return err } @@ -145,9 +149,7 @@ func (httpd *HttpServer) Configure() error { } func (httpd *HttpServer) Start() error { - if httpd.Running() == true { - return session.ErrAlreadyStarted - } else if err := httpd.Configure(); err != nil { + if err := httpd.Configure(); err != nil { return err } diff --git a/modules/https_proxy.go b/modules/https_proxy.go index 8328c161..daea7a2f 100644 --- a/modules/https_proxy.go +++ b/modules/https_proxy.go @@ -82,6 +82,10 @@ func (p *HttpsProxy) Configure() error { var certFile string var keyFile string + if p.Running() == true { + return session.ErrAlreadyStarted + } + if err, address = p.StringParam("https.proxy.address"); err != nil { return err } @@ -125,9 +129,7 @@ func (p *HttpsProxy) Configure() error { } func (p *HttpsProxy) Start() error { - if p.Running() == true { - return session.ErrAlreadyStarted - } else if err := p.Configure(); err != nil { + if err := p.Configure(); err != nil { return err } diff --git a/modules/net_sniff.go b/modules/net_sniff.go index a0cd418c..67749267 100644 --- a/modules/net_sniff.go +++ b/modules/net_sniff.go @@ -125,7 +125,9 @@ func (s *Sniffer) onPacketMatched(pkt gopacket.Packet) { func (s *Sniffer) Configure() error { var err error - if err, s.Ctx = s.GetContext(); err != nil { + if s.Running() == true { + return session.ErrAlreadyStarted + } else if err, s.Ctx = s.GetContext(); err != nil { if s.Ctx != nil { s.Ctx.Close() s.Ctx = nil @@ -137,9 +139,7 @@ func (s *Sniffer) Configure() error { } func (s *Sniffer) Start() error { - if s.Running() == true { - return session.ErrAlreadyStarted - } else if err := s.Configure(); err != nil { + if err := s.Configure(); err != nil { return err } diff --git a/modules/tcp_proxy.go b/modules/tcp_proxy.go index 7b032155..48ab90f7 100644 --- a/modules/tcp_proxy.go +++ b/modules/tcp_proxy.go @@ -83,7 +83,9 @@ func (p *TcpProxy) Configure() error { var proxyAddress string var scriptPath string - if err, address = p.StringParam("tcp.address"); err != nil { + if p.Running() == true { + return session.ErrAlreadyStarted + } else if err, address = p.StringParam("tcp.address"); err != nil { return err } else if err, proxyAddress = p.StringParam("tcp.proxy.address"); err != nil { return err @@ -190,9 +192,7 @@ func (p *TcpProxy) handleConnection(c *net.TCPConn) { } func (p *TcpProxy) Start() error { - if p.Running() == true { - return session.ErrAlreadyStarted - } else if err := p.Configure(); err != nil { + if err := p.Configure(); err != nil { return err } diff --git a/modules/ticker.go b/modules/ticker.go index 3ec65ecc..8b312ef3 100644 --- a/modules/ticker.go +++ b/modules/ticker.go @@ -59,7 +59,9 @@ func (t *Ticker) Configure() error { var commands string var period int - if err, commands = t.StringParam("ticker.commands"); err != nil { + if t.Running() == true { + return session.ErrAlreadyStarted + } else if err, commands = t.StringParam("ticker.commands"); err != nil { return err } else if err, period = t.IntParam("ticker.period"); err != nil { return err @@ -72,9 +74,7 @@ func (t *Ticker) Configure() error { } func (t *Ticker) Start() error { - if t.Running() == true { - return session.ErrAlreadyStarted - } else if err := t.Configure(); err != nil { + if err := t.Configure(); err != nil { return err } diff --git a/modules/wifi_recon.go b/modules/wifi_recon.go index 516a6121..9b7d62dd 100644 --- a/modules/wifi_recon.go +++ b/modules/wifi_recon.go @@ -594,9 +594,7 @@ func (w *WiFiRecon) trackPacket(pkt gopacket.Packet) { } func (w *WiFiRecon) Start() error { - if w.Running() == true { - return session.ErrAlreadyStarted - } else if err := w.Configure(); err != nil { + if err := w.Configure(); err != nil { return err }