File tree 1 file changed +10
-15
lines changed
1 file changed +10
-15
lines changed Original file line number Diff line number Diff line change @@ -75,6 +75,13 @@ func DeregisterReaderHandler(name string) {
75
75
delete (readerRegister , name )
76
76
}
77
77
78
+ func deferredClose (err * error , closer io.Closer ) {
79
+ closeErr := closer .Close ()
80
+ if * err == nil {
81
+ * err = closeErr
82
+ }
83
+ }
84
+
78
85
func (mc * mysqlConn ) handleInFileRequest (name string ) (err error ) {
79
86
var rdr io.Reader
80
87
var data []byte
@@ -86,14 +93,8 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) {
86
93
if rdr != nil {
87
94
data = make ([]byte , 4 + mc .maxWriteSize )
88
95
89
- if rdc , ok := rdr .(io.ReadCloser ); ok {
90
- defer func () {
91
- if err == nil {
92
- err = rdc .Close ()
93
- } else {
94
- rdc .Close ()
95
- }
96
- }()
96
+ if cl , ok := rdr .(io.Closer ); ok {
97
+ defer deferredClose (& err , cl )
97
98
}
98
99
} else {
99
100
err = fmt .Errorf ("Reader '%s' is <nil>" , name )
@@ -108,13 +109,7 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) {
108
109
var fi os.FileInfo
109
110
110
111
if file , err = os .Open (name ); err == nil {
111
- defer func () {
112
- if err == nil {
113
- err = file .Close ()
114
- } else {
115
- file .Close ()
116
- }
117
- }()
112
+ defer deferredClose (& err , file )
118
113
119
114
// get file size
120
115
if fi , err = file .Stat (); err == nil {
You can’t perform that action at this time.
0 commit comments