diff options
Diffstat (limited to 'contrib/opie/libmissing/uname.c')
-rw-r--r-- | contrib/opie/libmissing/uname.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/contrib/opie/libmissing/uname.c b/contrib/opie/libmissing/uname.c new file mode 100644 index 000000000000..5b51fa55122a --- /dev/null +++ b/contrib/opie/libmissing/uname.c @@ -0,0 +1,42 @@ +/* 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 */ +} |