24 #include <core/exceptions/software.h>
25 #include <sys/utsname.h>
26 #include <utils/system/hostinfo.h>
44 utsname = (struct ::utsname *)malloc(
sizeof(struct ::utsname));
46 if (uname(utsname) != 0) {
72 if (shortname_ != NULL) {
75 if (domain_name != NULL) {
80 if ((dot = strchr(utsname->nodename,
'.')) == NULL) {
81 shortname_ = strdup(utsname->nodename);
82 domain_name = strdup(
"");
84 int short_length = dot - utsname->nodename + 1;
85 int domain_length = strlen(utsname->nodename) - short_length + 1;
86 shortname_ = (
char *)malloc(short_length);
87 shortname_[short_length - 1] = 0;
88 strncpy(shortname_, utsname->nodename, short_length - 1);
90 domain_name = (
char *)malloc(domain_length);
91 domain_name[domain_length - 1] = 0;
92 strncpy(domain_name, dot + 1, domain_length - 1);
102 return utsname->nodename;
129 return utsname->machine;
138 return utsname->sysname;
147 return utsname->release;
156 return utsname->version;