1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
|
/*
* $Id: getfullhostname.c,v 1.12.4.2 1997/04/28 18:14:11 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.
*
* 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
/*
* Copyright (c) 1994, 1995. All rights reserved.
*
* The Harvest software was developed by the Internet Research Task
* Force Research Group on Resource Discovery (IRTF-RD):
*
* Mic Bowman of Transarc Corporation.
* Peter Danzig of the University of Southern California.
* Darren R. Hardy of the University of Colorado at Boulder.
* Udi Manber of the University of Arizona.
* Michael F. Schwartz of the University of Colorado at Boulder.
* Duane Wessels of the University of Colorado at Boulder.
*
* This copyright notice applies to software in the Harvest
* ``src/'' directory only. Users should consult the individual
* copyright notices in the ``components/'' subdirectories for
* copyright information about other software bundled with the
* Harvest source code distribution.
*
* TERMS OF USE
*
* The Harvest software may be used and re-distributed without
* charge, provided that the software origin and research team are
* cited in any use of the system. Most commonly this is
* accomplished by including a link to the Harvest Home Page
* (http://harvest.cs.colorado.edu/) from the query page of any
* Broker you deploy, as well as in the query result pages. These
* links are generated automatically by the standard Broker
* software distribution.
*
* The Harvest software is provided ``as is'', without express or
* implied warranty, and with no support nor obligation to assist
* in its use, correction, modification or enhancement. We assume
* no liability with respect to the infringement of copyrights,
* trade secrets, or any patents, and are not responsible for
* consequential damages. Proper use of the Harvest software is
* entirely the responsibility of the user.
*
* DERIVATIVE WORKS
*
* Users may make derivative works from the Harvest software, subject
* to the following constraints:
*
* - You must include the above copyright notice and these
* accompanying paragraphs in all forms of derivative works,
* and any documentation and other materials related to such
* distribution and use acknowledge that the software was
* developed at the above institutions.
*
* - You must notify IRTF-RD regarding your distribution of
* the derivative work.
*
* - You must clearly notify users that your are distributing
* a modified version and not the original Harvest software.
*
* - Any derivative product is also subject to these copyright
* and use restrictions.
*
* Note that the Harvest software is NOT in the public domain. We
* retain copyright, as specified above.
*
* HISTORY OF FREE SOFTWARE STATUS
*
* Originally we required sites to license the software in cases
* where they were going to build commercial products/services
* around Harvest. In June 1995 we changed this policy. We now
* allow people to use the core Harvest software (the code found in
* the Harvest ``src/'' directory) for free. We made this change
* in the interest of encouraging the widest possible deployment of
* the technology. The Harvest software is really a reference
* implementation of a set of protocols and formats, some of which
* we intend to standardize. We encourage commercial
* re-implementations of code complying to this set of standards.
*/
#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 "ansiproto.h"
#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;
}
|