always return the ReadResponse error after an upload
This commit is contained in:
		
							parent
							
								
									08a1e2e380
								
							
						
					
					
						commit
						4a68979b89
					
				
							
								
								
									
										24
									
								
								ftp.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								ftp.go
									
									
									
									
									
								
							@ -647,16 +647,14 @@ func (c *ServerConn) StorFrom(path string, r io.Reader, offset uint64) error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err = io.Copy(conn, r)
 | 
			
		||||
	// if the upload fails we still need to try to read the server
 | 
			
		||||
	// response otherwise if the failure is not due to a connection problem,
 | 
			
		||||
	// for example the server denied the upload for quota limits, we miss
 | 
			
		||||
	// the response and we cannot use the connection to send other commands.
 | 
			
		||||
	// So we don't check io.Copy error and we return the error from
 | 
			
		||||
	// ReadResponse so the user can see the real error
 | 
			
		||||
	io.Copy(conn, r)
 | 
			
		||||
	conn.Close()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// if the upload failed we still need to try to read the server
 | 
			
		||||
		// response otherwise if the failure is not due to a connection problem,
 | 
			
		||||
		// for example the server denied the upload for quota limits, we miss
 | 
			
		||||
		// the response and we cannot use the connection to send other commands
 | 
			
		||||
		c.conn.ReadResponse(StatusClosingDataConnection)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, _, err = c.conn.ReadResponse(StatusClosingDataConnection)
 | 
			
		||||
	return err
 | 
			
		||||
@ -673,13 +671,9 @@ func (c *ServerConn) Append(path string, r io.Reader) error {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err = io.Copy(conn, r)
 | 
			
		||||
	// see the comment for StorFrom above
 | 
			
		||||
	io.Copy(conn, r)
 | 
			
		||||
	conn.Close()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// see the comment for StorFrom above
 | 
			
		||||
		c.conn.ReadResponse(StatusClosingDataConnection)
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, _, err = c.conn.ReadResponse(StatusClosingDataConnection)
 | 
			
		||||
	return err
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user