irods  4.2.8
About: iRODS (the integrated Rule Oriented Data System) is a distributed data-management system for creating data grids, digital libraries, persistent archives, and real-time data systems.
  Fossies Dox: irods-4.2.8.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

rsApiHandler.cpp File Reference
#include "rsApiHandler.hpp"
#include "modDataObjMeta.h"
#include "rcMisc.h"
#include "miscServerFunct.hpp"
#include "regReplica.h"
#include "rodsErrorTable.h"
#include "unregDataObj.h"
#include "modAVUMetadata.h"
#include "sockComm.h"
#include "irods_re_structs.hpp"
#include "sslSockComm.h"
#include "irods_client_server_negotiation.hpp"
#include "apiNumber.h"
#include "api_plugin_number.h"
#include "client_api_whitelist.hpp"
#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
#include <csetjmp>
#include "irods_network_factory.hpp"
#include "irods_server_api_table.hpp"
#include "irods_threads.hpp"
#include "sockCommNetworkInterface.hpp"
#include "irods_hierarchy_parser.hpp"
#include <iterator>
#include <algorithm>
Include dependency graph for rsApiHandler.cpp:

Go to the source code of this file.

Functions

int rsApiHandler (rsComm_t *rsComm, int apiNumber, bytesBuf_t *inputStructBBuf, bytesBuf_t *bsBBuf)
 
int sendAndProcApiReply (rsComm_t *rsComm, int apiInx, int status, void *myOutStruct, bytesBuf_t *myOutBsBBuf)
 
int sendApiReply (rsComm_t *rsComm, int apiInx, int retVal, void *myOutStruct, bytesBuf_t *myOutBsBBuf)
 
int chkApiVersion (int apiInx)
 
int chkApiPermission (rsComm_t *rsComm, int apiInx)
 
static int apply_acPostProcForParallelTransferReceived (rsComm_t *rsComm)
 
int handlePortalOpr (rsComm_t *rsComm)
 
int readAndProcClientMsg (rsComm_t *rsComm, int flags)
 
int sendAndRecvBranchMsg (rsComm_t *rsComm, int apiInx, int status, void *myOutStruct, bytesBuf_t *myOutBsBBuf)
 
int svrSendCollOprStat (rsComm_t *rsComm, collOprStat_t *collOprStat)
 
int _svrSendCollOprStat (rsComm_t *rsComm, collOprStat_t *collOprStat)
 
int svrSendZoneCollOprStat (rsComm_t *rsComm, rcComm_t *conn, collOprStat_t *collOprStat, int retval)
 
void readTimeoutHandler (int)
 

Variables

jmp_buf Jenv
 

Function Documentation

◆ _svrSendCollOprStat()

int _svrSendCollOprStat ( rsComm_t rsComm,
collOprStat_t collOprStat 
)

Definition at line 677 of file rsApiHandler.cpp.

References rsComm_t::apiInx, irods::CS_NEG_USE_SSL(), LOG_ERROR, myRead(), rsComm_t::negotiation_results, NULL, rodsLogError(), sendAndProcApiReply(), rsComm_t::sock, rsComm_t::ssl, sslRead(), irods.pypyodbc::status, and SYS_SVR_TO_CLI_COLL_STAT.

Referenced by svrSendCollOprStat(), and svrSendZoneCollOprStat().

Here is the call graph for this function:

◆ apply_acPostProcForParallelTransferReceived()

static int apply_acPostProcForParallelTransferReceived ( rsComm_t rsComm)
static

◆ chkApiPermission()

int chkApiPermission ( rsComm_t rsComm,
int  apiInx 
)

Definition at line 376 of file rsApiHandler.cpp.

References authInfo_t::authFlag, userInfo_t::authInfo, rsComm_t::clientUser, irods::get_server_api_table(), irods::client_api_whitelist::instance(), LOG_ERROR, ProcessType, rsComm_t::proxyUser, rodsLog(), SYS_NO_API_PRIV, XMSG_SERVER_PT, XMSG_SVR_ALSO, and XMSG_SVR_ONLY.

Referenced by rsApiHandler().

Here is the call graph for this function:

◆ chkApiVersion()

int chkApiVersion ( int  apiInx)

Definition at line 361 of file rsApiHandler.cpp.

References irods::get_server_api_table(), LOG_ERROR, NULL, rodsLog(), RsApiTable, SP_API_VERSION, and USER_API_VERSION_MISMATCH.

Referenced by rsApiHandler().

Here is the call graph for this function:

◆ handlePortalOpr()

int handlePortalOpr ( rsComm_t rsComm)

Definition at line 460 of file rsApiHandler.cpp.

References apply_acPostProcForParallelTransferReceived(), GET_OPR, LOG_NOTICE, NULL, PortalOpr::oprType, rsComm_t::portalOpr, PUT_OPR, rodsLog(), irods.pypyodbc::status, svrPortalPutGet(), and SYS_INVALID_PORTAL_OPR.

Referenced by sendAndProcApiReply().

Here is the call graph for this function:

◆ readAndProcClientMsg()

◆ readTimeoutHandler()

void readTimeoutHandler ( int  )

Definition at line 728 of file rsApiHandler.cpp.

References isL1descInuse(), Jenv, L1DESC_INUSE, LOG_ERROR, READ_HEADER_TIMED_OUT, and rodsLog().

Here is the call graph for this function:

◆ rsApiHandler()

int rsApiHandler ( rsComm_t rsComm,
int  apiNumber,
bytesBuf_t inputStructBBuf,
bytesBuf_t bsBBuf 
)

◆ sendAndProcApiReply()

int sendAndProcApiReply ( rsComm_t rsComm,
int  apiInx,
int  status,
void *  myOutStruct,
bytesBuf_t myOutBsBBuf 
)

Definition at line 222 of file rsApiHandler.cpp.

References clearBBuf(), clearKeyVal(), DataOprInp::condInput, PortalOpr::dataOprInp, freeRErrorContent(), handlePortalOpr(), NULL, rsComm_t::portalOpr, rsComm_t::rError, sendApiReply(), and irods.pypyodbc::status.

Referenced by _svrSendCollOprStat(), rsApiHandler(), and sendAndRecvBranchMsg().

Here is the call graph for this function:

◆ sendAndRecvBranchMsg()

int sendAndRecvBranchMsg ( rsComm_t rsComm,
int  apiInx,
int  status,
void *  myOutStruct,
bytesBuf_t myOutBsBBuf 
)

Definition at line 626 of file rsApiHandler.cpp.

References rsComm_t::apiInx, LOG_ERROR, readAndProcClientMsg(), RET_API_STATUS, rodsLog(), sendAndProcApiReply(), irods.pypyodbc::status, SYS_HANDLER_DONE_NO_ERROR, and SYS_NO_HANDLER_REPLY_MSG.

Referenced by _rsDataObjGet(), _rsDataObjPut(), msiDataObjGet(), and msiDataObjPut().

Here is the call graph for this function:

◆ sendApiReply()

◆ svrSendCollOprStat()

int svrSendCollOprStat ( rsComm_t rsComm,
collOprStat_t collOprStat 
)

Definition at line 660 of file rsApiHandler.cpp.

References _svrSendCollOprStat(), LOG_ERROR, rodsLog(), irods.pypyodbc::status, SYS_CLI_TO_SVR_COLL_STAT_REPLY, and UNMATCHED_KEY_OR_INDEX.

Referenced by _rsPhyRmColl(), and rsCollRepl().

Here is the call graph for this function:

◆ svrSendZoneCollOprStat()

int svrSendZoneCollOprStat ( rsComm_t rsComm,
rcComm_t conn,
collOprStat_t collOprStat,
int  retval 
)

Definition at line 705 of file rsApiHandler.cpp.

References _cliGetCollOprStat(), _svrSendCollOprStat(), irods::CS_NEG_USE_SSL(), myWrite(), rcComm_t::negotiation_results, NULL, rcComm_t::sock, rcComm_t::ssl, sslWrite(), irods.pypyodbc::status, SYS_CLI_TO_SVR_COLL_STAT_REPLY, and SYS_SVR_TO_CLI_COLL_STAT.

Referenced by rsCollRepl().

Here is the call graph for this function:

Variable Documentation

◆ Jenv

jmp_buf Jenv

Definition at line 28 of file rsApiHandler.cpp.

Referenced by readTimeoutHandler().