@@ -6435,15 +6435,15 @@ static WS_SFTPNAME* wolfSSH_SFTP_DoName(WOLFSSH* ssh)
64356435 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
64366436 wolfSSH_SFTP_buffer_size (& state -> buffer ));
64376437 if (ret < 0 ) {
6438- if (ssh -> error != WS_WANT_READ ) {
6438+ if (! NoticeError ( ssh ) ) {
64396439 wolfSSH_SFTP_ClearState (ssh , STATE_ID_NAME );
64406440 }
64416441 return NULL ;
64426442 }
64436443
64446444 wolfSSH_SFTP_buffer_rewind (& state -> buffer );
64456445 wolfSSH_SFTP_DoStatus (ssh , reqId , & state -> buffer );
6446- if (ssh -> error != WS_WANT_READ ) {
6446+ if (! NoticeError ( ssh ) ) {
64476447 wolfSSH_SFTP_ClearState (ssh , STATE_ID_NAME );
64486448 }
64496449 return NULL ;
@@ -6458,7 +6458,7 @@ static WS_SFTPNAME* wolfSSH_SFTP_DoName(WOLFSSH* ssh)
64586458 wolfSSH_SFTP_buffer_size (& state -> buffer ) -
64596459 wolfSSH_SFTP_buffer_idx (& state -> buffer ));
64606460 if (ret <= 0 ) {
6461- if (ssh -> error != WS_WANT_READ ) {
6461+ if (! NoticeError ( ssh ) ) {
64626462 wolfSSH_SFTP_ClearState (ssh , STATE_ID_NAME );
64636463 }
64646464 return NULL ;
@@ -6909,8 +6909,7 @@ int wolfSSH_SFTP_CHMOD(WOLFSSH* ssh, char* n, char* oct)
69096909 case STATE_CHMOD_GET :
69106910 /* get current attributes of path */
69116911 if ((ret = wolfSSH_SFTP_STAT (ssh , n , & state -> atr )) != WS_SUCCESS ) {
6912- if (ssh -> error != WS_WANT_READ
6913- && ssh -> error != WS_WANT_WRITE ) {
6912+ if (!NoticeError (ssh )) {
69146913 break ;
69156914 }
69166915 return ret ;
@@ -6990,14 +6989,12 @@ static int SFTP_STAT(WOLFSSH* ssh, char* dir, WS_SFTP_FILEATRB* atr, byte type)
69906989 WLOG (WS_LOG_SFTP , "SFTP LSTAT STATE: SEND_TYPE_REQ" );
69916990 ret = SendPacketType (ssh , type , (byte * )dir , state -> dirSz );
69926991 if (ret != WS_SUCCESS ) {
6993- if (ssh -> error == WS_WANT_READ ||
6994- ssh -> error == WS_WANT_WRITE )
6992+ if (NoticeError (ssh )) {
69956993 return WS_FATAL_ERROR ;
6996- else {
6997- ret_fatal = 1 ;
6998- state -> state = STATE_LSTAT_CLEANUP ;
6999- continue ;
70006994 }
6995+ ret_fatal = 1 ;
6996+ state -> state = STATE_LSTAT_CLEANUP ;
6997+ continue ;
70016998 }
70026999 state -> state = STATE_LSTAT_GET_HEADER ;
70037000 FALL_THROUGH ;
@@ -7008,14 +7005,12 @@ static int SFTP_STAT(WOLFSSH* ssh, char* dir, WS_SFTP_FILEATRB* atr, byte type)
70087005 ret = SFTP_GetHeader (ssh , & state -> reqId , & state -> type ,
70097006 & state -> buffer );
70107007 if (ret <= 0 ) {
7011- if (ssh -> error == WS_WANT_READ ||
7012- ssh -> error == WS_WANT_WRITE )
7008+ if (NoticeError (ssh )) {
70137009 return WS_FATAL_ERROR ;
7014- else {
7015- state -> state = STATE_LSTAT_CLEANUP ;
7016- ret_fatal = 1 ;
7017- continue ;
70187010 }
7011+ state -> state = STATE_LSTAT_CLEANUP ;
7012+ ret_fatal = 1 ;
7013+ continue ;
70197014 }
70207015
70217016 state -> state = STATE_LSTAT_CHECK_REQ_ID ;
@@ -7042,7 +7037,7 @@ static int SFTP_STAT(WOLFSSH* ssh, char* dir, WS_SFTP_FILEATRB* atr, byte type)
70427037 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
70437038 wolfSSH_SFTP_buffer_size (& state -> buffer ));
70447039 if (ret < 0 ) {
7045- if (ssh -> error != WS_WANT_READ ) {
7040+ if (! NoticeError ( ssh ) ) {
70467041 wolfSSH_SFTP_ClearState (ssh , STATE_ID_LSTAT );
70477042 }
70487043 return WS_FATAL_ERROR ;
@@ -7211,8 +7206,7 @@ int wolfSSH_SFTP_SetSTAT(WOLFSSH* ssh, char* dir, WS_SFTP_FILEATRB* atr)
72117206 /* send header and type specific data */
72127207 case STATE_SET_ATR_SEND :
72137208 if (wolfSSH_SFTP_buffer_send (ssh , & state -> buffer ) < 0 ) {
7214- if (ssh -> error != WS_WANT_READ
7215- && ssh -> error != WS_WANT_WRITE ) {
7209+ if (!NoticeError (ssh )) {
72167210 ret = WS_FATAL_ERROR ;
72177211 break ;
72187212 }
@@ -7229,8 +7223,7 @@ int wolfSSH_SFTP_SetSTAT(WOLFSSH* ssh, char* dir, WS_SFTP_FILEATRB* atr)
72297223 case STATE_SET_ATR_GET :
72307224 maxSz = SFTP_GetHeader (ssh , & state -> reqId , & type , & state -> buffer );
72317225 if (maxSz <= 0 ) {
7232- if (ssh -> error != WS_WANT_READ
7233- && ssh -> error != WS_WANT_WRITE ) {
7226+ if (!NoticeError (ssh )) {
72347227 ret = WS_FATAL_ERROR ;
72357228 break ;
72367229 }
@@ -7257,8 +7250,7 @@ int wolfSSH_SFTP_SetSTAT(WOLFSSH* ssh, char* dir, WS_SFTP_FILEATRB* atr)
72577250 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
72587251 wolfSSH_SFTP_buffer_size (& state -> buffer ));
72597252 if (ret < 0 ) {
7260- if (ssh -> error != WS_WANT_READ
7261- && ssh -> error != WS_WANT_WRITE ) {
7253+ if (!NoticeError (ssh )) {
72627254 ret = WS_FATAL_ERROR ;
72637255 break ;
72647256 }
@@ -7730,12 +7722,8 @@ int wolfSSH_SFTP_SendReadPacket(WOLFSSH* ssh, byte* handle, word32 handleSz,
77307722 if (NoticeError (ssh )) {
77317723 return WS_FATAL_ERROR ;
77327724 }
7733- if (ssh -> error != WS_WANT_READ &&
7734- ssh -> error != WS_WANT_WRITE ) {
7735- state -> state = STATE_SEND_READ_CLEANUP ;
7736- continue ;
7737- }
7738- return ret ;
7725+ state -> state = STATE_SEND_READ_CLEANUP ;
7726+ continue ;
77397727 }
77407728 wolfSSH_SFTP_buffer_free (ssh , & state -> buffer );
77417729 state -> state = STATE_SEND_READ_GET_HEADER ;
@@ -7746,11 +7734,11 @@ int wolfSSH_SFTP_SendReadPacket(WOLFSSH* ssh, byte* handle, word32 handleSz,
77467734 /* Get response */
77477735 if ((ret = SFTP_GetHeader (ssh , & state -> reqId , & state -> type ,
77487736 & state -> buffer )) <= 0 ) {
7749- if (!NoticeError (ssh )) {
7750- state -> state = STATE_SEND_READ_CLEANUP ;
7751- continue ;
7737+ if (NoticeError (ssh )) {
7738+ return WS_FATAL_ERROR ;
77527739 }
7753- return WS_FATAL_ERROR ;
7740+ state -> state = STATE_SEND_READ_CLEANUP ;
7741+ continue ;
77547742 }
77557743 ret = wolfSSH_SFTP_buffer_create (ssh , & state -> buffer , ret );
77567744 if (ret != WS_SUCCESS ) {
@@ -7789,11 +7777,11 @@ int wolfSSH_SFTP_SendReadPacket(WOLFSSH* ssh, byte* handle, word32 handleSz,
77897777 /* get size of string and place it into out buffer */
77907778 ret = wolfSSH_stream_read (ssh , szFlat , UINT32_SZ );
77917779 if (ret < 0 ) {
7792- if (!NoticeError (ssh )) {
7793- state -> state = STATE_SEND_READ_CLEANUP ;
7794- continue ;
7780+ if (NoticeError (ssh )) {
7781+ return WS_FATAL_ERROR ;
77957782 }
7796- return ret ;
7783+ state -> state = STATE_SEND_READ_CLEANUP ;
7784+ continue ;
77977785 }
77987786 ato32 (szFlat , & sz );
77997787 wolfSSH_SFTP_buffer_create (ssh , & state -> buffer , sz );
@@ -7814,8 +7802,7 @@ int wolfSSH_SFTP_SendReadPacket(WOLFSSH* ssh, byte* handle, word32 handleSz,
78147802 out + state -> recvSz ,
78157803 wolfSSH_SFTP_buffer_size (& state -> buffer ));
78167804 if (ret < 0 ) {
7817- if (ssh -> error == WS_WANT_READ ||
7818- ssh -> error == WS_WANT_WRITE ) {
7805+ if (NoticeError (ssh )) {
78197806 return WS_FATAL_ERROR ;
78207807 }
78217808 WLOG (WS_LOG_SFTP , "Error reading remainder of data" );
@@ -7852,12 +7839,11 @@ int wolfSSH_SFTP_SendReadPacket(WOLFSSH* ssh, byte* handle, word32 handleSz,
78527839 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
78537840 wolfSSH_SFTP_buffer_size (& state -> buffer ));
78547841 if (ret < 0 ) {
7855- if (ssh -> error != WS_WANT_READ &&
7856- ssh -> error != WS_WANT_WRITE ) {
7857- state -> state = STATE_SEND_READ_CLEANUP ;
7858- continue ;
7842+ if (NoticeError (ssh )) {
7843+ return WS_FATAL_ERROR ;
78597844 }
7860- return WS_FATAL_ERROR ;
7845+ state -> state = STATE_SEND_READ_CLEANUP ;
7846+ continue ;
78617847 }
78627848 wolfSSH_SFTP_buffer_rewind (& state -> buffer );
78637849 ret = wolfSSH_SFTP_DoStatus (ssh ,
@@ -8176,8 +8162,7 @@ int wolfSSH_SFTP_Close(WOLFSSH* ssh, byte* handle, word32 handleSz)
81768162 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
81778163 wolfSSH_SFTP_buffer_size (& state -> buffer ));
81788164 if (ret < 0 ) {
8179- if (ssh -> error != WS_WANT_WRITE &&
8180- ssh -> error != WS_WANT_READ ) {
8165+ if (!NoticeError (ssh )) {
81818166 wolfSSH_SFTP_buffer_free (ssh , & state -> buffer );
81828167 }
81838168 return WS_FATAL_ERROR ;
@@ -8523,8 +8508,7 @@ int wolfSSH_SFTP_Remove(WOLFSSH* ssh, char* f)
85238508 case STATE_RM_LSTAT :
85248509 /* check file is there to be removed */
85258510 if ((ret = wolfSSH_SFTP_LSTAT (ssh , f , & atrb )) != WS_SUCCESS ) {
8526- if (ssh -> error != WS_WANT_WRITE
8527- && ssh -> error != WS_WANT_READ ) {
8511+ if (!NoticeError (ssh )) {
85288512 WLOG (WS_LOG_SFTP , "Error verifying file" );
85298513 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RM );
85308514 }
@@ -8537,8 +8521,7 @@ int wolfSSH_SFTP_Remove(WOLFSSH* ssh, char* f)
85378521 ret = SendPacketType (ssh , WOLFSSH_FTP_REMOVE , (byte * )f ,
85388522 (word32 )WSTRLEN (f ));
85398523 if (ret != WS_SUCCESS ) {
8540- if (ssh -> error != WS_WANT_WRITE
8541- && ssh -> error != WS_WANT_READ ) {
8524+ if (!NoticeError (ssh )) {
85428525 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RM );
85438526 }
85448527 return ret ;
@@ -8549,8 +8532,7 @@ int wolfSSH_SFTP_Remove(WOLFSSH* ssh, char* f)
85498532 case STATE_RM_GET :
85508533 ret = SFTP_GetHeader (ssh , & state -> reqId , & type , & state -> buffer );
85518534 if (ret <= 0 || type != WOLFSSH_FTP_STATUS ) {
8552- if (ssh -> error != WS_WANT_WRITE
8553- && ssh -> error != WS_WANT_READ ) {
8535+ if (!NoticeError (ssh )) {
85548536 WLOG (WS_LOG_SFTP , "Unexpected packet type" );
85558537 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RM );
85568538 }
@@ -8568,8 +8550,7 @@ int wolfSSH_SFTP_Remove(WOLFSSH* ssh, char* f)
85688550 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
85698551 wolfSSH_SFTP_buffer_size (& state -> buffer ));
85708552 if (ret < 0 ) {
8571- if (ssh -> error != WS_WANT_WRITE
8572- && ssh -> error != WS_WANT_READ ) {
8553+ if (!NoticeError (ssh )) {
85738554 WLOG (WS_LOG_SFTP , "Unexpected packet type" );
85748555 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RM );
85758556 }
@@ -8630,8 +8611,7 @@ int wolfSSH_SFTP_RMDIR(WOLFSSH* ssh, char* dir)
86308611 ret = SendPacketType (ssh , WOLFSSH_FTP_RMDIR , (byte * )dir ,
86318612 (word32 )WSTRLEN (dir ));
86328613 if (ret != WS_SUCCESS ) {
8633- if (ssh -> error != WS_WANT_READ
8634- && ssh -> error != WS_WANT_WRITE ) {
8614+ if (!NoticeError (ssh )) {
86358615 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RMDIR );
86368616 }
86378617 return ret ;
@@ -8642,7 +8622,7 @@ int wolfSSH_SFTP_RMDIR(WOLFSSH* ssh, char* dir)
86428622 case STATE_RMDIR_GET :
86438623 ret = SFTP_GetHeader (ssh , & state -> reqId , & type , & state -> buffer );
86448624 if (ret <= 0 || type != WOLFSSH_FTP_STATUS ) {
8645- if (ssh -> error != WS_WANT_READ ) {
8625+ if (! NoticeError ( ssh ) ) {
86468626 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RMDIR );
86478627 WLOG (WS_LOG_SFTP , "Unexpected packet type" );
86488628 }
@@ -8659,7 +8639,7 @@ int wolfSSH_SFTP_RMDIR(WOLFSSH* ssh, char* dir)
86598639 ret = wolfSSH_SFTP_buffer_read (ssh , & state -> buffer ,
86608640 wolfSSH_SFTP_buffer_size (& state -> buffer ));
86618641 if (ret < 0 ) {
8662- if (ssh -> error != WS_WANT_READ )
8642+ if (! NoticeError ( ssh ) )
86638643 wolfSSH_SFTP_ClearState (ssh , STATE_ID_RMDIR );
86648644 return WS_FATAL_ERROR ;
86658645 }
@@ -8867,9 +8847,9 @@ int wolfSSH_SFTP_Get(WOLFSSH* ssh, char* from,
88678847 WLOG (WS_LOG_SFTP , "SFTP GET STATE: STAT" );
88688848 ret = wolfSSH_SFTP_STAT (ssh , from , & state -> attrib );
88698849 if (ret != WS_SUCCESS ) {
8870- if (ssh -> error == WS_WANT_READ ||
8871- ssh -> error == WS_WANT_WRITE )
8850+ if (NoticeError (ssh )) {
88728851 return WS_FATAL_ERROR ;
8852+ }
88738853 WLOG (WS_LOG_SFTP , "Error verifying file" );
88748854 state -> state = STATE_GET_CLEANUP ;
88758855 continue ;
@@ -8894,8 +8874,7 @@ int wolfSSH_SFTP_Get(WOLFSSH* ssh, char* from,
88948874 ret = wolfSSH_SFTP_Open (ssh , from , WOLFSSH_FXF_READ , NULL ,
88958875 state -> handle , & state -> handleSz );
88968876 if (ret != WS_SUCCESS ) {
8897- if (ssh -> error == WS_WANT_READ ||
8898- ssh -> error == WS_WANT_WRITE ) {
8877+ if (NoticeError (ssh )) {
88998878 return WS_FATAL_ERROR ;
89008879 }
89018880 WLOG (WS_LOG_SFTP , "Error getting handle" );
0 commit comments