- if (my_client.m_naddr != 1 ||
- my_client.m_addrlist[0].s_addr != caller->sin_addr.s_addr) {
- /* different client to last time, so do a lookup */
- char *n;
- my_client.m_naddr = 0;
- my_client.m_addrlist[0] = caller->sin_addr;
- n = client_compose(caller->sin_addr);
- *error = unknown_host;
- if (!n)
- return NULL;
- strcpy(my_client.m_hostname, *n?n:"DEFAULT");
+ char *n;
+ my_client.m_addrlist[0] = caller->sin_addr;
+ n = client_compose(hp);
+ *error = unknown_host;
+ if (!n)
+ return NULL;
+ free(my_client.m_hostname);
+ if (*n) {
+ my_client.m_hostname = n;
+ } else {