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

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

?? routelib.c

?? vxwork源代碼
?? 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一区二区三区免费野_久草精品视频
国产成人免费xxxxxxxx| 一级日本不卡的影视| 欧美极品美女视频| 午夜视频在线观看一区二区三区| 国产在线精品一区二区不卡了| 色哦色哦哦色天天综合| 久久久99久久精品欧美| 天堂午夜影视日韩欧美一区二区| av在线不卡网| 国产视频一区二区在线观看| 久久超碰97中文字幕| 精品视频免费在线| 亚洲丝袜自拍清纯另类| 国产一区二区三区免费观看| 欧美性受xxxx黑人xyx性爽| 欧美激情一二三区| 国产一区二区精品久久99 | 亚洲曰韩产成在线| 国产成人8x视频一区二区| 精品理论电影在线观看| 日韩成人精品视频| 91精品久久久久久久久99蜜臂| 亚洲精品国产a久久久久久| 成人福利视频在线| 欧美极品另类videosde| 国产传媒日韩欧美成人| 国产调教视频一区| 国产精品小仙女| 久久午夜羞羞影院免费观看| 精品在线一区二区三区| 欧美一区二区日韩| 免费三级欧美电影| 日韩欧美一区二区不卡| 久久国产精品免费| 精品99一区二区三区| 国产美女在线精品| 久久奇米777| 成人v精品蜜桃久久一区| 亚洲欧美一区二区不卡| 91麻豆精品一区二区三区| 亚洲人成网站色在线观看| 色婷婷av一区二区三区大白胸| 亚洲人快播电影网| 欧美久久婷婷综合色| 美女免费视频一区二区| 国产欧美日本一区视频| 91小视频在线观看| 亚洲成精国产精品女| 欧美一级免费观看| 日本大胆欧美人术艺术动态| 久久综合久久99| 91丨porny丨蝌蚪视频| 亚洲大片精品永久免费| 日韩欧美视频在线| 成人一道本在线| 亚洲美女屁股眼交| 欧美一区二区性放荡片| 国产精品99久久久久久久女警 | 91精品国产综合久久香蕉的特点 | 亚洲一区在线视频观看| 51久久夜色精品国产麻豆| 国内精品第一页| 中文字幕一区二区在线播放| 欧美日韩的一区二区| 国产精品1024| 亚洲电影视频在线| 欧美激情一二三区| 欧美精品 日韩| 成人av高清在线| 免费久久99精品国产| 亚洲欧美综合在线精品| 日韩一区二区在线观看视频播放| 成人免费视频app| 日韩va欧美va亚洲va久久| 国产精品卡一卡二卡三| 日韩欧美国产1| 色www精品视频在线观看| 精品影视av免费| 一区二区在线观看不卡| 久久免费国产精品| 欧美午夜电影在线播放| 北条麻妃国产九九精品视频| 免播放器亚洲一区| 亚洲国产另类av| 亚洲情趣在线观看| 久久久久久久久久久电影| 欧美一区午夜视频在线观看| 91视频免费看| 波多野结衣的一区二区三区| 国产精品自拍网站| 男女性色大片免费观看一区二区 | 国产精品嫩草影院av蜜臀| 欧美无人高清视频在线观看| 成人精品一区二区三区中文字幕| 日韩av中文字幕一区二区 | 美女精品一区二区| 亚洲第一av色| 亚洲精品写真福利| 亚洲色图丝袜美腿| 国产精品欧美综合在线| 国产欧美一区二区三区鸳鸯浴 | 亚洲理论在线观看| 国产精品免费视频网站| 2017欧美狠狠色| 日韩欧美综合在线| 欧美一三区三区四区免费在线看| 欧美色老头old∨ideo| 日本精品一级二级| 一本色道久久综合精品竹菊| 成人永久aaa| 成人av在线网站| 成人免费视频播放| 成人av高清在线| 99久久久久久| 色综合视频一区二区三区高清| 成人a区在线观看| 色婷婷综合在线| 欧美在线色视频| 欧美人与性动xxxx| 宅男在线国产精品| 精品日韩av一区二区| 精品国产百合女同互慰| 久久久久国色av免费看影院| 国产午夜精品一区二区| 亚洲精品国产视频| 亚洲国产欧美在线人成| 日本一道高清亚洲日美韩| 精品在线一区二区| 丰满放荡岳乱妇91ww| 99久久精品国产麻豆演员表| 91毛片在线观看| 欧美一区二区三区视频免费| 亚洲精品一区在线观看| 欧美国产精品一区二区三区| 亚洲精品视频在线观看免费| 亚洲国产精品综合小说图片区| 色综合久久久久久久久久久| 精品视频色一区| 久久久久国产精品麻豆ai换脸| 中文字幕av一区二区三区免费看| 亚洲精品一二三四区| 日本不卡不码高清免费观看| 国产精品一区二区在线观看不卡| 91在线播放网址| 欧美一区二区三区不卡| 国产精品午夜电影| 亚洲国产wwwccc36天堂| 国产剧情一区二区三区| 一本久道久久综合中文字幕| 日韩精品中文字幕在线不卡尤物| 中文字幕不卡在线播放| 亚洲成人在线网站| 国产成人啪免费观看软件| 欧美午夜在线一二页| 国产蜜臀97一区二区三区| 亚洲国产精品久久不卡毛片| 国产精品18久久久久久vr| 欧美在线观看18| 国产午夜亚洲精品不卡| 日本vs亚洲vs韩国一区三区二区| 成人黄色国产精品网站大全在线免费观看| 一本大道av伊人久久综合| 日韩视频一区二区三区在线播放| 亚洲欧美经典视频| 激情欧美日韩一区二区| 欧美日韩午夜精品| 自拍偷拍亚洲欧美日韩| 国产乱码精品1区2区3区| 4438x亚洲最大成人网| 亚洲美女视频在线| 成人久久视频在线观看| 欧美成人三级电影在线| 亚洲成人1区2区| 欧洲精品在线观看| 亚洲色图欧美激情| 国产成人免费高清| xnxx国产精品| 精品一区二区三区日韩| 欧美高清激情brazzers| 亚洲无线码一区二区三区| 99视频有精品| 国产色婷婷亚洲99精品小说| 久久99精品久久只有精品| 在线不卡免费欧美| 亚洲成av人综合在线观看| 色欧美乱欧美15图片| 亚洲免费大片在线观看| 成人免费视频一区| 国产日韩欧美一区二区三区综合| 美国欧美日韩国产在线播放| 制服丝袜亚洲精品中文字幕| 午夜精品视频一区| 色av一区二区| 麻豆精品视频在线观看视频| 精品区一区二区| 成人av网站免费| 视频一区视频二区中文| 国产精品久久久久久久久果冻传媒| 成人午夜电影网站| 午夜视频在线观看一区|