File tree Expand file tree Collapse file tree 1 file changed +10
-15
lines changed
Expand file tree Collapse file tree 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) {
7575 delete (readerRegister , name )
7676}
7777
78+ func deferredClose (err * error , closer io.Closer ) {
79+ closeErr := closer .Close ()
80+ if * err == nil {
81+ * err = closeErr
82+ }
83+ }
84+
7885func (mc * mysqlConn ) handleInFileRequest (name string ) (err error ) {
7986 var rdr io.Reader
8087 var data []byte
@@ -86,14 +93,8 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) {
8693 if rdr != nil {
8794 data = make ([]byte , 4 + mc .maxWriteSize )
8895
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 )
9798 }
9899 } else {
99100 err = fmt .Errorf ("Reader '%s' is <nil>" , name )
@@ -108,13 +109,7 @@ func (mc *mysqlConn) handleInFileRequest(name string) (err error) {
108109 var fi os.FileInfo
109110
110111 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 )
118113
119114 // get file size
120115 if fi , err = file .Stat (); err == nil {
You can’t perform that action at this time.
0 commit comments