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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? isp.c

?? eCos操作系統(tǒng)源碼
?? C
字號(hào):
//==========================================================================////      tests/isp.c////      Test of PPP and CHAT connection to an ISP////==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Portions created by Nick Garnett are// Copyright (C) 2003 eCosCentric Ltd.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//####BSDCOPYRIGHTBEGIN####//// -------------------------------------------//// Portions of this software may have been derived from OpenBSD, // FreeBSD or other sources, and are covered by the appropriate// copyright disclaimers included herein.//// -------------------------------------------////####BSDCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    nickg// Contributors: gthomas (ping code), nickg// Date:         2003-06-01// Purpose:      // Description:  This test uses CHAT to set up a modem, dial, talk to an ISP//               and then ping some well known addresses. It then brings the//               link down.//              ////####DESCRIPTIONEND####////==========================================================================// PPP test code#include <network.h>#include <pkgconf/system.h>#include <pkgconf/net.h>#include <pkgconf/ppp.h>#include <cyg/ppp/ppp.h>#include <cyg/io/io.h>#include <cyg/io/serialio.h>#include <cyg/infra/testcase.h>//==========================================================================#include <arpa/inet.h>// Fill in the blanks if necessary#ifndef TNR_OFF# define TNR_OFF()#endif#ifndef TNR_ON# define TNR_ON()#endif#ifndef TNR_INIT# define TNR_INIT()#endif#ifndef TNR_PRINT_ACTIVITY# define TNR_PRINT_ACTIVITY()#endif#define NUM_PINGS 16#define MAX_PACKET 4096#define MIN_PACKET   64#define MAX_SEND   4000#define PACKET_ADD  ((MAX_SEND - MIN_PACKET)/NUM_PINGS)#define nPACKET_ADD  1 static unsigned char pkt1[MAX_PACKET], pkt2[MAX_PACKET];#define UNIQUEID 0x1234voidpexit(char *s){    CYG_TEST_FAIL_FINISH(s);}// Compute INET checksumintinet_cksum(u_short *addr, int len){    register int nleft = len;    register u_short *w = addr;    register u_short answer;    register u_int sum = 0;    u_short odd_byte = 0;    /*     *  Our algorithm is simple, using a 32 bit accumulator (sum),     *  we add sequential 16 bit words to it, and at the end, fold     *  back all the carry bits from the top 16 bits into the lower     *  16 bits.     */    while( nleft > 1 )  {        sum += *w++;        nleft -= 2;    }    /* mop up an odd byte, if necessary */    if( nleft == 1 ) {        *(u_char *)(&odd_byte) = *(u_char *)w;        sum += odd_byte;    }    /*     * add back carry outs from top 16 bits to low 16 bits     */    sum = (sum >> 16) + (sum & 0x0000ffff); /* add hi 16 to low 16 */    sum += (sum >> 16);                     /* add carry */    answer = ~sum;                          /* truncate to 16 bits */    return (answer);}static intshow_icmp(unsigned char *pkt, int len,           struct sockaddr_in *from, struct sockaddr_in *to){    cyg_tick_count_t *tp, tv;    struct ip *ip;    struct icmp *icmp;    tv = cyg_current_time();    ip = (struct ip *)pkt;    if ((len < sizeof(*ip)) || ip->ip_v != IPVERSION) {        diag_printf("%s: Short packet or not IP! - Len: %d, Version: %d\n",                     inet_ntoa(from->sin_addr), len, ip->ip_v);        return 0;    }    icmp = (struct icmp *)(pkt + sizeof(*ip));    len -= (sizeof(*ip) + 8);    tp = (cyg_tick_count_t *)&icmp->icmp_data;    if (icmp->icmp_type != ICMP_ECHOREPLY) {        diag_printf("%s: Invalid ICMP - type: %d\n",                     inet_ntoa(from->sin_addr), icmp->icmp_type);        return 0;    }    if (icmp->icmp_id != UNIQUEID) {        diag_printf("%s: ICMP received for wrong id - sent: %x, recvd: %x\n",                     inet_ntoa(from->sin_addr), UNIQUEID, icmp->icmp_id);    }    diag_printf("%d bytes from %s: ", len, inet_ntoa(from->sin_addr));    diag_printf("icmp_seq=%d", icmp->icmp_seq);    diag_printf(", time=%dms\n", (int)(tv - *tp)*10);    return (from->sin_addr.s_addr == to->sin_addr.s_addr);}static voidping_host(int s, struct sockaddr_in *host){    struct icmp *icmp = (struct icmp *)pkt1;    int icmp_len = MIN_PACKET;    int seq, ok_recv, bogus_recv;    cyg_tick_count_t *tp;    long *dp;    struct sockaddr_in from;    int i, len, fromlen;    ok_recv = 0;    bogus_recv = 0;    diag_printf("PING server %s\n", inet_ntoa(host->sin_addr));    for (seq = 0;  seq < NUM_PINGS;  seq++, icmp_len += PACKET_ADD ) {        TNR_ON();        // Build ICMP packet        icmp->icmp_type = ICMP_ECHO;        icmp->icmp_code = 0;        icmp->icmp_cksum = 0;        icmp->icmp_seq = seq;        icmp->icmp_id = 0x1234;        // Set up ping data        tp = (cyg_tick_count_t *)&icmp->icmp_data;        *tp++ = cyg_current_time();        dp = (long *)tp;        for (i = sizeof(*tp);  i < icmp_len;  i += sizeof(*dp)) {            *dp++ = i;        }        // Add checksum        icmp->icmp_cksum = inet_cksum( (u_short *)icmp, icmp_len+8);        // Send it off        if (sendto(s, icmp, icmp_len+8, 0, (struct sockaddr *)host, sizeof(*host)) < 0) {            TNR_OFF();            perror("sendto");            continue;        }        // Wait for a response        fromlen = sizeof(from);        len = recvfrom(s, pkt2, sizeof(pkt2), 0, (struct sockaddr *)&from, &fromlen);        TNR_OFF();        if (len < 0) {            perror("recvfrom");            icmp_len = MIN_PACKET - PACKET_ADD; // just in case - long routes        } else {            if (show_icmp(pkt2, len, &from, host)) {                ok_recv++;            } else {                bogus_recv++;            }        }    }    TNR_OFF();    diag_printf("Sent %d packets, received %d OK, %d bad\n", NUM_PINGS, ok_recv, bogus_recv);}static void do_ping(char *addr){    struct protoent *p;    struct timeval tv;    struct sockaddr_in host;    int s;    if ((p = getprotobyname("icmp")) == (struct protoent *)0) {        pexit("getprotobyname");        return;    }    s = socket(AF_INET, SOCK_RAW, p->p_proto);    if (s < 0) {        pexit("socket");        return;    }    tv.tv_sec = 1;    tv.tv_usec = 0;    setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));    // Set up host address    host.sin_family = AF_INET;    host.sin_len = sizeof(host);    inet_aton(addr, &host.sin_addr);    host.sin_port = 0;    ping_host(s, &host);    }//==========================================================================#define STACK_SIZE (CYGNUM_HAL_STACK_SIZE_TYPICAL + 0x1000)static char stack[STACK_SIZE];static cyg_thread thread_data;static cyg_handle_t thread_handle;//==========================================================================/*Captured session:AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0                     OK                                                   ATD08440416662                                       CONNECT 42666/ARQ/V90/LAPM/V42BIS                    anchor-du-10.access.demon.netlogin: xxxxxxPassword: yyyyyyProtocol: pppxxxxxx: IP Address: XXX.XXX.XXX.XXX  Running PPP on 1223No operational problems reported.Finger status@gate.demon.co.uk for more info - Last change 16:30 Jun 08HELLO                                                                                                                                                                OK                                                                              ATH                                                                             OK                                                                              */static char *script[] ={    "ABORT"             ,       "BUSY"                                  ,    "ABORT"             ,       "NO CARRIER"                            ,    "ABORT"             ,       "ERROR"                                 ,    ""                  ,       "ATZ"                                   ,    "OK"                ,       "AT S7=45 S0=0 L1 V1 X4 &C1 E1 Q0"      ,    "OK"                ,       "ATD" CYGPKG_PPP_DEFAULT_DIALUP_NUMBER  ,    "ogin:--ogin:"      ,       CYGPKG_PPP_AUTH_DEFAULT_USER            ,    "assword:"          ,       CYGPKG_PPP_AUTH_DEFAULT_PASSWD          ,    "otocol:"           ,       "ppp"                                   ,    "HELLO"             ,       "\\c"                                   ,    0};//==========================================================================voidisp_test(cyg_addrword_t p){    CYG_TEST_INIT();    diag_printf("Start ISP test\n");    init_all_network_interfaces();    {        cyg_ppp_options_t options;        cyg_ppp_handle_t ppp_handle;        cyg_ppp_options_init( &options );//        options.debug = 1;//        options.kdebugflag = 1;        options.modem = 1;        options.script = &script[0];                ppp_handle = cyg_ppp_up( CYGPKG_PPP_TEST_DEVICE, &options );        CYG_TEST_INFO( "Waiting for PPP to come up");            cyg_ppp_wait_up( ppp_handle );        CYG_TEST_INFO( "Delaying for a while...");                cyg_thread_delay(10*100);                CYG_TEST_INFO( "Pinging");                do_ping("195.173.57.10");       // anchor-du-10.access.demon.net        do_ping("194.154.160.254");     // fluffy.ecoscentric.com        do_ping("66.187.233.205");      // sources.redhat.com                CYG_TEST_INFO( "Bringing PPP down");        cyg_ppp_down( ppp_handle );            CYG_TEST_INFO( "Waiting for PPP to go down");        cyg_ppp_wait_down( ppp_handle );    }        CYG_TEST_PASS_FINISH("ISP test OK");}//==========================================================================voidcyg_start(void){    // Create a main thread, so we can run the scheduler and have time 'pass'    cyg_thread_create(10,                // Priority - just a number                      isp_test,          // entry                      0,                 // entry parameter                      "ISP test",        // Name                      &stack[0],         // Stack                      STACK_SIZE,        // Size                      &thread_handle,    // Handle                      &thread_data       // Thread data structure            );    cyg_thread_resume(thread_handle);  // Start it    cyg_scheduler_start();}//==========================================================================

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合无码一区二区| 色婷婷激情综合| 欧美日韩国产成人在线免费| 国产精品久久久久久久浪潮网站| 另类小说视频一区二区| 欧美精品一二三四| 日韩av一二三| 不卡在线视频中文字幕| 国产精品久久久久影院老司| 成人av在线一区二区| 中文字幕一区在线观看视频| 成人av网站免费观看| 久久免费的精品国产v∧| 国产美女在线观看一区| 久久久久国产一区二区三区四区 | 老司机免费视频一区二区 | 日韩午夜电影av| 日韩一区欧美二区| 日韩一本二本av| 国产精品一区二区x88av| 国产日韩欧美在线一区| 99麻豆久久久国产精品免费优播| 亚洲同性gay激情无套| 91国模大尺度私拍在线视频| 亚洲成人精品一区二区| 欧美日韩一级视频| 国产在线精品一区在线观看麻豆| 久久久综合九色合综国产精品| 国产成人精品午夜视频免费| 国产精品色哟哟网站| 在线观看成人免费视频| 日本成人中文字幕| 国产精品久久看| 7777精品伊人久久久大香线蕉最新版| 另类专区欧美蜜桃臀第一页| 国产精品少妇自拍| 欧美日韩高清一区| 99久久精品免费看国产免费软件| 亚洲美女一区二区三区| 欧美日韩国产免费| 国产精品亚洲专一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 欧美日韩在线播放三区四区| 成人做爰69片免费看网站| 一区二区三区欧美久久| 日韩欧美中文字幕公布| 97久久超碰精品国产| 久久99国产精品久久99果冻传媒| 一级中文字幕一区二区| 国产日韩欧美激情| 欧美一区二区三区视频免费 | 91高清视频在线| 国产精品一区二区不卡| 青青草97国产精品免费观看无弹窗版 | 一区二区三区不卡视频在线观看 | 精品影院一区二区久久久| 亚洲v日本v欧美v久久精品| 中文字幕亚洲综合久久菠萝蜜| 日韩精品一区二区三区视频| 欧美在线播放高清精品| 一本大道久久a久久精二百| 国产不卡视频在线播放| 久久不见久久见免费视频7| 婷婷开心激情综合| 一区二区三区丝袜| 亚洲日本成人在线观看| 国产精品视频在线看| 国产欧美日韩在线视频| 精品国产91亚洲一区二区三区婷婷| 欧美日本视频在线| 欧美精品精品一区| 欧美高清性hdvideosex| 欧美亚洲综合久久| 欧美日韩一区二区三区视频| 欧美在线免费视屏| 欧美日韩国产综合久久| 欧美日韩精品系列| 欧美怡红院视频| 久久久久久久久久电影| 国产日韩欧美精品在线| 国产精品免费观看视频| 欧美国产一区二区| 国产精品不卡视频| 亚洲欧美电影院| 亚洲综合成人在线| 午夜激情一区二区| 美女爽到高潮91| 久草在线在线精品观看| 国产一区二区三区精品欧美日韩一区二区三区| 六月丁香婷婷色狠狠久久| 国产老女人精品毛片久久| 国产精品一区二区x88av| 国产福利视频一区二区三区| 99久久免费视频.com| 91福利国产成人精品照片| 欧美日韩综合色| 欧美一区二区三区在| 久久一夜天堂av一区二区三区 | 欧美日韩国产影片| 欧美一区二区三区性视频| 久久综合九色欧美综合狠狠| 国产午夜精品美女毛片视频| 亚洲特级片在线| 亚洲18女电影在线观看| 久久国产乱子精品免费女| 国产精品一区三区| 91视频在线观看免费| 欧美视频自拍偷拍| 久久综合久久综合九色| 亚洲日本va在线观看| 日韩高清欧美激情| 成人自拍视频在线观看| 欧美三级中文字幕在线观看| 精品国产一区二区亚洲人成毛片 | 色婷婷久久一区二区三区麻豆| 欧美日韩免费电影| 国产亲近乱来精品视频| 亚洲韩国精品一区| 国模冰冰炮一区二区| 91麻豆精品一区二区三区| 欧美成人官网二区| 一区二区高清免费观看影视大全| 久久爱www久久做| 91丝袜美腿高跟国产极品老师 | 精品日韩av一区二区| 最好看的中文字幕久久| 美女精品一区二区| 在线免费一区三区| 日本一区二区三区免费乱视频| 偷拍亚洲欧洲综合| 91精品欧美一区二区三区综合在| 亚洲亚洲精品在线观看| 精品一区二区三区免费| 欧美精品乱码久久久久久| 国产女同性恋一区二区| 日本伊人午夜精品| 亚洲欧美日韩一区二区三区在线观看| 国产精品剧情在线亚洲| 麻豆国产91在线播放| 色av成人天堂桃色av| 久久精品日韩一区二区三区| 日韩成人一级大片| 色综合一个色综合亚洲| 亚洲国产电影在线观看| 久久国产视频网| 91精品一区二区三区在线观看| 中文字幕日韩一区二区| 国产综合色视频| 欧美电影免费观看高清完整版在| 亚洲最新视频在线观看| 99久久综合色| 国产欧美一区二区精品婷婷| 美女一区二区在线观看| 亚洲乱码精品一二三四区日韩在线| 精品亚洲国产成人av制服丝袜| 欧美日韩一区在线观看| 日韩码欧中文字| jlzzjlzz欧美大全| 欧美国产乱子伦| 国产一区二区精品久久91| 日韩欧美一卡二卡| 日韩电影在线看| 欧美美女黄视频| 天天亚洲美女在线视频| 91麻豆精品国产91久久久使用方法 | 精品国免费一区二区三区| 美脚の诱脚舐め脚责91| 欧美一区二区三区四区视频| 日韩精品电影在线观看| 91麻豆精品国产自产在线| 日韩和的一区二区| 欧美一区二区三区四区久久 | 2021中文字幕一区亚洲| 日韩精品亚洲一区| 亚洲一区二区欧美激情| 欧美伊人久久大香线蕉综合69| 一区二区三区四区不卡视频| 欧美天堂一区二区三区| 午夜视频一区二区| 91精品国产综合久久久久| 久久av资源网| 久久一区二区三区四区| 成人在线视频首页| 亚洲视频一二三区| 欧美日韩久久不卡| 久久99久久久欧美国产| 久久综合国产精品| 成人黄色av网站在线| 一区二区三区中文字幕精品精品 | 不卡的av在线| 亚洲制服欧美中文字幕中文字幕| 欧美群妇大交群中文字幕| 久久99久久精品| 国产精品另类一区| 欧美性大战xxxxx久久久| 美女久久久精品| 中文字幕一区二区日韩精品绯色| 欧美日韩一区三区| 紧缚捆绑精品一区二区| 免费高清成人在线|