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

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

?? routelib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* routeLib.c - network route manipulation library *//* Copyright 1984 - 2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------03c,10may02,kbw  making man page edits03b,07dec01,rae  merge from synth ver 03h, (SPR #69690)03a,15oct01,rae  merge from truestack ver 03g, base 02z (update)02z,16mar99,spm  recovered orphaned code from tor1_0_1.sens1_1 (SPR #25770)02y,29sep98,spm  added mPrivRouteEntryDelete for held kernel routes (SPR #9374)02x,14dec97,jdi  doc: cleanup.02w,05dec97,rjc  added RTF_CLONING flag to mRoute routines. 02v,25oct97,kbw  making minor man page fixes 02u,22aug97,rjc  modifed return vals for mRoute* calls.02t,08aug97,vin  fixed SPR9121.02s,04aug97,kwb  fixed man page problems found in beta review02r,07jul97,rjc  route proto field moved to dest sockaddr.02q,30jun97,rjc  restored old rtentry size, added socktrim.02p,04jun97,rjc  fixed route proto priority glitches.02o,03jun97,rjc  fixed mask and RTF_HOST combinations.02n,29may97,rjc  fixed byte orders in mRoute routines02m,09may97,rjc  fixed mRoute{*} man pages02l,30apr97,kbw  fiddle man page text02k,28apr97,gnn  fixed some of the documentation.02j,20apr97,kbw  fixed minor format errors in man page text02i,15apr97,kbw  fixed minor format errors in man page text02h,14apr97,gnn  added documentation for new mRoute calls.02g,11apr97,rjc  added routing interface support, routing priority stuff.02f,13feb97,rjc  added masking of destination in mRoute--- stuff.02e,13feb97,rjc  updated mRouteEntryAdd/delete.02d,07feb97,rjc  newer  versions of route add/delete etc.02c,05feb97,rjc  new versions of route add/delete etc.02b,18jan95,jdi  doc tweaks for routeNetAdd().02a,08jul94,dzb  Added routeNetAdd() for adding subnet routes (SPR #3395).01z,14feb94,elh  made rtEntryFill global and NOMANUAL.01y,11aug93,jmm  Changed ioctl.h and socket.h to sys/ioctl.h and sys/socket.h01x,20jan93,jdi  documentation cleanup for 5.1.01w,28jul92,elh  moved routeShow to netShow.c01v,26may92,rrr  the tree shuffle		  -changed includes to have absolute path from h/01u,01mar92,elh  added routeCmd.01t,16dec91,gae  added includes for ANSI.01s,02dec91,elh  moved error handling to lower level (sys_socket).01r,26nov91,llk  changed include of errnoLib.h to errno.h.01q,12nov91,elh	 changed routes to interfaces to be direct routes,		 made routeChange set errno (rtioctl returns errno instead of -1)01p,07nov91,elh	 changed inet_ntoa to inet_ntoa_b so memory isn't lost.01o,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 notice01n,21may91,jdi	 documentation tweaks.01m,05apr91,jdi	 documentation -- removed header parens and x-ref numbers;		 doc review by dnw.01l,22feb91,jaa	 documentation cleanup.01k,10aug90,kdl  added forward declarations for functions returning void.01j,07may90,hjb  added documentation to routeAdd about adding the default route,		 explanation of the route specific flags, and made the		 output more unix compatible.01i,07mar90,jdi  documentation cleanup.01h,02sep89,hjb  fixed a big in routeShow() - instead of using RTHASHSIZ		 we now use the global rthashsize which is always set to		 the correct value in route.c.  (When GATEWAY is undefined,		 the route.h include file defines RTHASHSIZ to smaller value.)01g,07aug89,gae  fixed in_lnaof call in routeEntryFill for SPARC.01g,20aug88,gae  documentation.01f,30may88,dnw  changed to v4 names.01e,28may88,dnw  replace call to netGetInetAddr with calls to remGetHostByName		   and inet_addr.01d,18feb88,dnw  changed to handle subnet masks correctly (by calling in_lnaof()		   instead of inet_lnaof() in routeChange).01c,16nov87,jlf  documentation01b,16nov87,llk  documentation.01a,01nov87,llk  written.*//*DESCRIPTIONThis library contains the routines for inspecting the routing table,as well as routines for adding and deleting routes from that table.  If you do not configure VxWorks to include a routing protocol, such as RIP or OSPF, you can use these routines to maintain the routing tables manually.  To use this feature, include the following component:INCLUDE_NETWRS_ROUTELIBINCLUDE FILES: routeLib.hSEE ALSO: hostLib*/#include "vxWorks.h"#include "net/mbuf.h"#include "sys/socket.h"#include "sockLib.h"#include "unistd.h"#include "net/if.h"#include "net/route.h"#include "netinet/in.h"#include "sys/ioctl.h"#include "inetLib.h"#include "errno.h"#include "hostLib.h"#include "stdio.h"#include "ioLib.h"#include "routeLib.h"#include "m2Lib.h"#include "routeEnhLib.h"#ifdef VIRTUAL_STACK#include "netinet/vsLib.h"#endif /* VIRTUAL_STACK *//* forward static functions */static STATUS routeChange (char *destination, char *gateway, int ioctlCmd);void routeEntryFill (struct ortentry *pRoute, int destInetAddr, int		gateInetAddr, BOOL hostAddr);/********************************************************************************* routeAdd - add a route** This routine adds gateways to the network routing tables.* It is called from a VxWorks machine that needs* to establish a gateway to a destination network (or machine).** You can specify both <destination> and <gateway> in standard Internet* address format (for example, 90.0.0.2), or you can specify them using* their host names, as specified with hostAdd().** This routine can be used to add multiple routes to the same destination* differing by the gateway.** EXAMPLE* Consider the following example:* .CS*     -> routeAdd "90.0.0.0", "gate"* .CE* This call tells VxWorks that the machine with the host name "gate" is * the gateway to network 90.0.0.0.  The host "gate" must already have * been created by hostAdd().** Consider the following example:* .CS*     -> routeAdd "90.0.0.0", "91.0.0.3"* .CE* This call tells VxWorks that the machine with the Internet * address 91.0.0.3 is the gateway to network 90.0.0.0.** Consider the following example:* .CS*     -> routeAdd "destination", "gate"* .CE* This call tells VxWorks that the machine with the host name "gate" is * the gateway to the machine named "destination".  The host names "gate" and * "destination" must already have been created by hostAdd().** Consider the following example:* .CS*     -> routeAdd "0", "gate"* .CE* This call tells VxWorks that the machine with the host name "gate" is * the default gateway.  The host "gate" must already have been created * by hostAdd().  A default gateway is where Internet Protocol (IP) * datagrams are routed when there is no specific routing table entry * available for the destination IP network or host.** RETURNS: OK or ERROR.*/STATUS routeAdd    (    char *destination,  /* inet addr or name of route destination      */    char *gateway       /* inet addr or name of gateway to destination */    )    {    return (routeChange (destination, gateway, (int) SIOCADDRT));    }/********************************************************************************* routeNetAdd - add a route to a destination that is a network** This routine is equivalent to routeAdd(), except that the destination* address is assumed to be a network.  This is useful for adding a route* to a sub-network that is not on the same overall network as the* local network.* * This routine can be used to add multiple routes to the same destination* differing by the gateway.** RETURNS: OK or ERROR.*/STATUS routeNetAdd    (    char *destination,  /* inet addr or name of network destination */    char *gateway       /* inet addr or name of gateway to destination */    )    {    int destInetAddr;		/* destination internet adrs */    int	gateInetAddr;		/* gateway internet adrs */    struct ortentry route;	/* route entry */    int	sock;			/* socket */    int	status;			/* return status */    if ((((destInetAddr = hostGetByName (destination)) == ERROR) &&	 ((destInetAddr = (int) inet_addr (destination)) == ERROR)) ||        (((gateInetAddr = hostGetByName (gateway)) == ERROR) &&	 ((gateInetAddr = (int) inet_addr (gateway)) == ERROR)))	{	return (ERROR);	}    routeEntryFill (&route, destInetAddr, gateInetAddr, FALSE);    /* add the route */    sock = socket (AF_INET, SOCK_RAW, 0);    status = ioctl (sock, SIOCADDRT, (int) &route);    (void) close (sock);    return (status);    }/********************************************************************************* routeDelete - delete a route** This routine deletes a specified route from the network routing tables.** RETURNS: OK or ERROR.** SEE ALSO: routeAdd()*/STATUS routeDelete    (    char *destination,  /* inet addr or name of route destination      */    char *gateway       /* inet addr or name of gateway to destination */    )    {    return (routeChange (destination, gateway, (int) SIOCDELRT));    }/********************************************************************************* routeChange - change the routing tables** This routine makes changes to the routing tables by using an ioctl() call* to add or delete a route.** This is a local routine which should not be used directly.* Instead, routeAdd() and routeDelete() should be used as interfaces* to this routine.** The <destination> and <gateway> parameters may be specified either by their* Internet addresses in standard internet address format (e.g., "90.0.0.2"),* or by their names (their host names) which have already been added to the* remote host table (with hostAdd()).** RETURNS: OK or ERROR.** SEE ALSO: routeAdd()*/LOCAL STATUS routeChange    (    char *destination,  /* inet address or name of route destination      */    char *gateway,      /* inet address or name of gateway to destination */    int ioctlCmd        /* addition or deletion of a route                */    )    {    int destInetAddr;		/* destination internet adrs */    int gateInetAddr;		/* gateway internet adrs */    if ((((destInetAddr = hostGetByName (destination)) == ERROR) &&	 ((destInetAddr = (int) inet_addr (destination)) == ERROR)) ||        (((gateInetAddr = hostGetByName (gateway)) == ERROR) &&	 ((gateInetAddr = (int) inet_addr (gateway)) == ERROR)))	{	return (ERROR);	}    return (routeCmd (destInetAddr, gateInetAddr, ioctlCmd));    }/********************************************************************************* routeCmd - change the routing tables** routeCmd is the same as routeChange except it provides a non-string* interface.** NOMANUAL*/STATUS routeCmd    (    int		destInetAddr,		/* destination adrs */    int		gateInetAddr,		/* gateway adrs */    int		ioctlCmd		/* route command */    )    {    struct ortentry route;	/* route entry		*/    int 	   sock;	/* socket 		*/    int 	   status;	/* return status	*/    routeEntryFill (&route, destInetAddr, gateInetAddr, TRUE);    /* add or delete the route */    sock = socket (AF_INET, SOCK_RAW, 0);    if (sock == ERROR)        return (ERROR);    status = ioctl (sock, ioctlCmd, (int) &route);    (void) close (sock);    return (status);    }/********************************************************************************* routeEntryFill - fill in a route entry (struct ortentry)** Fills in a route entry (struct ortentry) with destination and* gateway information.** RETURNS: N/A.** NOMANUAL*/void routeEntryFill    (    struct ortentry *pRoute,     /* pointer to route entry */    int destInetAddr,           /* destination internet address */    int gateInetAddr,           /* gateway internet address */    BOOL hostAddr		/* check host part of address */    )    {    struct sockaddr_in *sin;    struct in_addr di;    /* zero out route entry */    bzero ((caddr_t) pRoute, sizeof (struct ortentry));    /* zero out sockaddr_in, fill in destination info */    /* XXX rt_dst really a struct sockaddr */    sin = (struct sockaddr_in *) &(pRoute->rt_dst);    bzero ((caddr_t) sin, sizeof (struct sockaddr_in));    sin->sin_family = AF_INET;    sin->sin_len = sizeof (struct sockaddr_in);	    sin->sin_addr.s_addr = (u_long)destInetAddr;    /* zero out sockaddr_in, fill in gateway info */    /* XXX rt_gateway really a struct sockaddr */    sin = (struct sockaddr_in *) &(pRoute->rt_gateway);    bzero ((caddr_t) sin, sizeof (struct sockaddr_in));    sin->sin_family = AF_INET;    sin->sin_len = sizeof (struct sockaddr_in);	    sin->sin_addr.s_addr = (u_long)gateInetAddr;    pRoute->rt_flags = RTF_UP;    di.s_addr = (u_long)destInetAddr;    /*     *  if host part of address filled in, then it's a host route     */    if ((hostAddr) && (in_lnaof (di) != INADDR_ANY))	pRoute->rt_flags |= RTF_HOST;    /*     *  if the gateway addr is not a local interface,     *  then it is an indirect route - send it to a gateway.     */    if (ifa_ifwithaddr (&(pRoute->rt_gateway)) == NULL)        pRoute->rt_flags |= RTF_GATEWAY;    }/********************************************************************************* mRouteAdd - add multiple routes to the same destination  ** This routine is similar to routeAdd(), except that you can use multiple* mRouteAdd() calls to add multiple routes to the same location.  Use  * <pDest> to specify the destination, <pGate> to specify the gateway to* that destination, <mask> to specify destination mask, and <tos> to specify* the type of service.  For <tos>, netinet/ip.h defines the following 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本一本大道香蕉久在线精品 | 亚洲va国产va欧美va观看| 久久久国产午夜精品| 欧美一卡二卡在线| 91精品国产aⅴ一区二区| 欧美日韩精品二区第二页| 欧美综合天天夜夜久久| 欧美日韩中文字幕精品| 欧美最猛性xxxxx直播| 欧美视频日韩视频在线观看| 欧美午夜精品免费| 欧美乱妇15p| 91精品国产91久久久久久一区二区| 欧美日韩黄色一区二区| 制服丝袜亚洲网站| 精品国产伦理网| 国产日韩欧美电影| 日韩一区有码在线| 日韩一区精品视频| 国产麻豆91精品| 粉嫩av一区二区三区| 91极品美女在线| 欧美午夜精品久久久久久超碰| 欧美日韩国产电影| 久久精品在线观看| 亚洲色欲色欲www在线观看| 五月婷婷欧美视频| 国产原创一区二区| 91久久精品午夜一区二区| 3751色影院一区二区三区| 久久久精品国产免大香伊| 亚洲日本一区二区三区| 日韩成人精品在线| 成人综合婷婷国产精品久久蜜臀| 91福利在线播放| 精品国产91久久久久久久妲己 | 日本韩国视频一区二区| 91丨porny丨国产入口| 色综合天天在线| 欧美在线短视频| 精品理论电影在线观看 | 国产中文字幕一区| 色88888久久久久久影院野外| 欧美一级高清片| 亚洲欧美欧美一区二区三区| 免费成人你懂的| 欧美午夜精品电影| 中文字幕av一区二区三区高| 日本欧美一区二区三区乱码 | 亚洲伦理在线精品| 国产精品一卡二卡| 欧美一级精品在线| 视频一区欧美日韩| 欧美综合色免费| 国产精品欧美综合在线| 久久成人综合网| 欧美日韩一级二级| 亚洲日本电影在线| av在线这里只有精品| 久久这里只有精品首页| 视频一区二区欧美| 欧美日韩精品免费观看视频| 亚洲免费观看高清完整版在线观看熊| 国产精品一区三区| 欧美va亚洲va香蕉在线| 日本不卡视频在线| 91精品在线免费| 日韩av网站免费在线| 欧美日韩一区视频| 亚洲制服欧美中文字幕中文字幕| 91网站黄www| 亚洲第一二三四区| 欧美三级在线视频| 亚洲色图在线视频| 9i看片成人免费高清| 久久久久久久久久久电影| 麻豆国产精品777777在线| 欧美日韩国产区一| 亚洲福利视频导航| 欧美精品 国产精品| 香港成人在线视频| 欧美日韩精品欧美日韩精品 | 欧美在线影院一区二区| 一二三四区精品视频| 91久久精品一区二区三| 亚洲午夜国产一区99re久久| 欧美精品色综合| 另类中文字幕网| 国产日韩欧美a| 一本久久a久久精品亚洲 | 国内成+人亚洲+欧美+综合在线| 欧美精品在线观看播放| 久久精品国产77777蜜臀| 日韩欧美高清dvd碟片| 国内精品久久久久影院薰衣草| 中文字幕av一区二区三区高 | 99精品国产一区二区三区不卡| 国产精品久久久久久久久快鸭| 9久草视频在线视频精品| 亚洲第一成人在线| 精品国产乱码久久久久久图片| 国产99久久久国产精品潘金| 亚洲女爱视频在线| 538在线一区二区精品国产| 精品在线你懂的| 综合激情成人伊人| 欧美一区二区国产| 成人激情午夜影院| 午夜电影一区二区三区| 国产欧美日韩中文久久| 91传媒视频在线播放| 蜜臀a∨国产成人精品| 亚洲天堂精品视频| 日韩午夜在线观看视频| 成人av网站大全| 久久超碰97中文字幕| 亚洲激情在线激情| 国产亚洲成aⅴ人片在线观看| 欧美色图免费看| 国产不卡一区视频| 日韩成人一级大片| 伊人一区二区三区| 国产午夜精品久久久久久免费视| 欧美亚洲一区二区三区四区| 国产成人高清视频| 七七婷婷婷婷精品国产| 亚洲精品视频在线观看网站| 久久久另类综合| 这里只有精品免费| 91官网在线免费观看| 成人深夜在线观看| 久久丁香综合五月国产三级网站| 亚洲福利国产精品| 亚洲自拍偷拍综合| 最近日韩中文字幕| 日本一区二区在线不卡| 日韩欧美电影在线| 国产精品中文字幕一区二区三区| 成人福利电影精品一区二区在线观看| 亚洲h在线观看| 亚洲色大成网站www久久九九| 久久亚洲二区三区| 91精品国产综合久久国产大片 | 丝袜美腿亚洲一区二区图片| 一区二区三区日本| 亚洲乱码精品一二三四区日韩在线| 国产色综合一区| 国产视频一区二区在线| 国产亚洲综合av| 国产午夜精品久久| 欧美国产综合一区二区| 久久精品视频一区二区三区| 精品久久一区二区| 久久众筹精品私拍模特| 国产调教视频一区| 国产精品青草久久| 亚洲嫩草精品久久| 亚洲成人av中文| 全国精品久久少妇| 韩国女主播一区| 国产mv日韩mv欧美| 国产一区二区三区黄视频| 激情综合网av| 国产一区二区三区免费在线观看| 黄色日韩三级电影| 国产99久久久久久免费看农村| 懂色av一区二区三区免费看| 粉嫩av一区二区三区粉嫩| 99国产精品久| 欧美中文字幕一二三区视频| 欧美男人的天堂一二区| 日韩欧美激情四射| 久久精品一区八戒影视| 亚洲男人电影天堂| 日韩精品视频网| 国产精品乡下勾搭老头1| 91在线精品秘密一区二区| 色婷婷综合久久久久中文| 欧美日韩国产欧美日美国产精品| 欧美一个色资源| 国产精品久久久一本精品| 亚洲国产精品麻豆| 精品一区二区三区免费视频| 成人免费看视频| 91.com视频| 日本一二三不卡| 天天操天天综合网| 国产成人免费视频| 欧美日韩精品一二三区| 中文字幕免费一区| 爽爽淫人综合网网站| 成人v精品蜜桃久久一区| 欧美系列日韩一区| 中文字幕久久午夜不卡| 日韩黄色免费电影| 99麻豆久久久国产精品免费| 日韩一区二区三区av| 亚洲欧洲综合另类在线| 国产一区不卡精品| 欧美日韩精品电影|