diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-11-10 08:27:32 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-11-10 08:28:38 +0100 |
commit | 026abfb7ae8475987626dab4c600821c66e628c0 (patch) | |
tree | 6ed2b06a620cec3e86ff0a20f884739e99920436 /rtemsbsd/mdns/mdns.c | |
parent | Do not set mulitcast hostname in sethostname() (diff) | |
download | rtems-libbsd-026abfb7ae8475987626dab4c600821c66e628c0.tar.bz2 |
Add rtems_mdns_gethostname()
Diffstat (limited to 'rtemsbsd/mdns/mdns.c')
-rw-r--r-- | rtemsbsd/mdns/mdns.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/rtemsbsd/mdns/mdns.c b/rtemsbsd/mdns/mdns.c index 425c1276..2248e5b0 100644 --- a/rtemsbsd/mdns/mdns.c +++ b/rtemsbsd/mdns/mdns.c @@ -275,7 +275,7 @@ truncate_at_first_dot(domainlabel *name) name->c[0] = n; } -static void +static int mdns_sethostname(const char *hostname) { mDNS *m = &mDNSStorage; @@ -290,6 +290,28 @@ mdns_sethostname(const char *hostname) mDNS_SetFQDN(m); rtems_bsd_force_select_timeout(mdns_daemon_id); + + return (0); +} + +static int +mdns_gethostname(char *hostname, size_t size) +{ + mDNS *m = &mDNSStorage; + + if (size < MAX_ESCAPED_DOMAIN_LABEL) { + errno = ERANGE; + + return (-1); + } + + mDNS_Lock(m); + + ConvertDomainLabelToCString(&m->hostlabel, hostname); + + mDNS_Unlock(m); + + return (0); } rtems_status_code @@ -343,6 +365,7 @@ rtems_mdns_initialize(rtems_task_priority daemon_priority, } rtems_mdns_sethostname_handler = mdns_sethostname; + rtems_mdns_gethostname_handler = mdns_gethostname; return (RTEMS_SUCCESSFUL); } |