From 3562e78743202e43aec8727005182a2558117eca Mon Sep 17 00:00:00 2001 From: marha Date: Sun, 28 Jun 2009 22:07:26 +0000 Subject: Checked in the following released items: xkeyboard-config-1.4.tar.gz ttf-bitstream-vera-1.10.tar.gz font-alias-1.0.1.tar.gz font-sun-misc-1.0.0.tar.gz font-sun-misc-1.0.0.tar.gz font-sony-misc-1.0.0.tar.gz font-schumacher-misc-1.0.0.tar.gz font-mutt-misc-1.0.0.tar.gz font-misc-misc-1.0.0.tar.gz font-misc-meltho-1.0.0.tar.gz font-micro-misc-1.0.0.tar.gz font-jis-misc-1.0.0.tar.gz font-isas-misc-1.0.0.tar.gz font-dec-misc-1.0.0.tar.gz font-daewoo-misc-1.0.0.tar.gz font-cursor-misc-1.0.0.tar.gz font-arabic-misc-1.0.0.tar.gz font-winitzki-cyrillic-1.0.0.tar.gz font-misc-cyrillic-1.0.0.tar.gz font-cronyx-cyrillic-1.0.0.tar.gz font-screen-cyrillic-1.0.1.tar.gz font-xfree86-type1-1.0.1.tar.gz font-adobe-utopia-type1-1.0.1.tar.gz font-ibm-type1-1.0.0.tar.gz font-bitstream-type1-1.0.0.tar.gz font-bitstream-speedo-1.0.0.tar.gz font-bh-ttf-1.0.0.tar.gz font-bh-type1-1.0.0.tar.gz font-bitstream-100dpi-1.0.0.tar.gz font-bh-lucidatypewriter-100dpi-1.0.0.tar.gz font-bh-100dpi-1.0.0.tar.gz font-adobe-utopia-100dpi-1.0.1.tar.gz font-adobe-100dpi-1.0.0.tar.gz font-util-1.0.1.tar.gz font-bitstream-75dpi-1.0.0.tar.gz font-bh-lucidatypewriter-75dpi-1.0.0.tar.gz font-adobe-utopia-75dpi-1.0.1.tar.gz font-bh-75dpi-1.0.0.tar.gz bdftopcf-1.0.1.tar.gz font-adobe-75dpi-1.0.0.tar.gz mkfontscale-1.0.6.tar.gz openssl-0.9.8k.tar.gz bigreqsproto-1.0.2.tar.gz xtrans-1.2.2.tar.gz resourceproto-1.0.2.tar.gz inputproto-1.4.4.tar.gz compositeproto-0.4.tar.gz damageproto-1.1.0.tar.gz zlib-1.2.3.tar.gz xkbcomp-1.0.5.tar.gz freetype-2.3.9.tar.gz pthreads-w32-2-8-0-release.tar.gz pixman-0.12.0.tar.gz kbproto-1.0.3.tar.gz evieext-1.0.2.tar.gz fixesproto-4.0.tar.gz recordproto-1.13.2.tar.gz randrproto-1.2.2.tar.gz scrnsaverproto-1.1.0.tar.gz renderproto-0.9.3.tar.gz xcmiscproto-1.1.2.tar.gz fontsproto-2.0.2.tar.gz xextproto-7.0.3.tar.gz xproto-7.0.14.tar.gz libXdmcp-1.0.2.tar.gz libxkbfile-1.0.5.tar.gz libfontenc-1.0.4.tar.gz libXfont-1.3.4.tar.gz libX11-1.1.5.tar.gz libXau-1.0.4.tar.gz libxcb-1.1.tar.gz xorg-server-1.5.3.tar.gz --- libX11/src/LiHosts.c | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 libX11/src/LiHosts.c (limited to 'libX11/src/LiHosts.c') diff --git a/libX11/src/LiHosts.c b/libX11/src/LiHosts.c new file mode 100644 index 000000000..ebfb245ff --- /dev/null +++ b/libX11/src/LiHosts.c @@ -0,0 +1,137 @@ +/* $Xorg: LiHosts.c,v 1.4 2001/02/09 02:03:34 xorgcvs Exp $ */ +/* $XdotOrg: lib/X11/src/LiHosts.c,v 1.4 2005-07-03 07:00:55 daniels Exp $ */ +/* + +Copyright 1986, 1998 The Open Group +Copyright 2004 Sun Microsystems, Inc. + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, and/or sell copies of the Software, and to permit persons +to whom the Software is furnished to do so, provided that the above +copyright notice(s) and this permission notice appear in all copies of +the Software and that both the above copyright notice(s) and this +permission notice appear in supporting documentation. + +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 +OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR +HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL +INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING +FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION +WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +of the copyright holder. + +X Window System is a trademark of The Open Group. + +*/ + +/* This can really be considered an os dependent routine */ + +#define NEED_REPLIES +#ifdef HAVE_CONFIG_H +#include +#endif +#include "Xlibint.h" +/* + * can be freed using XFree. + */ + +XHostAddress *XListHosts ( + register Display *dpy, + int *nhosts, /* RETURN */ + Bool *enabled) /* RETURN */ +{ + register XHostAddress *outbuf = NULL, *op; + xListHostsReply reply; + long nbytes; + unsigned char *buf, *bp; + register unsigned i; + register xListHostsReq *req; + XServerInterpretedAddress *sip; + + *nhosts = 0; + LockDisplay(dpy); + GetReq (ListHosts, req); + + if (!_XReply (dpy, (xReply *) &reply, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + return (XHostAddress *) NULL; + } + + if (reply.nHosts) { + nbytes = reply.length << 2; /* compute number of bytes in reply */ + + op = outbuf = (XHostAddress *) + Xmalloc((unsigned) (nbytes + + (reply.nHosts * sizeof(XHostAddress)) + + (reply.nHosts * sizeof(XServerInterpretedAddress)))); + + if (! outbuf) { + _XEatData(dpy, (unsigned long) nbytes); + UnlockDisplay(dpy); + SyncHandle(); + return (XHostAddress *) NULL; + } + sip = (XServerInterpretedAddress *) + (((unsigned char *) outbuf) + (reply.nHosts * sizeof(XHostAddress))); + bp = buf = ((unsigned char *) sip) + + (reply.nHosts * sizeof(XServerInterpretedAddress)); + + _XRead (dpy, (char *) buf, nbytes); + + for (i = 0; i < reply.nHosts; i++) { +#ifdef WORD64 + xHostEntry xhe; + memcpy((char *)&xhe, bp, SIZEOF(xHostEntry)); + op->family = xhe.family; + op->length = xhe.length; +#else + op->family = ((xHostEntry *) bp)->family; + op->length =((xHostEntry *) bp)->length; +#endif + if (op->family == FamilyServerInterpreted) { + char *tp = (char *) (bp + SIZEOF(xHostEntry)); + char *vp = memchr(tp, 0, op->length); + + if (vp != NULL) { + sip->type = tp; + sip->typelength = vp - tp; + sip->value = vp + 1; + sip->valuelength = op->length - (sip->typelength + 1); + } else { + sip->type = sip->value = NULL; + sip->typelength = sip->valuelength = 0; + } + op->address = (char *) sip; + sip++; + } else { + op->address = (char *) (bp + SIZEOF(xHostEntry)); + } + bp += SIZEOF(xHostEntry) + (((op->length + 3) >> 2) << 2); + op++; + } + } + + *enabled = reply.enabled; + *nhosts = reply.nHosts; + UnlockDisplay(dpy); + SyncHandle(); + return (outbuf); +} + + + + + -- cgit v1.2.3