home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / UTILS / SQUSQ / RESTRICT.C < prev    next >
C/C++ Source or Header  |  2000-06-30  |  1KB  |  47 lines

  1. /* RESTRICT.C
  2.  
  3. This routine was written for programs intended for use on remote systems
  4. or any other system where access must be limited to a certain range of
  5. user areas. A program calls restrict(*argv) and restrict will only return
  6. if the user number contained in *argv (if any) is less than or equal to
  7. MAXUSR. Of course this routine has no practical application in any file
  8. NOT compiled by BDS C v1.50 or higher. It was specifically written for
  9. BDS C v1.50, since it is the latest BDS C and the only one to allow user
  10. area specification without special code.
  11.  
  12.         Written by S. Kluger
  13.         El Paso RCPM/CBBS
  14.         (915) 598-1668
  15. */
  16.  
  17. #define MAXUSR 4    /* highest directly accessible user area */
  18.  
  19. restrict(fn)
  20. char *fn;
  21. {
  22.     int fsl,usrar;
  23.         usrar = 0;
  24.         if ((fsl = matchr(fn,'/')) == 1)
  25.         {
  26.             usrar = (fn[fsl-1] - '0');
  27.         }else
  28.         if ((fsl = matchr(fn,'/')) == 2)
  29.         {
  30.             usrar=(fn[fsl-1]-'0') + ((fn[fsl-2]-'0') * 10);
  31.         }
  32.         if (usrar > MAXUSR){
  33.             printf("\nIllegal user area specified.\n");
  34.             exit();
  35.         }
  36. }
  37.  
  38. char matchr(st,ch)
  39. char *st,ch;
  40. {
  41.     int i;
  42.     for(i=0; st[i]; i++){
  43.         if(st[i] == ch) return(i);
  44.     }
  45.     return(0);
  46. }
  47.