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

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

?? m2udplib.c

?? vxwork源代碼
?? C
字號:
/* m2UdpLib.c - MIB-II UDP-group API for SNMP agents *//* Copyright 1984 - 2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01e,15oct01,rae  merge from truestack ver 01i, base 01d (SPR #68597, VS)01d,08mar97,vin  added changes to accomodate changes in pcb structure.01c,25jan95,jdi  doc cleanup.01b,11nov94,rhp  edited man pages01a,08dec93,jag  written*//*DESCRIPTIONThis library provides MIB-II services for the UDP group.  It providesroutines to initialize the group, access the group scalar variables, andread the table of UDP listeners.  For a broader description of MIB-IIservices, see the manual entry for m2Lib.To use this feature, include the following component:INCLUDE_MIB2_UDPUSING THIS LIBRARYThis library can be initialized and deleted by callingm2UdpInit() and m2UdpDelete() respectively, if only the UDP group's services are needed.  If full MIB-II support is used, this group and all othergroups can be initialized and deleted by calling m2Init() and m2Delete().The group scalar variables are accessed by calling m2UdpGroupInfoGet()as follows:.CS    M2_UDP   udpVars;    if (m2UdpGroupInfoGet (&udpVars) == OK)	/@ values in udpVars are valid @/.CEThe UDP table of listeners can be accessed in lexicographical order.The first entry in the table can be accessed by setting the tableindex to zero in a call to m2UdpTblEntryGet().  Every other entrythereafter can be accessed by incrementing the index returned from theprevious invocation to the next possible lexicographical index, andrepeatedly calling m2UdpTblEntryGet() with the M2_NEXT_VALUE constantas the search parameter. For example:.CSM2_UDPTBL  udpEntry;    /@ Specify zero index to get the first entry in the table @/    udpEntry.udpLocalAddress = 0;    /@ local IP Address in host byte order  @/    udpEntry.udpLocalPort    = 0;    /@ local port Number                  @/    /@ get the first entry in the table @/    if ((m2UdpTblEntryGet (M2_NEXT_VALUE, &udpEntry) == OK)	/@ values in udpEntry in the first entry are valid  @/    /@ process first entry in the table @/    /@      * For the next call, increment the index returned in the previous call.     * The increment is to the next possible lexicographic entry; for     * example, if the returned index was 0.0.0.0.3000 the index passed in the     * next invocation should be 0.0.0.0.3001.  If an entry in the table     * matches the specified index, then that entry is returned.       * Otherwise the closest entry following it, in lexicographic order,     * is returned.     @/    /@ get the second entry in the table @/    if ((m2UdpTblEntryGet (M2_NEXT_VALUE, &udpEntry) == OK)	/@ values in udpEntry in the second entry are valid  @/.CEINCLUDE FILES: m2Lib.h SEE ALSO:m2Lib, m2IfLib, m2IpLib, m2IcmpLib, m2TcpLib, m2SysLib*//* includes */#include "vxWorks.h"#include "vwModNum.h"#include "m2Lib.h"#include "socket.h"#include <net/route.h>#include <netinet/in.h>#include <netinet/ip.h>#include <netinet/ip_var.h>#include <netinet/udp.h>#include <netinet/udp_var.h>#include <netinet/in_pcb.h>#include "errnoLib.h"#ifdef VIRTUAL_STACK#include "netinet/vsLib.h"#endif    /* VIRTUAL_STACK *//* external declarations */#ifndef VIRTUAL_STACKextern struct udpstat     udpstat;	/* UDP statistics variable */extern struct inpcbhead   udb;		/* UDP link list of listen requests */#endif    /* VIRTUAL_STACK *//********************************************************************************* m2UdpInit - initialize MIB-II UDP-group access** This routine allocates the resources needed to allow access to the UDP * MIB-II variables.  This routine must be called before any UDP variables* can be accessed.** RETURNS: OK, always.** SEE ALSO:* m2UdpGroupInfoGet(), m2UdpTblEntryGet(), m2UdpDelete()*/STATUS m2UdpInit (void)    {    return (OK);    }/********************************************************************************* m2UdpGroupInfoGet - get MIB-II UDP-group scalar variables** This routine fills in the UDP structure at <pUdpInfo> with the MIB-II* UDP scalar variables.** RETURNS: OK, or ERROR if <pUdpInfo> is not a valid pointer.** ERRNO:* S_m2Lib_INVALID_PARAMETER** SEE ALSO:* m2UdpInit(), m2UdpTblEntryGet(), m2UdpDelete()*/STATUS m2UdpGroupInfoGet    (    M2_UDP * pUdpInfo		/* pointer to the UDP group structure */    )    {     /* Validate Pointer to UDP structure */     if (pUdpInfo == NULL)	{	errnoSet (S_m2Lib_INVALID_PARAMETER);        return (ERROR);	}     pUdpInfo->udpNoPorts      = udpstat.udps_noport + 				udpstat.udps_noportbcast;     pUdpInfo->udpOutDatagrams = udpstat.udps_opackets;    /*  The number UDP packets deliever to UDP users. */    pUdpInfo->udpInDatagrams  = udpstat.udps_ipackets    -                                (udpstat.udps_hdrops     +                                udpstat.udps_badsum      +                                udpstat.udps_badlen      +                                udpstat.udps_noportbcast +                                udpstat.udps_fullsock);     /*  The number UDP packets not deliever due to errors */    pUdpInfo->udpInErrors     = udpstat.udps_hdrops +                                udpstat.udps_badsum +                                udpstat.udps_badlen;     return (OK);    }/********************************************************************************* m2UdpTblEntryGet - get a UDP MIB-II entry from the UDP list of listeners** This routine traverses the UDP table of listeners and does an* M2_EXACT_VALUE or a M2_NEXT_VALUE search based on the* <search> parameter.  The calling routine is responsible for* supplying a valid MIB-II entry index in the input structure* <pUdpEntry>.  The index is made up of the IP address and the local* port number.  The first entry in the table is retrieved by doing a* M2_NEXT_VALUE search with the index fields set to zero.** RETURNS:* OK, or ERROR if the input parameter is not specified or a match is not * found.** ERRNO:*  S_m2Lib_INVALID_PARAMETER*  S_m2Lib_ENTRY_NOT_FOUND** SEE ALSO:* m2Lib, m2UdpInit(), m2UdpGroupInfoGet(), m2UdpDelete()*/STATUS m2UdpTblEntryGet    (    int              search,        /* M2_EXACT_VALUE or M2_NEXT_VALUE */    M2_UDPTBL      * pUdpEntry      /* ptr to the requested entry with index */    )    {    M2_UDPTBL        savedEntry;    /* Possible M2_NEXT_VALUE Entry in UDP */				    /* table */    M2_UDPTBL        currEntry;    int              netLock;       /* Use to secure the Network Code Access */    struct inpcb   * pPcb;          /* Pointer to UDP Listener structure. */      /* Validate Pointer to UDP Table Entry structure */     if (pUdpEntry == NULL)	{	errnoSet (S_m2Lib_INVALID_PARAMETER);        return (ERROR);	}     /*      * Initialize Entry for M2_NEXT_VALUE entry search.  Not used in     * M2_EXACT_VALUE search.     */     savedEntry.udpLocalAddress = -1;    /* Largest possible value. */    savedEntry.udpLocalPort    = -1;    /* Largest possible value. */     netLock = splnet ();             /* Get exclusive access to Network Code */     for (pPcb = udb.lh_first; pPcb != NULL; pPcb = pPcb->inp_list.le_next )        {	currEntry.udpLocalAddress = ntohl (pPcb->inp_laddr.s_addr);	currEntry.udpLocalPort    = ntohs (pPcb->inp_lport);        if (search == M2_EXACT_VALUE)            {	    /* Check that the specified index matches the current entry */            if ((pUdpEntry->udpLocalAddress == currEntry.udpLocalAddress) &&                (pUdpEntry->udpLocalPort == currEntry.udpLocalPort))                {                splx (netLock);   /* Give up exclusive access to Network Code */                return (OK);      /* The answer is in the structure pUdpEntry */                }            }        else            {            /*             * A NEXT search is satisfied by an entry that is lexicographicaly             * equal to or greater than the input UDP connection entry. Because	     * the UDP connection list is not in order, the list must be 	     * traverse completely before a selection is made.  The rules for a 	     * lexicographical comparison are built in the next statement.             */  	    if (((currEntry.udpLocalAddress > pUdpEntry->udpLocalAddress) ||		  ((currEntry.udpLocalAddress == pUdpEntry->udpLocalAddress) &&		   (currEntry.udpLocalPort >= pUdpEntry->udpLocalPort))) &&                 ((currEntry.udpLocalAddress < savedEntry.udpLocalAddress) ||                   ((currEntry.udpLocalAddress == savedEntry.udpLocalAddress) &&                    (currEntry.udpLocalPort < savedEntry.udpLocalPort))))                {		/* 		 * Save the entry which qualifies as the NEXT greater 		 * lexicographic entry.  Because the table is not order the		 * search must proceed to the end of the table.		 */                savedEntry.udpLocalAddress =  currEntry.udpLocalAddress;                savedEntry.udpLocalPort    =  currEntry.udpLocalPort;                }            }        }     splx (netLock);             /* Give up exclusive access to Network Code */    /* If a match was found fill, the requested structure */    if (savedEntry.udpLocalPort != -1)        {        pUdpEntry->udpLocalAddress = savedEntry.udpLocalAddress;        pUdpEntry->udpLocalPort    = savedEntry.udpLocalPort;        return (OK);        }     errnoSet (S_m2Lib_ENTRY_NOT_FOUND);    return (ERROR);    }/********************************************************************************* m2UdpDelete - delete all resources used to access the UDP group** This routine frees all the resources allocated at the time the group was* initialized.  The UDP group should not be accessed after this routine has been* called.** RETURNS: OK, always.** SEE ALSO:* m2UdpInit(), m2UdpGroupInfoGet(), m2UdpTblEntryGet()*/STATUS m2UdpDelete (void)    {    return (OK);    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品911| 欧美老肥妇做.爰bbww视频| 亚洲三级免费观看| 欧美日韩精品免费| 国产精品一二三区| 偷拍日韩校园综合在线| 国产女人aaa级久久久级| 欧美精品在线一区二区| 不卡的看片网站| 六月丁香婷婷色狠狠久久| 亚洲免费高清视频在线| 久久亚洲捆绑美女| 日本韩国欧美在线| 成人免费毛片高清视频| 乱一区二区av| 天天综合色天天| 亚洲精品国产品国语在线app| 久久久三级国产网站| 在线看日韩精品电影| 国产电影一区在线| 午夜国产精品一区| 中文字幕亚洲区| 久久久亚洲国产美女国产盗摄 | 国产精品一二三在| 美女视频黄频大全不卡视频在线播放| 亚洲精品一二三| 国产精品传媒入口麻豆| 日韩亚洲欧美在线| 欧美三级在线视频| 欧美自拍丝袜亚洲| 91欧美激情一区二区三区成人| 国产激情偷乱视频一区二区三区| 久久精品综合网| 日韩欧美在线影院| 欧美一区午夜视频在线观看| 91福利在线观看| 色婷婷综合激情| 色av一区二区| 91黄色免费观看| 欧洲国内综合视频| 91成人在线精品| 欧美色倩网站大全免费| 91黄色小视频| 欧美久久久久久久久久| 7777精品伊人久久久大香线蕉经典版下载 | 91视视频在线直接观看在线看网页在线看 | 午夜精品福利一区二区蜜股av| 亚洲国产精品欧美一二99| 一区二区三区加勒比av| 亚洲在线视频网站| 亚洲一区二区成人在线观看| 亚洲国产va精品久久久不卡综合| 亚洲一区二区三区自拍| 亚洲国产精品久久人人爱蜜臀| 亚洲一区二区三区在线| 午夜精品福利久久久| 日本三级亚洲精品| 精品一区二区三区在线播放| 国产精品亚洲综合一区在线观看| 国产成人一区在线| 波多野结衣91| 色国产综合视频| 在线综合视频播放| 精品久久国产97色综合| 国产女人水真多18毛片18精品视频| 国产精品私房写真福利视频| 亚洲免费在线播放| 香蕉久久一区二区不卡无毒影院| 青娱乐精品视频在线| 国产一区二区三区在线观看免费 | 亚洲影院在线观看| 亚洲v日本v欧美v久久精品| 免费看日韩精品| 国产福利一区在线| 91麻豆精品在线观看| 91成人看片片| 精品国产免费人成电影在线观看四季| 国产色综合一区| 亚洲国产日韩av| 中文字幕永久在线不卡| 一区二区三区在线影院| 美脚の诱脚舐め脚责91| 成人黄色片在线观看| 欧美精品久久一区| 国产婷婷色一区二区三区在线| 夜夜精品视频一区二区| 美女网站一区二区| 色又黄又爽网站www久久| 欧美精品一卡二卡| 日本一区二区不卡视频| 午夜精品爽啪视频| 成人自拍视频在线观看| 欧美高清精品3d| 欧美国产精品一区二区| 亚洲h精品动漫在线观看| 成人综合在线观看| 这里只有精品视频在线观看| 中文字幕一区av| 国产综合久久久久久久久久久久| 欧美综合天天夜夜久久| 久久久久99精品一区| 午夜精品久久久久久久99水蜜桃| 成人中文字幕合集| 欧美一激情一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 日韩高清在线电影| 91美女片黄在线观看| 欧美一级黄色录像| 亚洲三级电影网站| 国产一区二区免费看| 69久久99精品久久久久婷婷| 亚洲精品国产精品乱码不99| 国产激情精品久久久第一区二区| 欧美精品v国产精品v日韩精品 | 视频一区在线播放| 不卡视频在线看| 日韩一区二区麻豆国产| 亚洲在线免费播放| 一本久久综合亚洲鲁鲁五月天| 国产亚洲欧美色| 乱中年女人伦av一区二区| 欧美日韩成人综合在线一区二区 | 午夜欧美在线一二页| 在线欧美日韩精品| 亚洲欧美日韩在线不卡| 成人性生交大片免费看视频在线 | 欧美在线观看视频在线| 国产精品视频看| 国产精品一级片在线观看| 欧美xxxx在线观看| 免费精品视频在线| 国产真实乱对白精彩久久| 91精品国产免费| 天天免费综合色| 欧美精品丝袜中出| 亚洲综合免费观看高清在线观看| 色综合久久久网| 亚洲欧美日韩在线播放| 成人三级在线视频| 国产精品每日更新| 波多野结衣中文一区| 国产精品久久二区二区| 成人午夜看片网址| 日本一区二区视频在线| 成人亚洲精品久久久久软件| 国产精品网站在线观看| 99精品1区2区| 亚洲一区二区三区三| 欧美日韩亚洲综合在线| 日韩福利视频导航| 91精品国产欧美一区二区成人| 蜜桃一区二区三区四区| 精品国产a毛片| 成人午夜私人影院| 亚洲男女毛片无遮挡| 欧美一a一片一级一片| 天天av天天翘天天综合网色鬼国产 | 国产综合成人久久大片91| 久久午夜羞羞影院免费观看| 国产99久久久精品| 中文字幕在线不卡视频| 欧美系列日韩一区| 日韩电影免费一区| 日韩欧美一区二区在线视频| 国产精品乡下勾搭老头1| 国产精品传媒入口麻豆| 欧洲视频一区二区| 奇米精品一区二区三区在线观看 | 美女视频黄 久久| 久久九九久精品国产免费直播| 高清成人免费视频| 亚洲欧洲无码一区二区三区| 在线精品视频免费播放| 久久91精品久久久久久秒播| 亚洲国产岛国毛片在线| 欧美三级欧美一级| 韩国av一区二区三区| 午夜视频在线观看一区二区| 精品国产伦一区二区三区观看体验 | 国产精品国产三级国产普通话蜜臀 | 午夜久久电影网| 久久综合成人精品亚洲另类欧美| 99热精品国产| 奇米精品一区二区三区在线观看| 国产精品美女久久福利网站| 911国产精品| zzijzzij亚洲日本少妇熟睡| 丝袜诱惑亚洲看片| 欧美国产精品专区| 欧美日韩成人激情| 国产高清精品久久久久| 日韩电影在线观看电影| 国产精品第13页| 欧美成人aa大片| 在线视频综合导航| 精品亚洲porn| 亚洲图片欧美视频| 国产精品乱人伦| 精品国内二区三区| 欧美视频三区在线播放|