24 #include <utils/system/hostinfo.h>
26 #include <core/exceptions/software.h>
28 #include <sys/utsname.h>
45 utsname = (struct ::utsname *)malloc(
sizeof(struct ::utsname));
47 if ( uname(utsname) != 0 ) {
75 if ( short__name != NULL ) {
78 if (domain_name != NULL) {
83 if ( (dot = strchr(utsname->nodename,
'.')) == NULL ) {
84 short__name = strdup(utsname->nodename);
85 domain_name = strdup(
"");
87 int short_length = dot - utsname->nodename + 1;
88 int domain_length = strlen(utsname->nodename) - short_length + 1;
89 short__name = (
char *)malloc(short_length);
90 short__name[short_length - 1] = 0;
91 strncpy(short__name, utsname->nodename, short_length - 1);
93 domain_name = (
char *)malloc(domain_length);
94 domain_name[domain_length - 1] = 0;
95 strncpy(domain_name, dot + 1, domain_length - 1);
106 return utsname->nodename;
136 return utsname->machine;
146 return utsname->sysname;
156 return utsname->release;
166 return utsname->version;