summaryrefslogtreecommitdiff
path: root/gnu/libexec/uucp/libunix/lcksys.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/libexec/uucp/libunix/lcksys.c')
-rw-r--r--gnu/libexec/uucp/libunix/lcksys.c39
1 files changed, 23 insertions, 16 deletions
diff --git a/gnu/libexec/uucp/libunix/lcksys.c b/gnu/libexec/uucp/libunix/lcksys.c
index 4ece16afe7b5..c1b0efaa3b9e 100644
--- a/gnu/libexec/uucp/libunix/lcksys.c
+++ b/gnu/libexec/uucp/libunix/lcksys.c
@@ -8,20 +8,32 @@
#include "sysdep.h"
#include "system.h"
+/* Get the name of a system lock file. */
+
+static char *zssys_lock_name P((const struct uuconf_system *qsys, char *z));
+
+#define LOCKNAMELEN (sizeof "LCK..12345678")
+
+static char *
+zssys_lock_name (qsys, z)
+ const struct uuconf_system *qsys;
+ char *z;
+{
+ strcpy (z, "LCK..");
+ strncpy (z + sizeof "LCK.." - 1, qsys->uuconf_zname, 8);
+ z[sizeof "LCK.." - 1 + 8] = '\0';
+ return z;
+}
+
/* Lock a remote system. */
boolean
fsysdep_lock_system (qsys)
const struct uuconf_system *qsys;
{
- char *z;
- boolean fret;
-
- z = zbufalc (strlen (qsys->uuconf_zname) + sizeof "LCK..");
- sprintf (z, "LCK..%.8s", qsys->uuconf_zname);
- fret = fsdo_lock (z, FALSE, (boolean *) NULL);
- ubuffree (z);
- return fret;
+ char ab[LOCKNAMELEN];
+
+ return fsdo_lock (zssys_lock_name (qsys, ab), FALSE, (boolean *) NULL);
}
/* Unlock a remote system. */
@@ -30,12 +42,7 @@ boolean
fsysdep_unlock_system (qsys)
const struct uuconf_system *qsys;
{
- char *z;
- boolean fret;
-
- z = zbufalc (strlen (qsys->uuconf_zname) + sizeof "LCK..");
- sprintf (z, "LCK..%.8s", qsys->uuconf_zname);
- fret = fsdo_unlock (z, FALSE);
- ubuffree (z);
- return fret;
+ char ab[LOCKNAMELEN];
+
+ return fsdo_unlock (zssys_lock_name (qsys, ab), FALSE);
}