diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2010-05-12 19:14:46 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2010-05-12 19:14:46 +0200 |
commit | 13c2b4b36ee970e01db734c4b0693189c39a7a3d (patch) | |
tree | 9fd54a3a3cee3ccddb62dbe02e1dab1ceab72046 | |
parent | 1722ac7307ac20824bb70a7cc3dc2fbd31995d45 (diff) | |
download | connman-13c2b4b36ee970e01db734c4b0693189c39a7a3d.tar.gz connman-13c2b4b36ee970e01db734c4b0693189c39a7a3d.tar.bz2 connman-13c2b4b36ee970e01db734c4b0693189c39a7a3d.zip |
Add support for getting current system hostname
-rw-r--r-- | include/utsname.h | 3 | ||||
-rw-r--r-- | src/utsname.c | 28 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/utsname.h b/include/utsname.h index 6a1edc54..a3589975 100644 --- a/include/utsname.h +++ b/include/utsname.h @@ -32,9 +32,12 @@ extern "C" { * @short_description: Functions for handling utsname */ +const char *connman_utsname_get_hostname(void); + struct connman_utsname_driver { const char *name; int priority; + const char * (*get_hostname) (void); int (*set_hostname) (const char *hostname); int (*set_domainname) (const char *domainname); }; diff --git a/src/utsname.c b/src/utsname.c index 4008f8f4..aec8d783 100644 --- a/src/utsname.c +++ b/src/utsname.c @@ -68,6 +68,34 @@ void connman_utsname_driver_unregister(struct connman_utsname_driver *driver) driver_list = g_slist_remove(driver_list, driver); } +/** + * connman_utsname_get_hostname: + * + * Returns current hostname + */ +const char *connman_utsname_get_hostname(void) +{ + GSList *list; + + DBG(""); + + for (list = driver_list; list; list = list->next) { + struct connman_utsname_driver *driver = list->data; + const char *hostname; + + DBG("driver %p name %s", driver, driver->name); + + if (driver->get_hostname == NULL) + continue; + + hostname = driver->get_hostname(); + if (hostname != NULL) + return hostname; + } + + return NULL; +} + int __connman_utsname_set_hostname(const char *hostname) { GSList *list; |