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

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

?? console.c

?? 聞停開發板視頻程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
//--------------------------------------------------------------------------
// IP Stack Console Demonstration Program
//--------------------------------------------------------------------------
// Console.c
//
// Example router console
//
// Author: Michael A. Denio
// Copyright 1999 by Texas Instruments Inc.
//-------------------------------------------------------------------------
#include <netmain.h>
#include <_stack.h>
#include <_oskern.h>
#include "console.h"

extern char *VerStr;

static void console( HANDLE hCon, PSA pClient );
static char *StrBusy  = "\nConsole is busy\n\n";
static char *StrError = "\nCould not spawn console\n\n";
static char Password[32] = {0};

//-------------------------------------------------------------------------
// Console IO
//
// The following routines form a basic standard IO for console functions
//-------------------------------------------------------------------------
#define         INMAX  32
static char     InBuf[INMAX];
static int      InIdx = 0;
static int      InCnt = 0;
static SOCKET   scon  = INVALID_SOCKET;
static HANDLE   hConsole = 0;

// PPPOE Function is only available when working with a stack build that
// includes PPPOE
#ifdef _INCLUDE_PPPOE_CODE
static void     ConCmdPPPOE( int ntok, char *tok1, char *tok2, char *tok3 );
static HANDLE   hPPPOE   = 0;
#endif

//--------------------------------------------------------------
// ConPrintf()
//
// Formatted print to console output
//--------------------------------------------------------------
int ConPrintf(const char *format, ...)
{
   va_list ap;
   char    buffer[128];
   int     size;

   va_start(ap, format);
   size = vsprintf(buffer, (char *)format, ap);
   va_end(ap);

   send( scon, buffer, size, 0 );
   return( size );
}

//--------------------------------------------------------------
// ConPrintIPN
//
// Quick routine to print out an IPN addr
//--------------------------------------------------------------
void ConPrintIPN( IPN IPAddr )
{
    IPAddr = htonl( IPAddr );
    ConPrintf( "%d.%d.%d.%d",
               (UINT8)((IPAddr>>24)&0xFF), (UINT8)((IPAddr>>16)&0xFF),
               (UINT8)((IPAddr>>8)&0xFF), (UINT8)(IPAddr&0xFF) );
}

//--------------------------------------------------------------
// ConGetCh()
//
// Read a character from console input
//--------------------------------------------------------------
char ConGetCh()
{
    char   c;
    struct timeval timeout;

    // Configure our console timeout to be 5 minutes
    timeout.tv_sec  = 5 * 60;
    timeout.tv_usec = 0;

    while( 1 )
    {
        while( !InCnt )
        {
            fd_set ibits;
            int    cnt;

            FD_ZERO(&ibits);
            FD_SET(scon, &ibits);

            // Wait for io
            cnt = fdSelect( (int)scon, &ibits, 0, 0, &timeout );
            if( cnt <= 0 )
                goto abort_console;

            // Check for input data
            if( FD_ISSET(scon, &ibits) )
            {
                // We have characters to input
                cnt = (int)recv( scon, InBuf, INMAX, 0 );
                if( cnt > 0 )
                {
                    InIdx = 0;
                    InCnt = cnt;
                }
                // If the socket was closed or error, major abort
                if( !cnt || (cnt<0 && fdError()!=EWOULDBLOCK) )
                    goto abort_console;
            }
        }

        InCnt--;
        c = InBuf[InIdx++];

        if( c != '\n' )
            return( c );
    }

abort_console:
    ConsoleClose();

    fdClose( scon );
    TaskExit();

    return(0);
}

//--------------------------------------------------------------
// ConGetString()
//
// Read a string from console input (with various echo options)
//--------------------------------------------------------------
int ConGetString( char *buf, int max, int echo )
{
    int idx=0, eat=0;
    char c;

    while( idx < (max-1) )
    {
        c = ConGetCh();

        // Eat char if we're eating
        if( eat )
        {
            if( eat == 27 && c == 79 )
                eat = 1;
            else
                eat = 0;
            continue;
        }

        // Start eating if this is an extended char
        if( !c )
        {
            eat = 255;
            continue;
        }

        // Start eating if this is an escape code
        if( c == 27 )
        {
            eat = 27;
            continue;
        }

        // Back up on backspace
        if( c == 8 )
        {
            if( idx )
            {
                idx--;
                ConPrintf("%c %c",8,8);
            }
            continue;
        }

        // Return on CR
        if( c == '\r' )
            break;

        buf[idx++] = c;
        if( echo == CGSECHO_INPUT )
           ConPrintf("%c",c);
        else if( echo == CGSECHO_PASSWORD )
           ConPrintf("*");
    }

    buf[idx] = 0;
    return( idx );
}

//--------------------------------------------------------------
// ConGetIP()
//
// Prompt for and read an IP adress from console input
//--------------------------------------------------------------
IPN ConGetIP()
{
    int    haveit = 0;
    char   c,str[32];
    IPN    IPTmp;

    while( !haveit )
    {
        ConPrintf("Enter IP as x.x.x.x : ");
        ConGetString( str, 20, CGSECHO_INPUT );
        IPTmp = inet_addr( str );
        ConPrintf("\nYou Entered ");
        ConPrintIPN( IPTmp );
        ConPrintf("\nIs this correct (y/n)\n");

        do { c=ConGetCh(); }
            while( c != 'y' && c !='Y' && c != 'N' && c != 'n' );

        if( c=='Y' || c=='y' )
            haveit = 1;
    }
    return( IPTmp );
}

//---------------------------------------------------------------------
// ConsoleOpen()
//
// Launch a console connection to the speicified client
//
// Returns local socket, or INVALID_SOCKET on error
//---------------------------------------------------------------------
SOCKET ConsoleOpen( PSA pClient )
{
    HANDLE fd1, fd2;

    // Create the local pipe - abort on error
    if( pipe( &fd1, &fd2 ) != 0 )
        return( INVALID_SOCKET );

    // If an instance is already running, abort
    if( hConsole )
    {
        // If the console is already running, return a quick message and
        // close the pipe.
        send( fd2, StrBusy, strlen(StrBusy), 0 );
        fdClose( fd2 );
    }
    else
    {
        // Create the console thread
        hConsole = TaskCreate( console, "Console", OS_TASKPRINORM, 0x1000,
                               (UINT32)fd2, (UINT32)pClient, 0 );

        // Close the pipe and abort on an error
        if( !hConsole )
        {
            send( fd2, StrError, strlen(StrError), 0 );
            fdClose( fd2 );
        }
    }

    // Return the local fd
    return( fd1 );
}

//---------------------------------------------------------------------
// ConsoleClose()
//
// Close the console task when active
//
//---------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费国产在线观看| 国产日韩欧美不卡在线| 337p日本欧洲亚洲大胆色噜噜| 久久男人中文字幕资源站| 日韩理论片网站| 国产综合成人久久大片91| 在线观看视频91| 久久久不卡网国产精品二区| 一区二区在线观看免费| 国产精品 欧美精品| 制服视频三区第一页精品| 中文字幕一区不卡| 国产真实乱子伦精品视频| 欧美日韩国产一级二级| 亚洲另类中文字| 国产ts人妖一区二区| 精品久久人人做人人爽| 亚洲成人激情自拍| 在线观看国产精品网站| 1024精品合集| 成人av在线资源网站| 久久精子c满五个校花| 久久精品久久精品| 欧美精品乱人伦久久久久久| 亚洲精品国产a久久久久久| 成人av综合一区| 国产女人18毛片水真多成人如厕 | 欧美一区二区三区色| 一区二区三区四区激情| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲最大的成人av| 91在线一区二区| 中文字幕中文在线不卡住| 国产一区 二区| 国产亚洲精品aa| 国产精品18久久久久久久久| 久久影音资源网| 国产成人午夜片在线观看高清观看| 精品国一区二区三区| 国产一区二区主播在线| 欧美大片在线观看| 久99久精品视频免费观看| 欧美变态tickle挠乳网站| 久久91精品久久久久久秒播| 久久久午夜精品理论片中文字幕| 国产在线精品视频| 久久久一区二区| fc2成人免费人成在线观看播放| 亚洲欧美综合网| 色乱码一区二区三区88| 亚洲高清免费在线| 日韩欧美不卡在线观看视频| 国产一区高清在线| 1024成人网| 91精品国产综合久久福利软件 | 亚洲影视在线观看| 91精品啪在线观看国产60岁| 美脚の诱脚舐め脚责91| 日韩国产欧美视频| 日韩av中文字幕一区二区三区| 午夜精品福利一区二区三区av| 欧美午夜不卡视频| 免费在线看一区| 欧美国产乱子伦| 26uuu精品一区二区在线观看| 国产成人丝袜美腿| 亚洲欧美日本在线| 日韩一区二区三区视频在线| 国产精品一区二区视频| 日韩毛片视频在线看| 日韩三级在线免费观看| 成人激情校园春色| 日日夜夜精品视频免费| 欧美激情一区二区在线| 欧美亚洲综合一区| 成人综合婷婷国产精品久久蜜臀 | 精品国免费一区二区三区| 97se狠狠狠综合亚洲狠狠| 天天综合网 天天综合色| 国产午夜一区二区三区| 欧美日韩国产精品成人| 国产高清精品在线| 午夜激情久久久| 亚洲视频 欧洲视频| 欧美zozozo| 在线观看日韩av先锋影音电影院| 狠狠色综合色综合网络| 午夜精品福利一区二区三区av | 久久久久久久电影| 欧美久久婷婷综合色| 粗大黑人巨茎大战欧美成人| 人妖欧美一区二区| 亚洲精品第1页| 国产精品久久久久久亚洲伦| 欧美不卡一区二区三区| 色香蕉久久蜜桃| 成人免费福利片| 久久66热偷产精品| 美女精品自拍一二三四| 香港成人在线视频| 亚洲一区二区在线播放相泽| 国产精品麻豆欧美日韩ww| 精品国产一区二区精华| 欧美一区二区三区电影| 欧美三级中文字| 色94色欧美sute亚洲线路一久| 成人黄色av电影| 成人性生交大合| 成人中文字幕合集| 国产99精品视频| 高清国产一区二区| 国产a区久久久| 成人久久18免费网站麻豆 | 国产乱理伦片在线观看夜一区| 亚洲成人综合在线| 亚洲午夜久久久久久久久电影院| 亚洲免费观看高清完整| 亚洲欧美一区二区三区久本道91| 国产精品久久久久一区二区三区 | 亚洲欧美综合网| 亚洲视频每日更新| 亚洲黄一区二区三区| 一区二区三区精密机械公司| 亚洲裸体xxx| 综合婷婷亚洲小说| 亚洲精品欧美在线| 亚洲国产精品精华液网站| 亚洲国产精品久久久久秋霞影院| 亚洲mv在线观看| 美女一区二区在线观看| 韩国一区二区在线观看| 国产成人综合在线播放| 成人a级免费电影| 欧美亚洲精品一区| 91精品欧美一区二区三区综合在 | 另类欧美日韩国产在线| 久久se精品一区二区| 国产激情一区二区三区四区 | 成人免费小视频| 亚洲一区二区三区在线| 日韩精品电影在线观看| 久久99久久久欧美国产| 福利视频网站一区二区三区| 色综合中文字幕国产 | 国产.欧美.日韩| 色婷婷香蕉在线一区二区| 欧美日韩dvd在线观看| 日韩欧美三级在线| 国产精品卡一卡二| 爽好久久久欧美精品| 国产一区二区免费视频| 欧美在线综合视频| 精品少妇一区二区三区免费观看| www国产亚洲精品久久麻豆| 精品在线播放午夜| 高清不卡在线观看| 欧洲精品一区二区三区在线观看| 日韩免费看的电影| 亚洲欧洲成人av每日更新| 奇米精品一区二区三区四区| 96av麻豆蜜桃一区二区| 精品伦理精品一区| 一区二区三区资源| 国产综合一区二区| 欧美色图第一页| 欧美激情一区二区在线| 免费黄网站欧美| 欧美自拍丝袜亚洲| 中文一区二区在线观看| 麻豆视频一区二区| 欧美中文字幕亚洲一区二区va在线| 久久综合色播五月| 天天做天天摸天天爽国产一区| 成人动漫av在线| 久久精品人人做人人综合| 亚洲午夜在线电影| 成人爱爱电影网址| 国产欧美日韩在线看| 日韩成人一区二区三区在线观看| 成人动漫在线一区| 国产亚洲精品久| 青青青伊人色综合久久| 在线观看日韩电影| 综合久久一区二区三区| 国产高清久久久久| 精品国产精品一区二区夜夜嗨| 亚洲成人黄色影院| 91成人免费在线视频| 国产精品电影院| 国产精品一二二区| 精品国产第一区二区三区观看体验| 偷拍自拍另类欧美| 精品视频在线免费看| 亚洲一级二级三级| 欧洲一区在线电影| 亚洲综合精品自拍| 色中色一区二区| 一区二区成人在线| 欧美吞精做爰啪啪高潮| 亚洲激情六月丁香|