Back to index

courier  0.68.2
cgethostname.c
Go to the documentation of this file.
00001 /*
00002 ** Copyright 1998 - 1999 Double Precision, Inc.
00003 ** See COPYING for distribution information.
00004 */
00005 
00006 #if    HAVE_CONFIG_H
00007 #include      "courier_lib_config.h"
00008 #endif
00009 #include      "courier.h"
00010 #if    HAVE_UNISTD_H
00011 #include      <unistd.h>
00012 #endif
00013 #include      <stdio.h>
00014 #include      <stdlib.h>
00015 #include      <string.h>
00016 
00017 #if     HAS_GETHOSTNAME
00018 #else
00019 int gethostname(const char *, size_t);
00020 #endif
00021 
00022 static char *hostname_buf=0;
00023 
00024 const char *config_gethostname()
00025 {
00026 char   buf[BUFSIZ];
00027 
00028        if (!hostname_buf)
00029        {
00030               buf[sizeof(buf)-1]=0;
00031               buf[0]=0;
00032               gethostname(buf, sizeof(buf)-1);
00033               if (buf[0])
00034               {
00035                      hostname_buf=courier_malloc(strlen(buf)+1);
00036                      strcpy(hostname_buf, buf);
00037               }
00038        }
00039        return (hostname_buf ? hostname_buf:"");
00040 }
00041