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/*
23 * Copyright 1995 Sun Microsystems, Inc.  All rights reserved.
24 * Use is subject to license terms.
25 */
26
27/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
28/*	  All Rights Reserved  	*/
29
30
31#pragma ident	"%Z%%M%	%I%	%E% SMI"
32
33#include "uucp.h"
34
35/*
36 * get the uucp name
37 * return:
38 *	none
39 */
40void
41uucpname(name)
42register char *name;
43{
44	char *s;
45	char NameBuf[MAXBASENAME + 1];
46	FILE *NameFile;
47
48	NameBuf[0] = '\0';
49	if ((NameFile = fopen(SYSNAMEFILE, "r")) != NULL) {
50		if (fscanf(NameFile, "%14s", NameBuf) != 1) {
51			(void) fprintf(stderr,
52				gettext("No system name specified in %s\n"),
53				SYSNAMEFILE);
54			cleanup(-1);
55		}
56		s = NameBuf;
57		(void) fclose(NameFile);
58	} else {
59#ifdef BSD4_2
60	char	NameBuf[MAXBASENAME + 1];
61
62	gethostname(NameBuf, MAXBASENAME);
63	/* strip off any domain name part */
64	if ((s = index(NameBuf, '.')) != NULL)
65		*s = '\0';
66	s = NameBuf;
67	s[MAXBASENAME] = '\0';
68#else /* !BSD4_2 */
69#ifdef UNAME
70	struct utsname utsn;
71
72	uname(&utsn);
73	s = utsn.nodename;
74#else /* !UNAME */
75	char	NameBuf[MAXBASENAME + 1], *strchr();
76	FILE	*NameFile;
77
78	s = MYNAME;
79	NameBuf[0] = '\0';
80
81	if ((NameFile = fopen("/etc/whoami", "r")) != NULL) {
82		/* etc/whoami wins */
83		(void) fgets(NameBuf, MAXBASENAME + 1, NameFile);
84		(void) fclose(NameFile);
85		NameBuf[MAXBASENAME] = '\0';
86		if (NameBuf[0] != '\0') {
87			if ((s = strchr(NameBuf, '\n')) != NULL)
88				*s = '\0';
89			s = NameBuf;
90		}
91	}
92#endif /* UNAME */
93#endif /* BSD4_2 */
94	}
95
96	(void) strncpy(name, s, MAXBASENAME);
97	name[MAXBASENAME] = '\0';
98	/* strip off any domain name from the host name */
99	if ((s = strchr(name, '.')) != NULL)
100		*s = '\0';
101	return;
102}
103