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

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

?? hostlib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* hostLib.c - host table subroutine library *//* Copyright 1984 - 2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02d,10may02,kbw  making man page edits02c,15oct01,rae  merge from truestack ver 02g, base 02b (SPR #63610)02b,15mar99,c_c  Doc: updated hostGetByName manual page (SPR #5184).02a,14mar99,jdi  doc: removed refs to config.h and/or configAll.h (SPR 25663).01z,20aug,97,jag added functions hostTblSearchByAddr(), hostTblSearchByName() 		 to address (SPR #9175)01x,19may97,spm  added checks for NULL pointers to user interface routines01w,20apr97,kbw  fixed man page format problems, did a spell check01v,07apr97,jag  added hooks for the resolver library.01w,17nov97,dgp  doc: SPR 9410, hostGetByName() returns addr in network byte			order01v,29aug97,dgp  doc: SPR 9196 correct ERROR return for hostAdd()01u,16feb94,caf  added check for NULL pointer in hostGetByName() (SPR #2920).01t,02feb93,jdi  documentation cleanup for 5.1.01s,13nov92,dnw  added include of semLibP.h01r,27jul92,elh  Moved hostShow to netShow.c01q,18jul92,smb  Changed errno.h to errnoLib.h.01p,26may92,rrr  the tree shuffle		  -changed includes to have absolute path from h/01o,10dec91,gae  more cleanup of ANSI warnings.01n,25oct91,rrr  cleanup of some ansi warnings.01m,04oct91,rrr  passed through the ansification filter                  -changed functions to ansi style		  -changed includes to have absolute path from h/		  -changed VOID to void		  -changed copyright notice01l,05apr91,jdi	 documentation -- removed header parens and x-ref numbers;		 doc review by dnw.01k,12feb91,jaa	 documentation.01j,02oct90,hjb  defined HOSTNAME_LEN. added sethostname() and gethostname().01i,15jul90,dnw  changed hostNameFill() to coerce malloc() to (char*)01h,26jun90,jcf  changed hostList semaphore to type mutex.01g,23may89,shl  changed addr parameter in hostGetByAddr() from char* to int.01f,21apr89,shl  added hostGetByAddr().		 added hostDelete ().01e,18mar88,gae  documentation.01d,07jul88,jcf  fixed malloc to match new declaration.01c,04jun88,gae  changed S_remLib_* to S_hostLib_*.01b,30may88,dnw  changed to v4 names.01a,28may88,dnw  extracted from remLib.*//*DESCRIPTIONThis library provides routines to store and access the network host database.The host table contains information regarding the known hosts on thelocal network.  The host table (displayed with hostShow()) containsthe Internet address, the official host name, and aliases.By convention, network addresses are specified in dotted (".") decimal notation.  The library inetLib contains Internet address manipulation routines.  Host names and aliases may contain any printable character.Before any of the routines in this module can be used, the library must beinitialized by hostTblInit().  This is done automatically if INCLUDE_HOST_TBLis defined.INCLUDE FILES: hostLib.hSEE ALSOinetLib*/#include "vxWorks.h"#include "sys/types.h"#include "netinet/in.h"#include "stdlib.h"#include "semLib.h"#include "string.h"#include "inetLib.h"#include "lstLib.h"#include "hostLib.h"#include "errnoLib.h"#include "stdio.h"#include "private/semLibP.h"#include "memPartLib.h"#ifdef VIRTUAL_STACK#include "netinet/vsLib.h"#endif#ifndef VIRTUAL_STACK#define HOSTNAME_LEN 128/* globals */LIST hostList;SEM_ID hostListSem = NULL;BOOL hostInitFlag = FALSE;#endif /* VIRTUAL_STACK *//* Function pointers installed by resolvLib, when the resolver is included */														/* Use DNS resolver for the name query */FUNCPTR _presolvHostLibGetByName = NULL;  				/* Use DNS resolver for the pointer query */FUNCPTR _presolvHostLibGetByAddr = NULL;  /* mutual exclusion options */int mutexOptionsHostLib = SEM_Q_FIFO | SEM_DELETE_SAFE;#ifndef VIRTUAL_STACK/* locals */LOCAL char targetName [HOSTNAME_LEN];	/* name for this target machine */#endif /* VIRTUAL_STACK *//* forward static functions */static STATUS hostNameFill (HOSTNAME *pHostName, char *newHostName);/********************************************************************************* hostTblInit - initialize the network host table** This routine initializes the host list data structure used by routines* throughout this module.  It should be called before any other routines in* this module.  This is done automatically if INCLUDE_HOST_TBL is defined.** RETURNS: N/A** SEE ALSO: usrConfig*/void hostTblInit (void)    {    if (!hostInitFlag)	{	hostInitFlag = TRUE;	lstInit (&hostList);	hostListSem = semMCreate (mutexOptionsHostLib);	}    }/********************************************************************************* hostAdd - add a host to the host table** This routine adds a host name to the local host table.* This must be called before sockets on the remote host are opened,* or before files on the remote host are accessed via netDrv or nfsDrv.** The host table has one entry per Internet address.* More than one name may be used for an address.* Additional host names are added as aliases.** EXAMPLE* .CS*    -> hostAdd "wrs", "90.2"*    -> hostShow*    hostname         inet address       aliases*    --------         ------------       -------*    localhost        127.0.0.1*    yuba             90.0.0.3*    wrs              90.0.0.2*    value = 12288 = 0x3000 = _bzero + 0x18* .CE* RETURNS:* OK, or ERROR if the host table is full, the host name/inet address pair* is already entered, the Internet address is invalid, or memory is * insufficient.** SEE ALSO: netDrv, nfsDrv*/STATUS hostAdd    (    char *hostName,     /* host name */    char *hostAddr      /* host addr in standard Internet format */    )    {    HOSTNAME *pHostNamePrev = NULL;	/* pointer to previous host name entry */    FAST HOSTNAME *pHostName;		/* pointer to host name entry */    FAST HOSTENTRY *pHostEntry;    struct in_addr netAddr;		/* network address */    if (hostName == NULL || hostAddr == NULL)        {        errnoSet (S_hostLib_INVALID_PARAMETER);        return (ERROR);        }    if ((netAddr.s_addr = inet_addr (hostAddr)) == ERROR)	return (ERROR);    if (semTake (hostListSem, WAIT_FOREVER) == ERROR)	return (ERROR);    for (pHostEntry = (HOSTENTRY *)lstFirst (&hostList);	 pHostEntry != NULL;	 pHostEntry = (HOSTENTRY *)lstNext (&pHostEntry->node))	{	if (pHostEntry->netAddr.s_addr == netAddr.s_addr)	    {	    /* host internet address already in table, add name as an alias */	    pHostNamePrev = &pHostEntry->hostName;	    for (pHostName = &pHostEntry->hostName;		 pHostName != NULL;		 pHostName = pHostName->link)		{		/* make sure name is not already used for this address */		if (strcmp (pHostName->name, hostName) == 0)		    {		    semGive (hostListSem);		    errnoSet (S_hostLib_HOST_ALREADY_ENTERED);		    return (ERROR);		    }		pHostNamePrev = pHostName;		}	    if (pHostNamePrev == NULL)		{		/* XXX corrupted list! */		return (ERROR);		}	    /* name not used for this address, add it as an alias */	    if ((pHostNamePrev->link = (HOSTNAME *)		 KHEAP_ALLOC(sizeof (HOSTNAME))) == NULL)		{		semGive (hostListSem);		return (ERROR);		}	    bzero ((char *)pHostNamePrev->link, sizeof(HOSTNAME));	    if (hostNameFill (pHostNamePrev->link, hostName) == ERROR)		{		semGive (hostListSem);		return (ERROR);		}	    semGive (hostListSem);	    return (OK);	    }	}    /* host name and internet address not in host table, add new host */    if ((pHostEntry = (HOSTENTRY *) KHEAP_ALLOC(sizeof (HOSTENTRY))) == NULL)	{	semGive (hostListSem);	return (ERROR);	}	    bzero ((char *)pHostEntry, sizeof(HOSTENTRY));    if ((hostNameFill (&pHostEntry->hostName, hostName)) == ERROR)	{	semGive (hostListSem);	return (ERROR);	}        pHostEntry->netAddr = netAddr;    lstAdd (&hostList, &pHostEntry->node);    semGive (hostListSem);    return (OK);    }/********************************************************************************* hostDelete - delete a host from the host table** This routine deletes a host name from the local host table.  If <name> is* a host name, the host entry is deleted.  If <name> is a host name alias,* the alias is deleted.** RETURNS: OK, or ERROR if the parameters are invalid or the host is unknown.** ERRNO: S_hostLib_INVALID_PARAMETER, S_hostLib_UNKNOWN_HOST*/STATUS hostDelete    (    char *name, /* host name or alias */    char *addr  /* host addr in standard Internet format */    )    {    HOSTNAME *pHostNamePrev;	/* pointer to previous host name entry */    HOSTNAME *pHostNameNext;	/* pointer to next host name entry */    FAST HOSTNAME *pHostName;    FAST HOSTENTRY *pHostEntry;    struct in_addr netAddr;    if (name == NULL || addr == NULL)        {        errnoSet (S_hostLib_INVALID_PARAMETER);        return (ERROR);        }    /* convert from string to int format */    if ((netAddr.s_addr = inet_addr (addr)) == ERROR)	return ERROR;    semTake (hostListSem, WAIT_FOREVER);    /* search inet address */    for (pHostEntry = (HOSTENTRY *)lstFirst (&hostList);	 pHostEntry != NULL;	 pHostEntry = (HOSTENTRY *)lstNext (&pHostEntry->node))        {	if (pHostEntry->netAddr.s_addr != netAddr.s_addr)	    continue;	if (strcmp (pHostEntry->hostName.name, name) == 0)	/* given name is exact match */	    {	    FAST HOSTNAME * pAlias = pHostEntry->hostName.link;	    FAST HOSTNAME * pNext = NULL;	    /* free all associated alias(es) 1st if any, then free itself */	    for ( ; pAlias != NULL; pAlias = pNext)		{		pNext = pAlias->link;		KHEAP_FREE(pAlias->name);		KHEAP_FREE((char *) pAlias);		}	    lstDelete (&hostList, &pHostEntry->node);	    semGive (hostListSem);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲激情一区二区| 中文字幕日韩一区| 国产精品77777| 国产日韩欧美制服另类| 国产98色在线|日韩| 亚洲天堂a在线| 欧美性感一类影片在线播放| 丝袜国产日韩另类美女| 精品少妇一区二区三区视频免付费 | 日韩欧美一二区| 国产一区二区中文字幕| 国产精品久久久久久久第一福利 | 亚洲欧美日韩一区| 欧美色老头old∨ideo| 六月婷婷色综合| 国产欧美久久久精品影院| 色欧美片视频在线观看在线视频| 亚洲第一福利视频在线| 欧美mv和日韩mv的网站| 99精品久久只有精品| 亚洲成a人片综合在线| 精品国产区一区| proumb性欧美在线观看| 亚洲成人动漫在线观看| 久久久噜噜噜久久中文字幕色伊伊| 99久久99久久久精品齐齐| 图片区小说区国产精品视频| 久久久精品免费免费| 99精品久久免费看蜜臀剧情介绍| 天天影视网天天综合色在线播放| 精品久久久久久最新网址| eeuss鲁片一区二区三区在线看| 亚洲成人高清在线| 国产色产综合产在线视频| 色悠悠久久综合| 久久国产生活片100| 亚洲少妇屁股交4| 日韩一区二区三区三四区视频在线观看 | 色又黄又爽网站www久久| 玖玖九九国产精品| 亚洲欧洲一区二区三区| 欧美一二三四区在线| av电影在线观看完整版一区二区| 男人的j进女人的j一区| 国产精品久久久久国产精品日日| 欧美日本一区二区三区四区| 不卡的av电影| 蜜臀精品一区二区三区在线观看 | 91精品久久久久久久久99蜜臂| 丁香一区二区三区| 日韩 欧美一区二区三区| 国产精品福利影院| 日韩免费高清电影| 91久久精品网| 大胆欧美人体老妇| 蜜桃一区二区三区四区| 一区二区三区在线视频观看58| 久久久久久久一区| 欧美日韩成人综合| 91年精品国产| 国产激情一区二区三区| 美女视频一区二区三区| 亚洲一区二区三区四区在线免费观看 | 99re视频这里只有精品| 国模套图日韩精品一区二区 | 婷婷综合久久一区二区三区| 国产精品嫩草99a| 精品欧美一区二区久久| 欧美丰满美乳xxx高潮www| 99久久免费国产| 国产毛片一区二区| 麻豆91小视频| 天天影视涩香欲综合网| 亚洲精品日韩专区silk| 国产精品网站在线播放| 精品国产露脸精彩对白| 欧美另类videos死尸| 色婷婷综合视频在线观看| 国产成人鲁色资源国产91色综| 强制捆绑调教一区二区| 亚洲国产视频网站| 亚洲精品国产a| 中文字幕在线观看不卡| 国产欧美一区二区精品忘忧草| 欧美精品一区二区三| 日韩免费看的电影| 奇米色777欧美一区二区| 成人午夜免费电影| 久久精品免费观看| 亚洲成人高清在线| 亚洲午夜电影网| 一区二区三区中文字幕在线观看| 亚洲欧美自拍偷拍色图| 欧美激情一区二区三区四区| 精品免费一区二区三区| 欧美一区二区三区婷婷月色| 欧美视频日韩视频| 91官网在线免费观看| 欧美精品一区二区高清在线观看| jlzzjlzz亚洲日本少妇| www.日韩大片| 波多野结衣精品在线| 成人h动漫精品| 不卡的av电影在线观看| av中文字幕不卡| 99麻豆久久久国产精品免费| av午夜一区麻豆| 99re成人精品视频| 99国产精品国产精品久久| 日韩和欧美的一区| 亚洲福利电影网| 亚洲图片一区二区| 午夜精品成人在线视频| 青青草原综合久久大伊人精品优势| 日本女人一区二区三区| 奇米精品一区二区三区四区| 久久国产精品色| 国产在线观看一区二区| 国产精品中文有码| 国产成人精品免费在线| 成人av资源在线观看| 91美女精品福利| 欧美日韩国产大片| 国产成人在线免费| 国产美女精品人人做人人爽| 国产传媒日韩欧美成人| 成人丝袜高跟foot| 91亚洲精华国产精华精华液| 日本国产一区二区| 这里只有精品视频在线观看| 日韩一区二区视频| 国产女同互慰高潮91漫画| 日韩毛片一二三区| 亚洲第一成年网| 天堂va蜜桃一区二区三区 | 成a人片亚洲日本久久| 色哟哟一区二区在线观看| 欧美另类一区二区三区| 亚洲精品一区二区三区蜜桃下载| 国产精品素人视频| 亚洲精品videosex极品| 日韩影院免费视频| 国产久卡久卡久卡久卡视频精品| 成人18视频在线播放| 欧美在线色视频| 欧美tk丨vk视频| 国产精品麻豆99久久久久久| 亚洲激情欧美激情| 免费国产亚洲视频| 成人国产精品免费网站| 欧美视频三区在线播放| 精品不卡在线视频| 日韩毛片视频在线看| 免费在线成人网| 不卡一二三区首页| 欧美精品日韩一区| 国产日韩精品一区二区三区| 亚洲综合色网站| 国产一区二区精品在线观看| 色综合中文字幕国产| 欧美日韩mp4| 亚洲国产岛国毛片在线| 亚洲欧美日韩久久| 久久精品国产亚洲一区二区三区| 成人美女在线观看| 欧美群妇大交群中文字幕| 国产欧美日韩一区二区三区在线观看| 一区二区免费看| 国产一区啦啦啦在线观看| 欧美亚洲禁片免费| 久久亚洲春色中文字幕久久久| 亚洲综合在线观看视频| 久久99精品久久久久久动态图 | 日本一区免费视频| 亚洲成人先锋电影| 大胆亚洲人体视频| 日韩一区二区三| 亚洲裸体在线观看| 国产曰批免费观看久久久| 欧美午夜寂寞影院| 中文字幕欧美国产| 麻豆国产91在线播放| 欧美亚洲综合另类| 国产精品丝袜黑色高跟| 久久国产欧美日韩精品| 在线观看日韩电影| 中文字幕欧美日韩一区| 久久99这里只有精品| 精品视频在线免费| 1024亚洲合集| 国产美女在线观看一区| 欧美精品123区| 亚洲另类一区二区| 国产成人啪免费观看软件| 日韩一级黄色大片| 亚洲国产成人高清精品| 成人丝袜18视频在线观看| 精品国产网站在线观看| 亚洲成人黄色影院| 色综合久久中文字幕综合网|