Browse Source

infile: Support absolute paths

Fixes #355
Julien Schmidt 10 years ago
parent
commit
62502f511e
1 changed files with 6 additions and 2 deletions
  1. 6 2
      infile.go

+ 6 - 2
infile.go

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