diff --git a/src/sbbs3/getnode.cpp b/src/sbbs3/getnode.cpp index d6c57845c46efd56c55aaa8bd61e2539e0207b66..5760a915ee1ac687a9f9b1738a2fb64366fbf334 100644 --- a/src/sbbs3/getnode.cpp +++ b/src/sbbs3/getnode.cpp @@ -70,7 +70,8 @@ int sbbs_t::getnodedat(uint number, node_t *node, bool lockit) for(count=0;count<LOOP_NODEDAB;count++) { if(count) mswait(100); - if(lock(nodefile,(long)number*sizeof(node_t),sizeof(node_t))!=0) + if(lock(nodefile,(long)number*sizeof(node_t),sizeof(node_t))!=0 + && lockit) continue; lseek(nodefile,(long)number*sizeof(node_t),SEEK_SET); rd=read(nodefile,node,sizeof(node_t)); diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index 6889c43cb44135c3fca4f062d33badf1ca5954e4..c7203c33f30f5d5e155541ccbf223fe55a99f541 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -689,7 +689,8 @@ int DLLCALL getnodedat(scfg_t* cfg, uint number, node_t *node, int* fdp) if(count) mswait(100); lseek(file,(long)number*sizeof(node_t),SEEK_SET); - if(lock(file,(long)number*sizeof(node_t),sizeof(node_t))!=0) + if(lock(file,(long)number*sizeof(node_t),sizeof(node_t))!=0 + && fdp!=NULL) continue; rd=read(file,node,sizeof(node_t)); if(fdp==NULL || rd!=sizeof(node_t))