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

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

?? wtxrpc.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/* wtxrpc.c - tornado rpc transport library *//* Copyright 1984-1996 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02w,28sep01,fle  SPR#28684 : added usePMap parameter to ExchangeCreate ()                 routines02v,15jun01,pch  Add new WTX_TS_INFO_GET_V2 service to handle WTX_RT_INFO                 change (from BOOL32 hasFpp to UINT32 hasCoprocessor) without                 breaking existing clients.02u,19apr00,fle  SPR#28684 : Win32 port02t,29mar00,fle  SPR#28684 : HPUX port02s,24nov99,fle  SPR#28684 fix : multiple adapters in target server connection02r,10may99,fle  made wtxRpcExchangeFree not use CLIENT anymore02q,24mar99,fle  made WIN32 code also use auth_destroy mechanism (SPR#26002)02p,07jan99,c_c  Let the target use the hard-coded Registry port number (SPR                 #23681 and #23449).02o,21oct98,c_c  replaced a getenv by a wpwrGetEnv to be sure that                 WIND_REGISTRY is set.02n,18aug98,pcn  Re-use xdr_WTX_MSG_EVTPT_LIST_2.02m,11jun98,pcn  Added an input parameter at wtxEventListGet.02l,26may98,pcn  Changed WTX_MSG_EVTPT_LIST_2 in WTX_MSG_EVTPT_LIST_GET.02k,25mar98,dbt  added WTX_CONTEXT_STATUS_GET.02j,24mar98,fle  Adapted wtxrpcKey to NULL transport handle mangement.02i,24mar98,c_c  Get rid of portmapper.02h,17mar98,jmb  merge HPSIM patch by jmb from 19aug97:		 added socket option call to prevent target server sync task		 from hanging when retrieving symbols from host. (SPR 8708)02g,03mar98,fle  got rid of WTX_REGISTRY_PING service		 + got rid of regex uses02f,02mar98,pcn  WTX 2: Removed WTX_UN_REGIS_FOR_EVENT. Added                 WTX_UNREGISTER_FOR_EVENT, WTX_CACHE_TEXT_UPDATE,                 WTX_MEM_WIDTH_READ, WTX_MEM_WIDTH_WRITE, WTX_COMMAND_SEND,                 WTX_OBJ_MODULE_CHECKSUM, WTX_EVENT_LIST_GET,                 WTX_OBJ_MODULE_LOAD_2, WTX_EVENTPOINT_ADD_2,                 WTX_EVENTPOINT_LIST_2, WTX_OBJ_MODULE_UNLOAD_2.02e,06feb98,c_c  Undo the last remove.02d,05feb98,c_c  Removed an extra include "regex.h".02c,04feb98,lcs  relocate #ifdef to repair damages02b,03feb98,lcs  remove static variable declarations02a,03feb98,lcs  use regex.h for WIN32 & </usr/include/regex.h> for UNIX01z,26jan98,fle  added WTX_REGISTRY_PING routine01y,20nov97,fle  added WTX_MEM_DISASSEMBLE service01x,25feb97,elp  added valid machname in authunix_create() call (SPR# 7959).01w,30sep96,elp  put in share, adapted to be compiled on target side SPR# 6775.01v,28jun96,c_s  tweaks for AIX.01u,09dec95,wmd  used authunix_create() call to pass uid explicity for WIN32,                 to fix SPR# 5609.01t,27oct95,p_m  fixed SPR# 5196 by using the pid to generate the base		 RPC program number (Unix only).01s,26oct95,p_m  added WTX_AGENT_MODE_GET and WTX_DIRECT_CALL.01r,24oct95,wmd  fixed so that processing delays caused by timeout in call                 to hostbyname() is eliminated, spr #5084, 01q,14jun95,s_w	 return WTX_ERR_EXCHANGE_NO_SERVER if client create fails.01p,08jun95,c_s  added WTX_TARGET_ATTACH to rpc function list.01o,01jun95,p_m  changed WTX_FUNC_CALL to use xdr_WTX_MSG_CONTEXT_DESC.01n,30may95,p_m  completed WTX_MEM_SCAN and WTX_MEM_MOVE implementation.01m,30may95,c_s  portablity tweak: use struct in_addr with inet_ntoa().01l,30may95,c_s  added dotted-decimal IP address to key01k,23may95,s_w  don't setup or destroy authentication for WIN3201j,23may95,p_m  made missing name changes.01i,22may95,s_w  update RPC server table for new WTX_MSG_OBJ_KILL in args		 and add WTX_MSG_VIO_CHAN_GET/RELEASE messages.01h,22may95,jcf  name revision.01g,19may95,jcf	 changed over to WIND_REGISTRY.01g,18may95,jcf	 changed over to TORNADO_REGISTRY.01f,14may95,s_w	 add in exchange functions for use by C API (wtx.c). Tidy		 up rouintes to use types from host.h and make all routines		 use status and error codes rather than print error messages.01e,23feb95,p_m  took care of WIN32 platform.01d,14feb95,p_m  changed S_wtx_ to WTX_ERR_ .01c,22jan95,c_s  fixed memory leak.01b,20jan95.jcf  made more portable.01a,24dec94,c_s  written.*//* includes */#ifdef HOST#include "wpwrutil.h"#include "wtxrpc.h"#include "private/wtxexchp.h"#include "wtxmsg.h"#include "wtxxdr.h"#if defined(RS6000_AIX4) || defined (RS6000_AIX3)#undef malloc#endif#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <sys/param.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netdb.h>#include <arpa/inet.h>#ifdef SUN4_SOLARIS2#   include <sys/sockio.h>#endif /* SUN4_SOLARIS2 */#ifndef WIN32#   include <net/if.h>#endif /* ! WIN32 */#include <netinet/in.h>#include <unistd.h>#else#include "hostLib.h"#include "arpa/inet.h"#include "socket.h"#include "string.h"#include "stdio.h"#include "stdlib.h"#include "errno.h"#include "wtx.h"#include "wtxrpc.h"#include "private/wtxexchp.h"#include "wtxmsg.h"#include "wtxxdr.h"#if (CPU==SIMHPPA)#include "wdb/wdbLibP.h"#include "sockLib.h"#endif /* (CPU==SIMHPPA) */#endif /* HOST *//* typedefs */typedef struct rpc_service    {    xdrproc_t	xdrIn;    xdrproc_t	xdrOut;    } RPC_SERVICE;#ifndef HOST/* globals */UINT32			syncRegistry;	/* inet registry address */struct opaque_auth 	authCred;	/* address of the authentication info */#endif /* HOST */#ifndef MCALL_MSG_SIZE#define MCALL_MSG_SIZE	24		/* marshalled call message */#endif /* MCALL_MSG_SIZE *//* locals */LOCAL RPC_SERVICE * (*rpcSvcTable)[] = NULL;LOCAL UINT32	rpcSvcTableSize = 0;LOCAL XDR	svrXdrs;			/* server XDR struct  */LOCAL char	svrXdrsMCall[MCALL_MSG_SIZE];	/* marshalled callmsg *//* This is the UDP retry timeout used when creating a UDP service connection */LOCAL struct timeval rpcDefaultUdpTimeout = { 5, 0 };/* forward declarations */LOCAL WTX_ERROR_T rpcStatToError	/* convert RPC status to WTX err code */    (    enum clnt_stat	rpcStat		/* status from call */    );LOCAL STATUS rpcSvcTableInstall (void);	/* install initial service table */LOCAL STATUS rpcSvcAdd			/* add new key in exchange svc table */    (    UINT32		svcNum,		/* service number */    xdrproc_t		xdrIn,		/* XDR input procedure */    xdrproc_t		xdrOut		/* XDR output procedure */    );LOCAL char * wtxRpcKeyFromRpcKeySplitGet	/* get rpc key from structure */    (    WTX_RPC_SPLIT_KEY *	pSplitKey	/* splitted key to create key from    */    );LOCAL int wtxRpcKeyIPListSizeGet	/* get the number of IP adapters      */    (    WTX_RPC_SPLIT_KEY *	pSplitKey	/* splitted RPC key desc              */    );/******************************************************************************** wtxRpcSvcUnregister - perform svc_unregister using RPC key string** This routine will unregister the specified RPC service with svc_unregister.* This routine will not destroy the service.** RETURNS: WTX_OK, or WTX_ERROR if invalid key.*/STATUS wtxRpcSvcUnregister    (    const char *	rpcKey	/* service key for service to unregister */    )    {    WTX_RPC_SPLIT_KEY	splitKey;    if (wtxRpcKeySplit (rpcKey, &splitKey) != WTX_OK)	/* split the key */	return (WTX_ERROR);    svc_unregister (splitKey.progNum, splitKey.version);    wtxRpcKeySplitFree (&splitKey);    return (WTX_OK);    }/******************************************************************************** wtxRpcKey - construct an RPC key string given RPC parameters.** An RPC key string is built from the given progNum, version, and protocol* code.  The format of the string is* *     rpc/<hostname>/<ip-addr>/<progNum>/<version>|<tcp|udp>/<port#>** The hostname is found from the OS.** RETURNS:* The constructed RPC key string, or NULL if the input data does not represent* a valid RPC server address or memory for the string could not be allocated.* The storage for the string should be freed with free() when it is no longer* needed.*/char *wtxRpcKey    (    UINT32	progNum,	/* rpc prog number, or NULL TBA */    UINT32	version,	/* rpc version number */    UINT32	protocol,	/* IPPROTO_TCP or IPPROTO_UDP */    void	(* dispatch) 	/* rpc dispatch routine */		(struct svc_req *, SVCXPRT *),    BOOL	register2pmap,	/* Do we register to the local portmapper ? */    SVCXPRT **	ppNewXprt	/* where to return transport */    )    {#if (!defined SUN4_SOLARIS2)    struct in_addr	ina;			/* inet address               */#endif /* ! SUN4_SOLARIS2 */    SVCXPRT *	newXprt = NULL;			/* transport we make          */    UINT32 	rpcProgNum;			/* hunted rpc program num     */    UINT32	svc_protocol;			/* protocol sent to the       */						/* svc_register ()            */    char * 	ipAddrStr = NULL;		/* string IP addr (a.b.c.d)   */    char *	newKey = NULL;			/* final key (malloc'd)       */    char	hostName [MAXHOSTNAMELEN];	/* our host name              */    char	buf [256];			/* accumulates key string     */    int		newKeyLen = 0;			/* new key string length      */#ifdef HOST    BOOL		firstAddress = TRUE;	/* first inet address ?       */    int			inetLen = 0;		/* iet address string length  */    #ifdef WIN32    struct hostent *	pHostEnt;		/* contains our IP addr       */    char **		addrList = NULL;	/* address list               */    char *		inetAddr = NULL;	/* address from inet_ntoa()   */    #else    struct sockaddr_in	addr;			/* socket address definition  */    struct ifconf	ifc;			/* if config result           */    struct ifreq	ifReq;			/* current if config request  */    struct ifreq *	ifr = NULL;		/* if config request result   */    char		ifBuf [BUFSIZ];		/* if config container        */    char		ipAddr [16];		/* current IP string          */    int			addrLen = 0;		/* current address length     */    int			len = 0;		/* adress counter for loop    */    int			s = 0;			/* connection socket          */    #endif /* WIN32 */#endif /* HOST */    /* sanity check progNum >= 0, version > 0, and IPPROTO_TCP or IPPROTO_UDP */    if (((protocol != IPPROTO_TCP) && (protocol != IPPROTO_UDP)) ||	((progNum == 0) && (dispatch == NULL)))	goto error1;    if (progNum == 0)					/* hunt for prog num */	{	if (protocol == IPPROTO_TCP)	    newXprt = svctcp_create (RPC_ANYSOCK, 0, 0);	else	    newXprt = svcudp_create (RPC_ANYSOCK);	if (! newXprt)					/* service kaput! */	    goto error1;	/*	 * In order to limit the number of times a Target Server can	 * get the RPC program number of a just killed (with kill -9)	 * Target Server we introduce a little bit of random here (SPR# 5196).	 */#if defined(WIN32) || !defined(HOST)	rpcProgNum = WTX_SVC_BASE;#else /* WIN32 */	rpcProgNum = WTX_SVC_BASE + ((int) getpid () & 0xff);#endif /* WIN32 */	/*	 * If we don't want to register ourself to the local portmapper, set the	 * protocol to 0 before calling svc_register ().	 */	svc_protocol = register2pmap?protocol:0;	while (!svc_register (newXprt, ++rpcProgNum, version, dispatch,			      svc_protocol))	    if (rpcProgNum >= WTX_SVC_BASE + WTX_MAX_SERVICE_CNT)		goto error1;	if (ppNewXprt)					/* return transport? */	    *ppNewXprt = newXprt;	progNum = rpcProgNum;				/* store prog num */	}    /* Key format: "rpc/host/ip/port/prog/version/{tcp,udp}" */    gethostname (hostName, sizeof (hostName));		/* where are we? */#ifdef HOST    #ifdef WIN32    if ((pHostEnt = gethostbyname (hostName)))		/* know our IP addr? */	{	/* get the size of the cumulative adapters string */	for (addrList = pHostEnt->h_addr_list ; *addrList != NULL ; addrList ++)	    {	    memcpy (&ina.s_addr, *addrList, sizeof (ina.s_addr));	    if ( (inetAddr = inet_ntoa (ina)) != NULL)		inetLen += strlen (inetAddr) + 1;	    }	/* allocate memory for the IP addresses string */	if ( (ipAddrStr = (char *) calloc (inetLen, sizeof (char))) == NULL)	    goto error1;	/* now concat all the IP addresses in one string separeted with ',' */	firstAddress = TRUE;	for (addrList = pHostEnt->h_addr_list ; *addrList != NULL ; addrList ++)	    {	    memcpy (&ina.s_addr, *addrList, sizeof (ina.s_addr));	    if (firstAddress)		{		strcpy (ipAddrStr, inet_ntoa (ina));		firstAddress = FALSE;		}	    else	        {		sprintf (ipAddrStr, "%s,%s", ipAddrStr, inet_ntoa (ina));		}	    }	}    else	if ( (ipAddrStr = strdup ("")) == NULL)	    goto error1;    #else /* WIN32 */    /* init some variables */    memset (&addr, 0, sizeof (struct sockaddr_in));    memset (ifBuf, 0, sizeof (ifBuf));    memset (&ifc, 0, sizeof (struct ifconf));    memset (&ifReq, 0, sizeof (struct ifreq));    /*     * On UNIX hosts, the gethostbyname() routine may not return all the     * available IP addresses for the local host. We use a part of the     * RPC 4.0 get_myaddress.c code to retrieve the list of all IPs registered     * for the local host     */    if ( (s = socket (AF_INET, SOCK_DGRAM, 0)) < 0)	goto error1;    ifc.ifc_len = sizeof (ifBuf);    ifc.ifc_buf = ifBuf;    /* get the if config */    if (ioctl (s, SIOCGIFCONF, (char *)&ifc) < 0)	goto error2;    ifr = ifc.ifc_req;    /* get the list of all the IP addresses */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区有码在线| 国产91精品免费| 亚洲国产一区二区视频| 国产日产亚洲精品系列| 久久精品日韩一区二区三区| 久久综合九色综合97婷婷女人 | 亚洲成人tv网| 亚洲国产另类av| 亚洲一线二线三线视频| 亚洲成人免费电影| 亚洲va韩国va欧美va精品| 丝袜亚洲精品中文字幕一区| 婷婷丁香久久五月婷婷| 丝袜诱惑亚洲看片| 激情综合网av| 国产精品香蕉一区二区三区| 不卡视频一二三| 在线观看一区日韩| 欧美区一区二区三区| 日韩欧美一区在线| 久久免费电影网| 综合欧美亚洲日本| 亚洲一区二区视频| 奇米四色…亚洲| 国产成人免费高清| 色欧美88888久久久久久影院| 欧美视频在线一区二区三区 | 最新久久zyz资源站| 免费人成精品欧美精品| 美女尤物国产一区| 国产成人亚洲精品青草天美| 91网站最新地址| 欧美美女网站色| 26uuu精品一区二区在线观看| 国产精品美女一区二区三区| 夜夜精品视频一区二区| 男女性色大片免费观看一区二区 | 日韩欧美高清在线| 亚洲国产高清aⅴ视频| 亚洲午夜在线视频| 国产一区二区三区免费| 91小视频免费观看| 欧美一级高清片| 国产精品欧美一区喷水| 婷婷中文字幕综合| 成人午夜免费av| 欧美日本一区二区| 欧美高清在线精品一区| 亚洲二区视频在线| 国产一区二区不卡| 欧美日韩精品三区| 国产精品乱码久久久久久| 午夜电影久久久| www.色综合.com| 日韩午夜av一区| 亚洲色图制服诱惑| 久久99国内精品| 欧美影视一区在线| 国产欧美日韩亚州综合| 日韩高清在线电影| 色呦呦国产精品| 久久精品亚洲精品国产欧美| 日韩综合一区二区| 91碰在线视频| 国产亚洲短视频| 免费看黄色91| 欧美三级韩国三级日本一级| 国产精品毛片久久久久久| 美国欧美日韩国产在线播放| 欧洲精品一区二区| 国产精品看片你懂得| 国内精品伊人久久久久影院对白| 欧美日韩精品一区二区三区| 成人免费一区二区三区视频| 国产综合色在线| 7799精品视频| 亚洲成人免费电影| 色综合一区二区| 国产精品美女一区二区三区| 国产乱妇无码大片在线观看| 91麻豆精品国产无毒不卡在线观看| 亚洲美女偷拍久久| 成人h精品动漫一区二区三区| 久久影音资源网| 激情亚洲综合在线| 日韩一区二区三区av| 亚欧色一区w666天堂| 欧美在线色视频| 亚洲毛片av在线| 99久久久久久99| 国产精品嫩草影院com| 色婷婷狠狠综合| 亚洲欧美在线视频| 成人美女在线观看| 中文字幕精品三区| 国产iv一区二区三区| 国产亚洲精品超碰| 高清视频一区二区| 中文在线免费一区三区高中清不卡| 国产福利视频一区二区三区| 久久婷婷综合激情| 国产揄拍国内精品对白| 久久婷婷久久一区二区三区| 国产真实乱对白精彩久久| 精品国产三级a在线观看| 狠狠色综合色综合网络| 精品国产免费人成在线观看| 精品无人码麻豆乱码1区2区| 久久香蕉国产线看观看99| 国产一区免费电影| 国产人妖乱国产精品人妖| 国产99久久久久久免费看农村| 国产日韩欧美麻豆| 不卡的电视剧免费网站有什么| 国产精品乱码久久久久久| 91日韩精品一区| 性做久久久久久免费观看欧美| 在线成人av网站| 久久99久久99小草精品免视看| 2017欧美狠狠色| 丁香六月综合激情| 亚洲色图视频网站| 欧美午夜精品久久久久久孕妇| 亚洲观看高清完整版在线观看| 欧美高清精品3d| 久久99国产乱子伦精品免费| 日本一区二区高清| 在线观看免费一区| 视频一区视频二区中文字幕| 欧美成人vps| av电影一区二区| 性久久久久久久| 久久久无码精品亚洲日韩按摩| www.亚洲激情.com| 日韩制服丝袜先锋影音| 久久久久久99精品| 色婷婷综合久色| 久久精品国产第一区二区三区| 国产亚洲精品福利| 欧美性猛片aaaaaaa做受| 美女任你摸久久| 中文字幕在线一区二区三区| 欧美日韩一区二区三区不卡| 久久99久久99小草精品免视看| 亚洲欧美在线视频观看| 欧美日韩成人一区| 国产成人8x视频一区二区| 亚洲午夜激情网页| 国产欧美日韩在线| 欧美乱妇23p| www.综合网.com| 蜜桃视频在线观看一区二区| 中文字幕在线不卡一区| 91精品国产麻豆| www.亚洲在线| 蜜桃av一区二区| 亚洲伦在线观看| 精品国产一区二区亚洲人成毛片| 91视频免费看| 国产最新精品精品你懂的| 国产成人免费高清| 亚洲成人av免费| 国产精品卡一卡二| 精品国产污污免费网站入口 | 日韩美女精品在线| 精品久久一区二区| 在线免费不卡视频| 懂色一区二区三区免费观看| 日产精品久久久久久久性色| 亚洲欧洲美洲综合色网| 日韩一区二区三区在线| 色素色在线综合| 国产高清久久久久| 日本免费新一区视频| 亚洲精品乱码久久久久久日本蜜臀| 精品美女一区二区三区| 欧美精品久久一区| 91亚洲国产成人精品一区二区三 | 国产精品一区二区91| 日一区二区三区| 亚洲免费视频中文字幕| 国产农村妇女精品| 精品免费一区二区三区| 9191久久久久久久久久久| 91啦中文在线观看| 成人美女视频在线观看18| 国产一区二三区| 麻豆91精品视频| 午夜av区久久| 亚洲va欧美va天堂v国产综合| 亚洲免费av高清| 国产精品卡一卡二| 国产精品人妖ts系列视频| 久久久久久一二三区| 欧美成人三级在线| 日韩欧美色综合| 欧美一区二区三区免费观看视频 | 亚洲一区二区三区在线看| 亚洲视频狠狠干| 中文字幕亚洲区|