home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / uucp / Uucp.framework / unix.subproj / lcksys.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-09  |  1.1 KB  |  63 lines

  1. /* lcksys.c
  2.    Lock and unlock a remote system.  */
  3.  
  4. #include "uucp.h"
  5.  
  6. #include "uudefs.h"
  7. #include "uuconf.h"
  8. #include "sysdep.h"
  9. #include "system.h"
  10.  
  11. /* Do the actual lock or unlock.  */
  12.  
  13. static boolean fslock_sys P((boolean, const char *));
  14.  
  15. static boolean
  16. fslock_sys (flock, zname)
  17.      boolean flock;
  18.      const char *zname;
  19. {
  20.   size_t clen;
  21.   char *z;
  22.   boolean fret;
  23.  
  24.   clen = strlen (zname);
  25.  
  26. #if ! HAVE_LONG_FILE_NAMES
  27.   if (clen > 8)
  28.     clen = 8;
  29. #endif
  30.  
  31.   z = zbufalc (sizeof "LCK.." + clen);
  32.   memcpy (z, "LCK..", sizeof "LCK.." - 1);
  33.   memcpy (z + sizeof "LCK.." - 1, zname, clen);
  34.   z[sizeof "LCK.." - 1 + clen] = '\0';
  35.  
  36.   if (flock)
  37.     fret = fsdo_lock (z, FALSE, (boolean *) NULL);
  38.   else
  39.     fret = fsdo_unlock (z, FALSE);
  40.  
  41.   ubuffree (z);
  42.  
  43.   return fret;
  44. }
  45.  
  46. /* Lock a remote system.  */
  47.  
  48. boolean
  49. fsysdep_lock_system (qsys)
  50.      const struct uuconf_system *qsys;
  51. {
  52.   return fslock_sys (TRUE, qsys->uuconf_zname);
  53. }
  54.  
  55. /* Unlock a remote system.  */
  56.  
  57. boolean
  58. fsysdep_unlock_system (qsys)
  59.      const struct uuconf_system *qsys;
  60. {
  61.   return fslock_sys (FALSE, qsys->uuconf_zname);
  62. }
  63.