Example #1
0
int
initLocalServerHost() {

    LocalServerHost = ServerHostHead = ( rodsServerHost_t* )malloc( sizeof( rodsServerHost_t ) );
    memset( ServerHostHead, 0, sizeof( rodsServerHost_t ) );

    LocalServerHost->localFlag = LOCAL_HOST;
    LocalServerHost->zoneInfo = ZoneInfoHead;

    int status = matchHostConfig( LocalServerHost );

    queHostName( ServerHostHead, "localhost", 0 );
    char myHostName[MAX_NAME_LEN];
    status = gethostname( myHostName, MAX_NAME_LEN );
    if ( status < 0 ) {
        status = SYS_GET_HOSTNAME_ERR - errno;
        rodsLog( LOG_NOTICE,
                 "initLocalServerHost: gethostname error, status = %d",
                 status );
        return status;
    }
    status = queHostName( ServerHostHead, myHostName, 0 );
    if ( status < 0 ) {
        return status;
    }

    status = queAddr( ServerHostHead, myHostName );
    if ( status < 0 ) {
        /* some configuration may not be able to resolve myHostName. So don't
         * exit. Just print out warning */
        rodsLog( LOG_NOTICE,
                 "initLocalServerHost: queAddr error, status = %d",
                 status );
        status = 0;
    }

    if ( ProcessType == SERVER_PT ) {
        printServerHost( LocalServerHost );
    }

    return status;
}
Example #2
0
rodsServerHost_t*
mkServerHost(char *myHostAddr, char *zoneName) {
    if (NULL == myHostAddr || NULL == zoneName) {
        irods::log(ERROR(SYS_INTERNAL_NULL_INPUT_ERR, "bad params."));
        return NULL;
    }

    rodsServerHost_t* tmpRodsServerHost{(rodsServerHost_t*)malloc(sizeof(rodsServerHost_t))};
    memset(tmpRodsServerHost, 0, sizeof(rodsServerHost_t));

    /* XXXXX need to lookup the zone table when available */
    int status{queueHostName(tmpRodsServerHost, myHostAddr, 0)};
    if (status < 0) {
        irods::log(ERROR(status, "queueHostName failed"));
        free(tmpRodsServerHost);
        return NULL;
    }

    tmpRodsServerHost->localFlag = UNKNOWN_HOST_LOC;

    status = queueAddr(tmpRodsServerHost, myHostAddr);
    if (status < 0) {
        irods::log(ERROR(status, "queueAddr failed"));
        free( tmpRodsServerHost );
        return NULL;
    }
    status = matchHostConfig(tmpRodsServerHost);
    if (status < 0) {
        irods::log(ERROR(status, "matchHostConfig failed"));
        free( tmpRodsServerHost );
        return NULL;
    }
    status = getZoneInfo(zoneName, (zoneInfo_t**)(static_cast<void*>(&tmpRodsServerHost->zoneInfo)));
    if(status < 0) {
        irods::log(ERROR(status, "getZoneInfo failed"));
        free( tmpRodsServerHost );
        return NULL;
    }
    return tmpRodsServerHost;
}