1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License").  You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23/*	  All Rights Reserved  	*/
24
25
26/*
27 * Copyright 2002 Sun Microsystems, Inc.  All rights reserved.
28 * Use is subject to license terms.
29 */
30
31#pragma ident	"%Z%%M%	%I%	%E% SMI"
32
33#include "mail.h"
34
35void
36lock(char *user)
37{
38	char	tbuf[80];
39
40	switch (maillock(user, 10)) {
41	case L_SUCCESS:
42	    return;
43	case L_NAMELEN:
44	    (void) snprintf(tbuf, sizeof (tbuf),
45		"%s: Cannot create lock file. Username '%s' is > 13 chars\n",
46		program, user);
47	    break;
48	case L_TMPLOCK:
49	    strcpy(tbuf, "Cannot create temp lock file\n");
50	    break;
51	case L_TMPWRITE:
52	    strcpy(tbuf, "Error writing pid to lock file\n");
53	    break;
54	case L_MAXTRYS:
55	    strcpy(tbuf, "Creation of lockfile failed after 10 tries");
56	    break;
57	case L_ERROR:
58	    strcpy(tbuf, "Cannot link temp lockfile to lockfile\n");
59	    break;
60	case L_MANLOCK:
61	    strcpy(tbuf, "Cannot set mandatory file lock on temp lockfile\n");
62	    break;
63	}
64	errmsg(E_LOCK, tbuf);
65	if (sending) {
66		goback(0);
67	}
68	done(0);
69}
70
71void unlock() {
72	mailunlock();
73}
74