freebsd-dev/contrib/opie/libmissing/uname.c
Paul Traina 3c491303b5 Initial import of OPIE v2.3 from
ftp://ftp.nrl.navy.mil/pub/security/opie/
1997-02-06 17:52:29 +00:00

43 lines
1.0 KiB
C

/* uname.c: A replacement for the uname function (sort of)
%%% copyright-cmetz
This software is Copyright 1996 by Craig Metz, All Rights Reserved.
The Inner Net License Version 2 applies to this software.
You should have received a copy of the license with this software. If
you didn't get a copy, you may request one from <license@inner.net>.
History:
Modified by cmetz for OPIE 2.3. Ifdef around gethostname().
Created by cmetz for OPIE 2.2.
*/
#include "opie_cfg.h"
#if HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif /* HAVE_SYS_PARAM_H */
#include "opie.h"
int uname FUNCTION(struct utsname *buf)
{
#if HAVE_GETHOSTNAME
char hostname[MAXHOSTNAMELEN], *c;
memset(buf, 0, sizeof(buf));
if (gethostname(hostname, sizeof(hostname)-1) < 0)
return -1;
hostname[sizeof(hostname) - 1] = 0;
if (c = strchr(hostname, '.')) {
*c = 0;
}
strncpy(buf->nodename, hostname, sizeof(buf->nodename) - 1);
return 0;
#else /* HAVE_GETHOSTNAME */
strncpy(buf->nodename, "unknown", sizeof(buf->nodename) - 1);
return 0;
#endif /* HAVE_GETHOSTNAME */
}