diff --git a/src/recipient/recipient.go b/src/recipient/recipient.go index 0d20199..589b8ee 100644 --- a/src/recipient/recipient.go +++ b/src/recipient/recipient.go @@ -9,6 +9,8 @@ import ( "strings" "time" + "github.com/schollz/croc/src/zipper" + log "github.com/cihub/seelog" "github.com/gorilla/websocket" "github.com/schollz/croc/src/compress" @@ -160,7 +162,13 @@ func receive(c *websocket.Conn, codephrase string) (err error) { log.Debugf("got hash: %x", message) if bytes.Equal(hash256, message) { c.WriteMessage(websocket.BinaryMessage, []byte("ok")) - return nil + // open directory + if fstats.IsDir { + err = zipper.UnzipFile(fstats.SentName, fstats.Name) + } else { + err = nil + } + return err } else { c.WriteMessage(websocket.BinaryMessage, []byte("not")) return errors.New("file corrupted") diff --git a/src/zipper/zip.go b/src/zipper/zip.go index aff6e29..bd2147d 100644 --- a/src/zipper/zip.go +++ b/src/zipper/zip.go @@ -99,7 +99,7 @@ func ZipFile(fname string, compress bool) (writtenFilename string, err error) { log.Error(err) return } - writtenFilename = newfile.Name() + _, writtenFilename = filepath.Split(newfile.Name()) defer newfile.Close() defer os.Chdir(curdir)