pw-link: improve port and node names

don't leave the port and node names blank but fill in some defaults that
include the node/port id.
This commit is contained in:
Wim Taymans 2024-02-12 17:14:33 +01:00
parent 532bc878f4
commit efd22efff8

View file

@ -194,8 +194,9 @@ static char *node_name(char *buffer, int size, struct object *n)
const char *name; const char *name;
buffer[0] = '\0'; buffer[0] = '\0';
if ((name = pw_properties_get(n->props, PW_KEY_NODE_NAME)) == NULL) if ((name = pw_properties_get(n->props, PW_KEY_NODE_NAME)) == NULL)
return buffer; snprintf(buffer, size, "node.id.%d", n->id);
snprintf(buffer, size, "%s", name); else
snprintf(buffer, size, "%s", name);
return buffer; return buffer;
} }
@ -204,8 +205,9 @@ static char *node_path(char *buffer, int size, struct object *n)
const char *name; const char *name;
buffer[0] = '\0'; buffer[0] = '\0';
if ((name = pw_properties_get(n->props, PW_KEY_OBJECT_PATH)) == NULL) if ((name = pw_properties_get(n->props, PW_KEY_OBJECT_PATH)) == NULL)
return buffer; snprintf(buffer, size, "node.path.%d", n->id);
snprintf(buffer, size, "%s", name); else
snprintf(buffer, size, "%s", name);
return buffer; return buffer;
} }
@ -213,11 +215,16 @@ static char *port_name(char *buffer, int size, struct object *n, struct object *
{ {
const char *name1, *name2; const char *name1, *name2;
buffer[0] = '\0'; buffer[0] = '\0';
if ((name1 = pw_properties_get(n->props, PW_KEY_NODE_NAME)) == NULL) name1 = pw_properties_get(n->props, PW_KEY_NODE_NAME);
return buffer; name2 = pw_properties_get(p->props, PW_KEY_PORT_NAME);
if ((name2 = pw_properties_get(p->props, PW_KEY_PORT_NAME)) == NULL) if (name1 && name2)
return buffer; snprintf(buffer, size, "%s:%s", name1, name2);
snprintf(buffer, size, "%s:%s", name1, name2); else if (name1)
snprintf(buffer, size, "%s:port.id.%d", name1, p->id);
else if (name2)
snprintf(buffer, size, "node.id.%d:%s", n->id, name2);
else
snprintf(buffer, size, "node.id.%d:port.id.%d", n->id, p->id);
return buffer; return buffer;
} }
@ -226,8 +233,9 @@ static char *port_path(char *buffer, int size, struct object *n, struct object *
const char *name; const char *name;
buffer[0] = '\0'; buffer[0] = '\0';
if ((name = pw_properties_get(p->props, PW_KEY_OBJECT_PATH)) == NULL) if ((name = pw_properties_get(p->props, PW_KEY_OBJECT_PATH)) == NULL)
return buffer; snprintf(buffer, size, "port.path.%d", p->id);
snprintf(buffer, size, "%s", name); else
snprintf(buffer, size, "%s", name);
return buffer; return buffer;
} }
@ -236,8 +244,9 @@ static char *port_alias(char *buffer, int size, struct object *n, struct object
const char *name; const char *name;
buffer[0] = '\0'; buffer[0] = '\0';
if ((name = pw_properties_get(p->props, PW_KEY_PORT_ALIAS)) == NULL) if ((name = pw_properties_get(p->props, PW_KEY_PORT_ALIAS)) == NULL)
return buffer; snprintf(buffer, size, "port_alias.%d", p->id);
snprintf(buffer, size, "%s", name); else
snprintf(buffer, size, "%s", name);
return buffer; return buffer;
} }