From 39e6e65a2c5a3312f365d59f23c469641e049c82 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 19 Aug 1998 21:32:28 +0000 Subject: Base files --- c/src/libnetworking/rtems/sghostname.c | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 c/src/libnetworking/rtems/sghostname.c (limited to 'c/src/libnetworking/rtems/sghostname.c') diff --git a/c/src/libnetworking/rtems/sghostname.c b/c/src/libnetworking/rtems/sghostname.c new file mode 100644 index 0000000000..ec9753649b --- /dev/null +++ b/c/src/libnetworking/rtems/sghostname.c @@ -0,0 +1,47 @@ +/* + * RTEMS versions of hostname functions + * FIXME: Not thread-safe + */ + +#include +#include +#include +#include +#include +#include + +static char *rtems_hostname; + +int +gethostname (char *name, int namelen) +{ + char *cp = rtems_hostname; + + if (cp == NULL) + cp = ""; + strncpy (name, cp, namelen); + return 0; +} + +int +sethostname (char *name, int namelen) +{ + char *old, *new; + + if (namelen >= MAXHOSTNAMELEN) { + errno = EINVAL; + return -1; + } + new = malloc (namelen + 1, M_HTABLE, M_NOWAIT); + if (new == NULL) { + errno = ENOMEM; + return -1; + } + strncpy (new, name, namelen); + new[namelen] = '\0'; + old = rtems_hostname; + rtems_hostname = new; + if (old) + free (old, M_HTABLE); + return 0; +} -- cgit v1.2.3