Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

thd_trusthost.c File Reference

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "afni_environ.h"
#include "Amalloc.h"
#include "niml.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <ctype.h>

Go to the source code of this file.


Defines

#define INIT_NUM   (sizeof(init_hosts)/sizeof(char *))
#define HSIZE   32
#define USE_NIML

Functions

char * xxx_name_to_inet (char *host)
void add_TRUST_host (char *hnam)
void init_TRUST_list (void)
void TRUST_addhost (char *hostname)
int TRUST_host (char *hostid)

Variables

int host_num = 0
char ** host_list = NULL
char * init_hosts []

Define Documentation

#define HSIZE   32
 

Definition at line 26 of file thd_trusthost.c.

Referenced by add_TRUST_host(), and init_TRUST_list().

#define INIT_NUM   (sizeof(init_hosts)/sizeof(char *))
 

Definition at line 25 of file thd_trusthost.c.

Referenced by init_TRUST_list().

#define USE_NIML
 

Definition at line 28 of file thd_trusthost.c.


Function Documentation

void add_TRUST_host char *    hnam [static]
 

Definition at line 68 of file thd_trusthost.c.

References free, host_list, host_num, HSIZE, malloc, realloc, and xxx_name_to_inet().

Referenced by init_TRUST_list(), and TRUST_addhost().

00069 {
00070    char *hh=NULL ;
00071    int nh,ii ;
00072 
00073    if( hnam == NULL || hnam[0] == '\0' ) return ;
00074 
00075    /* see if host name is consistent with 012.345.678.901 format */
00076 
00077    nh = strlen(hnam) ;
00078    for( ii=0 ; ii < nh ; ii++ )
00079       if( !isdigit(hnam[ii]) && hnam[ii] != '.' ) break ;
00080 
00081    if( ii < nh ){                     /* not a dotted number */
00082       hh = xxx_name_to_inet( hnam ) ; /* so do a lookup on it */
00083       if( hh == NULL ) return ;       /* failed? */
00084 
00085    } else if( nh > HSIZE-1 ){         /* something bad? */
00086       return ;
00087    } else {
00088       hh = hnam ;                     /* store dotted number */
00089    }
00090 
00091    host_list = (char **) realloc(host_list,sizeof(char *)*(host_num+1)) ;
00092    host_list[host_num] = (char *) malloc(HSIZE) ;
00093    strcpy( host_list[host_num] , hh ) ; host_num++ ;
00094 
00095    if( hh != hnam ) free(hh) ;
00096    return ;
00097 }

void init_TRUST_list void    [static]
 

Definition at line 103 of file thd_trusthost.c.

References add_TRUST_host(), host_list, host_num, HSIZE, init_hosts, INIT_NUM, malloc, and my_getenv().

Referenced by TRUST_addhost(), and TRUST_host().

00104 {
00105    int ii ;
00106    char ename[HSIZE] , *str ;
00107 
00108    if( host_num == 0 ){
00109       host_num = INIT_NUM ;
00110       host_list = (char **) malloc( sizeof(char *) * INIT_NUM ) ;
00111       for( ii=0 ; ii < INIT_NUM ; ii++ ){
00112          host_list[ii] = (char *) malloc(HSIZE) ;
00113          strcpy( host_list[ii] , init_hosts[ii] ) ;
00114       }
00115 
00116       str = my_getenv("AFNI_TRUSTHOST") ;
00117       if( str != NULL ) add_TRUST_host(str) ;
00118 
00119       for( ii=1 ; ii <= 99 ; ii++ ){
00120          sprintf(ename,"AFNI_TRUSTHOST_%d",ii) ; str = my_getenv(ename) ;
00121          if( str == NULL && ii <= 9 ){
00122            sprintf(ename,"AFNI_TRUSTHOST_%02d",ii) ; str = my_getenv(ename) ;
00123          }
00124          if( str != NULL ) add_TRUST_host(str) ;
00125       }
00126    }
00127 
00128    return ;
00129 }

void TRUST_addhost char *    hostname
 

Definition at line 135 of file thd_trusthost.c.

References add_TRUST_host(), host_num, init_TRUST_list(), and NI_add_trusted_host().

Referenced by ENV_trusthost().

00136 {
00137    if( hostname == NULL || hostname[0] == '\0' ) return ;
00138    if( host_num == 0 ) init_TRUST_list() ;
00139    add_TRUST_host(hostname) ;
00140 #ifdef USE_NIML
00141    NI_add_trusted_host(hostname) ;
00142 #endif
00143    return ;
00144 }

int TRUST_host char *    hostid
 

Definition at line 150 of file thd_trusthost.c.

References host_list, host_num, and init_TRUST_list().

Referenced by AFNI_plugout_workproc(), MAIN_workprocess(), and RT_check_listen().

00151 {
00152    int ii ;
00153 
00154    if( host_num == 0 ) init_TRUST_list() ;
00155 
00156    if( hostid == NULL || hostid[0] == '\0' ) return 0 ;
00157 
00158    for( ii=0 ; ii < host_num ; ii++ )
00159       if( strstr(hostid,host_list[ii]) == hostid ) return 1 ;
00160 
00161    return 0 ;
00162 }

char* xxx_name_to_inet char *    host [static]
 

Definition at line 45 of file thd_trusthost.c.

References AFMALL.

00046 {
00047    struct hostent *hostp ;
00048    char *iname = NULL , *str ;
00049    int ll ;
00050 
00051    if( host == NULL || host[0] == '\0' ) return NULL ;
00052 
00053    hostp = gethostbyname(host) ; if( hostp == NULL ) return NULL ;
00054 
00055    str = inet_ntoa(*((struct in_addr *)(hostp->h_addr))) ;
00056    if( str == NULL || str[0] == '\0' ) return NULL ;
00057 
00058    ll = strlen(str) ; iname = AFMALL(char, ll+1) ; strcpy(iname,str) ;
00059    return iname ;
00060 }

Variable Documentation

char** host_list = NULL [static]
 

Definition at line 17 of file thd_trusthost.c.

Referenced by add_TRUST_host(), init_TRUST_list(), and TRUST_host().

int host_num = 0 [static]
 

Definition at line 16 of file thd_trusthost.c.

Referenced by add_TRUST_host(), init_TRUST_list(), TRUST_addhost(), and TRUST_host().

char* init_hosts[] [static]
 

Initial value:

 { 
    "141.106.106." ,            
    "128.231."     ,           
    "127.0.0.1"    ,           
    "192.168."                 
}

Definition at line 19 of file thd_trusthost.c.

Referenced by init_TRUST_list().

 

Powered by Plone

This site conforms to the following standards: