/**
- * Get local hostname
- *
- * @param sched scheduler to use
- * @param cfg configuration to use
- * @param callback function to call with addresses
- * @param cls closure for callback
- * @return handle that can be used to cancel the request, NULL on error
+ * Get local fully qualified domain name
+ * @return fqdn
*/
-void
-GNUNET_RESOLVER_local_hostname_get (struct GNUNET_SCHEDULER_Handle *sched,
- const struct GNUNET_CONFIGURATION_Handle *cfg,
- GNUNET_RESOLVER_HostnameCallback callback,
- void *cls)
+char *
+GNUNET_RESOLVER_local_fqdn_get ( void )
{
-
+ struct hostent *host;
char hostname[GNUNET_OS_get_hostname_max_length() + 1];
- check_config (cfg);
+
if (0 != gethostname (hostname, sizeof (hostname) - 1))
{
GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR |
GNUNET_ERROR_TYPE_BULK, "gethostname");
- return;
+ return NULL;
}
#if DEBUG_RESOLVER
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- _("Resolving our hostname `%s'\n"), hostname);
+ _("Resolving our FQDN `%s'\n"), hostname);
#endif
- callback (cls, hostname);
+ host = gethostbyname ( hostname );
+ if ( NULL == host)
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Could not resolve our FQDN : %s\n"),
+ hstrerror (h_errno));
+ return NULL;
+ }
+ return GNUNET_strdup (host->h_name);
}
/**