Browse Source

fixed issue with go-clamd

tags/v1.0.0
Remco 7 years ago
parent
commit
c53c3be577
1 changed files with 9 additions and 11 deletions
  1. +9
    -11
      transfersh-server/handlers.go

+ 9
- 11
transfersh-server/handlers.go View File

@@ -270,24 +270,22 @@ func scanHandler(w http.ResponseWriter, r *http.Request) {

c := clamd.NewClamd(config.CLAMAV_DAEMON_HOST)

response, err := c.ScanStream(reader)
abort := make(chan bool)
response, err := c.ScanStream(reader, abort)
if err != nil {
log.Printf("%s", err.Error())
http.Error(w, err.Error(), 500)
return
}

var b string

for s := range response {
b += s

if !strings.HasPrefix(s, "stream: ") {
continue
}

w.Write([]byte(fmt.Sprintf("%v\n", s[8:])))
select {
case s := <-response:
w.Write([]byte(fmt.Sprintf("%v\n", s.Status)))
case <-time.After(time.Second * 60):
abort <- true
}

close(abort)
}

func putHandler(w http.ResponseWriter, r *http.Request) {


Loading…
Cancel
Save