summaryrefslogtreecommitdiffstats
path: root/xpa/tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'xpa/tcp.c')
-rw-r--r--xpa/tcp.c264
1 files changed, 0 insertions, 264 deletions
diff --git a/xpa/tcp.c b/xpa/tcp.c
deleted file mode 100644
index c5a2fb9..0000000
--- a/xpa/tcp.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright (c) 1999-2003 Smithsonian Astrophysical Observatory
- */
-
-/*
- *
- * tcp.c -- unix tcp connection routines
- *
- */
-#if HAVE_CONFIG_H
-#include <conf.h>
-#endif
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#if HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <xport.h>
-#include <tcp.h>
-
-/* the ever-present */
-#ifndef SZ_LINE
-#define SZ_LINE 1024
-#endif
-
-/* name of user environment variable specifying this host */
-#ifndef MYHOST
-#define MYHOST "XPA_HOST"
-#endif
-
-/* other modules can set this variable and the default for various routines
- will be "localhost" instead of the DNS-dependent hostname */
-int use_localhost=0;
-
-static char myhost[SZ_LINE]; /* hostname to registering access points */
-
-/*
- *----------------------------------------------------------------------------
- *
- *
- * Private Routines and Data
- *
- *
- *----------------------------------------------------------------------------
- */
-
-static char ipstr[SZ_LINE];
-
-/*
- *----------------------------------------------------------------------------
- *
- *
- * Public Routines
- *
- *
- *----------------------------------------------------------------------------
- */
-
-/*
- *--------------------------------------------------------------
- *
- * Routines: gethost
- *
- * Purpose: Find the current hostname
- *
- * Results: 1 on success, 0 for failure
- *
- *--------------------------------------------------------------
- */
-#ifdef ANSI_FUNC
-int
-gethost (
- char *xhost, /* (out) corresponding hostname */
- int len /* (in) length of host buffer */
-)
-#else
-int gethost(xhost, len)
- char *xhost; /* (out) corresponding hostname */
- int len; /* (in) length of host buffer */
-#endif
-{
- char *s=NULL;
-#if HAVE_GETADDRINFO
- struct addrinfo *hints=NULL, *addrinfo=NULL;
-#else
- struct hostent *hent;
-#endif
- static int init=0;
-
- if( use_localhost == 0 ){
- if( init == 0 ){
- if( (s=(char *)getenv(MYHOST)) != NULL ){
- strncpy(myhost, s, SZ_LINE-1);
- } else {
- gethostname(myhost, SZ_LINE-1);
- }
- init++;
- }
- strncpy(xhost, myhost, len-1);
-
-#if HAVE_GETADDRINFO
- hints = (struct addrinfo *)calloc(1, sizeof(struct addrinfo));
- hints->ai_flags |= AI_CANONNAME;
- hints->ai_family = AF_INET;
- if( getaddrinfo(xhost, NULL, hints, &addrinfo) != 0 ){
- freeaddrinfo(addrinfo);
- if( hints ) free(hints);
- return -1;
- }
- strncpy(xhost, addrinfo->ai_canonname, len-1);
- freeaddrinfo(addrinfo);
- if( hints ) free(hints);
-#else
- if( (hent = gethostbyname(xhost)) == NULL ){
- return(-1);
- }
- strncpy(xhost, hent->h_name, len-1);
-#endif
- }
- else{
- strncpy(xhost, "localhost", len-1);
- }
- xhost[len-1] = '\0';
- return(0);
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * Routine: gethostip
- *
- * Purpose: Find the IP address corresponding to a hostname
- *
- * Results: ip (host byte order) on success, 0 if host is unknown
- *
- *---------------------------------------------------------------------------
- */
-#ifdef ANSI_FUNC
-unsigned int
-gethostip (
- char *xhost /* (in) Hostname (human readable) */
-)
-#else
-unsigned int gethostip(xhost)
- char *xhost; /* (in) Hostname (human readable) */
-#endif
-{
-#if HAVE_GETADDRINFO
- struct addrinfo *hints=NULL, *addrinfo=NULL;
- struct sockaddr_in * p;
- int got;
-#else
- struct hostent *hostent;
-#endif
- unsigned int ip;
- char temp[SZ_LINE];
- int saveip=0;
- static unsigned int myip=0;
-
- /* null input means current host */
- if( (xhost == NULL) || (*xhost == '\0') || !strcmp(xhost, "$host") ){
- if( myip != 0 )
- return(myip);
- saveip = 1;
- gethost(temp, SZ_LINE);
- }
- else if( !strcmp(xhost, "$localhost") ){
- strcpy(temp, "localhost");
- } else {
- strncpy(temp, xhost, SZ_LINE-1);
- temp[SZ_LINE-1] = '\0';
- }
-
- /* special check */
- if( !strcmp(temp, "localhost") || !strcmp(temp, "localhost.localdomain") ){
- ip = htonl(0x7F000001);
- goto done;
- }
-
- /*
- * Try looking by address (i.e., host is something like "128.84.253.1").
- * Do this first because it's much faster (no trip to the DNS)
- */
- if( (int)(ip = inet_addr(temp)) != -1 ){
- goto done;
- }
-
-#if HAVE_GETADDRINFO
- /*
- * Try looking it up by name.
- */
- hints = (struct addrinfo *)calloc(1, sizeof(struct addrinfo));
- hints->ai_family = AF_INET;
- got = getaddrinfo(temp, NULL, hints, &addrinfo);
- if( got == 0 ){
- p = (struct sockaddr_in *)(addrinfo->ai_addr);
- memcpy(&ip, &(p->sin_addr.s_addr), sizeof(p->sin_addr.s_addr));
- goto done;
- }
-#else
- /*
- * Try looking it up by name. If successful, the IP address is in
- * hostent->h_addr_list[0]
- */
- if( (hostent = gethostbyname(temp)) != NULL ){
- memcpy(&ip, hostent->h_addr_list[0], (size_t)hostent->h_length);
- goto done;
- }
-#endif
- /* could not convert */
- ip = 0;
- saveip = 0;
-
-done:
-#if HAVE_GETADDRINFO
- freeaddrinfo(addrinfo);
- if( hints ) free(hints);
-#endif
- ip = ntohl(ip);
- if( saveip ) myip = ip;
- return(ip);
-}
-
-/*
- *----------------------------------------------------------------------------
- *
- * Routine: getiphost
- *
- * Purpose: Find the IP address in dot format corresponding to an ip
- *
- * Results: ip string (in static buffer) or NULL
- *
- *---------------------------------------------------------------------------
- */
-#ifdef ANSI_FUNC
-char *
-getiphost (unsigned int ip)
-#else
-char *getiphost(ip)
- unsigned int ip;
-#endif
-{
- char *s;
- struct sockaddr_in sockbuf;
-
- if( ip == 0x7F000001 ){
- strcpy(ipstr, "localhost");
- return(ipstr);
- }
-
- sockbuf.sin_addr.s_addr = htonl(ip);
- s = (char *)inet_ntoa(sockbuf.sin_addr);
- if( s != NULL ){
- strcpy(ipstr, s);
- return(ipstr);
- }
- else
- return(NULL);
-}