getfullhostname.c
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:3k
- /*
- * $Id: getfullhostname.c,v 1.17 1998/07/22 20:36:35 wessels Exp $
- *
- * DEBUG:
- * AUTHOR: Harvest Derived
- *
- * SQUID Internet Object Cache http://squid.nlanr.net/Squid/
- * ----------------------------------------------------------
- *
- * Squid is the result of efforts by numerous individuals from the
- * Internet community. Development is led by Duane Wessels of the
- * National Laboratory for Applied Network Research and funded by the
- * National Science Foundation. Squid is Copyrighted (C) 1998 by
- * Duane Wessels and the University of California San Diego. Please
- * see the COPYRIGHT file for full details. Squid incorporates
- * software developed and/or copyrighted by other sources. Please see
- * the CREDITS file for full details.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
- *
- */
- #include "config.h"
- #if HAVE_LIBC_H
- #include <libc.h>
- #endif
- #if HAVE_STDIO_H
- #include <stdio.h>
- #endif
- #if HAVE_STDLIB_H
- #include <stdlib.h>
- #endif
- #if HAVE_STRING_H
- #include <string.h>
- #endif
- #if HAVE_SYS_PARAM_H
- #include <sys/param.h>
- #endif
- #if HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
- #if HAVE_SYS_SOCKET_H
- #include <sys/socket.h>
- #endif
- #if HAVE_NETINET_IN_H
- #include <netinet/in.h>
- #endif
- #if HAVE_ARPA_INET_H
- #include <arpa/inet.h>
- #endif
- #if HAVE_NETDB_H && !defined(_SQUID_NETDB_H_) /* protect on NEXTSTEP */
- #define _SQUID_NETDB_H_
- #include <netdb.h>
- #endif
- #if HAVE_UNISTD_H
- #include <unistd.h>
- #endif
- #include "util.h"
- /*
- * getfullhostname() - Returns the fully qualified name of the current
- * host, or NULL on error. Pointer is only valid until the next call
- * to the gethost*() functions.
- */
- const char *
- getfullhostname(void)
- {
- const struct hostent *hp = NULL;
- static char buf[SQUIDHOSTNAMELEN + 1];
- if (gethostname(buf, SQUIDHOSTNAMELEN) < 0)
- return NULL;
- if ((hp = gethostbyname(buf)) != NULL)
- xstrncpy(buf, hp->h_name, SQUIDHOSTNAMELEN);
- return buf;
- }