/* Create, modify, or delete a ticket */ int doTicketOp( char *arg1, char *arg2, char *arg3, char *arg4, char *arg5 ) { ticketAdminInp_t ticketAdminInp; int status; char *mySubName; char *myName; ticketAdminInp.arg1 = arg1; ticketAdminInp.arg2 = arg2; ticketAdminInp.arg3 = arg3; ticketAdminInp.arg4 = arg4; ticketAdminInp.arg5 = arg5; ticketAdminInp.arg6 = ""; status = rcTicketAdmin( Conn, &ticketAdminInp ); lastCommandStatus = status; if ( status < 0 ) { if ( Conn->rError ) { rError_t *Err; rErrMsg_t *ErrMsg; int i, len; Err = Conn->rError; len = Err->len; for ( i = 0; i < len; i++ ) { ErrMsg = Err->errMsg[i]; rodsLog( LOG_ERROR, "Level %d: %s", i, ErrMsg->msg ); } } myName = rodsErrorName( status, &mySubName ); rodsLog( LOG_ERROR, "rcTicketAdmin failed with error %d %s %s", status, myName, mySubName ); } return status; }
int rsTicketAdmin (rsComm_t *rsComm, ticketAdminInp_t *ticketAdminInp ) { rodsServerHost_t *rodsServerHost; int status; rodsLog(LOG_DEBUG, "ticketAdmin"); status = getAndConnRcatHost(rsComm, MASTER_RCAT, NULL, &rodsServerHost); if (status < 0) { return(status); } if (rodsServerHost->localFlag == LOCAL_HOST) { #ifdef RODS_CAT status = _rsTicketAdmin (rsComm, ticketAdminInp); #else status = SYS_NO_RCAT_SERVER_ERR; #endif } else { if (strcmp(ticketAdminInp->arg1,"session")==0 ) { ticketAdminInp->arg3 = rsComm->clientAddr; } status = rcTicketAdmin(rodsServerHost->conn, ticketAdminInp); } if (status < 0) { rodsLog (LOG_NOTICE, "rsTicketAdmin failed, error %d", status); } return (status); }
int setSessionTicket(rcComm_t *myConn, char *ticket) { ticketAdminInp_t ticketAdminInp; int status; ticketAdminInp.arg1 = "session"; ticketAdminInp.arg2 = ticket; ticketAdminInp.arg3 = ""; ticketAdminInp.arg4 = ""; ticketAdminInp.arg5 = ""; ticketAdminInp.arg6 = ""; status = rcTicketAdmin(myConn, &ticketAdminInp); if (status != 0) { printf("set ticket error %d \n", status); } return(status); }
int rsTicketAdmin( rsComm_t *rsComm, ticketAdminInp_t *ticketAdminInp ) { rodsServerHost_t *rodsServerHost; int status; rodsLog( LOG_DEBUG, "ticketAdmin" ); status = getAndConnRcatHost( rsComm, MASTER_RCAT, ( const char* )NULL, &rodsServerHost ); if ( status < 0 ) { return status; } if ( rodsServerHost->localFlag == LOCAL_HOST ) { std::string svc_role; irods::error ret = get_catalog_service_role(svc_role); if(!ret.ok()) { irods::log(PASS(ret)); return ret.code(); } if( irods::CFG_SERVICE_ROLE_PROVIDER == svc_role ) { status = _rsTicketAdmin( rsComm, ticketAdminInp ); } else if( irods::CFG_SERVICE_ROLE_CONSUMER == svc_role ) { status = SYS_NO_RCAT_SERVER_ERR; } else { rodsLog( LOG_ERROR, "role not supported [%s]", svc_role.c_str() ); status = SYS_SERVICE_ROLE_NOT_SUPPORTED; } } else { if ( strcmp( ticketAdminInp->arg1, "session" ) == 0 ) { ticketAdminInp->arg3 = rsComm->clientAddr; } status = rcTicketAdmin( rodsServerHost->conn, ticketAdminInp ); } if ( status < 0 ) { rodsLog( LOG_NOTICE, "rsTicketAdmin failed, error %d", status ); } return status; }