diff options
Diffstat (limited to 'nx-X11/lib/ICE/protosetup.c')
-rw-r--r-- | nx-X11/lib/ICE/protosetup.c | 293 |
1 files changed, 0 insertions, 293 deletions
diff --git a/nx-X11/lib/ICE/protosetup.c b/nx-X11/lib/ICE/protosetup.c deleted file mode 100644 index 7a21e2e1d..000000000 --- a/nx-X11/lib/ICE/protosetup.c +++ /dev/null @@ -1,293 +0,0 @@ -/* $Xorg: protosetup.c,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */ -/****************************************************************************** - - -Copyright 1993, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. - -Author: Ralph Mor, X Consortium -******************************************************************************/ -/* $XFree86: xc/lib/ICE/protosetup.c,v 1.2 2001/10/28 03:32:28 tsi Exp $ */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif -#include <X11/ICE/ICElib.h> -#include "ICElibint.h" - - -IceProtocolSetupStatus -IceProtocolSetup (iceConn, myOpcode, clientData, mustAuthenticate, - majorVersionRet, minorVersionRet, vendorRet, releaseRet, - errorLength, errorStringRet) - -IceConn iceConn; -int myOpcode; -IcePointer clientData; -Bool mustAuthenticate; -int *majorVersionRet; -int *minorVersionRet; -char **vendorRet; -char **releaseRet; -int errorLength; -char *errorStringRet; - -{ - iceProtocolSetupMsg *pMsg; - char *pData; - _IceProtocol *myProtocol; - int extra; - Bool gotReply, ioErrorOccured; - int accepted, i; - int hisOpcode; - unsigned long setup_sequence; - IceReplyWaitInfo replyWait; - _IceReply reply; - IcePoVersionRec *versionRec = NULL; - int authCount; - int *authIndices; - - if (errorStringRet && errorLength > 0) - *errorStringRet = '\0'; - - *majorVersionRet = 0; - *minorVersionRet = 0; - *vendorRet = NULL; - *releaseRet = NULL; - - if (myOpcode < 1 || myOpcode > _IceLastMajorOpcode) - { - strncpy (errorStringRet, "myOpcode out of range", errorLength); - return (IceProtocolSetupFailure); - } - - myProtocol = &_IceProtocols[myOpcode - 1]; - - if (myProtocol->orig_client == NULL) - { - strncpy (errorStringRet, - "IceRegisterForProtocolSetup was not called", errorLength); - return (IceProtocolSetupFailure); - } - - - /* - * Make sure this protocol hasn't been activated already. - */ - - if (iceConn->process_msg_info) - { - for (i = iceConn->his_min_opcode; i <= iceConn->his_max_opcode; i++) - { - if (iceConn->process_msg_info[ - i - iceConn->his_min_opcode].in_use && - iceConn->process_msg_info[ - i - iceConn->his_min_opcode ].my_opcode == myOpcode) - break; - } - - if (i <= iceConn->his_max_opcode) - { - return (IceProtocolAlreadyActive); - } - } - - /* - * Generate the message. - */ - - if (myProtocol->orig_client->auth_count > 0) - { - authIndices = (int *) malloc ( - myProtocol->orig_client->auth_count * sizeof (int)); - - _IceGetPoValidAuthIndices (myProtocol->protocol_name, - iceConn->connection_string, - myProtocol->orig_client->auth_count, - myProtocol->orig_client->auth_names, - &authCount, authIndices); - - } - else - { - authCount = 0; - authIndices = NULL; - } - - extra = STRING_BYTES (myProtocol->protocol_name) + - STRING_BYTES (myProtocol->orig_client->vendor) + - STRING_BYTES (myProtocol->orig_client->release); - - for (i = 0; i < authCount; i++) - { - extra += STRING_BYTES (myProtocol->orig_client->auth_names[ - authIndices[i]]); - } - - extra += (myProtocol->orig_client->version_count * 4); - - IceGetHeaderExtra (iceConn, 0, ICE_ProtocolSetup, - SIZEOF (iceProtocolSetupMsg), WORD64COUNT (extra), - iceProtocolSetupMsg, pMsg, pData); - - setup_sequence = iceConn->send_sequence; - - pMsg->protocolOpcode = myOpcode; - pMsg->versionCount = myProtocol->orig_client->version_count; - pMsg->authCount = authCount; - pMsg->mustAuthenticate = mustAuthenticate; - - STORE_STRING (pData, myProtocol->protocol_name); - STORE_STRING (pData, myProtocol->orig_client->vendor); - STORE_STRING (pData, myProtocol->orig_client->release); - - for (i = 0; i < authCount; i++) - { - STORE_STRING (pData, myProtocol->orig_client->auth_names[ - authIndices[i]]); - } - - for (i = 0; i < myProtocol->orig_client->version_count; i++) - { - STORE_CARD16 (pData, - myProtocol->orig_client->version_recs[i].major_version); - STORE_CARD16 (pData, - myProtocol->orig_client->version_recs[i].minor_version); - } - - IceFlush (iceConn); - - - /* - * Process messages until we get a Protocol Reply. - */ - - replyWait.sequence_of_request = setup_sequence; - replyWait.major_opcode_of_request = 0; - replyWait.minor_opcode_of_request = ICE_ProtocolSetup; - replyWait.reply = (IcePointer) &reply; - - iceConn->protosetup_to_you = (_IceProtoSetupToYouInfo *) malloc ( - sizeof (_IceProtoSetupToYouInfo)); - iceConn->protosetup_to_you->my_opcode = myOpcode; - iceConn->protosetup_to_you->my_auth_count = authCount; - iceConn->protosetup_to_you->auth_active = 0; - iceConn->protosetup_to_you->my_auth_indices = authIndices; - - gotReply = False; - ioErrorOccured = False; - accepted = 0; - - while (!gotReply && !ioErrorOccured) - { - ioErrorOccured = (IceProcessMessages ( - iceConn, &replyWait, &gotReply) == IceProcessMessagesIOError); - - if (ioErrorOccured) - { - strncpy (errorStringRet, - "IO error occured doing Protocol Setup on connection", - errorLength); - return (IceProtocolSetupIOError); - } - else if (gotReply) - { - if (reply.type == ICE_PROTOCOL_REPLY) - { - if (reply.protocol_reply.version_index >= - myProtocol->orig_client->version_count) - { - strncpy (errorStringRet, - "Got a bad version index in the Protocol Reply", - errorLength); - - free (reply.protocol_reply.vendor); - free (reply.protocol_reply.release); - } - else - { - versionRec = &(myProtocol->orig_client->version_recs[ - reply.protocol_reply.version_index]); - - accepted = 1; - } - } - else /* reply.type == ICE_PROTOCOL_ERROR */ - { - /* Protocol Setup failed */ - - strncpy (errorStringRet, reply.protocol_error.error_message, - errorLength); - - free (reply.protocol_error.error_message); - } - - if (iceConn->protosetup_to_you->my_auth_indices) - free ((char *) iceConn->protosetup_to_you->my_auth_indices); - free ((char *) iceConn->protosetup_to_you); - iceConn->protosetup_to_you = NULL; - } - } - - if (accepted) - { - _IceProcessMsgInfo *process_msg_info; - - *majorVersionRet = versionRec->major_version; - *minorVersionRet = versionRec->minor_version; - *vendorRet = reply.protocol_reply.vendor; - *releaseRet = reply.protocol_reply.release; - - - /* - * Increase the reference count for the number of active protocols. - */ - - iceConn->proto_ref_count++; - - - /* - * We may be using a different major opcode for this protocol - * than the other client. Whenever we get a message, we must - * map to our own major opcode. - */ - - hisOpcode = reply.protocol_reply.major_opcode; - - _IceAddOpcodeMapping (iceConn, hisOpcode, myOpcode); - - process_msg_info = &iceConn->process_msg_info[hisOpcode - - iceConn->his_min_opcode]; - - process_msg_info->client_data = clientData; - process_msg_info->accept_flag = 0; - - process_msg_info->process_msg_proc.orig_client = - versionRec->process_msg_proc; - - return (IceProtocolSetupSuccess); - } - else - { - return (IceProtocolSetupFailure); - } -} |