Jelajahi Sumber

infile: Allow '/' in Reader name

Julien Schmidt 10 tahun lalu
induk
melakukan
ec78b64baf
1 mengubah file dengan 3 tambahan dan 5 penghapusan
  1. 3 5
      infile.go

+ 3 - 5
infile.go

@@ -12,7 +12,6 @@ import (
 	"fmt"
 	"io"
 	"os"
-	"path"
 	"strings"
 )
 
@@ -87,11 +86,10 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) {
 	var rdr io.Reader
 	var data []byte
 
-	// The server might return an an absolute path. See issue #355.
-	base := path.Base(name)
+	if idx := strings.Index(name, "Reader::"); idx == 0 || (idx > 0 && name[idx-1] == '/') { // io.Reader
+		// The server might return an an absolute path. See issue #355.
+		name = name[idx+8:]
 
-	if strings.HasPrefix(base, "Reader::") { // io.Reader
-		name = base[8:]
 		if handler, inMap := readerRegister[name]; inMap {
 			rdr = handler()
 			if rdr != nil {