File indexing completed on 2025-01-18 10:14:23
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef _ICECONN_H_
0030 #define _ICECONN_H_
0031
0032 #include <X11/ICE/ICElib.h>
0033
0034
0035
0036
0037
0038 typedef struct _IceSavedReplyWait {
0039 IceReplyWaitInfo *reply_wait;
0040 Bool reply_ready;
0041 struct _IceSavedReplyWait *next;
0042 } _IceSavedReplyWait;
0043
0044 typedef struct _IcePingWait {
0045 IcePingReplyProc ping_reply_proc;
0046 IcePointer client_data;
0047 struct _IcePingWait *next;
0048 } _IcePingWait;
0049
0050 typedef struct {
0051 char *vendor;
0052 char *release;
0053 int version_count;
0054 IcePoVersionRec *version_recs;
0055 int auth_count;
0056 char **auth_names;
0057 IcePoAuthProc *auth_procs;
0058 IceIOErrorProc io_error_proc;
0059 } _IcePoProtocol;
0060
0061 typedef struct {
0062 char *vendor;
0063 char *release;
0064 int version_count;
0065 IcePaVersionRec *version_recs;
0066 IceProtocolSetupProc protocol_setup_proc;
0067 IceProtocolActivateProc protocol_activate_proc;
0068 int auth_count;
0069 char **auth_names;
0070 IcePaAuthProc *auth_procs;
0071 IceHostBasedAuthProc host_based_auth_proc;
0072 IceIOErrorProc io_error_proc;
0073 } _IcePaProtocol;
0074
0075 typedef struct {
0076 char *protocol_name;
0077 _IcePoProtocol *orig_client;
0078 _IcePaProtocol *accept_client;
0079 } _IceProtocol;
0080
0081 typedef struct {
0082 Bool in_use;
0083 int my_opcode;
0084 _IceProtocol *protocol;
0085 IcePointer client_data;
0086 Bool accept_flag;
0087 union {
0088 IcePaProcessMsgProc accept_client;
0089 IcePoProcessMsgProc orig_client;
0090 } process_msg_proc;
0091 } _IceProcessMsgInfo;
0092
0093 typedef struct {
0094 int his_version_index;
0095 int my_version_index;
0096 char *his_vendor;
0097 char *his_release;
0098 char my_auth_index;
0099 IcePointer my_auth_state;
0100 Bool must_authenticate;
0101 } _IceConnectToMeInfo;
0102
0103 typedef struct {
0104 int his_opcode;
0105 int my_opcode;
0106 int his_version_index;
0107 int my_version_index;
0108 char *his_vendor;
0109 char *his_release;
0110 char my_auth_index;
0111 IcePointer my_auth_state;
0112 Bool must_authenticate;
0113 } _IceProtoSetupToMeInfo;
0114
0115 typedef struct {
0116 Bool auth_active;
0117 char my_auth_index;
0118 IcePointer my_auth_state;
0119 } _IceConnectToYouInfo;
0120
0121 typedef struct {
0122 int my_opcode;
0123 int my_auth_count;
0124 int *my_auth_indices;
0125 Bool auth_active;
0126 char my_auth_index;
0127 IcePointer my_auth_state;
0128 } _IceProtoSetupToYouInfo;
0129
0130
0131 struct _IceConn {
0132
0133 unsigned int io_ok : 1;
0134 unsigned int swap : 1;
0135 unsigned int waiting_for_byteorder : 1;
0136 unsigned int skip_want_to_close : 1;
0137 unsigned int want_to_close : 1;
0138 unsigned int free_asap : 1;
0139 unsigned int unused1 : 2;
0140 unsigned int unused2 : 8;
0141
0142 IceConnectStatus connection_status;
0143
0144 unsigned char my_ice_version_index;
0145
0146 struct _XtransConnInfo *trans_conn;
0147 unsigned long send_sequence;
0148 unsigned long receive_sequence;
0149
0150 char *connection_string;
0151 char *vendor;
0152 char *release;
0153
0154 char *inbuf;
0155 char *inbufptr;
0156 char *inbufmax;
0157
0158 char *outbuf;
0159 char *outbufptr;
0160 char *outbufmax;
0161
0162 char *scratch;
0163 unsigned long scratch_size;
0164
0165 int dispatch_level;
0166
0167 IcePointer context;
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186 _IceProcessMsgInfo *process_msg_info;
0187 char his_min_opcode;
0188 char his_max_opcode;
0189
0190
0191
0192
0193
0194
0195
0196 unsigned char open_ref_count;
0197
0198
0199
0200
0201
0202
0203 unsigned char proto_ref_count;
0204
0205
0206
0207
0208
0209
0210
0211
0212 IceListenObj listen_obj;
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222 _IceSavedReplyWait *saved_reply_waits;
0223
0224
0225
0226
0227
0228
0229
0230 _IcePingWait *ping_waits;
0231
0232
0233
0234
0235
0236
0237 _IceConnectToYouInfo *connect_to_you;
0238 _IceProtoSetupToYouInfo *protosetup_to_you;
0239
0240
0241
0242
0243
0244
0245 _IceConnectToMeInfo *connect_to_me;
0246 _IceProtoSetupToMeInfo *protosetup_to_me;
0247
0248 };
0249
0250 #endif