getdnnm.c 515 B

123456789101112131415161718192021222324252627282930
  1. #define uname __uname
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <errno.h>
  6. #define __USE_GNU
  7. #include <sys/utsname.h>
  8. int attribute_hidden
  9. __getdomainname(char *name, size_t len)
  10. {
  11. struct utsname uts;
  12. if (name == NULL) {
  13. __set_errno(EINVAL);
  14. return -1;
  15. }
  16. if (uname(&uts) == -1) return -1;
  17. if (__strlen(uts.domainname)+1 > len) {
  18. __set_errno(EINVAL);
  19. return -1;
  20. }
  21. __strcpy(name, uts.domainname);
  22. return 0;
  23. }
  24. strong_alias(__getdomainname,getdomainname)