summaryrefslogtreecommitdiffstats
path: root/runtime/net.c
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/net.c')
-rw-r--r--runtime/net.c86
1 files changed, 5 insertions, 81 deletions
diff --git a/runtime/net.c b/runtime/net.c
index e5d8b4a4..b291213e 100644
--- a/runtime/net.c
+++ b/runtime/net.c
@@ -1117,91 +1117,15 @@ void debugListenInfo(int fd, char *type)
}
-/* Return a printable representation of a host address.
- * Now (2007-07-16) also returns the full host name (if it could be obtained)
- * in the second param [thanks to mildew@gmail.com for the patch].
- * The caller must provide buffer space for pszHost and pszHostFQDN. These
- * buffers must be of size NI_MAXHOST. This is not checked here, because
- * there is no way to check it. We use this way of doing things because it
- * frees us from using dynamic memory allocation where it really does not
- * pay.
- * 2005-05-16 rgerhards: added IP representation. Must also be NI_MAXHOST
+/* Return a printable representation of a host addresses. If
+ * a parameter is NULL, it is not set. rgerhards, 2013-01-22
*/
-rsRetVal cvthname(struct sockaddr_storage *f, uchar *pszHost, uchar *pszHostFQDN, prop_t **ip)
+rsRetVal
+cvthname(struct sockaddr_storage *f, prop_t **localName, prop_t **fqdn, prop_t **ip)
{
DEFiRet;
- prop_t *fqdnLowerCase;
- register uchar *p;
- int count;
- int i;
-
assert(f != NULL);
- assert(pszHost != NULL);
- assert(pszHostFQDN != NULL);
-
- iRet = dnscacheLookup(f, NULL, &fqdnLowerCase, ip);
- strcpy((char*)pszHostFQDN, (char*)propGetSzStr(fqdnLowerCase));
- prop.Destruct(&fqdnLowerCase);
-
- if(iRet == RS_RET_INVALID_SOURCE) {
- strcpy((char*) pszHost, (char*) pszHostFQDN); /* we use whatever was provided as replacement */
- ABORT_FINALIZE(RS_RET_OK); /* this is handled, we are happy with it */
- } else if(iRet != RS_RET_OK) {
- FINALIZE; /* we return whatever error state we have - can not handle it */
- }
-
- /* OK, the fqdn is now known. Now it is time to extract only the hostname
- * part if we were instructed to do so.
- */
- if(glbl.GetPreserveFQDN()) {
- strcpy((char*)pszHost, (char*)pszHostFQDN);
- } else { /* strip domain, if configured for this entry */
- p = (uchar*)strchr((char*)pszHostFQDN, '.'); /* find start of domain name "machine.example.com" */
- if(p == NULL) { /* do we have a domain part? */
- strcpy((char*)pszHost, (char*)pszHostFQDN); /* no! */
- } else {
- i = p - pszHostFQDN; /* length of hostname */
- memcpy(pszHost, pszHostFQDN, i);
- /* now check if we belong to any of the domain names that were specified
- * in the -s command line option. If so, remove and we are done.
- */
- if(glbl.GetStripDomains() != NULL) {
- count=0;
- while(glbl.GetStripDomains()[count]) {
- if(strcmp((char*)(p + 1), glbl.GetStripDomains()[count]) == 0) {
- pszHost[i] = '\0';
- FINALIZE; /* we are done */
- }
- count++;
- }
- }
- /* if we reach this point, we have not found any domain we should strip. Now
- * we try and see if the host itself is listed in the -l command line option
- * and so should be stripped also. If so, we do it and return. Please note that
- * -l list FQDNs, not just the hostname part. If it did just list the hostname, the
- * door would be wide-open for all kinds of mixing up of hosts. Because of this,
- * you'll see comparison against the full string (pszHostFQDN) below. The termination
- * still occurs at *p, which points at the first dot after the hostname.
- * TODO: this must also go away - see comment above -- rgerhards, 2008-04-16
- */
- if(glbl.GetLocalHosts() != NULL) {
- count=0;
- while (glbl.GetLocalHosts()[count]) {
- if (!strcmp((char*)pszHostFQDN, (char*)glbl.GetLocalHosts()[count])) {
- pszHost[i] = '\0';
- FINALIZE; /* we are done */
- }
- count++;
- }
- }
- /* at this point, we have not found anything, so we need to copy
- * over the rest.
- */
- strcpy((char*)pszHost+i, (char*)p);
- }
- }
-
-finalize_it:
+ iRet = dnscacheLookup(f, NULL, fqdn, localName, ip);
RETiRet;
}