uucplock.c (6c78a7b0e81a20dc4987882fcb7f59975eb21a72) uucplock.c (3c42a9c08a7342ecb85a7517389940bd28079f27)
1/*
2 * Copyright (c) 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
1/*
2 * Copyright (c) 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * $Id: uucplock.c,v 1.9 1998/05/28 23:17:09 brian Exp $
33 * $Id: uucplock.c,v 1.10 1998/06/10 00:16:28 brian Exp $
34 *
35 */
36
37#ifndef lint
38static const char sccsid[] = "@(#)uucplock.c 8.1 (Berkeley) 6/6/93";
39#endif /* not lint */
40
41#include <sys/types.h>

--- 23 unchanged lines hidden (view full) ---

65/*
66 * uucp style locking routines
67 */
68
69int
70uu_lock(const char *ttyname)
71{
72 int fd, tmpfd, i;
34 *
35 */
36
37#ifndef lint
38static const char sccsid[] = "@(#)uucplock.c 8.1 (Berkeley) 6/6/93";
39#endif /* not lint */
40
41#include <sys/types.h>

--- 23 unchanged lines hidden (view full) ---

65/*
66 * uucp style locking routines
67 */
68
69int
70uu_lock(const char *ttyname)
71{
72 int fd, tmpfd, i;
73 pid_t pid;
73 pid_t pid, pid_old;
74 char lckname[sizeof(_PATH_UUCPLOCK) + MAXNAMLEN],
75 lcktmpname[sizeof(_PATH_UUCPLOCK) + MAXNAMLEN];
76 int err, uuerr;
77
78 pid = getpid();
79 (void)snprintf(lcktmpname, sizeof(lcktmpname), _PATH_UUCPLOCK LOCKTMP,
80 pid);
81 (void)snprintf(lckname, sizeof(lckname), _PATH_UUCPLOCK LOCKFMT,

--- 8 unchanged lines hidden (view full) ---

90 /*
91 * file is already locked
92 * check to see if the process holding the lock
93 * still exists
94 */
95 if ((fd = open(lckname, O_RDONLY)) < 0)
96 GORET(1, UU_LOCK_OPEN_ERR);
97
74 char lckname[sizeof(_PATH_UUCPLOCK) + MAXNAMLEN],
75 lcktmpname[sizeof(_PATH_UUCPLOCK) + MAXNAMLEN];
76 int err, uuerr;
77
78 pid = getpid();
79 (void)snprintf(lcktmpname, sizeof(lcktmpname), _PATH_UUCPLOCK LOCKTMP,
80 pid);
81 (void)snprintf(lckname, sizeof(lckname), _PATH_UUCPLOCK LOCKFMT,

--- 8 unchanged lines hidden (view full) ---

90 /*
91 * file is already locked
92 * check to see if the process holding the lock
93 * still exists
94 */
95 if ((fd = open(lckname, O_RDONLY)) < 0)
96 GORET(1, UU_LOCK_OPEN_ERR);
97
98 if ((pid = get_pid (fd, &err)) == -1)
98 if ((pid_old = get_pid (fd, &err)) == -1)
99 GORET(2, UU_LOCK_READ_ERR);
100
101 close(fd);
102
99 GORET(2, UU_LOCK_READ_ERR);
100
101 close(fd);
102
103 if (kill(pid, 0) == 0 || errno != ESRCH)
103 if (kill(pid_old, 0) == 0 || errno != ESRCH)
104 GORET(1, UU_LOCK_INUSE);
105 /*
106 * The process that locked the file isn't running, so
107 * we'll lock it ourselves
108 */
109 (void)unlink(lckname);
110 } else {
111 if (!put_pid (tmpfd, pid))

--- 118 unchanged lines hidden ---
104 GORET(1, UU_LOCK_INUSE);
105 /*
106 * The process that locked the file isn't running, so
107 * we'll lock it ourselves
108 */
109 (void)unlink(lckname);
110 } else {
111 if (!put_pid (tmpfd, pid))

--- 118 unchanged lines hidden ---