From 53ecd6e5f51f422e954b49b2813ce1542b8c2a4d Mon Sep 17 00:00:00 2001 From: munzli Date: Thu, 14 Dec 2017 11:34:01 +0100 Subject: [PATCH 1/3] receive from channel on simplecommands and remove unknown commands --- clamd.go | 32 +++++++++++--------------------- 1 file changed, 11 insertions(+), 21 deletions(-) diff --git a/clamd.go b/clamd.go index 5199f63..12e242d 100644 --- a/clamd.go +++ b/clamd.go @@ -129,9 +129,9 @@ func (c *Clamd) Ping() error { /* Print program and database versions. */ -func (c *Clamd) Version() (chan *ScanResult, error) { - dataArrays, err := c.simpleCommand("VERSION") - return dataArrays, err +func (c *Clamd) Version() (*ScanResult, error) { + ch, err := c.simpleCommand("VERSION") + return <-ch, err } /* @@ -202,51 +202,41 @@ func (c *Clamd) Shutdown() error { Scan file or directory (recursively) with archive support enabled (a full path is required). */ -func (c *Clamd) ScanFile(path string) (chan *ScanResult, error) { +func (c *Clamd) ScanFile(path string) (*ScanResult, error) { command := fmt.Sprintf("SCAN %s", path) ch, err := c.simpleCommand(command) - return ch, err -} - -/* -Scan file or directory (recursively) with archive and special file support disabled -(a full path is required). -*/ -func (c *Clamd) RawScanFile(path string) (chan *ScanResult, error) { - command := fmt.Sprintf("RAWSCAN %s", path) - ch, err := c.simpleCommand(command) - return ch, err + return <-ch, err } /* Scan file in a standard way or scan directory (recursively) using multiple threads (to make the scanning faster on SMP machines). */ -func (c *Clamd) MultiScanFile(path string) (chan *ScanResult, error) { +/*func (c *Clamd) MultiScanFile(path string) (chan *ScanResult, error) { command := fmt.Sprintf("MULTISCAN %s", path) ch, err := c.simpleCommand(command) return ch, err -} +}*/ /* Scan file or directory (recursively) with archive support enabled and don’t stop the scanning when a virus is found. */ -func (c *Clamd) ContScanFile(path string) (chan *ScanResult, error) { +/*func (c *Clamd) ContScanFile(path string) (chan *ScanResult, error) { command := fmt.Sprintf("CONTSCAN %s", path) ch, err := c.simpleCommand(command) return ch, err -} +}*/ /* Scan file or directory (recursively) with archive support enabled and don’t stop the scanning when a virus is found. */ -func (c *Clamd) AllMatchScanFile(path string) (chan *ScanResult, error) { +/*func (c *Clamd) AllMatchScanFile(path string) (chan *ScanResult, error) { command := fmt.Sprintf("ALLMATCHSCAN %s", path) ch, err := c.simpleCommand(command) return ch, err -} +}*/ /* Scan a stream of data. The stream is sent to clamd in chunks, after INSTREAM, From 3b9f3afce27cdf7f15e705a99ee34044dfc587ec Mon Sep 17 00:00:00 2001 From: munzli Date: Thu, 22 Feb 2018 14:02:51 +0100 Subject: [PATCH 2/3] re-add now tested commands --- clamd.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/clamd.go b/clamd.go index 12e242d..e93abe9 100644 --- a/clamd.go +++ b/clamd.go @@ -212,31 +212,31 @@ func (c *Clamd) ScanFile(path string) (*ScanResult, error) { Scan file in a standard way or scan directory (recursively) using multiple threads (to make the scanning faster on SMP machines). */ -/*func (c *Clamd) MultiScanFile(path string) (chan *ScanResult, error) { +func (c *Clamd) MultiScanFile(path string) (*ScanResult, error) { command := fmt.Sprintf("MULTISCAN %s", path) ch, err := c.simpleCommand(command) - return ch, err -}*/ + return <-ch, err +} /* Scan file or directory (recursively) with archive support enabled and don’t stop the scanning when a virus is found. */ -/*func (c *Clamd) ContScanFile(path string) (chan *ScanResult, error) { +func (c *Clamd) ContScanFile(path string) (*ScanResult, error) { command := fmt.Sprintf("CONTSCAN %s", path) ch, err := c.simpleCommand(command) - return ch, err -}*/ + return <-ch, err +} /* Scan file or directory (recursively) with archive support enabled and don’t stop the scanning when a virus is found. */ -/*func (c *Clamd) AllMatchScanFile(path string) (chan *ScanResult, error) { +func (c *Clamd) AllMatchScanFile(path string) (*ScanResult, error) { command := fmt.Sprintf("ALLMATCHSCAN %s", path) ch, err := c.simpleCommand(command) - return ch, err -}*/ + return <-ch, err +} /* Scan a stream of data. The stream is sent to clamd in chunks, after INSTREAM, From fc0f6bc381c9d92f9fb2f5b27fafb9375b2d21a6 Mon Sep 17 00:00:00 2001 From: munzli Date: Thu, 22 Feb 2018 14:21:45 +0100 Subject: [PATCH 3/3] correct return type --- clamd.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/clamd.go b/clamd.go index e93abe9..2dd3d33 100644 --- a/clamd.go +++ b/clamd.go @@ -119,7 +119,7 @@ func (c *Clamd) Ping() error { case "PONG": return nil default: - return errors.New(fmt.Sprintf("Invalid response, got %s.", s)) + return errors.New(fmt.Sprintf("Invalid response, got %s.", s.Raw)) } } @@ -182,7 +182,7 @@ func (c *Clamd) Reload() error { case "RELOADING": return nil default: - return errors.New(fmt.Sprintf("Invalid response, got %s.", s)) + return errors.New(fmt.Sprintf("Invalid response, got %s.", s.Raw)) } }