ICElibint.h revision 9ef0b394
1266e564dSmrg/****************************************************************************** 2266e564dSmrg 3266e564dSmrg 4266e564dSmrgCopyright 1993, 1998 The Open Group 5266e564dSmrg 6266e564dSmrgPermission to use, copy, modify, distribute, and sell this software and its 7266e564dSmrgdocumentation for any purpose is hereby granted without fee, provided that 8266e564dSmrgthe above copyright notice appear in all copies and that both that 9266e564dSmrgcopyright notice and this permission notice appear in supporting 10266e564dSmrgdocumentation. 11266e564dSmrg 12266e564dSmrgThe above copyright notice and this permission notice shall be included in 13266e564dSmrgall copies or substantial portions of the Software. 14266e564dSmrg 15266e564dSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16266e564dSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17266e564dSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18266e564dSmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 19266e564dSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20266e564dSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21266e564dSmrg 22266e564dSmrgExcept as contained in this notice, the name of The Open Group shall not be 23266e564dSmrgused in advertising or otherwise to promote the sale, use or other dealings 24266e564dSmrgin this Software without prior written authorization from The Open Group. 25266e564dSmrg 26266e564dSmrgAuthor: Ralph Mor, X Consortium 27266e564dSmrg******************************************************************************/ 28266e564dSmrg 29266e564dSmrg#ifndef _ICELIBINT_H_ 30266e564dSmrg#define _ICELIBINT_H_ 31266e564dSmrg 32266e564dSmrg#include <X11/Xos.h> 33266e564dSmrg#include <X11/Xfuncs.h> 34266e564dSmrg#include <X11/Xmd.h> 35266e564dSmrg#include <X11/ICE/ICEproto.h> 36266e564dSmrg#include <X11/ICE/ICEconn.h> 37266e564dSmrg#include <X11/ICE/ICEmsg.h> 38698f425bSmrg#include <X11/ICE/ICEutil.h> 39c5629e66Smrg#ifdef WIN32 40c5629e66Smrg#include <X11/Xwindows.h> 41c5629e66Smrg#endif 42266e564dSmrg 43266e564dSmrg#include <stdlib.h> 44266e564dSmrg#include <stddef.h> 45266e564dSmrg 46266e564dSmrg 47266e564dSmrg/* 48266e564dSmrg * Vendor & Release 49266e564dSmrg */ 50266e564dSmrg 51266e564dSmrg#define IceVendorString "MIT" 52266e564dSmrg#define IceReleaseString "1.0" 53266e564dSmrg 54266e564dSmrg 55266e564dSmrg/* 56266e564dSmrg * Pad to a 64 bit boundary 57266e564dSmrg */ 58266e564dSmrg 59266e564dSmrg#define PAD64(_bytes) ((8 - ((unsigned int) (_bytes) % 8)) % 8) 60266e564dSmrg 61266e564dSmrg#define PADDED_BYTES64(_bytes) (_bytes + PAD64 (_bytes)) 62266e564dSmrg 63266e564dSmrg 64266e564dSmrg/* 65266e564dSmrg * Pad to 32 bit boundary 66266e564dSmrg */ 67266e564dSmrg 68266e564dSmrg#define PAD32(_bytes) ((4 - ((unsigned int) (_bytes) % 4)) % 4) 69266e564dSmrg 70266e564dSmrg#define PADDED_BYTES32(_bytes) (_bytes + PAD32 (_bytes)) 71266e564dSmrg 72266e564dSmrg 73266e564dSmrg/* 74266e564dSmrg * Number of 8 byte units in _bytes. 75266e564dSmrg */ 76266e564dSmrg 77266e564dSmrg#define WORD64COUNT(_bytes) (((unsigned int) ((_bytes) + 7)) >> 3) 78266e564dSmrg 79266e564dSmrg 80266e564dSmrg/* 81266e564dSmrg * Number of 4 byte units in _bytes. 82266e564dSmrg */ 83266e564dSmrg 84266e564dSmrg#define WORD32COUNT(_bytes) (((unsigned int) ((_bytes) + 3)) >> 2) 85266e564dSmrg 86266e564dSmrg 87266e564dSmrg/* 88266e564dSmrg * Given a string, compute the number of bytes for the STRING representation 89266e564dSmrg */ 90266e564dSmrg 91266e564dSmrg#define STRING_BYTES(_string) \ 92266e564dSmrg (2 + strlen (_string) + PAD32 (2 + strlen (_string))) 93266e564dSmrg 94266e564dSmrg 95266e564dSmrg/* 96266e564dSmrg * Size of ICE input/output buffers 97266e564dSmrg */ 98266e564dSmrg 99266e564dSmrg#define ICE_INBUFSIZE 1024 100266e564dSmrg 101266e564dSmrg#define ICE_OUTBUFSIZE 1024 102266e564dSmrg 103266e564dSmrg 104266e564dSmrg/* 105266e564dSmrg * Maxium number of ICE authentication methods allowed, and maxiumum 106266e564dSmrg * number of authentication data entries allowed to be set in the 107266e564dSmrg * IceSetPaAuthData function. 108266e564dSmrg * 109266e564dSmrg * We should use linked lists, but this is easier and should suffice. 110266e564dSmrg */ 111266e564dSmrg 112266e564dSmrg#define MAX_ICE_AUTH_NAMES 32 113266e564dSmrg#define ICE_MAX_AUTH_DATA_ENTRIES 100 114266e564dSmrg 115266e564dSmrg 116266e564dSmrg/* 117266e564dSmrg * ICE listen object 118266e564dSmrg */ 119266e564dSmrg 120266e564dSmrgstruct _IceListenObj { 121266e564dSmrg struct _XtransConnInfo *trans_conn; /* transport connection object */ 122266e564dSmrg char *network_id; 123266e564dSmrg IceHostBasedAuthProc host_based_auth_proc; 124266e564dSmrg}; 125266e564dSmrg 126266e564dSmrg 127266e564dSmrg/* 128266e564dSmrg * Some internal data structures for processing ICE messages. 129266e564dSmrg */ 130266e564dSmrg 131266e564dSmrgtypedef void (*_IceProcessCoreMsgProc) ( 132266e564dSmrg IceConn /* iceConn */, 133266e564dSmrg int /* opcode */, 134266e564dSmrg unsigned long /* length */, 135266e564dSmrg Bool /* swap */, 136266e564dSmrg IceReplyWaitInfo * /* replyWait */, 137266e564dSmrg Bool * /* replyReadyRet */, 138266e564dSmrg Bool * /* connectionClosedRet */ 139266e564dSmrg); 140266e564dSmrg 141266e564dSmrgtypedef struct { 142266e564dSmrg int major_version; 143266e564dSmrg int minor_version; 144266e564dSmrg _IceProcessCoreMsgProc process_core_msg_proc; 145266e564dSmrg} _IceVersion; 146266e564dSmrg 147266e564dSmrg 148266e564dSmrg/* 149266e564dSmrg * STORE FOO 150266e564dSmrg */ 151266e564dSmrg 152266e564dSmrg#define STORE_CARD8(_pBuf, _val) \ 153266e564dSmrg{ \ 154266e564dSmrg *((CARD8 *) _pBuf) = _val; \ 155266e564dSmrg _pBuf += 1; \ 156266e564dSmrg} 157266e564dSmrg 158266e564dSmrg#ifndef WORD64 159266e564dSmrg 160266e564dSmrg#define STORE_CARD16(_pBuf, _val) \ 161266e564dSmrg{ \ 162266e564dSmrg *((CARD16 *) _pBuf) = _val; \ 163266e564dSmrg _pBuf += 2; \ 164266e564dSmrg} 165266e564dSmrg 166266e564dSmrg#define STORE_CARD32(_pBuf, _val) \ 167266e564dSmrg{ \ 168266e564dSmrg *((CARD32 *) _pBuf) = _val; \ 169266e564dSmrg _pBuf += 4; \ 170266e564dSmrg} 171266e564dSmrg 172266e564dSmrg#else /* WORD64 */ 173266e564dSmrg 174266e564dSmrg#define STORE_CARD16(_pBuf, _val) \ 175266e564dSmrg{ \ 176266e564dSmrg struct { \ 177266e564dSmrg int value :16; \ 178266e564dSmrg int pad :16; \ 179266e564dSmrg } _d; \ 180266e564dSmrg _d.value = _val; \ 181266e564dSmrg memcpy (_pBuf, &_d, 2); \ 182266e564dSmrg _pBuf += 2; \ 183266e564dSmrg} 184266e564dSmrg 185266e564dSmrg#define STORE_CARD32(_pBuf, _val) \ 186266e564dSmrg{ \ 187266e564dSmrg struct { \ 188266e564dSmrg int value :32; \ 189266e564dSmrg } _d; \ 190266e564dSmrg _d.value = _val; \ 191266e564dSmrg memcpy (_pBuf, &_d, 4); \ 192266e564dSmrg _pBuf += 4; \ 193266e564dSmrg} 194266e564dSmrg 195266e564dSmrg#endif /* WORD64 */ 196266e564dSmrg 197266e564dSmrg#define STORE_STRING(_pBuf, _string) \ 198266e564dSmrg{ \ 199266e564dSmrg CARD16 _len = strlen (_string); \ 200266e564dSmrg STORE_CARD16 (_pBuf, _len); \ 201266e564dSmrg memcpy (_pBuf, _string, _len); \ 202266e564dSmrg _pBuf += _len; \ 203266e564dSmrg if (PAD32 (2 + _len)) \ 204266e564dSmrg _pBuf += PAD32 (2 + _len); \ 205266e564dSmrg} 206266e564dSmrg 207266e564dSmrg 208266e564dSmrg/* 209266e564dSmrg * EXTRACT FOO 210266e564dSmrg */ 211266e564dSmrg 212266e564dSmrg#define EXTRACT_CARD8(_pBuf, _val) \ 213266e564dSmrg{ \ 214266e564dSmrg _val = *((CARD8 *) _pBuf); \ 215266e564dSmrg _pBuf += 1; \ 216266e564dSmrg} 217266e564dSmrg 218266e564dSmrg#ifndef WORD64 219266e564dSmrg 220266e564dSmrg#define EXTRACT_CARD16(_pBuf, _swap, _val) \ 221266e564dSmrg{ \ 222266e564dSmrg _val = *((CARD16 *) _pBuf); \ 223266e564dSmrg _pBuf += 2; \ 224266e564dSmrg if (_swap) \ 225266e564dSmrg _val = lswaps (_val); \ 226266e564dSmrg} 227266e564dSmrg 228266e564dSmrg#define EXTRACT_CARD32(_pBuf, _swap, _val) \ 229266e564dSmrg{ \ 230266e564dSmrg _val = *((CARD32 *) _pBuf); \ 231266e564dSmrg _pBuf += 4; \ 232266e564dSmrg if (_swap) \ 233266e564dSmrg _val = lswapl (_val); \ 234266e564dSmrg} 235266e564dSmrg 236266e564dSmrg#else /* WORD64 */ 237266e564dSmrg 238266e564dSmrg#define EXTRACT_CARD16(_pBuf, _swap, _val) \ 239266e564dSmrg{ \ 240266e564dSmrg _val = *(_pBuf + 0) & 0xff; /* 0xff incase _pBuf is signed */ \ 241266e564dSmrg _val <<= 8; \ 242266e564dSmrg _val |= *(_pBuf + 1) & 0xff;\ 243266e564dSmrg _pBuf += 2; \ 244266e564dSmrg if (_swap) \ 245266e564dSmrg _val = lswaps (_val); \ 246266e564dSmrg} 247266e564dSmrg 248266e564dSmrg#define EXTRACT_CARD32(_pBuf, _swap, _val) \ 249266e564dSmrg{ \ 250266e564dSmrg _val = *(_pBuf + 0) & 0xff; /* 0xff incase _pBuf is signed */ \ 251266e564dSmrg _val <<= 8; \ 252266e564dSmrg _val |= *(_pBuf + 1) & 0xff;\ 253266e564dSmrg _val <<= 8; \ 254266e564dSmrg _val |= *(_pBuf + 2) & 0xff;\ 255266e564dSmrg _val <<= 8; \ 256266e564dSmrg _val |= *(_pBuf + 3) & 0xff;\ 257266e564dSmrg _pBuf += 4; \ 258266e564dSmrg if (_swap) \ 259266e564dSmrg _val = lswapl (_val); \ 260266e564dSmrg} 261266e564dSmrg 262266e564dSmrg#endif /* WORD64 */ 263266e564dSmrg 264266e564dSmrg#define EXTRACT_STRING(_pBuf, _swap, _string) \ 265266e564dSmrg{ \ 266266e564dSmrg CARD16 _len; \ 267266e564dSmrg EXTRACT_CARD16 (_pBuf, _swap, _len); \ 268266e564dSmrg _string = (char *) malloc (_len + 1); \ 269266e564dSmrg memcpy (_string, _pBuf, _len); \ 270266e564dSmrg _pBuf += _len; \ 271266e564dSmrg _string[_len] = '\0'; \ 272266e564dSmrg if (PAD32 (2 + _len)) \ 273266e564dSmrg _pBuf += PAD32 (2 + _len); \ 274266e564dSmrg} 275266e564dSmrg 276266e564dSmrg#define EXTRACT_LISTOF_STRING(_pBuf, _swap, _count, _strings) \ 277266e564dSmrg{ \ 278266e564dSmrg int _i; \ 279266e564dSmrg for (_i = 0; _i < _count; _i++) \ 280266e564dSmrg EXTRACT_STRING (_pBuf, _swap, _strings[_i]); \ 281266e564dSmrg} 282266e564dSmrg 283266e564dSmrg 284266e564dSmrg#define SKIP_STRING(_pBuf, _swap, _end, _bail) \ 285266e564dSmrg{ \ 286266e564dSmrg CARD16 _len; \ 287266e564dSmrg EXTRACT_CARD16 (_pBuf, _swap, _len); \ 288266e564dSmrg _pBuf += _len + PAD32(2+_len); \ 289266e564dSmrg if (_pBuf > _end) { \ 290266e564dSmrg _bail; \ 291266e564dSmrg } \ 2929ef0b394Smrg} 293266e564dSmrg 294266e564dSmrg#define SKIP_LISTOF_STRING(_pBuf, _swap, _count, _end, _bail) \ 295266e564dSmrg{ \ 296266e564dSmrg int _i; \ 297266e564dSmrg for (_i = 0; _i < _count; _i++) \ 298266e564dSmrg SKIP_STRING (_pBuf, _swap, _end, _bail); \ 299266e564dSmrg} 300266e564dSmrg 301266e564dSmrg 302266e564dSmrg 303266e564dSmrg/* 304266e564dSmrg * Byte swapping 305266e564dSmrg */ 306266e564dSmrg 307266e564dSmrg/* byte swap a long literal */ 308266e564dSmrg#define lswapl(_val) ((((_val) & 0xff) << 24) |\ 309266e564dSmrg (((_val) & 0xff00) << 8) |\ 310266e564dSmrg (((_val) & 0xff0000) >> 8) |\ 311266e564dSmrg (((_val) >> 24) & 0xff)) 312266e564dSmrg 313266e564dSmrg/* byte swap a short literal */ 314266e564dSmrg#define lswaps(_val) ((((_val) & 0xff) << 8) | (((_val) >> 8) & 0xff)) 315266e564dSmrg 316266e564dSmrg 317266e564dSmrg 318266e564dSmrg/* 319266e564dSmrg * ICE replies (not processed via callbacks because we block) 320266e564dSmrg */ 321266e564dSmrg 322266e564dSmrg#define ICE_CONNECTION_REPLY 1 323266e564dSmrg#define ICE_CONNECTION_ERROR 2 324266e564dSmrg#define ICE_PROTOCOL_REPLY 3 325266e564dSmrg#define ICE_PROTOCOL_ERROR 4 326266e564dSmrg 327266e564dSmrgtypedef struct { 328266e564dSmrg int type; 329266e564dSmrg int version_index; 330266e564dSmrg char *vendor; 331266e564dSmrg char *release; 332266e564dSmrg} _IceConnectionReply; 333266e564dSmrg 334266e564dSmrgtypedef struct { 335266e564dSmrg int type; 336266e564dSmrg char *error_message; 337266e564dSmrg} _IceConnectionError; 338266e564dSmrg 339266e564dSmrgtypedef struct { 340266e564dSmrg int type; 341266e564dSmrg int major_opcode; 342266e564dSmrg int version_index; 343266e564dSmrg char *vendor; 344266e564dSmrg char *release; 345266e564dSmrg} _IceProtocolReply; 346266e564dSmrg 347266e564dSmrgtypedef struct { 348266e564dSmrg int type; 349266e564dSmrg char *error_message; 350266e564dSmrg} _IceProtocolError; 351266e564dSmrg 352266e564dSmrg 353266e564dSmrgtypedef union { 354266e564dSmrg int type; 355266e564dSmrg _IceConnectionReply connection_reply; 356266e564dSmrg _IceConnectionError connection_error; 357266e564dSmrg _IceProtocolReply protocol_reply; 358266e564dSmrg _IceProtocolError protocol_error; 359266e564dSmrg} _IceReply; 360266e564dSmrg 361266e564dSmrg 362266e564dSmrg/* 363266e564dSmrg * Watch for ICE connection create/destroy. 364266e564dSmrg */ 365266e564dSmrg 366266e564dSmrgtypedef struct _IceWatchedConnection { 367266e564dSmrg IceConn iceConn; 368266e564dSmrg IcePointer watch_data; 369266e564dSmrg struct _IceWatchedConnection *next; 370266e564dSmrg} _IceWatchedConnection; 371266e564dSmrg 372266e564dSmrgtypedef struct _IceWatchProc { 373266e564dSmrg IceWatchProc watch_proc; 374266e564dSmrg IcePointer client_data; 375266e564dSmrg _IceWatchedConnection *watched_connections; 376266e564dSmrg struct _IceWatchProc *next; 377266e564dSmrg} _IceWatchProc; 378266e564dSmrg 379266e564dSmrg 380266e564dSmrg/* 381266e564dSmrg * Locking 382266e564dSmrg */ 383266e564dSmrg 384266e564dSmrg#define IceLockConn(_iceConn) 385266e564dSmrg#define IceUnlockConn(_iceConn) 386266e564dSmrg 387266e564dSmrg 388266e564dSmrg/* 389266e564dSmrg * Extern declarations 390266e564dSmrg */ 391266e564dSmrg 392266e564dSmrgextern IceConn _IceConnectionObjs[]; 393266e564dSmrgextern char *_IceConnectionStrings[]; 394266e564dSmrgextern int _IceConnectionCount; 395266e564dSmrg 396266e564dSmrgextern _IceProtocol _IceProtocols[]; 397266e564dSmrgextern int _IceLastMajorOpcode; 398266e564dSmrg 399266e564dSmrgextern int _IceAuthCount; 4009ef0b394Smrgextern const char *_IceAuthNames[]; 401266e564dSmrgextern IcePoAuthProc _IcePoAuthProcs[]; 402266e564dSmrgextern IcePaAuthProc _IcePaAuthProcs[]; 403266e564dSmrg 404266e564dSmrgextern int _IceVersionCount; 405266e564dSmrgextern _IceVersion _IceVersions[]; 406266e564dSmrg 407266e564dSmrgextern _IceWatchProc *_IceWatchProcs; 408266e564dSmrg 409266e564dSmrgextern IceErrorHandler _IceErrorHandler; 410266e564dSmrgextern IceIOErrorHandler _IceIOErrorHandler; 411266e564dSmrg 412698f425bSmrgextern IceAuthDataEntry _IcePaAuthDataEntries[]; 413698f425bSmrgextern int _IcePaAuthDataEntryCount; 414266e564dSmrg 415266e564dSmrgextern void _IceErrorBadMajor ( 416266e564dSmrg IceConn /* iceConn */, 417266e564dSmrg int /* offendingMajor */, 418266e564dSmrg int /* offendingMinor */, 419266e564dSmrg int /* severity */ 420266e564dSmrg); 421266e564dSmrg 422266e564dSmrgextern void _IceErrorNoAuthentication ( 423266e564dSmrg IceConn /* iceConn */, 424266e564dSmrg int /* offendingMinor */ 425266e564dSmrg); 426266e564dSmrg 427266e564dSmrgextern void _IceErrorNoVersion ( 428266e564dSmrg IceConn /* iceConn */, 429266e564dSmrg int /* offendingMinor */ 430266e564dSmrg); 431266e564dSmrg 432266e564dSmrgextern void _IceErrorSetupFailed ( 433266e564dSmrg IceConn /* iceConn */, 434266e564dSmrg int /* offendingMinor */, 4359ef0b394Smrg const char * /* reason */ 436266e564dSmrg); 437266e564dSmrg 438266e564dSmrgextern void _IceErrorAuthenticationRejected ( 439266e564dSmrg IceConn /* iceConn */, 440266e564dSmrg int /* offendingMinor */, 4419ef0b394Smrg const char * /* reason */ 442266e564dSmrg); 443266e564dSmrg 444266e564dSmrgextern void _IceErrorAuthenticationFailed ( 445266e564dSmrg IceConn /* iceConn */, 446266e564dSmrg int /* offendingMinor */, 4479ef0b394Smrg const char * /* reason */ 448266e564dSmrg); 449266e564dSmrg 450266e564dSmrgextern void _IceErrorProtocolDuplicate ( 451266e564dSmrg IceConn /* iceConn */, 4529ef0b394Smrg const char * /* protocolName */ 453266e564dSmrg); 454266e564dSmrg 455266e564dSmrgextern void _IceErrorMajorOpcodeDuplicate ( 456266e564dSmrg IceConn /* iceConn */, 457266e564dSmrg int /* majorOpcode */ 458266e564dSmrg); 459266e564dSmrg 460266e564dSmrgextern void _IceErrorUnknownProtocol ( 461266e564dSmrg IceConn /* iceConn */, 4629ef0b394Smrg const char * /* protocolName */ 463266e564dSmrg); 464266e564dSmrg 465266e564dSmrgextern void _IceAddOpcodeMapping ( 466266e564dSmrg IceConn /* iceConn */, 467266e564dSmrg int /* hisOpcode */, 468266e564dSmrg int /* myOpcode */ 469266e564dSmrg); 470266e564dSmrg 471266e564dSmrgextern char *_IceGetPeerName ( 472266e564dSmrg IceConn /* iceConn */ 473266e564dSmrg); 474266e564dSmrg 475266e564dSmrgextern void _IceFreeConnection ( 476266e564dSmrg IceConn /* iceConn */ 477266e564dSmrg); 478266e564dSmrg 479266e564dSmrgextern void _IceAddReplyWait ( 480266e564dSmrg IceConn /* iceConn */, 481266e564dSmrg IceReplyWaitInfo * /* replyWait */ 482266e564dSmrg); 483266e564dSmrg 484266e564dSmrgextern IceReplyWaitInfo *_IceSearchReplyWaits ( 485266e564dSmrg IceConn /* iceConn */, 486266e564dSmrg int /* majorOpcode */ 487266e564dSmrg); 488266e564dSmrg 489266e564dSmrgextern void _IceSetReplyReady ( 490266e564dSmrg IceConn /* iceConn */, 491266e564dSmrg IceReplyWaitInfo * /* replyWait */ 492266e564dSmrg); 493266e564dSmrg 494266e564dSmrgextern Bool _IceCheckReplyReady ( 495266e564dSmrg IceConn /* iceConn */, 496266e564dSmrg IceReplyWaitInfo * /* replyWait */ 497266e564dSmrg); 498266e564dSmrg 499266e564dSmrgextern void _IceConnectionOpened ( 500266e564dSmrg IceConn /* iceConn */ 501266e564dSmrg); 502266e564dSmrg 503266e564dSmrgextern void _IceConnectionClosed ( 504266e564dSmrg IceConn /* iceConn */ 505266e564dSmrg); 506266e564dSmrg 507266e564dSmrgextern void _IceGetPoAuthData ( 5089ef0b394Smrg const char * /* protocol_name */, 5099ef0b394Smrg const char * /* address */, 5109ef0b394Smrg const char * /* auth_name */, 511266e564dSmrg unsigned short * /* auth_data_length_ret */, 512266e564dSmrg char ** /* auth_data_ret */ 513266e564dSmrg); 514266e564dSmrg 515266e564dSmrgextern void _IceGetPaAuthData ( 5169ef0b394Smrg const char * /* protocol_name */, 5179ef0b394Smrg const char * /* address */, 5189ef0b394Smrg const char * /* auth_name */, 519266e564dSmrg unsigned short * /* auth_data_length_ret */, 520266e564dSmrg char ** /* auth_data_ret */ 521266e564dSmrg); 522266e564dSmrg 523266e564dSmrgextern void _IceGetPoValidAuthIndices ( 5249ef0b394Smrg const char * /* protocol_name */, 5259ef0b394Smrg const char * /* address */, 526266e564dSmrg int /* num_auth_names */, 5279ef0b394Smrg const char ** /* auth_names */, 528266e564dSmrg int * /* num_indices_ret */, 529266e564dSmrg int * /* indices_ret */ 530266e564dSmrg); 531266e564dSmrg 532266e564dSmrgextern void _IceGetPaValidAuthIndices ( 5339ef0b394Smrg const char * /* protocol_name */, 5349ef0b394Smrg const char * /* address */, 535266e564dSmrg int /* num_auth_names */, 5369ef0b394Smrg const char ** /* auth_names */, 537266e564dSmrg int * /* num_indices_ret */, 538266e564dSmrg int * /* indices_ret */ 539266e564dSmrg); 540266e564dSmrg 541266e564dSmrg#endif /* _ICELIBINT_H_ */ 542