void SQLEXECUTECALL_swap(char* buffer)
{
	short number_of_param = ExecuteCall_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
//	IDL_char *stmtLabel;
//	IDL_string cursorName;
	IDL_short *sqlStmtType;
	IDL_long *inputRowCnt;
	SQLValueList_def *inputValueList;
	IDL_short *sqlAsyncEnable;
	IDL_long *queryTimeout;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	sqlStmtType = (IDL_short *)(param[3] + (long)buffer);
	inputRowCnt = (IDL_long *)(param[4] + (long)buffer);
	inputValueList = (SQLValueList_def *)(param[5] + (long)buffer);
	sqlAsyncEnable = (IDL_short *)(param[6] + (long)buffer);
	queryTimeout = (IDL_long *)(param[7] + (long)buffer);
//
// swap
//
	LONG_swap(dialogueId);
	SHORT_swap(sqlStmtType);
	LONG_swap(inputRowCnt);
	SQL_VALUE_LIST_swap(buffer, inputValueList);
	SHORT_swap(sqlAsyncEnable);
	LONG_swap(queryTimeout);

	swapPointers(buffer, number_of_param);
}
Example #2
0
void SQL_ITEM_DESC_LIST_swap(char* buffer, SQLItemDescList_def *itemList)
{
	SQLItemDesc_def *_buffer = itemList->_buffer;
	IDL_unsigned_long _length = itemList->_length;

	if (_buffer != NULL && _length != 0 )
	{
		SQLItemDesc_def *pitem;
		ULONG_swap(&itemList->_length);
		_buffer = (SQLItemDesc_def *)((long)_buffer + (long)buffer);

		for (unsigned int i=0; i<_length; i++)
		{
			pitem = _buffer + i;

			LONG_swap(&pitem->version);
			LONG_swap(&pitem->dataType);
			LONG_swap(&pitem->datetimeCode);
			LONG_swap(&pitem->maxLen);
			SHORT_swap(&pitem->precision);
			SHORT_swap(&pitem->scale);
			LONG_swap(&pitem->ODBCDataType);
			SHORT_swap(&pitem->ODBCPrecision);
			LONG_swap(&pitem->SQLCharset);
			LONG_swap(&pitem->ODBCCharset);
			LONG_swap(&pitem->intLeadPrec);
			LONG_swap(&pitem->paramMode);
		}
	}
}
void SQLEXECDIRECT_swap(char* buffer)
{
	short number_of_param = ExecDirect_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;
	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
//	IDL_char *stmtLabel;
//	IDL_string cursorName;
//	IDL_char *stmtExplainLabel;
	IDL_short* stmtType;
	IDL_short *sqlStmtType;
//	IDL_string sqlString;
	IDL_short *sqlAsyncEnable;
	IDL_long *queryTimeout;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	stmtType = (IDL_short *)(param[4] + (long)buffer);
	sqlStmtType = (IDL_short *)(param[5] + (long)buffer);
	sqlAsyncEnable = (IDL_short *)(param[7] + (long)buffer);
	queryTimeout = (IDL_long *)(param[8] + (long)buffer);
//
// swap
//
	LONG_swap(dialogueId);
	SHORT_swap(stmtType);
	SHORT_swap(sqlStmtType);
	SHORT_swap(sqlAsyncEnable);
	LONG_swap(queryTimeout);

	swapPointers(buffer, number_of_param);
}
void SQLEXECUTEROWSET_swap(char* buffer)
{
	short number_of_param = ExecuteRowset_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
//	IDL_char *stmtLabel;
//	IDL_string cursorName;
	IDL_short *sqlStmtType;
	IDL_long *inputRowCnt;
	SQL_DataValue_def *inputDataValue;
	IDL_short *sqlAsyncEnable;
	IDL_long *queryTimeout;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	sqlStmtType = (IDL_short *)(param[3] + (long)buffer);
	inputRowCnt = (IDL_long *)(param[4] + (long)buffer);
	inputDataValue = (SQL_DataValue_def *)(param[5] + (long)buffer);
	sqlAsyncEnable = (IDL_short *)(param[6] + (long)buffer);
	queryTimeout = (IDL_long *)(param[7] + (long)buffer);
//
// swap
//
	LONG_swap(dialogueId);
	SHORT_swap(sqlStmtType);
	LONG_swap(inputRowCnt);
	ULONG_swap(&inputDataValue->_length);
	SHORT_swap(sqlAsyncEnable);
	LONG_swap(queryTimeout);

	swapPointers(buffer, number_of_param);
}
void SQLPREPARE_swap(char* buffer)
{
	short number_of_param = Prepare_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;
	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
//	IDL_char *stmtLabel;
//	IDL_char *stmtExplainLabel;
	IDL_short *stmtType;
//	IDL_string sqlString;
	IDL_short *sqlAsyncEnable;
	IDL_long *queryTimeout;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	stmtType = (IDL_short *)(param[3] + (long)buffer);;
	sqlAsyncEnable = (IDL_short *)(param[5] + (long)buffer);;
	queryTimeout = (IDL_long *)(param[6] + (long)buffer);;
//
// swap
//
	LONG_swap(dialogueId);
	SHORT_swap(stmtType);
	SHORT_swap(sqlAsyncEnable);
	LONG_swap(queryTimeout);

	swapPointers(buffer, number_of_param);
}
Example #6
0
void HEADER_swap(HEADER* header)
{
	SHORT_swap(&header->operation_id);
	LONG_swap(&header->dialogueId);
	ULONG_swap(&header->total_length);
	ULONG_swap(&header->cmp_length);
	LONG_swap((IDL_long*)&header->hdr_type);
	ULONG_swap(&header->signature);
	ULONG_swap(&header->version);
	SHORT_swap(&header->error);
	SHORT_swap(&header->error_detail);
}
void SQLGETCATALOGS_swap(char* buffer)
{
	short number_of_param = GetSQLCatalogs_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
//	IDL_char *stmtLabel;
	IDL_short *APIType;
//	IDL_char *catalogNm;
//	IDL_char *schemaNm;
//	IDL_char *tableNm;
//	IDL_char *tableTypeList;
//	IDL_char *columnNm;
	IDL_long *columnType;
	IDL_long *rowIdScope;
	IDL_long *nullable;
	IDL_long *uniqueness;
	IDL_long *accuracy;
	IDL_short *sqlType;
	IDL_unsigned_long *metadataId;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	APIType = (IDL_short *)(param[2] + (long)buffer);
	columnType = (IDL_long *)(param[8] + (long)buffer);
	rowIdScope = (IDL_long *)(param[9] + (long)buffer);
	nullable = (IDL_long *)(param[10] + (long)buffer);
	uniqueness = (IDL_long *)(param[11] + (long)buffer);
	accuracy = (IDL_long *)(param[12] + (long)buffer);
	sqlType = (IDL_short *)(param[13] + (long)buffer);
	metadataId = (IDL_unsigned_long *)(param[14] + (long)buffer);
//
// swap
//
	LONG_swap(dialogueId);
	SHORT_swap(APIType);
	LONG_swap(columnType);
	LONG_swap(rowIdScope);
	LONG_swap(nullable);
	LONG_swap(uniqueness);
	LONG_swap(accuracy);
	SHORT_swap(sqlType);
	ULONG_swap(metadataId);

	swapPointers(buffer, number_of_param);
}
Example #8
0
void SQL_VALUE_LIST_swap(char* buffer, SQLValueList_def *valueList)
{
	SQLValue_def *_buffer = valueList->_buffer;
	IDL_unsigned_long _length = valueList->_length;

	if (_buffer != NULL && _length != 0 )
	{
		SQLValue_def *pval;
		ULONG_swap(&valueList->_length);
		_buffer = (SQLValue_def *)((long)_buffer + (long)buffer);

		for (unsigned int i=0; i<_length; i++)
		{
			SQL_DataValue_def *pdataValue;
			pval = _buffer + i;

			LONG_swap(&pval->dataType);
			SHORT_swap(&pval->dataInd);
			LONG_swap(&pval->dataCharset);

			pdataValue = &pval->dataValue;
			ULONG_swap(&pdataValue->_length);
		}
	}
}
void SQLFETCHPERF_swap(char* buffer)
{
	short number_of_param = FetchPerf_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
//	IDL_char *stmtLabel;
	IDL_long *maxRowCnt;
	IDL_long *maxRowLen;
	IDL_short *sqlAsyncEnable;
	IDL_long *queryTimeout;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	maxRowCnt = (IDL_long *)(param[2] + (long)buffer);
	maxRowLen = (IDL_long *)(param[3] + (long)buffer);
	sqlAsyncEnable = (IDL_short *)(param[4] + (long)buffer);
	queryTimeout = (IDL_long *)(param[5] + (long)buffer);
//
// swap
//
	LONG_swap(dialogueId);
	LONG_swap(maxRowCnt);
	LONG_swap(maxRowLen);
	SHORT_swap(sqlAsyncEnable);
	LONG_swap(queryTimeout);

	swapPointers(buffer, number_of_param);
}
void SQLSETCONNECTATTR_swap(char* buffer)
{
	short number_of_param = SetConnectionOption_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	DIALOGUE_ID_def *dialogueId;
	IDL_short *connectionOption;
	IDL_long *optionValueNum;
//	IDL_string optionValueStr;

	dialogueId = (IDL_long *)(param[0] + (long)buffer);
	connectionOption = (IDL_short *)(param[1] + (long)buffer);;
	optionValueNum = (IDL_long *)(param[2] + (long)buffer);;
//
// swap
//
	LONG_swap(dialogueId);
	SHORT_swap(connectionOption);
	LONG_swap(optionValueNum);

	swapPointers(buffer, number_of_param);
}
void GETOBJREF_swap(char* buffer)
{
	short number_of_param = GetObjRefHdl_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	CONNECTION_CONTEXT_def *inContext; 
	USER_DESC_def *userDesc;
	IDL_long *srvrType;
	IDL_short *retryCount;

	inContext = (CONNECTION_CONTEXT_def *)(param[0] + (long)buffer); 
	userDesc = (USER_DESC_def *)(param[1] + (long)buffer);
	srvrType = (IDL_long *)(param[2] + (long)buffer);
	retryCount = (IDL_short *)(param[3] + (long)buffer);
//
// swap CONNECTION_CONTEXT_def
//
	SHORT_swap(&inContext->accessMode);
	SHORT_swap(&inContext->autoCommit);
	SHORT_swap(&inContext->queryTimeoutSec);
	SHORT_swap(&inContext->idleTimeoutSec);
	SHORT_swap(&inContext->loginTimeoutSec);
	SHORT_swap(&inContext->txnIsolationLevel);
	SHORT_swap(&inContext->rowSetSize);
	LONG_swap(&inContext->diagnosticFlag);
	ULONG_swap(&inContext->processId);
	ULONG_swap(&inContext->ctxACP);
	ULONG_swap(&inContext->ctxDataLang);
	ULONG_swap(&inContext->ctxErrorLang);
	SHORT_swap(&inContext->ctxCtrlInferNCHAR);
	VERSION_LIST_swap(buffer, &inContext->clientVersionList);
//
// swap userDesc
//
	LONG_swap(&userDesc->userDescType);
	ULONG_swap(&userDesc->userSid._length);
	ULONG_swap(&userDesc->password._length);
//
// swap srvrType
//
	LONG_swap(srvrType);
//
// swap retryCount
//
	SHORT_swap(retryCount);

	swapPointers(buffer, number_of_param);
	
}
void SQLCONNECT_swap(char* buffer)
{
	short number_of_param = InitializeDialogue_in_params;
	long* param = (long*)buffer;
	long* pointers = (long*)buffer;

	pointers += number_of_param;

	USER_DESC_def *userDesc; 
	CONNECTION_CONTEXT_def *inContext;
	DIALOGUE_ID_def *dialogueId;

	userDesc = (USER_DESC_def *)(param[0] + (long)buffer);
	inContext = (CONNECTION_CONTEXT_def *)(param[1] + (long)buffer); 
	dialogueId = (IDL_long *)(param[2] + (long)buffer);
//
// swap userDesc
//
	LONG_swap(&userDesc->userDescType);
	ULONG_swap(&userDesc->userSid._length);
	ULONG_swap(&userDesc->password._length);
//
// swap CONNECTION_CONTEXT_def
//
	SHORT_swap(&inContext->accessMode);
	SHORT_swap(&inContext->autoCommit);
	SHORT_swap(&inContext->queryTimeoutSec);
	SHORT_swap(&inContext->idleTimeoutSec);
	SHORT_swap(&inContext->loginTimeoutSec);
	SHORT_swap(&inContext->txnIsolationLevel);
	SHORT_swap(&inContext->rowSetSize);
	LONG_swap(&inContext->diagnosticFlag);
	ULONG_swap(&inContext->processId);
	ULONG_swap(&inContext->ctxACP);
	ULONG_swap(&inContext->ctxDataLang);
	ULONG_swap(&inContext->ctxErrorLang);
	SHORT_swap(&inContext->ctxCtrlInferNCHAR);
	VERSION_LIST_swap(buffer, &inContext->clientVersionList);
//
// swap DIALOGUE_ID_def
//
	LONG_swap(dialogueId);

	swapPointers(buffer, number_of_param);
}
extern "C" CEE_status
odbcas_ASSvc_GetObjRefHdl_(
    /* In    */ const CEE_handle_def *ph_
  , /* In    */ CEE_tag_def tag_
  , /* In    */ const CONNECTION_CONTEXT_def *inContext
  , /* In    */ const USER_DESC_def *userDesc
  , /* In    */ IDL_long srvrType
  , /* In    */ IDL_short retryCount
  , /* Out   */ odbcas_ASSvc_GetObjRefHdl_exc_ *exception_
  , /* Out   */	char 				*srvrObjRef
  , /* Out   */ DIALOGUE_ID_def 	*dialogueId
  , /* Out   */ char 				*dataSource
  , /* Out   */ USER_SID_def 		*userSid
  , /* Out   */ VERSION_LIST_def 	*versionList
  , /* Out   */ IDL_long		 	*isoMapping
  , /* Out   */ IDL_long		 	*srvrNodeId
  , /* Out   */ IDL_long		 	*srvrProcessId
  , /* Out   */ IDL_long_long	 	*timestamp
  )
{
	CEE_status retcode;
	bool sts;
	IDL_long wlength,rlength;
	IDL_char* wbuffer, *rbuffer;
	IDL_char* curptr;

	IDL_long msg_total_length = 0;
	IDL_long exceptionLength = 0;
	IDL_long datasourceLength = 0;
	IDL_long srvrObjRefLength = 0;
	IDL_long userSidLength = 0;
	IDL_long clusternameLength = 0;

	VERSION_def version[4];
	VERSION_def* versionPtr = &version[0];

	char srvrHostName[100] = {0};
	IDL_long srvrHostNameLength = 0;
	char srvrProcessName[100] = {0};
	IDL_long srvrProcessNameLength = 0;
	char srvrIpAddress[100] = {0};
	IDL_long srvrIpAddressLength = 0;
	IDL_long srvrPort = 0;
	
	SRVR_CALL_CONTEXT *srvrCallContext = (SRVR_CALL_CONTEXT *)tag_;
	CConnect *pConnection = (CConnect *)srvrCallContext->sqlHandle;

	pConnection->m_asTCPIPSystem->odbcAPI = AS_API_GETOBJREF;
	pConnection->m_asTCPIPSystem->dialogueId = srvrCallContext->dialogueId;
	pConnection->m_asTCPIPSystem->dwTimeout = srvrCallContext->u.connectParams.loginTimeout;

//
// do marshaling of input parameters
//
	retcode = odbcas_ASSvc_GetObjRefHdl_param_pst_(
		  pConnection->m_asTCPIPSystem
		, wbuffer
		, wlength
		, inContext
		, userDesc
		, srvrType
		, retryCount);

	if (retcode != CEE_SUCCESS)
		return retcode;

	sts = OpenIO (pConnection->m_asTCPIPSystem,pConnection->getAsObjRef());
	if (sts == false)
		return MAP_AS_ERRORS((long)pConnection->m_asTCPIPSystem);

	sts = DoIO (pConnection->m_asTCPIPSystem, wbuffer, wlength, rbuffer, rlength,pConnection);
 	if (sts == false)
		return MAP_AS_ERRORS((long)pConnection->m_asTCPIPSystem);

	CloseIO (pConnection->m_asTCPIPSystem);

//
// process output parameters
//
	char swap = pConnection->m_asTCPIPSystem->swap();

	curptr = rbuffer;
	//
	// copy odbcas_ASSvc_GetObjRefHdl_exc_ *exception_
	//

	exception_->exception_nr = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(exception_->exception_nr);
	LONG_swap(&exception_->exception_nr,swap);

	exception_->exception_detail = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(exception_->exception_detail);
	LONG_swap(&exception_->exception_detail,swap);

	exceptionLength = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(exceptionLength);
	LONG_swap(&exceptionLength,swap);

    if(exceptionLength > 0)
	{
       exception_->u.ASParamError.ErrorText = (IDL_char*)(curptr+msg_total_length);
       msg_total_length += exceptionLength;
	   return CEE_SUCCESS; // no point in continuing
	}

	//
	// copy DIALOGUE_ID_def dialogueId
	//
	*dialogueId = *(IDL_long *) (curptr + msg_total_length);
	msg_total_length += sizeof(*dialogueId);
	LONG_swap(dialogueId,swap);
	//
	// copy IDL_char *dataSource
	//
	datasourceLength = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(datasourceLength);
	LONG_swap(&datasourceLength,swap);
	if (datasourceLength != 0)
	{
		memcpy(dataSource, curptr + msg_total_length, datasourceLength);
		msg_total_length += datasourceLength;
	}

	// copy userSidLength
	userSid->_length = *(IDL_unsigned_long *)(curptr+msg_total_length);
	msg_total_length += sizeof(userSid->_length);
	ULONG_swap(&userSid->_length,swap);

	// copy userSid
	if (userSid->_length != 0)
	{
        userSid->_buffer = (unsigned char *)(IDL_char*)(curptr+msg_total_length);
		msg_total_length += userSid->_length+1;
	}

	// copy VERSION_LIST_def *versionList
	
	versionList->_length = *(IDL_unsigned_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(versionList->_length);
	ULONG_swap(&versionList->_length,swap);

	// Get the versionPtr
	versionList->_buffer = (VERSION_def *)new char[versionList->_length*sizeof(VERSION_def)];
	versionPtr = versionList->_buffer; 
	
	for (int i = 0; i < versionList->_length; i++)
	{
		// copy componentId
		versionPtr->componentId = *(IDL_short *)(curptr + msg_total_length);
		msg_total_length += sizeof(versionPtr->componentId);
		SHORT_swap(&versionPtr->componentId,swap);

		// copy majorVersion
		versionPtr->majorVersion = *(IDL_short *)(curptr + msg_total_length);
		msg_total_length += sizeof(versionPtr->majorVersion);
		SHORT_swap(&versionPtr->majorVersion,swap);

		// copy minorVersion
		versionPtr->minorVersion = *(IDL_short *)(curptr + msg_total_length);
		msg_total_length += sizeof(versionPtr->minorVersion);
		SHORT_swap(&versionPtr->minorVersion,swap);

		// copy buildId
		versionPtr->buildId = *(IDL_unsigned_long *)(curptr + msg_total_length);
		msg_total_length += sizeof(versionPtr->buildId);
		ULONG_swap(&versionPtr->buildId,swap);
		
		// Get the next versionlist values
		versionPtr++;
	}

	//Check whether connected to an R2.3 server
	if (versionList->_buffer->buildId & CHARSET)
	{
		//
		// copy IDL_long isoMapping
		//
		*isoMapping = *(IDL_long *) (curptr + msg_total_length);
		msg_total_length += sizeof(*isoMapping);
	LONG_swap(isoMapping,swap);
	}
	else
		*isoMapping = NON_CHARSET_SYSTEM ; //Connected to an R2.2 system.

	//
	// copy IDL_char *srvrHostName
	//
	srvrHostNameLength = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(srvrHostNameLength);
	LONG_swap(&srvrHostNameLength,swap);
	if (srvrHostNameLength != 0)
	{
		memcpy(srvrHostName, curptr + msg_total_length, srvrHostNameLength);
		msg_total_length += srvrHostNameLength;
	}
	//
	// copy IDL_long srvrNodeId
	//
	*srvrNodeId = *(IDL_long *) (curptr + msg_total_length);
	msg_total_length += sizeof(*srvrNodeId);
	LONG_swap(srvrNodeId,swap);
	//
	// copy IDL_long srvrProcessId
	//
	*srvrProcessId = *(IDL_long *) (curptr + msg_total_length);
	msg_total_length += sizeof(*srvrProcessId);
	LONG_swap(srvrProcessId,swap);
	//
	// copy IDL_char *srvrProcessName
	//
	srvrProcessNameLength = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(srvrProcessNameLength);
	LONG_swap(&srvrProcessNameLength,swap);
	if (srvrProcessNameLength != 0)
	{
		memcpy(srvrProcessName, curptr + msg_total_length, srvrProcessNameLength);
		msg_total_length += srvrProcessNameLength;
	}
	//
	// copy IDL_char *srvrIpAddress
	//
	srvrIpAddressLength = *(IDL_long *)(curptr + msg_total_length);
	msg_total_length += sizeof(srvrIpAddressLength);
	LONG_swap(&srvrIpAddressLength,swap);
	if (srvrProcessNameLength != 0)
	{
		memcpy(srvrIpAddress, curptr + msg_total_length, srvrIpAddressLength);
		msg_total_length += srvrIpAddressLength;
	}
	//
	// copy IDL_long srvrPort
	//
	srvrPort = *(IDL_long *) (curptr + msg_total_length);
	msg_total_length += sizeof(srvrPort);
	LONG_swap(&srvrPort,swap);

	sprintf(srvrObjRef,"TCP:%s:%d.%s,%s/%d:ODBC", srvrHostName, *srvrNodeId, srvrProcessName, srvrIpAddress, srvrPort);


	//Check whether connected to server with password security support
	if (versionList->_buffer->buildId & PASSWORD_SECURITY)
	{
		//
		// copy IDL_long_long timestamp
		//
		*timestamp = *(IDL_long_long *) (curptr + msg_total_length);
		msg_total_length += sizeof(*timestamp);
		LONGLONG_swap(timestamp,swap);

		//
		// copy clustername
		//
		clusternameLength = *(IDL_long *)(curptr + msg_total_length);
		msg_total_length += sizeof(clusternameLength);
		LONG_swap(&clusternameLength,swap);
		if (clusternameLength != 0)
		{
			memcpy(pConnection->m_ClusterName, curptr + msg_total_length, clusternameLength);
			msg_total_length += clusternameLength;
		}

	}
	return CEE_SUCCESS;
}
Example #14
0
void OUT_CONNECTION_CONTEXT_swap(char* buffer, OUT_CONNECTION_CONTEXT_def *outContext)
{
	VERSION_LIST_swap(buffer, &outContext->versionList);
	SHORT_swap(&outContext->nodeId);
	ULONG_swap(&outContext->processId);
}