このコミットが含まれているのは:
守矢諏訪子 2023-08-27 14:44:13 +09:00
コミット 89b7ad439c
1個のファイルの変更32行の追加19行の削除

ファイルの表示

@ -161,34 +161,47 @@ static char *get_kernel() {
}
static char *get_host() {
char *host = malloc(BUF_SIZE), buffer[BUF_SIZE/2];
FILE *product_name, *product_version, *model;
char buffer[BUF_SIZE / 2];
char *host = NULL;
if ((product_name = fopen("/sys/devices/virtual/dmi/id/product_name", "r")) != NULL) {
if ((product_version = fopen("/sys/devices/virtual/dmi/id/product_version", "r")) != NULL) {
fread(host, 1, BUF_SIZE/2, product_name);
product_name = fopen("/sys/devices/virtual/dmi/id/product_name", "r");
if (product_name != NULL) {
host = malloc(BUF_SIZE);
size_t read_len = fread(host, 1, BUF_SIZE / 2, product_name);
if (read_len > 0) {
remove_newline(host);
strcat(host, " ");
fread(buffer, 1, BUF_SIZE/2, product_version);
remove_newline(buffer);
if (strcmp(buffer, "To Be Filled By O.E.M.") != 0) {
strcat(host, " ");
strcat(host, buffer);
product_version = fopen("/sys/devices/virtual/dmi/id/product_version", "r");
if (product_version != NULL) {
read_len = fread(buffer, 1, BUF_SIZE / 2, product_version);
if (read_len > 0) {
remove_newline(buffer);
if (strcmp(buffer, "To Be Filled By O.E.M.") != 0) {
size_t host_len = strlen(host);
size_t remain_size = (BUF_SIZE - host_len) - 1;
if (remain_size > 0) {
snprintf(host + host_len, remain_size, " %s", buffer);
}
}
}
fclose(product_version);
}
fclose(product_version);
} else {
fclose(product_name);
goto model_fallback;
return host;
}
fclose(product_name);
return host;
}
model_fallback:
if ((model = fopen("/sys/firmware/devicetree/base/model", "r")) != NULL) {
fread(host, 1, BUF_SIZE, model);
remove_newline(host);
return host;
model = fopen("/sys/firmware/devicetree/base/model", "r");
if (model != NULL) {
host = malloc(BUF_SIZE);
size_t read_len = fread(host, 1, BUF_SIZE, model);
if (read_len > 0) {
remove_newline(host);
return host;
}
fclose(model);
}
status = -1;