RCS_ID_C="$Id: gethostname.c,v 1.3 1993/06/03 22:59:38 ppessi Exp $";
/*
 * gethostname.c -- get host name from the environment variable "HOSTNAME"
 *
 * Author: jraja <Jarno.Rajahalme@hut.fi>
 *
 * Copyright © 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>
 *                  Helsinki University of Technology, Finland.
 *                  All rights reserved.
 *
 * Created      : Tue Apr 27 17:49:15 1993 jraja
 * Last modified: Fri Jun  4 01:58:48 1993 ppessi
 *
 */

#include <stdlib.h>
#include <string.h>
#include <errno.h>

/****** net.lib/gethostname ******************************************
*
*   NAME   
*       gethostname -- get the name of the host
*
*   SYNOPSIS
*       error = gethostname(name, namelen);
*
*       int gethostname(char *, int);
*
*   FUNCTION
*       Get the name of the host to the buffer name of length namelen.
*       The name is taken from the environment variable "HOSTNAME"
*       where it SHOULD reside.
*
*   INPUTS
*       name    - Pointer to the buffer where the name should be
*                 stored.
*       namelen - Length of the buffer name.
*
*   RESULT
*       error   - 0 on success, -1 in case of an error. The global
*                 variable errno will be set to indicate the error as
*                 follows: 
*
*                 ENOENT - The environment variable "HOSTNAME" is not
*                          found.
*  
*   EXAMPLE
*       char hostname[MAXHOSTNAMELEN];
*       int error;
*       
*       error = gethostname(hostname, sizeof(hostname));
*       if (error < 0)
*         exit(10);
*       
*       printf("My name is \"%s\".\n", hostname);
*
*   NOTES
*       This function is included for source compatibility with Unix
*       systems.
*       The ENOENT errno value is AmiTCP/IP addition.
*
*   BUGS
*       Unlike the Unix version, this version assures that the
*       resulting string is always NULL-terminated.
*
*   SEE ALSO
*       getenv()
*****************************************************************************
*
*/

int gethostname(char *name, int namelen)
{
  char *cp = getenv("HOSTNAME");

  if (cp == NULL) {
    errno = ENOENT;
    return -1;
  }
  stccpy(name, cp, namelen);
  free(cp);
  return 0;
}
