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

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

?? input.c

?? rip路由在vxworks上的實現(xiàn)源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* input.c - routines for processing incoming RIP messages *//* Copyright 1984 - 2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/* * Copyright (c) 1983, 1988, 1993 *	The Regents of the University of California.  All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *        @(#)input.c	8.3 (Berkeley) 4/28/95 *//*modification history--------------------01s,22mar02,niq  Merged from Synth view, tor3_x.synth branch, ver 01z01r,24jan02,niq  SPR 72415 - Added support for Route tags01q,15oct01,rae  merge from truestack ver 01t, base 01n (SPRs 70188, 69983 etc.)01p,21nov00,spm  fixed transmission of responses to wrong port (SPR #62532)01o,10nov00,spm  merged from version 01p of tor3_x branch (SPR #33692 fix)01n,16mar99,spm  recovered orphaned code from tor1_0_1.sens1_1 (SPR #25770)01m,29sep98,spm  updated route modification time for IP group MIB (SPR #9374)01l,11sep98,spm  general overhaul of input processing (SPR #22297); removed                 all references to bloated trace commands (SPR #22350)01k,01sep98,spm  changed test of next hop address to detect supernet                  matches (SPR #22220) and comply with RIP specification;                 modified whitespace (for coding standards) and added comments01j,26jun98,spm  corrected timer setting for poisoned routes; removed duplicate                 tests from response processing; updated debug messages and                 added typecast to remove compiler warning01i,03oct97,gnn  added includes and declarations to remove warnings01h,15may97,gnn  fixed errors relating to ripSplitPacket.01g,08may97,gnn  fixed more ANVL related errors.01f,17apr97,gnn  fixed errors pointed out by ANVL.       01e,14apr97,gnn  added input packet authentication.01d,07apr97,gnn  cleared up some of the more egregious warnings.                 added MIB-II interface and option support.01c,12mar97,gnn  added multicast support.                 added time variables.01b,24feb97,gnn  added rip version 2 functionality01a,26nov96,gnn  created from BSD4.4 routed*//*DESCRIPTION*//* * Routing Table Management Daemon */#include "vxWorks.h"#include "logLib.h"#include "tickLib.h"#include "rip/defs.h"#include "m2Lib.h"#include "routeEnhLib.h"#ifdef VIRTUAL_STACK#include "netinet/vsLib.h"#include "netinet/vsRip.h"#elseIMPORT int routedDebug;#endif/* The random number generation limits the frequency of triggered updates. */LOCAL u_long ripRandTimeSeed = 1;LOCAL u_long ripRandTime (void);LOCAL void ripRouteAgeUpdate(struct rt_entry *pRtEntry);#define RANDOMDELAY()    (MIN_WAITTIME * 1000000 + \               ripRandTime() % ((MAX_WAITTIME - MIN_WAITTIME) * 1000000))#define osa(x) ((struct osockaddr *)(&(x)))/* forward declarations */void addrouteforif(register struct interface *ifp);void ripSplitPacket (struct interface* pIfp, struct sockaddr_in *src,                     struct sockaddr* orig, struct sockaddr* gateway,                      struct sockaddr* netmask, int* pTag );void timevaladd (struct timeval *t1, struct timeval *t2);IMPORT STATUS ripAuthCheck (char *, RIP_PKT *);IMPORT void ripSockaddrPrint (struct sockaddr *);/* * Process a newly received packet. */void routedInput    (    struct sockaddr *from,    register RIP_PKT *rip,    int size    )    {    register struct rt_entry *rt;    register struct netinfo *n;    register struct netinfo *pFirst;    register struct interface *ifp;    register struct interface *pErrorIfp;    struct interface *ripIfWithDstAddr();    int count, changes = 0;    register struct afswitch *afp;    static struct sockaddr badfrom, badfrom2;    struct sockaddr gateway;    struct sockaddr netmask;    int tag;    int origMetric;#ifndef VIRTUAL_STACK    IMPORT RIP ripState;#endif    ifp = 0;    if (routedDebug > 2)        logMsg ("Received RIP message.\n", 0, 0, 0, 0, 0, 0);    if (from->sa_family >= AF_MAX ||        (afp = &afswitch[from->sa_family])->af_hash == (int (*)())0)        {        if (routedDebug)            logMsg ("Command %d received from unsupported address family %d.\n",                    rip->rip_cmd, from->sa_family, 0, 0, 0, 0);        return;        }    /*      * Determine the interface connected to the source of the      * RIP message. If no match is found, the message will be ignored.     */    pErrorIfp = ripIfLookup (from);    if (pErrorIfp == NULL)        {        if (routedDebug)            logMsg ("RIP message received from unreachable router %s.\n",                    (int)(*afswitch[from->sa_family].af_format)(from),                    0, 0, 0, 0, 0);         return;         }    /* If the interface has been disabled, silently drop received packets. */    if (pErrorIfp->ifConf.rip2IfConfStatus != M2_rip2IfConfStatus_valid)        return;    /*      * Test for valid version numbers and filter RIP messages based on the      * current setting of the interface's receive control switch.      */    if (rip->rip_vers == 0)        {        if (routedDebug)            logMsg ("RIP version 0 packet received from %s! (cmd %d)\n",                    (int)(*afswitch[from->sa_family].af_format)(from),                     rip->rip_cmd, 0, 0, 0, 0);        pErrorIfp->ifStat.rip2IfStatRcvBadPackets++;        return;        }    if (rip->rip_vers == 1 &&             pErrorIfp->ifConf.rip2IfConfReceive == M2_rip2IfConfReceive_rip2)        {        if (routedDebug)            logMsg ("RIP-1 message rejected by receive control switch.\n",                     0, 0, 0, 0, 0, 0);        pErrorIfp->ifStat.rip2IfStatRcvBadPackets++;        return;        }    if (rip->rip_vers == 2 &&             pErrorIfp->ifConf.rip2IfConfReceive == M2_rip2IfConfReceive_rip1)        {        if (routedDebug)            logMsg ("RIP-2 message rejected by receive control switch.\n",                     0, 0, 0, 0, 0, 0);        pErrorIfp->ifStat.rip2IfStatRcvBadPackets++;        return;        }    /*      * Handle message authentication. If authentication is active, only      * messages validated by the authentication hook are accepted. That      * routine may allow RIP-1 messages if desired and must validate all      * RIP-2 messages.     */    if (pErrorIfp->ifConf.rip2IfConfAuthType ==            M2_rip2IfConfAuthType_noAuthentication)        {        /*         * Authentication is not enabled. Discard any RIP-2 messages          * containing authentication entries.         */        if (rip->rip_vers == 2)            {            pFirst = rip->rip_nets;            if (ntohs(osa(pFirst->rip_dst)->sa_family) == RIP2_AUTH)                {                if (routedDebug)                    logMsg ("Discarding message with unused authentication.\n",                            0, 0, 0, 0, 0, 0);                pErrorIfp->ifStat.rip2IfStatRcvBadPackets++;                return;                }            }        /* Get the first rip entry for processing */        pFirst = n = rip->rip_nets;        }    else        {        /*          * Authenticate message. All RIP-2 messages without authentication         * entries are rejected. RIP-2 messages with the current MD5 key         * or simple password are accepted. Under MD5 authentication, all         * other RIP-2 messages and all RIP-1 messages are rejected. Under         * simple password authentication, those messages are still accepted         * if the hook routine returns OK but are rejected if no hook routine         * is installed.         */        if (rip->rip_vers == 2)            {            pFirst = rip->rip_nets;            if (ntohs (osa (pFirst->rip_dst)->sa_family) != RIP2_AUTH)                {                if (routedDebug)                    logMsg ("Discarding unauthenticated RIP-2 message.\n",                            0, 0, 0, 0, 0, 0);                pErrorIfp->ifStat.rip2IfStatRcvBadPackets++;                return;                }            }#ifdef RIP_MD5        /*         * When MD5 authentication is active, the validation routine discards         * all RIP-1 messages and any RIP-2 messages without a matching key.         */        if (pErrorIfp->ifConf.rip2IfConfAuthType == M2_rip2IfConfAuthType_md5)            {            if (ripAuthKeyInMD5(pErrorIfp, rip, size) == ERROR)                {                if (routedDebug)                    logMsg ("Unable to authenticate RIP message.\n",                            0, 0, 0, 0, 0, 0);                return;                }            /*             * Reduce the reported size to ignore the entry which contains             * the MD5 authentication trailer (20 bytes).             */            size -= sizeof(struct netinfo);            }        else if (pErrorIfp->ifConf.rip2IfConfAuthType ==                 M2_rip2IfConfAuthType_simplePassword)#else        if (pErrorIfp->ifConf.rip2IfConfAuthType ==            M2_rip2IfConfAuthType_simplePassword)#endif /* RIP_MD5 */            {            /*             * The ripAuthCheck() routine automatically accepts any RIP-2              * messages containing the correct simple password authentication              * key. All other messages are handled by the authentication hook,             * or discarded if none is available.             */            if (ripAuthCheck (pErrorIfp->ifConf.rip2IfConfAuthKey,                              rip) == ERROR)                {                if (pErrorIfp->authHook)                    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费在线观看不卡| 色天天综合色天天久久| 欧美一区二区私人影院日本| 午夜精品影院在线观看| 欧美一区二区三区四区高清| 男人的j进女人的j一区| 精品国产一区二区三区忘忧草| 成人av网站在线观看免费| 自拍偷拍欧美激情| 在线免费观看一区| 蜜桃视频第一区免费观看| 亚洲精品在线观看视频| 成人丝袜18视频在线观看| 亚洲免费高清视频在线| 欧美日韩一本到| 久久国产乱子精品免费女| 久久精品欧美一区二区三区不卡 | 日韩理论片在线| 色中色一区二区| 欧美中文字幕一二三区视频| 国产不卡免费视频| 亚洲欧洲一区二区三区| 色婷婷精品久久二区二区蜜臂av| 夜夜揉揉日日人人青青一国产精品| 欧美日韩免费在线视频| 狠狠色狠狠色综合日日91app| 国产精品欧美一区二区三区| 在线观看视频一区| 激情欧美一区二区| 亚洲乱码中文字幕| 日韩精品一区二区三区在线播放 | 欧美亚洲一区二区三区四区| 日韩精品电影在线观看| 欧美国产日韩精品免费观看| 欧美丝袜丝nylons| 国产精品一区二区不卡| 亚洲成av人片在线观看无码| 久久精子c满五个校花| 欧美成人bangbros| 大陆成人av片| 日韩高清不卡在线| 亚洲免费在线视频| 久久综合久久久久88| 色狠狠色噜噜噜综合网| 国产精品亚洲第一| 午夜精品久久久久久久久| 国产欧美日本一区视频| 欧美精品第一页| 99久久国产免费看| 国产乱码精品1区2区3区| 午夜精品在线视频一区| 亚洲人成亚洲人成在线观看图片| 日韩一级免费观看| 欧美日韩国产精品成人| 99re这里只有精品首页| 国产成人夜色高潮福利影视| 日韩国产欧美视频| 亚洲一区在线视频| 国产女人水真多18毛片18精品视频| 在线不卡免费av| 色老汉av一区二区三区| 91在线视频官网| 国产91在线观看丝袜| 国产一区视频网站| 蜜桃一区二区三区在线| 亚洲超碰精品一区二区| 夜夜夜精品看看| 亚洲乱码国产乱码精品精可以看| 国产精品剧情在线亚洲| 久久久久久黄色| 久久这里只精品最新地址| 日韩一级免费观看| 日韩美女天天操| 91精品国产综合久久婷婷香蕉| 欧美午夜精品一区二区蜜桃| 色视频欧美一区二区三区| 99这里只有精品| 91在线观看污| 91免费视频网址| 在线观看一区二区视频| 91国内精品野花午夜精品| 色吧成人激情小说| 色综合久久久久久久| 日本久久电影网| 欧美三级电影在线观看| 欧美三级午夜理伦三级中视频| 欧美午夜在线一二页| 欧美精品亚洲二区| 在线成人av影院| 日韩精品影音先锋| 久久精品亚洲精品国产欧美kt∨| 国产亚洲一区二区在线观看| 国产亚洲一本大道中文在线| 国产亚洲综合av| 最近中文字幕一区二区三区| 亚洲美女少妇撒尿| 亚洲电影视频在线| 久久99久久精品| 丁香婷婷综合五月| 91免费视频网| 制服丝袜亚洲色图| 精品人伦一区二区色婷婷| 亚洲国产精品成人综合| 一区二区三区四区乱视频| 日产欧产美韩系列久久99| 日本成人在线视频网站| 国内成人自拍视频| 91丨国产丨九色丨pron| 欧美日韩情趣电影| 久久久久久夜精品精品免费| 亚洲欧美在线观看| 日韩高清不卡一区二区三区| 国产乱国产乱300精品| 色婷婷av一区二区三区大白胸| 欧美一区二区三区播放老司机| 久久久精品2019中文字幕之3| 亚洲视频小说图片| 免费一区二区视频| k8久久久一区二区三区| 在线播放91灌醉迷j高跟美女 | 一区二区在线观看视频| 日韩va亚洲va欧美va久久| 国产精品99久久久久久有的能看| 91视频xxxx| 欧美成人国产一区二区| 亚洲情趣在线观看| 国精产品一区一区三区mba视频 | 亚洲免费色视频| 久久精品99国产国产精| 91福利在线导航| 国产日产欧美精品一区二区三区| 亚洲激情第一区| 高清在线不卡av| 欧美成人高清电影在线| 亚洲高清免费一级二级三级| 成人综合激情网| 日韩欧美国产一区在线观看| 亚洲久草在线视频| 大胆亚洲人体视频| 日韩精品专区在线影院观看| 亚洲国产精品视频| av网站一区二区三区| 久久久久一区二区三区四区| 午夜电影一区二区三区| 日本伦理一区二区| 日韩美女啊v在线免费观看| 国产黄色91视频| 欧美哺乳videos| 日本午夜一区二区| 欧美在线影院一区二区| 中文字幕在线一区免费| 国产一区二区三区四区五区入口 | 91久久人澡人人添人人爽欧美| 久久只精品国产| 麻豆极品一区二区三区| 欧美日韩不卡视频| 亚洲一区在线观看网站| 色综合一个色综合| 综合电影一区二区三区 | 欧美电影免费观看高清完整版在| 亚洲一区二区三区四区五区黄 | 亚洲成人一区在线| 欧美午夜在线一二页| 夜夜夜精品看看| 91久久精品一区二区三| 综合久久久久综合| 9人人澡人人爽人人精品| 国产精品情趣视频| av不卡在线观看| 天天色天天爱天天射综合| 色播五月激情综合网| 亚洲色图另类专区| 91麻豆精品视频| 亚洲男同性恋视频| 91高清视频免费看| 亚洲国产成人av网| 91精品国产免费| 老司机免费视频一区二区| 日韩欧美一区二区不卡| 久久超碰97人人做人人爱| 精品国产91洋老外米糕| 国产精品99久久不卡二区| 欧美国产综合一区二区| 成人av手机在线观看| 成人免费在线观看入口| 色综合久久综合中文综合网| 一区二区三区视频在线看| 欧美三区免费完整视频在线观看| 性做久久久久久免费观看欧美| a在线欧美一区| 久久9热精品视频| 精品久久久久久亚洲综合网| 韩日欧美一区二区三区| 国产欧美日韩在线视频| 99久久久免费精品国产一区二区 | 丁香婷婷综合网| 一区二区三区精品久久久| 欧美精选午夜久久久乱码6080| 国产综合久久久久久久久久久久| 国产亚洲制服色|