Skip to content
Snippets Groups Projects
Commit d616a697 authored by rswindell's avatar rswindell
Browse files

Sped up getuserdat() significantly by eliminating call to lastuser()->flength().

parent 839e705f
No related branches found
No related tags found
No related merge requests found
...@@ -121,7 +121,7 @@ int DLLCALL getuserdat(scfg_t* cfg, user_t *user) ...@@ -121,7 +121,7 @@ int DLLCALL getuserdat(scfg_t* cfg, user_t *user)
char userdat[U_LEN+1],str[U_LEN+1],tmp[64]; char userdat[U_LEN+1],str[U_LEN+1],tmp[64];
int i,file; int i,file;
if(!user->number || user->number>lastuser(cfg)) { if(!user->number) {
memset(user,0,sizeof(user_t)); memset(user,0,sizeof(user_t));
return(-1); return(-1);
} }
...@@ -130,6 +130,10 @@ int DLLCALL getuserdat(scfg_t* cfg, user_t *user) ...@@ -130,6 +130,10 @@ int DLLCALL getuserdat(scfg_t* cfg, user_t *user)
memset(user,0,sizeof(user_t)); memset(user,0,sizeof(user_t));
return(errno); return(errno);
} }
if(user->number > (filelength(file)/U_LEN)) {
close(file);
return(-1); /* no such user record */
}
lseek(file,(long)((long)(user->number-1)*U_LEN),SEEK_SET); lseek(file,(long)((long)(user->number-1)*U_LEN),SEEK_SET);
i=0; i=0;
while(i<LOOP_NODEDAB while(i<LOOP_NODEDAB
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment