]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/common/getdomainname.c
Inital import
[l4.git] / l4 / pkg / uclibc / lib / contrib / uclibc / libc / sysdeps / linux / common / getdomainname.c
1 /*
2  * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
3  *
4  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
5  */
6
7 #include <features.h>
8 #include <stdlib.h>
9 #include <string.h>
10 #include <unistd.h>
11 #include <errno.h>
12 #include <sys/utsname.h>
13
14 #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
15
16 int
17 #ifndef __UCLIBC_BSD_SPECIFIC__
18 attribute_hidden
19 #endif
20 getdomainname(char *name, size_t len)
21 {
22   struct utsname uts;
23
24   if (name == NULL) {
25     __set_errno(EINVAL);
26     return -1;
27   }
28
29   if (uname(&uts) == -1) return -1;
30
31 #ifdef __USE_GNU
32   if (strlen(uts.domainname)+1 > len) {
33 #else
34   if (strlen(uts.__domainname)+1 > len) {
35 #endif
36     __set_errno(EINVAL);
37     return -1;
38   }
39 #ifdef __USE_GNU
40   strcpy(name, uts.domainname);
41 #else
42   strcpy(name, uts.__domainname);
43 #endif
44   return 0;
45 }
46 # ifdef __UCLIBC_BSD_SPECIFIC__
47 libc_hidden_def(getdomainname)
48 # endif
49 #endif