diff --git a/src/smblib/smbadd.c b/src/smblib/smbadd.c index 7160f857fbfc3cc0508a2a427342cdef26ed5e46..1c92796aba7cd70d62516ae4c3cd5441815759c6 100644 --- a/src/smblib/smbadd.c +++ b/src/smblib/smbadd.c @@ -80,15 +80,7 @@ int SMBCALL smb_addmsg(smb_t* smb, smbmsg_t* msg, int storage, long dupechk_hash /* try */ do { - while((retval=smb_getstatus(smb)) == SMB_ERR_READ) { - if(!start) - start=time(NULL); - else - if(time(NULL)-start>=(time_t)smb->retry_time) - break; - SLEEP(smb->retry_delay); - } - if(retval != SMB_SUCCESS) + if((retval = smb_getstatus(smb)) != SMB_SUCCESS) break; msg->hdr.number=smb->status.last_msg+1; diff --git a/src/smblib/smbfile.c b/src/smblib/smbfile.c index ace702890bb7712cf19d1d059724fff6ae0bbc57..e28bc77cff2364efab6bfbbc00b0a099dce46d68 100644 --- a/src/smblib/smbfile.c +++ b/src/smblib/smbfile.c @@ -98,7 +98,7 @@ size_t SMBCALL smb_fread(smb_t* smb, void* buf, size_t bytes, FILE* fp) while(1) { if((ret=fread(buf,sizeof(char),bytes,fp))==bytes) return(ret); - if(get_errno()!=EDEADLOCK) + if(get_errno()!=EDEADLOCK && get_errno()!=EACCES) return(ret); if(!start) start=time(NULL); @@ -182,12 +182,7 @@ int SMBCALL smb_open_fp(smb_t* smb, FILE** fp, int share) close(file); return(SMB_ERR_OPEN); } -#if 0 /* This causes a noticeable performance hit when new-scanning subs */ - if(fp==&smb->sid_fp) - setvbuf(*fp,NULL,_IONBF,0); /* no buffering (cause of *.sid corruption?) */ - else -#endif - setvbuf(*fp,NULL,_IOFBF,2*1024); + setvbuf(*fp,NULL,_IOFBF, 2*1024); return(SMB_SUCCESS); }