亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? xtranstli.c

?? 手寫識別Chinput源碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* $XConsortium: Xtranstli.c /main/26 1995/12/13 18:07:13 kaleb $ *//* $XFree86: xc/lib/xtrans/Xtranstli.c,v 3.5 1996/09/01 04:14:14 dawes Exp $ *//*Copyright (c) 1993, 1994  X ConsortiumPermission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the"Software"), to deal in the Software without restriction, includingwithout limitation the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell copies of the Software, and topermit persons to whom the Software is furnished to do so, subject tothe following conditions:The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OROTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OROTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of the X Consortium shallnot be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorizationfrom the X Consortium.*//* Copyright (c) 1993, 1994 NCR Corporation - Dayton, Ohio, USA * * All Rights Reserved * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the name NCR not be used in advertising * or publicity pertaining to distribution of the software without specific, * written prior permission.  NCR makes no representations about the * suitability of this software for any purpose.  It is provided "as is" * without express or implied warranty. * * NCR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN * NO EVENT SHALL NCR BE LIABLE FOR 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. */#include <sys/un.h>#include <stropts.h>#include <poll.h>#include <tiuser.h>#include <netdir.h>#include <netconfig.h>/* * This is the TLI implementation of the X Transport service layer */typedef struct _TLItrans2dev {    char	*transname;    char	*protofamily;    char	*devcotsname;    char	*devcltsname;    int	family;} TLItrans2dev;static TLItrans2dev TLItrans2devtab[] = {	{"inet","inet","/dev/tcp","/dev/udp",AF_INET},	{"tcp","inet","/dev/tcp","/dev/udp",AF_INET},	{"tli","loopback","/dev/ticots","/dev/ticlts",AF_UNIX},};#define NUMTLIFAMILIES (sizeof(TLItrans2devtab)/sizeof(TLItrans2dev))    /* * The local TLI connection, is a form of a local connection, so use a * sockaddr_un for the address so that it will be treated just like the other * local transports such as UNIX domain sockets, pts, and named. */    #if defined(X11_t)#define TLINODENAME	"TLI:xserver"#endif    #if defined(XIM_t)#define TLINODENAME	"TLI:xim"#endif    #if defined(FS_t) || defined(FONT_t)#define TLINODENAME	"TLI:fontserver"#endif    #if defined(ICE_t)#define TLINODENAME	"TLI:ICE"#endif    #if defined(TEST_t)#define TLINODENAME	"TLI:test"#endif    /* * These are some utility function used by the real interface function below. */static intTRANS(TLISelectFamily)(family)char	*family;{    int     i;        PRMSG(3,"TLISelectFamily(%s)\n", family, 0,0 );        for(i=0;i<NUMTLIFAMILIES;i++)    {        if( !strcmp(family,TLItrans2devtab[i].transname) )	    return i;    }    return -1;}/* * This function gets the local address of the transport and stores it in the * XtransConnInfo structure for the connection. */static intTRANS(TLIGetAddr)(ciptr)XtransConnInfo	ciptr;{    Xtransaddr		sockname;    struct netbuf	netbuf;        PRMSG(3,"TLIGetAddr(%x)\n", ciptr, 0,0 );        netbuf.buf=(char *)&sockname;    netbuf.len=sizeof(sockname);    netbuf.maxlen=sizeof(sockname);        if( t_getname(ciptr->fd,&netbuf,LOCALNAME) < 0 )    {	PRMSG(1,"TLIGetAddr: t_getname(LOCALNAME) failed: %d\n",	      errno, 0,0 );	return -1;    }        PRMSG(4,"TLIGetAddr: got family %d len %d\n",	  ((struct sockaddr *) &sockname)->sa_family ,netbuf.len, 0 );        /*     * Everything looks good: fill in the XtransConnInfo structure.     */        if( ciptr->addr )	xfree(ciptr->addr);        if( (ciptr->addr=(char *)xalloc(netbuf.len)) == NULL )    {        PRMSG(1, "TLIGetAddr: Can't allocate space for the addr\n",	      0,0,0);        return -1;    }        ciptr->family=((struct sockaddr *) &sockname)->sa_family;    ciptr->addrlen=netbuf.len;    memcpy(ciptr->addr,&sockname,ciptr->addrlen);        return 0;}/* * This function gets the remote address of the socket and stores it in the * XtransConnInfo structure for the connection. */static intTRANS(TLIGetPeerAddr)(ciptr)XtransConnInfo	ciptr;{    Xtransaddr		sockname;    struct netbuf	netbuf;        PRMSG(3,"TLIGetPeerAddr(%x)\n", ciptr, 0,0 );        netbuf.buf=(char *)&sockname;    netbuf.len=sizeof(sockname);    netbuf.maxlen=sizeof(sockname);        if( t_getname(ciptr->fd,&netbuf,REMOTENAME) < 0 )    {	PRMSG(1,"TLIGetPeerAddr: t_getname(REMOTENAME) failed: %d\n",	      errno, 0,0 );	return -1;    }        PRMSG(4,"TLIGetPeerAddr: got family %d len %d\n",	  ((struct sockaddr *) &sockname)->sa_family ,netbuf.len, 0 );        /*     * Everything looks good: fill in the XtransConnInfo structure.     */        if( ciptr->peeraddr )	xfree(ciptr->peeraddr);        if( (ciptr->peeraddr=(char *)xalloc(netbuf.len)) == NULL )    {        PRMSG(1,	      "TLIGetPeerAddr: Can't allocate space for the addr\n",	      0,0,0);        return -1;    }        ciptr->peeraddrlen=netbuf.len;    memcpy(ciptr->peeraddr,&sockname,ciptr->peeraddrlen);        return 0;}/* * This function will establish a local name for the transport. This function * do extra work for the local tli connection. It must create a sockaddr_un * format address so that it will look like an AF_UNIX connection to the * higher layer. * * This function will only be called by the OPENC?TSClient() functions since * the local address is set up in the CreateListner() for the server ends. */static intTRANS(TLITLIBindLocal)(fd,family,port)int	fd;int	family;char	*port;{    struct sockaddr_un	*sunaddr;    struct t_bind	*req=NULL;        PRMSG(2, "TLITLIBindLocal(%d,%d,%s)\n", fd, family, port);        if( family == AF_UNIX )    {	if( (req=(struct t_bind *)t_alloc(fd,T_BIND,0)) == NULL )	{	    PRMSG(1,		  "TLITLIBindLocal() failed to allocate a t_bind\n",		  0,0,0 );	    return -1;	}		if( (sunaddr=(struct sockaddr_un *)	     malloc(sizeof(struct sockaddr_un))) == NULL )	{	    PRMSG(1,		  "TLITLIBindLocal: failed to allocate a sockaddr_un\n",		  0,0,0 );	    t_free((char *)req,T_BIND);	    return -1;	}		sunaddr->sun_family=AF_UNIX;	#ifdef nuke	if( *port == '/' ) { /* A full pathname */	    (void) strcpy(sunaddr->sun_path, port);	} else {	    (void) sprintf(sunaddr->sun_path,"%s%s", TLINODENAME, port );	}#endif /*NUKE*/		(void) sprintf(sunaddr->sun_path,"%s%d",		       TLINODENAME, getpid()^time(NULL) );		PRMSG(4, "TLITLIBindLocal: binding to %s\n",	      sunaddr->sun_path, 0,0);		req->addr.buf=(char *)sunaddr;	req->addr.len=sizeof(*sunaddr);	req->addr.maxlen=sizeof(*sunaddr);    }        if( t_bind(fd, req, NULL) < 0 )    {	PRMSG(1,	      "TLIBindLocal: Unable to bind TLI device to %s\n",	      port, 0,0 );	return -1;    }    return 0;}static XtransConnInfoTRANS(TLIOpen)(device)char	*device;{    XtransConnInfo	ciptr;        PRMSG(3,"TLIOpen(%s)\n", device, 0,0 );        if( (ciptr=(XtransConnInfo)xcalloc(1,sizeof(struct _XtransConnInfo))) == NULL )    {	PRMSG(1, "TLIOpen: calloc failed\n", 0,0,0 );	return NULL;    }        if( (ciptr->fd=t_open( device, O_RDWR, NULL )) < 0 )    {	PRMSG(1, "TLIOpen: t_open failed for %s\n", device, 0,0 );	return NULL;    }        return ciptr;}#ifdef TRANS_REOPENstatic XtransConnInfoTRANS(TLIReopen)(device, fd, port)char	*device;int	fd;char	*port;{    XtransConnInfo	ciptr;        PRMSG(3,"TLIReopen(%s,%d, %s)\n", device, fd, port );        if (t_sync (fd) < 0)    {	PRMSG(1, "TLIReopen: t_sync failed\n", 0,0,0 );	return NULL;    }    if( (ciptr=(XtransConnInfo)xcalloc(1,sizeof(struct _XtransConnInfo))) == NULL )    {	PRMSG(1, "TLIReopen: calloc failed\n", 0,0,0 );	return NULL;    }        ciptr->fd = fd;        return ciptr;}#endif /* TRANS_REOPEN */static	intTRANS(TLIAddrToNetbuf)(tlifamily, host, port, netbufp)int		tlifamily;char		*host;char		*port;struct netbuf	*netbufp;{    struct netconfig *netconfigp;    struct nd_hostserv	nd_hostserv;    struct nd_addrlist *nd_addrlistp = NULL;    void *handlep;        PRMSG(3,"TLIAddrToNetbuf(%d,%s,%s)\n", tlifamily, host, port );        if( (handlep=setnetconfig()) == NULL )	return -1;        nd_hostserv.h_host = host;    if( port && *port ) {	nd_hostserv.h_serv = port;    } else {	nd_hostserv.h_serv = NULL;    }        while( (netconfigp=getnetconfig(handlep)) != NULL )    {	if( strcmp(netconfigp->nc_protofmly,		   TLItrans2devtab[tlifamily].protofamily) != 0 )	    continue;	PRMSG(5,"TLIAddrToNetbuf: Trying to resolve %s.%s for %s\n",	      host, port, TLItrans2devtab[tlifamily].protofamily );	if( netdir_getbyname(netconfigp,&nd_hostserv, &nd_addrlistp) == 0 )	{	    /* we have at least one address to use */	    	    PRMSG(5, "TLIAddrToNetbuf: found address for %s.%s\n", host, port, 0 );	    PRMSG(5, "TLIAddrToNetbuf: %s\n",taddr2uaddr(netconfigp,nd_addrlistp->n_addrs),		  0,0 );	    	    memcpy(netbufp->buf,nd_addrlistp->n_addrs->buf,		   nd_addrlistp->n_addrs->len);	    netbufp->len=nd_addrlistp->n_addrs->len;	    endnetconfig(handlep);	    return 0;	}    }    endnetconfig(handlep);        return -1;}/* * These functions are the interface supplied in the Xtransport structure */#ifdef TRANS_CLIENTstatic XtransConnInfoTRANS(TLIOpenCOTSClient)(thistrans, protocol, host, port)Xtransport	*thistrans;char		*protocol;char		*host;char		*port;{    XtransConnInfo	ciptr;    int 		i;        PRMSG(2,"TLIOpenCOTSClient(%s,%s,%s)\n", protocol, host, port );        if( (i=TRANS(TLISelectFamily)(thistrans->TransName)) < 0 )    {	PRMSG(1,"TLIOpenCOTSClient: Unable to determine device for %s\n",	      thistrans->TransName, 0,0 );	return NULL;    }        if( (ciptr=TRANS(TLIOpen)(TLItrans2devtab[i].devcotsname)) == NULL )    {	PRMSG(1,"TLIOpenCOTSClient: Unable to open device for %s\n",	      thistrans->TransName, 0,0 );	return NULL;    }        if( TRANS(TLITLIBindLocal)(ciptr->fd,TLItrans2devtab[i].family,port) < 0 )    {	PRMSG(1,	      "TLIOpenCOTSClient: ...TLITLIBindLocal() failed: %d\n",	      errno, 0,0 );	t_close(ciptr->fd);	xfree(ciptr);	return NULL;    }        if( TRANS(TLIGetAddr)(ciptr) < 0 )    {	PRMSG(1,	      "TLIOpenCOTSClient: ...TLIGetAddr() failed: %d\n",	      errno, 0,0 );	t_close(ciptr->fd);	xfree(ciptr);	return NULL;    }        /* Save the TLIFamily for later use in TLIAddrToNetbuf() lookups */    ciptr->index = i;        return ciptr;}#endif /* TRANS_CLIENT */#ifdef TRANS_SERVERstatic XtransConnInfo

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品bt天堂精选| 精品欧美一区二区三区精品久久| 亚洲成人动漫在线观看| 日韩精品一区二区三区在线播放 | 综合久久综合久久| 日韩视频在线观看一区二区| 波多野结衣精品在线| 日韩影院在线观看| 国产精品网站在线播放| 欧美一区二区视频在线观看| 成人黄色一级视频| 精品一二线国产| 亚洲自拍欧美精品| 中文字幕日韩一区| xfplay精品久久| 91精品国产色综合久久ai换脸 | 久久综合给合久久狠狠狠97色69| 在线精品视频免费播放| 国产成人午夜视频| 另类人妖一区二区av| 性久久久久久久| 亚洲男女一区二区三区| 国产欧美一区二区精品性色| 欧美大片在线观看一区| 欧美在线三级电影| 99久久精品国产麻豆演员表| 国产麻豆精品在线| 久久精品国产99国产精品| 亚洲一区二三区| 一区二区三区中文在线| 亚洲欧美日韩在线不卡| 国产精品久久久久久一区二区三区| 欧美精品一区二区高清在线观看| 欧美一区二区观看视频| 91.麻豆视频| 精品视频一区二区不卡| 欧美午夜不卡视频| 欧美日韩免费在线视频| 欧美体内she精视频| 在线国产亚洲欧美| 欧美亚男人的天堂| 欧美在线观看视频在线| 欧美综合欧美视频| 欧美日韩国产精品自在自线| 欧美日韩一区二区电影| 欧美日韩国产精品成人| 欧美一区二区大片| 欧美成人video| 久久综合久久99| 国产精品网站在线播放| 亚洲三级在线看| 亚洲一区影音先锋| 日韩av电影免费观看高清完整版| 青青草原综合久久大伊人精品| 奇米精品一区二区三区在线观看一| 日韩av午夜在线观看| 久久99精品久久久久婷婷| 国产一区二区视频在线播放| 国产jizzjizz一区二区| 91蝌蚪porny九色| 欧美三级韩国三级日本三斤| 在线播放亚洲一区| 久久久夜色精品亚洲| 中文字幕一区二区三区视频| 亚洲精品综合在线| 日韩中文字幕一区二区三区| 久久精品99国产精品日本| 国产成人免费视| 色婷婷综合久久| 日韩亚洲国产中文字幕欧美| 久久久99精品免费观看| 亚洲欧美日本在线| 美国欧美日韩国产在线播放| 成人影视亚洲图片在线| 欧美性猛交xxxx乱大交退制版 | 日日夜夜免费精品| 国产一区日韩二区欧美三区| 成人午夜av在线| 欧美日韩美少妇| 国产欧美一区视频| 天天色综合成人网| 成人一区二区视频| 欧美人体做爰大胆视频| 久久久久综合网| 夜夜精品视频一区二区| 极品尤物av久久免费看| 色综合中文字幕| 精品乱人伦一区二区三区| 亚洲三级久久久| 韩国午夜理伦三级不卡影院| 91麻豆福利精品推荐| 精品久久人人做人人爽| 一区二区三区毛片| 国产成人精品免费| 91精品国产色综合久久不卡电影| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲超碰精品一区二区| 国产高清久久久久| 91精品中文字幕一区二区三区| 亚洲国产精品v| 免费在线欧美视频| 在线一区二区三区四区五区| 精品久久久久久久久久久院品网| 亚洲欧美日韩国产成人精品影院| 国产一区二区三区视频在线播放| 欧美亚男人的天堂| 综合久久综合久久| 国产成人免费视频一区| 日韩一级二级三级| 亚洲动漫第一页| 97精品电影院| 国产视频911| 捆绑调教美女网站视频一区| 日本韩国欧美在线| 亚洲欧洲国产日本综合| 国产sm精品调教视频网站| 日韩女优制服丝袜电影| 日韩国产一区二| 欧美吞精做爰啪啪高潮| 一区二区三区.www| 91农村精品一区二区在线| 国产日产亚洲精品系列| 国产曰批免费观看久久久| 日韩一级高清毛片| 青草国产精品久久久久久| 欧美日韩在线免费视频| 一个色妞综合视频在线观看| 日本高清不卡视频| 亚洲女人小视频在线观看| 94-欧美-setu| 亚洲美女偷拍久久| 91麻豆免费观看| 一区二区三区免费在线观看| 在线视频国内一区二区| 一区二区三区毛片| 欧美日韩高清一区二区三区| 午夜精品一区在线观看| 欧美理论电影在线| 日本不卡的三区四区五区| 日韩一级黄色片| 国产一区二区91| 国产欧美日韩中文久久| 成人爽a毛片一区二区免费| 欧美激情综合五月色丁香小说| 国产成人av一区二区三区在线| 久久九九国产精品| 99综合电影在线视频| 亚洲精选视频免费看| 欧美日韩久久一区二区| 日本伊人色综合网| 精品少妇一区二区三区日产乱码 | 亚洲国产精品黑人久久久| proumb性欧美在线观看| 亚洲免费伊人电影| 在线观看欧美精品| 日精品一区二区三区| 久久久久久久精| 色综合色综合色综合色综合色综合| 一区二区三区四区在线播放| 欧美日韩成人综合| 韩国中文字幕2020精品| 成人欧美一区二区三区小说| 欧美视频一区二区在线观看| 奇米色777欧美一区二区| 国产日韩成人精品| 欧美伊人久久久久久久久影院| 日韩成人一区二区三区在线观看| 久久午夜国产精品| 色哟哟日韩精品| 日韩高清一级片| 国产人妖乱国产精品人妖| 91蜜桃在线观看| 青娱乐精品视频| 国产精品久久久99| 欧美精品tushy高清| 国产美女av一区二区三区| 亚洲欧美成人一区二区三区| 51精品秘密在线观看| 夫妻av一区二区| 亚洲gay无套男同| 国产午夜精品一区二区三区视频| 91麻豆精品在线观看| 精品无人码麻豆乱码1区2区| 中文字幕在线播放不卡一区| 69av一区二区三区| www.在线成人| 麻豆精品一二三| 亚洲一区二区三区爽爽爽爽爽| 久久综合久久综合久久| 欧美视频在线不卡| 国产福利不卡视频| 日韩精品乱码av一区二区| 中文字幕乱码日本亚洲一区二区| 欧美日韩国产高清一区二区三区| 成人网男人的天堂| 乱中年女人伦av一区二区| 樱桃视频在线观看一区| 国产视频一区二区三区在线观看| 欧美日韩国产高清一区二区三区 | 在线观看视频91|