- win32.c: Try to give unique names to disk/network in case the truncated names start conflicting with eachother
This commit is contained in:
parent
6a6925312a
commit
1ea1c2c6b6
|
@ -313,13 +313,15 @@ add_counter_list(guint object_index,
|
||||||
_snwprintf(counter_path, sizeof(counter_path) / sizeof(wchar_t),
|
_snwprintf(counter_path, sizeof(counter_path) / sizeof(wchar_t),
|
||||||
L"\\%ls(%ls)\\%ls",
|
L"\\%ls(%ls)\\%ls",
|
||||||
obj_name, inst, c1_name);
|
obj_name, inst, c1_name);
|
||||||
add_counter(counter_path, &c1);
|
if (!add_counter(counter_path, &c1))
|
||||||
|
continue;
|
||||||
|
|
||||||
// "\Disks(DiskOne)\WriteBytes"
|
// "\Disks(DiskOne)\WriteBytes"
|
||||||
_snwprintf(counter_path, sizeof(counter_path) / sizeof(wchar_t),
|
_snwprintf(counter_path, sizeof(counter_path) / sizeof(wchar_t),
|
||||||
L"\\%ls(%ls)\\%ls",
|
L"\\%ls(%ls)\\%ls",
|
||||||
obj_name, inst, c2_name);
|
obj_name, inst, c2_name);
|
||||||
add_counter(counter_path, &c2);
|
if (!add_counter(counter_path, &c2))
|
||||||
|
continue;
|
||||||
|
|
||||||
if (c1 && c2)
|
if (c1 && c2)
|
||||||
cb(inst, &c1, &c2);
|
cb(inst, &c1, &c2);
|
||||||
|
@ -1154,9 +1156,24 @@ static void
|
||||||
gkrellm_sys_net_add_cb(wchar_t *name, PDH_HCOUNTER *recv, PDH_HCOUNTER *send)
|
gkrellm_sys_net_add_cb(wchar_t *name, PDH_HCOUNTER *recv, PDH_HCOUNTER *send)
|
||||||
{
|
{
|
||||||
GK_NET *net;
|
GK_NET *net;
|
||||||
|
guint i;
|
||||||
|
gchar unique = '0';
|
||||||
|
GK_NET *other_net;
|
||||||
|
|
||||||
net = gk_net_new();
|
net = gk_net_new();
|
||||||
net->name = clean_dev_name(name);
|
net->name = clean_dev_name(name);
|
||||||
|
for (i = 0; i < s_net_ptr_array->len; i++)
|
||||||
|
{
|
||||||
|
other_net = (GK_NET *)(g_ptr_array_index(s_net_ptr_array, i));
|
||||||
|
while (strncmp(net->name, other_net->name, MAX_DEV_NAME) == 0)
|
||||||
|
{
|
||||||
|
gkrellm_debug(DEBUG_SYSDEP,
|
||||||
|
"net names '%s' and '%s' conflict, renaming new one\n",
|
||||||
|
net->name, other_net->name);
|
||||||
|
net->name[strlen(net->name) - 1] = unique++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
net->recv_pdh_counter = *recv;
|
net->recv_pdh_counter = *recv;
|
||||||
net->send_pdh_counter = *send;
|
net->send_pdh_counter = *send;
|
||||||
|
|
||||||
|
@ -1196,7 +1213,7 @@ gkrellm_sys_net_cleanup(void)
|
||||||
gkrellm_debug(DEBUG_SYSDEP, "Freeing counters for %u network adapter(s)\n",
|
gkrellm_debug(DEBUG_SYSDEP, "Freeing counters for %u network adapter(s)\n",
|
||||||
s_net_ptr_array->len);
|
s_net_ptr_array->len);
|
||||||
for (i = 0; i < s_net_ptr_array->len; i++)
|
for (i = 0; i < s_net_ptr_array->len; i++)
|
||||||
gk_net_free(g_ptr_array_index(s_net_ptr_array, i));
|
gk_net_free((GK_NET *)g_ptr_array_index(s_net_ptr_array, i));
|
||||||
g_ptr_array_free(s_net_ptr_array, TRUE);
|
g_ptr_array_free(s_net_ptr_array, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1279,9 +1296,24 @@ static
|
||||||
void gkrellm_sys_disk_add_cb(wchar_t *name, PDH_HCOUNTER *read, PDH_HCOUNTER *write)
|
void gkrellm_sys_disk_add_cb(wchar_t *name, PDH_HCOUNTER *read, PDH_HCOUNTER *write)
|
||||||
{
|
{
|
||||||
GK_DISK *disk;
|
GK_DISK *disk;
|
||||||
|
GK_DISK *other_disk;
|
||||||
|
guint i;
|
||||||
|
gchar unique = '0';
|
||||||
|
|
||||||
disk = gk_disk_new();
|
disk = gk_disk_new();
|
||||||
disk->name = clean_dev_name(name);
|
disk->name = clean_dev_name(name);
|
||||||
|
for (i = 0; i < s_disk_ptr_array->len; i++)
|
||||||
|
{
|
||||||
|
other_disk = (GK_DISK *)(g_ptr_array_index(s_disk_ptr_array, i));
|
||||||
|
while (strncmp(disk->name, other_disk->name, MAX_DEV_NAME) == 0)
|
||||||
|
{
|
||||||
|
gkrellm_debug(DEBUG_SYSDEP,
|
||||||
|
"disk names '%s' and '%s' conflict, renaming new one\n",
|
||||||
|
disk->name, other_disk->name);
|
||||||
|
disk->name[strlen(disk->name) - 1] = unique++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
disk->read_pdh_counter = *read;
|
disk->read_pdh_counter = *read;
|
||||||
disk->write_pdh_counter = *write;
|
disk->write_pdh_counter = *write;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue