- struct addrinfo *ai, *aip;
- char name[NI_MAXHOST] = "";
- char *p, *addr, *lnet = NULL, *res = NULL;
- int len, x;
-
- addr = nl_nid_addr(nid);
- if (sscanf(addr, "%d.%d.%d.%d", &x, &x, &x, &x) == 4) {
- if ((p = strchr(nid, '@')))
- lnet = p + 1;
- if (getaddrinfo(addr, NULL, NULL, &ai) == 0) {
- for (aip = ai; aip != NULL; aip = aip->ai_next) {
- if (getnameinfo(aip->ai_addr, aip->ai_addrlen,
- name, sizeof(name), NULL, 0,
- NI_NAMEREQD | NI_NOFQDN) == 0) {
- if ((p = strchr(name, '.')))
- *p = '\0';
- len = strlen(name) + strlen(lnet) + 2;
- if (!(res = malloc(len)))
- nl_oom();
- snprintf(res, len, "%s@%s", name, lnet);
- break;
- }
- }
- freeaddrinfo(ai);
- }
- }
- free(addr);
-
- return res;
+ struct addrinfo *ai, *aip;
+ char name[NI_MAXHOST] = "";
+ char *p, *addr, *lnet = NULL, *res = NULL;
+ int len, x;
+
+ addr = nl_nid_addr(nid);
+ if (sscanf(addr, "%d.%d.%d.%d", &x, &x, &x, &x) == 4) {
+ p = strchr(nid, '@');
+ if (p)
+ lnet = p + 1;
+ if (getaddrinfo(addr, NULL, NULL, &ai) == 0) {
+ for (aip = ai; aip != NULL; aip = aip->ai_next) {
+ if (getnameinfo(aip->ai_addr, aip->ai_addrlen,
+ name, sizeof(name), NULL, 0,
+ NI_NAMEREQD | NI_NOFQDN) == 0) {
+ p = strchr(name, '.');
+ if (p)
+ *p = '\0';
+ len = strlen(name) + 2;
+ if (lnet != NULL)
+ len += strlen(lnet);
+ res = malloc(len);
+ if (!res)
+ nl_oom();
+ if (lnet != NULL)
+ snprintf(res, len, "%s@%s",
+ name, lnet);
+ else
+ snprintf(res, len, "%s", name);
+ break;
+ }
+ }
+ freeaddrinfo(ai);
+ }
+ }
+ free(addr);
+
+ return res;