blob: 8590283f5268b99bf21e0168ad5dea5c6ec182cb [file] [log] [blame]
/*
* Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
*
* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
*/
#include <features.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/utsname.h>
#if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
int
#ifndef __UCLIBC_BSD_SPECIFIC__
attribute_hidden
#endif
getdomainname(char *name, size_t len)
{
struct utsname uts;
if (name == NULL) {
__set_errno(EINVAL);
return -1;
}
if (uname(&uts) == -1) return -1;
#ifdef __USE_GNU
if (strlen(uts.domainname)+1 > len) {
#else
if (strlen(uts.__domainname)+1 > len) {
#endif
__set_errno(EINVAL);
return -1;
}
#ifdef __USE_GNU
strcpy(name, uts.domainname);
#else
strcpy(name, uts.__domainname);
#endif
return 0;
}
# ifdef __UCLIBC_BSD_SPECIFIC__
libc_hidden_def(getdomainname)
# endif
#endif