亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产精品99久久久久久似苏梦涵 | 日韩一区二区精品| 亚洲欧洲国产日本综合| 亚洲国产视频一区二区| 99久久99久久精品免费观看| 欧美精品一区二区三区久久久| 日本中文字幕一区二区有限公司| 色av成人天堂桃色av| 一区二区三区国产豹纹内裤在线| 国产成人免费xxxxxxxx| 欧美高清在线一区| 成人小视频在线| 日韩美女久久久| 在线欧美小视频| 偷拍一区二区三区四区| 欧美日韩精品免费| 麻豆精品一二三| 久久一日本道色综合| 成人av小说网| 国产精品不卡在线| 欧美在线观看一区二区| 午夜伊人狠狠久久| 久久综合一区二区| 99精品在线免费| 亚洲国产精品尤物yw在线观看| 欧美一区二区三区免费| 国产激情视频一区二区在线观看 | 亚洲国产综合在线| 欧美一级搡bbbb搡bbbb| 国产盗摄女厕一区二区三区 | 亚洲乱码中文字幕| 日韩亚洲欧美在线观看| 成人午夜电影网站| 一二三四社区欧美黄| 一区二区视频免费在线观看| 中文字幕一区二区三区不卡| 精品一区二区国语对白| 亚洲欧美偷拍卡通变态| 日韩欧美一级二级三级久久久| 成人不卡免费av| 久久精品国产精品青草| 亚洲欧美国产三级| 国产精品色哟哟| 久久久久97国产精华液好用吗| 欧美日韩国产三级| 99精品视频一区二区三区| 国产一区亚洲一区| 美女视频黄久久| 亚洲va韩国va欧美va| 一区二区视频免费在线观看| 中文字幕成人av| 中文字幕av一区 二区| 26uuu国产日韩综合| 欧美成人免费网站| 欧美成人一区二区三区在线观看| 欧美视频在线一区| 色老综合老女人久久久| 国产精品888| 视频一区中文字幕国产| 亚洲国产精品尤物yw在线观看| 自拍偷在线精品自拍偷无码专区| 中文一区二区在线观看| 亚洲国产精品av| 国产欧美一区在线| 亚洲国产精品黑人久久久| 欧美激情一区二区三区全黄| 久久综合国产精品| 久久精品亚洲麻豆av一区二区| 国产日产精品1区| 亚洲欧美怡红院| 视频一区视频二区中文字幕| 蜜臀av性久久久久蜜臀aⅴ| 久久精品72免费观看| 国产成人三级在线观看| 99久久99久久综合| 91精品一区二区三区久久久久久| 欧美一区二区成人| 中文字幕免费观看一区| 舔着乳尖日韩一区| 国产盗摄精品一区二区三区在线 | 日韩女优av电影在线观看| 国产欧美日韩亚州综合| 香蕉成人啪国产精品视频综合网| 久久av资源网| 欧美日韩二区三区| 亚洲天堂福利av| 国产精品一卡二卡| 91麻豆精品国产自产在线 | 久久国产欧美日韩精品| 91免费观看视频| 国产亚洲一二三区| 日本亚洲天堂网| 欧美无砖专区一中文字| 国产亚洲一区字幕| 黑人巨大精品欧美黑白配亚洲| 欧美乱妇23p| 亚洲精品一二三区| 国产98色在线|日韩| 久久综合av免费| 国产电影一区在线| 精品国产不卡一区二区三区| 九九**精品视频免费播放| 欧美一区二区三区爱爱| 天天操天天干天天综合网| 欧美日韩一级视频| 亚洲国产aⅴ天堂久久| 91黄色在线观看| 亚洲靠逼com| 欧美区视频在线观看| 日韩精品一区第一页| 日韩一级在线观看| 精品亚洲aⅴ乱码一区二区三区| 日韩一区二区三区四区| 国产综合一区二区| 国产女人水真多18毛片18精品视频| 亚洲精品一区在线观看| 亚洲在线中文字幕| 欧美熟乱第一页| 免费观看30秒视频久久| 久久精品男人天堂av| 色婷婷综合久色| 日本不卡一区二区三区| 日本一区二区三区高清不卡| 不卡区在线中文字幕| 亚洲精品免费在线| 欧美一区二区三区人| 激情五月婷婷综合网| 中文字幕一区av| 久久亚区不卡日本| 欧美日韩亚洲另类| 97久久超碰国产精品| 午夜视频久久久久久| 久久久久久久久久久久久夜| 在线观看三级视频欧美| 国产成人超碰人人澡人人澡| 亚洲品质自拍视频网站| 久久久激情视频| 欧美电影免费观看高清完整版在线观看 | 91小视频在线免费看| 奇米四色…亚洲| 亚洲成人免费在线观看| 18成人在线视频| 久久网这里都是精品| 欧美美女直播网站| 色婷婷av一区二区| 91首页免费视频| av日韩在线网站| 91亚洲资源网| 国产成人午夜片在线观看高清观看| 日本不卡一二三| 毛片不卡一区二区| 免费av成人在线| 国产乱码精品一区二区三区五月婷| 青青草97国产精品免费观看无弹窗版| 国产精品久久毛片av大全日韩| 久久久久久久久免费| 国产亚洲一区二区在线观看| 久久精品人人做| 亚洲丝袜另类动漫二区| 一区二区在线观看不卡| 亚洲成a人在线观看| 日产国产欧美视频一区精品| 男女男精品视频网| 国产在线观看免费一区| 国产91精品精华液一区二区三区| 国产ts人妖一区二区| 99精品视频一区| 91麻豆精品国产无毒不卡在线观看 | 午夜视黄欧洲亚洲| 日韩电影在线看| 成人一区二区三区在线观看| 欧美丝袜丝交足nylons图片| 91麻豆精品91久久久久同性| 日本一区二区三区四区在线视频| 自拍偷拍亚洲欧美日韩| 久久精品国产精品亚洲红杏| av在线不卡观看免费观看| 欧美成人激情免费网| 一区二区三区久久久| 国产精品99久久久久久似苏梦涵 | 91麻豆视频网站| 精品国产麻豆免费人成网站| 国产精品欧美一区二区三区| 亚洲444eee在线观看| 99re在线精品| 国产视频在线观看一区二区三区| 午夜一区二区三区视频| 成人av免费网站| 亚洲国产精品精华液ab| 美国毛片一区二区三区| 欧美福利一区二区| 亚洲成人精品一区| 日本高清不卡一区| 国产精品第五页| 99麻豆久久久国产精品免费| 精品国产一区二区三区av性色| 日韩电影在线观看电影| 在线电影国产精品| 免费成人在线网站| 欧美成人免费网站|