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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? arplib.c

?? vxworks操作系統源代碼_對于在vxworks環境下開發軟件的人員非常有用
?? C
?? 第 1 頁 / 共 2 頁
字號:
    if (arpCmd (SIOCDARP, &hostAddr, (u_char *) NULL, (int *) NULL) == ERROR)	{        errno = S_arpLib_INVALID_HOST;    /* No such entry in table. */	return (ERROR);	}    return (OK);    }/********************************************************************************* arpCmd - issues an ARP command** This routine generates the low-level ioctl call for an ARP command. Expected* values for the <cmd> parameter are SIOCSARP, SIOCGARP, or SIOCDARP. * The <pIpAddr> parameter specifies the IP address of the host. The* <pHwAddr> pointer provides the corresponding link-level address in* binary form. That parameter is only used with SIOCSARP, and is limited* to the 6-byte maximum required for Ethernet addresses. The <pFlags> * argument provides any flag settings for the entry.** RETURNS: OK, or ERROR if unsuccessful.** NOMANUAL** INTERNAL* This routine should be LOCAL, but it is also used by the proxy ARP* library. That library should call the ioctl interface directly instead* to avoid the overhead created by the additional routines in this* module which it does not use.*/STATUS arpCmd    (    int                 cmd,			/* arp command		*/    struct in_addr *    pIpAddr,		/* ip address		*/    u_char *            pHwAddr,		/* hardware address	*/    int *               pFlags			/* arp flags 		*/    )    {    struct arpreq       arpRequest;		/* arp request struct	*/    STATUS              status = ERROR;		/* return status 	*/    int                 sock;			/* socket 		*/    /* fill in arp request structure */    bzero ((caddr_t) &arpRequest, sizeof (struct arpreq));    arpRequest.arp_pa.sa_family = AF_INET;    ((struct sockaddr_in *)	&(arpRequest.arp_pa))->sin_addr.s_addr = pIpAddr->s_addr;    arpRequest.arp_ha.sa_family = AF_UNSPEC;    if (pHwAddr != NULL)        bcopy ((caddr_t) pHwAddr ,(caddr_t) arpRequest.arp_ha.sa_data,	       ENET_SIZE);    if (pFlags != NULL)    	arpRequest.arp_flags = *pFlags;    if ((sock = socket (AF_INET, SOCK_RAW, 0)) != ERROR)        {        if ((status = ioctl (sock, cmd, (int) &arpRequest)) == OK)	    {    	    if (pHwAddr != NULL)        	bcopy ((caddr_t) arpRequest.arp_ha.sa_data, (caddr_t) pHwAddr,			ENET_SIZE);	    if (pFlags != NULL)    		*pFlags = arpRequest.arp_flags;	    }        close (sock);        }    return (status);    }/********************************************************************************* arpFlush - flush all entries in the system ARP table** This routine flushes all non-permanent entries in the ARP cache.** RETURNS: N/A*/void arpFlush (void)    {    register struct llinfo_arp *la;    FAST struct rtentry * 	pRoute;     int				s;#ifdef VIRTUAL_STACK    virtualStackIdCheck();    la = _llinfo_arp.la_next;#else    la = llinfo_arp.la_next;#endif /* VIRTUAL_STACK */    s = splnet ();#ifdef VIRTUAL_STACK    while (la != &_llinfo_arp) #else    while (la != &llinfo_arp) #endif	{	pRoute = la->la_rt; 	la = la->la_next;	/* if entry permanent */	if ((pRoute->rt_rmx.rmx_expire == 0) || (pRoute->rt_flags == 0))	    continue;	arptfree(la->la_prev); /* timer has expired; clear */	}    splx (s);    }/********************************************************************************* etherAsciiToEnet - convert Ethernet address** This routine converts an Ethernet address in ascii format to its normal* 48 bit format.  <asciiAddr> is the string Ethernet address which has the form* "x:x:x:x:x:x" where x is a hexadecimal number between 0 and ff.  <retEnet> is* where the Ethernet address gets returned.   This routine is similar to the* UNIX call ether_aton.** RETURNS: OK, or ERROR if unsuccessful.** ERRNO: S_arpLib_INVALID_ENET_ADDRESS*/LOCAL STATUS etherAsciiToEnet    (    char *		asciiAddr,		/* enet addr in ascii	*/    u_char *		retEnet			/* return enet addr	*/    )    {    int			enet [ENET_SIZE];	/* Ethernet address     */    int			ix;			/* index variable	*/    if (sscanf (asciiAddr, "%x:%x:%x:%x:%x:%x", &enet [0],		&enet [1], &enet [2], &enet [3], &enet [4],		&enet [5]) != ENET_SIZE)	{	printf ("arp: invalid Ethernet address %s\n", asciiAddr);	errno = S_arpLib_INVALID_ENET_ADDRESS;	return (ERROR);	}    for (ix = 0; ix < ENET_SIZE; ix++)	retEnet [ix] = (u_char) enet [ix];   return (OK);   }/********************************************************************************* arpResolve - resolve a hardware address for a specified Internet address** This routine uses the Address Resolution Protocol (ARP) and internal ARP* cache to resolve the hardware address of a machine that owns the Internet* address given in <targetAddr>.** The hardware address is copied to <pHwAddr> as network byte order, if the* resolution of <targetAddr> is successful.  <pHwAddr> must point to a buffer* which is large enough to receive the address.** NOTE: RFC 1122 prohibits sending more than one arp request per second.  Any* numTicks value that would result in a shorter time than this is ignored.** RETURNS:* OK if the address is resolved successfully, or ERROR if <pHwAddr> is NULL,* <targetAddr> is invalid, or address resolution is unsuccessful.** ERRNO:*  S_arpLib_INVALID_ARGUMENT*  S_arpLib_INVALID_HOST**/STATUS arpResolve    (    char                *targetAddr,  /* name or Internet address of target */    char                *pHwAddr,     /* where to return the H/W address */    int                 numTries,     /* number of times to try ARPing (-1 means try                                         forever) */    int                 numTicks      /* number of ticks between ARPs */    )    {    struct ifnet *	pIf = NULL;    struct sockaddr_in  sockInetAddr;    struct rtentry *	pRt;    unsigned long	addr;    int			retVal = 0;    if (pHwAddr == NULL || numTries < -1 || numTries == 0)     /* user messed up */	{	errno = S_arpLib_INVALID_ARGUMENT;        return (ERROR);	}    /* the 'targetAddr' can either be the hostname or the actual Internet     * address.     */    if ((addr = (unsigned long) hostGetByName (targetAddr)) == ERROR &&	(addr = inet_addr (targetAddr)) == ERROR)	{	errno = S_arpLib_INVALID_HOST;	return (ERROR);	}    bzero ((caddr_t)&sockInetAddr, sizeof (sockInetAddr));    sockInetAddr.sin_len = sizeof(struct sockaddr_in);    sockInetAddr.sin_family = AF_INET;    sockInetAddr.sin_addr.s_addr = addr;     /*     * Get associated local interface's ifnet. This search also     * clones an empty ARP entry from the interface route if one     * does not already exist.     */    pRt = rtalloc1 ( (struct sockaddr *)&sockInetAddr, 1);    if (pRt == NULL)	{	errno = S_arpLib_INVALID_HOST;	return (ERROR);	}    pIf = pRt->rt_ifp;    if (pIf == NULL)	{        rtfree (pRt);	errno = S_arpLib_INVALID_HOST;	return (ERROR);	}    /* return 0xffffffffffff for broadcast Internet address */    if (in_broadcast (sockInetAddr.sin_addr, pIf))	{        bcopy ((char *) etherbroadcastaddr, pHwAddr,	       sizeof (etherbroadcastaddr));        rtfree (pRt);	return (OK);	}    /* Try to resolve the Ethernet address by calling arpresolve() which     * may send out ARP request messages out onto the Ethernet wire.     */    while ((numTries == -1 || numTries-- > 0) &&	   (retVal = arpresolve ((struct arpcom *) pIf, 				 (struct rtentry *)pRt, 				 (struct mbuf *) NULL,				 (struct sockaddr *)&sockInetAddr,				 (UCHAR *)pHwAddr))	   == 0)    	if (numTries)           /* don't delay after last arp */            taskDelay (numTicks);    rtfree (pRt);    if (retVal == 0)		/* unsuccessful resolution */	{	errno = S_arpLib_INVALID_HOST;        return (ERROR);	}    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜臀va亚洲va欧美va天堂| 国产乱人伦偷精品视频免下载| 亚洲欧美综合色| 69堂成人精品免费视频| 亚洲综合一区在线| 欧美综合天天夜夜久久| 亚洲午夜激情网站| 91精品国产综合久久婷婷香蕉| 久久精品久久精品| 久久久.com| 色猫猫国产区一区二在线视频| 一二三区精品福利视频| 欧美一区二区三区四区高清| 激情综合一区二区三区| 中文久久乱码一区二区| 在线国产电影不卡| 免费av网站大全久久| 国产欧美日本一区视频| 91福利国产精品| 久久成人综合网| 国产精品家庭影院| 欧美日韩免费电影| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美日精品一区视频| 亚洲国产婷婷综合在线精品| 在线综合+亚洲+欧美中文字幕| 韩国精品免费视频| 亚洲视频每日更新| 日韩一区二区三区在线观看| 国产成人超碰人人澡人人澡| 亚洲成人免费观看| 久久久久亚洲蜜桃| 在线看一区二区| 国产成人精品亚洲午夜麻豆| 亚洲大片在线观看| 中文字幕免费在线观看视频一区| 欧美无砖砖区免费| 国产精品18久久久久| 一区二区在线观看免费视频播放 | 91搞黄在线观看| 韩国女主播成人在线观看| 亚洲乱码国产乱码精品精98午夜| 欧美sm美女调教| 日本高清免费不卡视频| 高清成人免费视频| 毛片一区二区三区| 亚洲黄色尤物视频| 国产欧美日韩另类视频免费观看 | 久久男人中文字幕资源站| 欧洲一区二区av| 不卡av免费在线观看| 精品影视av免费| 日韩福利电影在线| 樱花草国产18久久久久| 国产精品久久久久久久裸模| 日韩欧美国产小视频| 欧美中文字幕一区二区三区亚洲| 成人一道本在线| 国产一区二区成人久久免费影院| 日日摸夜夜添夜夜添国产精品| 自拍偷自拍亚洲精品播放| 欧美精品一区二区三区蜜桃视频| 欧美日本一道本| 91精品办公室少妇高潮对白| av亚洲产国偷v产偷v自拍| 国产v综合v亚洲欧| 国产乱对白刺激视频不卡| 蜜桃视频一区二区| 免费在线观看不卡| 日本中文字幕一区二区视频 | 在线精品视频一区二区| av一二三不卡影片| 本田岬高潮一区二区三区| 国产91精品一区二区麻豆网站| 国产在线不卡视频| 国产一区二区三区免费看| 国产一区二区毛片| 国产福利一区在线观看| 国产精品 欧美精品| 国产精品一区二区x88av| 国产精品亚洲成人| 成人国产精品免费| 99riav久久精品riav| 91麻豆免费观看| 91国产精品成人| 欧美日产国产精品| 日韩欧美www| 久久女同精品一区二区| 国产欧美精品一区二区三区四区| 中文字幕精品一区| 亚洲视频1区2区| 亚洲曰韩产成在线| 午夜电影一区二区三区| 麻豆精品久久精品色综合| 久久av中文字幕片| 成人av资源在线观看| 色狠狠桃花综合| 91精选在线观看| 久久亚洲精品小早川怜子| 日本一区二区三区dvd视频在线| 国产精品久久久久婷婷二区次| 亚洲人成7777| 日日噜噜夜夜狠狠视频欧美人| 蜜乳av一区二区| 国产成人精品在线看| 日本国产一区二区| 日韩免费电影一区| 国产精品麻豆久久久| 亚洲一区二区三区中文字幕| 九九九久久久精品| 97精品视频在线观看自产线路二| 欧美性大战久久久久久久蜜臀| 日韩女优制服丝袜电影| 国产精品久久久久aaaa| 亚洲永久精品国产| 激情综合亚洲精品| 99久久国产免费看| 欧美一区二区啪啪| 亚洲视频免费看| 经典三级视频一区| 欧美三级日本三级少妇99| 久久久久99精品国产片| 亚洲成va人在线观看| 成人中文字幕电影| 日韩欧美亚洲国产另类| 亚洲情趣在线观看| 国产一区视频在线看| 欧美日韩精品专区| 国产精品久久久久久久久快鸭 | 亚洲欧洲日韩在线| 亚洲国产视频a| 国产激情91久久精品导航| 91在线精品一区二区| av一区二区三区黑人| 在线电影院国产精品| 国产精品五月天| 日韩国产欧美视频| 成人av综合一区| 日韩欧美精品在线视频| 久久99精品国产麻豆不卡| 成人一区二区三区在线观看| 91精品国产综合久久久久久漫画| 国产日本欧美一区二区| 石原莉奈在线亚洲三区| 成人va在线观看| 日本韩国一区二区| 国产精品久久久久久久久免费丝袜| 日韩电影在线免费看| 99精品国产91久久久久久 | 91亚洲精品久久久蜜桃网站| 欧美猛男gaygay网站| 亚洲乱码国产乱码精品精98午夜| 精品在线一区二区| 欧美日韩一二三区| 国产精品毛片大码女人| 九九热在线视频观看这里只有精品| 9191久久久久久久久久久| 亚洲视频你懂的| 国产成人精品免费视频网站| 欧美精品免费视频| 亚洲国产精品麻豆| jizzjizzjizz欧美| 99视频热这里只有精品免费| 欧美一卡2卡三卡4卡5免费| 亚洲三级电影全部在线观看高清| 国产精品一区在线| 日韩一区二区三区三四区视频在线观看 | 久久精品夜夜夜夜久久| 美腿丝袜亚洲三区| 欧美在线一区二区三区| 亚洲视频香蕉人妖| 91美女视频网站| 国产精品动漫网站| 成人av集中营| 国产精品女上位| 国产成人h网站| 久久久久久久久久久黄色| 美女诱惑一区二区| 91精品国产欧美一区二区| 亚洲一区在线观看免费| 欧美日韩精品一区二区天天拍小说| 久久国产福利国产秒拍| 欧美成人aa大片| 久久69国产一区二区蜜臀| 欧美国产禁国产网站cc| 韩日av一区二区| 久久先锋影音av鲁色资源网| 韩国理伦片一区二区三区在线播放| 国产日韩精品一区| 成人小视频免费观看| 精品影视av免费| 91久久国产最好的精华液| 中文字幕一区二区三区四区不卡| 粗大黑人巨茎大战欧美成人| 国产欧美视频在线观看| 国产成人福利片| 亚洲国产成人高清精品| 精品视频色一区| 免费高清在线一区| 欧美日韩一区二区三区四区 |