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

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

?? dhcpcshow.c

?? VXWORKS 源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* dhcpcShow.c - DHCP run-time client information display routines *//* Copyright 1984 - 2001 Wind River Systems, Inc.  */#include "copyright_wrs.h"/*modification history--------------------01q,12may02,kbw  man page edits01p,10may02,kbw  making man page edits01o,23apr02,wap  use dhcpTime() instead of time() (SPR #68900)01n,15oct01,rae  merge from truestack ver 01m, base 01l01m,16oct00,niq  Integrating T3 DHCP01l,17jan98,kbw  removed NOMANUAL from dhcpcShowInit()01k,14dec97,kbw  making minor man page fixes01j,10dec97,kbw  making minor man page fixes01i,04dec97,spm  added code review modifications01h,21oct97,kbw  making minor man page fixes01g,26aug97,spm  major overhaul: changed user interface to support multiple                  leases at run-time; changed function names and renamed                 module to comply with coding standards01f,06aug97,spm  removed parameters linked list to reduce memory required01e,30jul97,kbw  fixed man page problems found in beta review01d,02jun97,spm  updated man pages and added ERRNO entries01c,17apr97,kbw  fixed minor format errors in man page, spell-checked01b,07apr97,spm  corrected array indexing bugs, modified displayed parameter                  descriptions, rewrote documentation01a,31jan97,spm  created by extracting routines from netShow.c*//*DESCRIPTIONThis library provides routines that display various data related tothe DHCP run-time client library such as the lease timers and responding server.  The dhcpcShowInit() routine links the show facility into the VxWorksimage.  This happens automatically if INCLUDE_NET_SHOW and INCLUDE_DHCPC are defined at the time the image is built.INCLUDE FILES: dhcpcLib.hSEE ALSO: dhcpcLib*/#include <stdio.h>#include "vxWorks.h"#include "inetLib.h"#include "dhcpcLib.h"#include "dhcp/dhcpcCommonLib.h"#include "dhcp/dhcpcStateLib.h"#include "time.h"IMPORT SEM_ID           dhcpcMutexSem;   /* protects the status indicators *//* forward declarations */STATUS dhcpcServerShow (void *);STATUS dhcpcTimersShow (void *);STATUS dhcpcParamsShow (void *);/******************************************************************************** dhcpcShowInit - initialize the DHCP show facility** This routine links the DHCP show facility into the VxWorks system image. * It is called from usrNetwork.c automatically if INCLUDE_DHCP and * INCLUDE_NET_SHOW are defined at the time the image is constructed.**/void dhcpcShowInit (void)    {    return;    }/********************************************************************************* dhcpcServerShow - display current DHCP server** This routine prints the IP address of the DHCP server that provided the * parameters for the lease identified by <pCookie>.  It has no effect if the* indicated lease is not currently active.** RETURNS: OK, or ERROR if lease identifier unknown.** ERRNO: *  S_dhcpcLib_BAD_COOKIE**/STATUS dhcpcServerShow     (    void * 	pCookie 	/* identifier returned by dhcpcInit() */    )    {    int 		offset;    LEASE_DATA * 	pLeaseData = NULL;    char 		addrBuf [INET_ADDR_LEN];    STATUS 		result = OK;    /*     * Use the cookie to access the lease-specific data structures.  For now,     * just typecast the cookie.  This translation could be replaced with a more     * sophisticated lookup at some point.     */    pLeaseData = (LEASE_DATA *)pCookie;    for (offset = 0; offset < dhcpcMaxLeases; offset++)        if (dhcpcLeaseList [offset] != NULL &&                dhcpcLeaseList [offset] == pLeaseData)            break;    if (offset == dhcpcMaxLeases)        {        errno = S_dhcpcLib_BAD_COOKIE;        return (ERROR);        }    /* Ignore show request if lease is not initialized or not bound.  */    if (!dhcpcInitialized || !pLeaseData->initFlag)        return (OK);    semTake (dhcpcMutexSem, WAIT_FOREVER);    if (!pLeaseData->leaseGood)        result = ERROR;    semGive (dhcpcMutexSem);    if (result == ERROR)        return (OK);    if (pLeaseData->leaseType == DHCP_BOOTP)        {        printf ("DHCP server (BOOTP proxy): ");         inet_ntoa_b (pLeaseData->dhcpcParam->siaddr, addrBuf);        printf ("%-18s\n", addrBuf);        return (OK);        }    printf ("DHCP server: ");    inet_ntoa_b (pLeaseData->dhcpcParam->server_id, addrBuf);    printf("%-18s\n", addrBuf);    return (OK);    }/********************************************************************************* dhcpcTimersShow - display current lease timers** This routine prints the time remaining with each of the DHCP lease timers* for the lease identified by <pCookie>.  It has no effect if the indicated* lease is not currently active.** RETURNS: OK if show routine completes, or ERROR otherwise.** ERRNO: *  S_dhcpcLib_BAD_COOKIE**/STATUS dhcpcTimersShow    (    void * 	pCookie 	/* identifier returned by dhcpcInit() */    )    {    int 		offset;    LEASE_DATA * 	pLeaseData = NULL;    STATUS 		result = OK;    time_t current = 0;    long t1;    long t2;    /*     * Use the cookie to access the lease-specific data structures.  For now,     * just typecast the cookie.  This translation could be replaced with a more     * sophisticated lookup at some point.     */    pLeaseData = (LEASE_DATA *)pCookie;    for (offset = 0; offset < dhcpcMaxLeases; offset++)        if (dhcpcLeaseList [offset] != NULL &&                dhcpcLeaseList [offset] == pLeaseData)            break;    if (offset == dhcpcMaxLeases)        {        errno = S_dhcpcLib_BAD_COOKIE;        return (ERROR);        }    /* Ignore show request if lease is not initialized or not bound.  */    if (!dhcpcInitialized || !pLeaseData->initFlag)        return (OK);    semTake (dhcpcMutexSem, WAIT_FOREVER);    if (!pLeaseData->leaseGood)        result = ERROR;    semGive (dhcpcMutexSem);    if (result == ERROR)        return (OK);    if (pLeaseData->leaseType == DHCP_BOOTP)        {        printf ("No timer values: BOOTP reply accepted.\n");        return (OK);        }     if (dhcpTime (&current) == -1)        {        printf ("time() error in dhcpcTimerShow() routine.\n");        return (ERROR);        }    t1 = pLeaseData->dhcpcParam->lease_origin +              pLeaseData->dhcpcParam->dhcp_t1 - current;    t2 = pLeaseData->dhcpcParam->lease_origin +              pLeaseData->dhcpcParam->dhcp_t2 - current;       if (t1 <= 0)        printf ("Timer T1 expired.\n");    else        printf ("Timer T1: %ld seconds remaining.\n", t1);       if (t2 <= 0)        printf ("Timer T2 expired.\n");    else        printf ("Timer T2: %ld seconds remaining.\n", t2);    return (OK);    }/******************************************************************************** dhcpcParamsShow - display current lease parameters** This routine prints all lease parameters for the lease identified by * <pCookie>.  It has no effect if the indicated lease is not currently active.* * RETURNS: OK, or ERROR if lease identifier unknown.** ERRNO: *  S_dhcpcLib_BAD_COOKIE**/STATUS dhcpcParamsShow    (    void * 	pCookie 	/* identifier returned by dhcpcInit() */    )    {    int 		offset;    LEASE_DATA * 	pLeaseData = NULL;    STATUS 		result = OK;    int loop;    struct dhcp_param * 	pDhcpcParam;    char addrBuf [INET_ADDR_LEN];    /*     * Use the cookie to access the lease-specific data structures.  For now,     * just typecast the cookie.  This translation could be replaced with a more     * sophisticated lookup at some point.     */    pLeaseData = (LEASE_DATA *)pCookie;    for (offset = 0; offset < dhcpcMaxLeases; offset++)        if (dhcpcLeaseList [offset] != NULL &&                dhcpcLeaseList [offset] == pLeaseData)            break;    if (offset == dhcpcMaxLeases)        {        errno = S_dhcpcLib_BAD_COOKIE;        return (ERROR);        }    /* Ignore show request if lease is not initialized or not bound.  */    if (!dhcpcInitialized || !pLeaseData->initFlag)        return (OK);    semTake (dhcpcMutexSem, WAIT_FOREVER);    if (!pLeaseData->leaseGood)        result = ERROR;    semGive (dhcpcMutexSem);    if (result == ERROR)        return (OK);    if (pLeaseData->leaseType == DHCP_BOOTP)        {        printf ("No parameter values: BOOTP reply accepted.\n");        return (OK);        }    pDhcpcParam = pLeaseData->dhcpcParam;    /* Print any string parameters.  */    if (pDhcpcParam->sname != NULL)        printf ("DHCP server name: %s\n", pDhcpcParam->sname);     if (pDhcpcParam->file != NULL)        printf ("Boot file name: %s\n", pDhcpcParam->file);    if (pDhcpcParam->hostname != NULL)        printf ("DHCP client name: %s\n", pDhcpcParam->hostname);    if (pDhcpcParam->merit_dump != NULL)        printf ("Merit dump file: %s\n", pDhcpcParam->merit_dump);    if (pDhcpcParam->dns_domain != NULL)        printf ("DNS domain name: %s\n", pDhcpcParam->dns_domain);    if (pDhcpcParam->root_path != NULL)        printf ("Client root path: %s\n", pDhcpcParam->root_path);    if (pDhcpcParam->extensions_path != NULL)        printf ("Options extension path: %s\n", pDhcpcParam->extensions_path);    if (pDhcpcParam->nis_domain != NULL)        printf ("NIS domain: %s\n", pDhcpcParam->nis_domain);    if (pDhcpcParam->nb_scope != NULL)        printf ("NetBIOS over TCP/IP scope: %s\n", pDhcpcParam->nb_scope);    if (pDhcpcParam->errmsg != NULL)        printf ("Error message: %s\n", pDhcpcParam->errmsg);    if (pDhcpcParam->nisp_domain != NULL)        printf ("NIS+ domain: %s\n", pDhcpcParam->nisp_domain);    /* Print all TRUE boolean parameters.  */    if (pDhcpcParam->ip_forward)        printf ("IP forwarding enabled.\n");    if (pDhcpcParam->nonlocal_srcroute)        printf ("Non-local source route forwarding enabled.\n");    if (pDhcpcParam->all_subnet_local)        printf ("All subnets are local is TRUE.\n");     if (pDhcpcParam->mask_discover)        printf ("ICMP mask discovery enabled.\n");    if (pDhcpcParam->mask_supplier)        printf ("ICMP mask supplier is TRUE.\n");    if (pDhcpcParam->router_discover)        printf ("Router discovery enabled.\n");    if (pDhcpcParam->trailer)        printf ("ARP trailers enabled.\n");      if (pDhcpcParam->ether_encap)        printf ("RFC 1042 Ethernet encapsulation enabled.\n");    else        printf ("RFC 894 Ethernet encapsulation enabled.\n");    if (pDhcpcParam->keepalive_garba)        printf ("TCP keepalive garbage octet enabled.\n");    /* Print all non-zero single numeric parameters.  */    if (pDhcpcParam->time_offset != 0)        printf ("Client time offset: %ld\n", pDhcpcParam->time_offset);    if (pDhcpcParam->bootsize != 0)        printf ("Boot image size: %d\n", pDhcpcParam->bootsize);     if (pDhcpcParam->max_dgram_size != 0)        printf ("Maximum datagram size: %d\n", pDhcpcParam->max_dgram_size);    if (pDhcpcParam->default_ip_ttl != 0)        printf ("Default IP Time-to-live: %d\n",                pDhcpcParam->default_ip_ttl);    if (pDhcpcParam->mtu_aging_timeout != 0)        printf ("Path MTU timeout: %ld\n", pDhcpcParam->mtu_aging_timeout);    if (pDhcpcParam->intf_mtu != 0)        printf ("Interface MTU: %d\n", pDhcpcParam->intf_mtu);    if (pDhcpcParam->arp_cache_timeout != 0)        printf ("ARP cache timeout: %ld\n", pDhcpcParam->arp_cache_timeout);    if (pDhcpcParam->default_tcp_ttl != 0)        printf ("Default TCP Time-to-live: %d\n",                pDhcpcParam->default_tcp_ttl);    if (pDhcpcParam->keepalive_inter != 0)        printf ("TCP keepalive interval: %ld\n",                pDhcpcParam->keepalive_inter);    if (pDhcpcParam->nb_nodetype != 0)        printf ("NetBIOS node type: %d\n", pDhcpcParam->nb_nodetype);    printf ("Client lease origin: %ld\n", pDhcpcParam->lease_origin);    printf ("Client lease duration: %ld\n", pDhcpcParam->lease_duration);    if (pDhcpcParam->dhcp_t1 != 0)        printf ("Client renewal (T1) time value: %ld\n",                pDhcpcParam->dhcp_t1);    if (pDhcpcParam->dhcp_t2 != 0)        printf ("Client rebinding (T2) time value: %ld\n",                pDhcpcParam->dhcp_t2);    /* Print multiple numeric parameters.  */    if (pDhcpcParam->mtu_plateau_table != NULL)        {         printf ("MTU plateau table:\n ");         if (pDhcpcParam->mtu_plateau_table->shortnum != NULL)            {            for (loop = 0; loop < pDhcpcParam->mtu_plateau_table->num; loop++)               printf ("%d ", pDhcpcParam->mtu_plateau_table->shortnum [loop]);            printf ("\n");            }         else            printf ("empty.\n");        }    /* Print any single IP addresses.  */    if (pDhcpcParam->server_id.s_addr != 0)        {        printf ("DHCP server: ");        inet_ntoa_b (pDhcpcParam->server_id, addrBuf);        printf ("%-18s\n", addrBuf);        }    if (pDhcpcParam->ciaddr.s_addr != 0)        {        printf ("Client IP address: ");        inet_ntoa_b (pDhcpcParam->ciaddr, addrBuf);        printf ("%-18s\n", addrBuf);        }    if (pDhcpcParam->yiaddr.s_addr != 0)        {        printf ("Assigned IP address: ");        inet_ntoa_b (pDhcpcParam->yiaddr, addrBuf);        printf ("%-18s\n", addrBuf);        }    if (pDhcpcParam->siaddr.s_addr != 0)        {        printf ("Next server IP address: ");        inet_ntoa_b (pDhcpcParam->siaddr, addrBuf);        printf ("%-18s\n", addrBuf);        }    if (pDhcpcParam->giaddr.s_addr != 0)        {        printf ("Relay agent IP address: ");        inet_ntoa_b (pDhcpcParam->giaddr, addrBuf);        printf ("%-18s\n", addrBuf);        }    if (pDhcpcParam->subnet_mask != NULL)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99蜜桃精品| 欧美人狂配大交3d怪物一区| 久久激情综合网| 日本va欧美va精品发布| 天天综合日日夜夜精品| 亚洲一区在线播放| 夜夜嗨av一区二区三区四季av | 国产色产综合产在线视频| 精品电影一区二区三区| 久久伊99综合婷婷久久伊| 国产色一区二区| 国产精品萝li| 亚洲精品乱码久久久久久久久| 亚洲精品中文字幕乱码三区 | 99热这里都是精品| 99国产精品视频免费观看| 在线亚洲人成电影网站色www| 91亚洲国产成人精品一区二区三| 色综合久久久久| 欧美在线看片a免费观看| 精品视频1区2区| 日韩视频一区二区在线观看| 26uuu精品一区二区三区四区在线| 久久精品一区四区| 亚洲欧洲日韩av| 午夜精品123| 国产美女视频91| 精品国产一区二区三区久久久蜜月| 日韩欧美成人激情| 国产午夜精品久久久久久久| 中文字幕一区二区三区蜜月| 亚洲综合久久久久| 久久丁香综合五月国产三级网站| 国产成人在线视频网站| 色哟哟在线观看一区二区三区| 欧美日韩国产一区二区三区地区| 日韩小视频在线观看专区| 国产亚洲一二三区| 一区二区三区**美女毛片| 日韩精品五月天| 国产精品18久久久久久久久久久久 | 国产日本亚洲高清| 亚洲精品乱码久久久久久日本蜜臀| 日韩 欧美一区二区三区| 大白屁股一区二区视频| 99riav久久精品riav| 日韩欧美高清一区| 亚洲欧美日韩小说| 久久成人免费电影| 色狠狠综合天天综合综合| 欧美zozo另类异族| 亚洲三级在线观看| 美女视频网站久久| 色婷婷久久99综合精品jk白丝| 日韩欧美视频在线| 亚洲黄色片在线观看| 美女视频一区二区| 欧美亚洲一区三区| 久久久国产一区二区三区四区小说| 亚洲精品va在线观看| 国产一区二区视频在线播放| 欧美在线观看一二区| 国产喷白浆一区二区三区| 日本特黄久久久高潮| 91看片淫黄大片一级在线观看| 精品电影一区二区| 日韩中文字幕一区二区三区| 91丨九色丨蝌蚪富婆spa| 精品成人佐山爱一区二区| 亚洲午夜一区二区三区| 精品国产一区二区三区久久久蜜月| 亚洲免费观看在线视频| 紧缚奴在线一区二区三区| 欧美专区亚洲专区| 国产精品第13页| 欧美mv日韩mv亚洲| 国产成+人+日韩+欧美+亚洲| 国产专区欧美精品| www.成人在线| 日韩视频在线观看一区二区| 亚洲国产精品尤物yw在线观看| 成人精品鲁一区一区二区| 精品蜜桃在线看| 日韩精彩视频在线观看| 欧洲精品在线观看| 中文字幕一区二区日韩精品绯色| 国产精品99久久久| 久久综合色天天久久综合图片| 日韩二区三区四区| 欧美日韩午夜影院| 亚洲一区电影777| 色婷婷精品大视频在线蜜桃视频| 国产精品沙发午睡系列990531| 国产乱国产乱300精品| 日韩欧美亚洲国产另类| 日日摸夜夜添夜夜添精品视频| 欧美影院精品一区| 一区二区三区不卡视频| 日本韩国精品一区二区在线观看| 亚洲欧洲日韩av| 99亚偷拍自图区亚洲| 国产日韩欧美麻豆| 国产美女精品在线| 欧美激情中文不卡| 国产成人精品三级| 亚洲国产精品传媒在线观看| 国产一区二区三区观看| 国产欧美一区二区精品性色超碰 | 亚洲444eee在线观看| 在线观看免费成人| 亚洲v中文字幕| 欧美日本一区二区| 日韩av高清在线观看| 91精品欧美综合在线观看最新| 丝袜亚洲另类欧美| 日韩天堂在线观看| 国产毛片一区二区| 中文字幕一区在线| 欧美伊人久久久久久久久影院| 一区二区成人在线观看| 欧美丰满嫩嫩电影| 麻豆精品在线看| 亚洲精品在线观| 国产98色在线|日韩| 国产精品久久久久久妇女6080| 99re热视频这里只精品| 一区二区三区四区不卡视频| 欧美精品三级日韩久久| 91久久精品一区二区三| 亚洲一卡二卡三卡四卡 | 亚洲美女少妇撒尿| 精品视频在线免费观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久综合久久鬼色中文字| 国产一区日韩二区欧美三区| 国产精品国产三级国产三级人妇| 在线免费不卡视频| 另类小说视频一区二区| 中文字幕精品一区| 欧美亚洲尤物久久| 国产毛片精品一区| 亚洲人成网站精品片在线观看| 欧美私人免费视频| 精品一区二区三区免费播放| 中文一区二区在线观看| 欧美体内she精视频| 国产一区二区h| 亚洲乱码日产精品bd| 欧美一区中文字幕| 成人av网址在线观看| 日本不卡的三区四区五区| 中文字幕精品在线不卡| 91麻豆精品国产91久久久久久| 国产精品一区一区三区| 亚洲午夜一二三区视频| 久久久久久久综合狠狠综合| 欧美丝袜丝交足nylons| 国产乱子伦视频一区二区三区 | 欧美国产一区二区在线观看| 91福利社在线观看| 国产一区二区电影| 亚洲国产精品一区二区久久 | 视频在线观看一区二区三区| 国产欧美一区二区精品忘忧草| 欧美精品在线观看一区二区| 国产成人av一区二区三区在线 | 国产精品天美传媒沈樵| 欧美日韩一区二区三区四区 | 欧美偷拍一区二区| 国产91精品一区二区麻豆亚洲| 亚洲va天堂va国产va久| 国产精品久久国产精麻豆99网站| 欧美一区二区日韩| 一本一道波多野结衣一区二区| 韩国女主播成人在线| 视频一区欧美日韩| 亚洲欧美福利一区二区| 久久久蜜臀国产一区二区| 欧美理论片在线| 91视频国产观看| 国产成人在线影院| 精品综合免费视频观看| 天天av天天翘天天综合网| 亚洲男人的天堂一区二区| 亚洲国产成人一区二区三区| 日韩精品一区二区三区在线播放 | 亚洲高清免费观看高清完整版在线观看| 国产欧美日韩中文久久| 日韩一本二本av| 欧美日韩卡一卡二| 在线视频你懂得一区| 99久久国产免费看| 成人美女视频在线看| 懂色av噜噜一区二区三区av| 韩国成人精品a∨在线观看| 免费久久99精品国产| 婷婷一区二区三区| 亚洲成人激情社区| 午夜精品视频在线观看| 午夜精品福利一区二区蜜股av|