⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tftp.c

📁 嵌入式RMON,RMON为Remote monitor的缩写,基于SNMP为网络提供主动监控及错误告警,智能交换路由必备协议
💻 C
字号:
/* Beholder RMON ethernet network monitor,Copyright (C) 1993 DNPAP group *//* See file COPYING 'GNU General Public Licence' for copyright details   */#include <chain.h>#include <udp.h>#include "tftp.h"struct _TFTP_DESCR{    UDP_DESCR   *udp;    FILE        *file;    WORD        block;}struct _TFTP_REQUEST{    BYTE    *name;    BYTE    *mode;};struct _TFTP_DATA{    WORD    block;    BYTE    *data;};struct _TFTP_ACK{    WORD    block;};struct _TFTP_ERROR{    WORD    code;    BYTE    *message;}static BOOLEAN Rcve(UDP_DESCR *descr, CHAIN *chain, UDP_HDR *udpHdr, IP_HDR *ipHdr);UDP_DESCR tftpUdp ={    Rcve,    69,    UDP_ADDR_ANY,    UDP_PORT_ANY,    UDP_ADDR_ANY,    0};TFTP_STAT tftpStat;BOOLEAN TftpInit(void){    static BOOLEAN init = FALSE;        if (!init)    {        init = UdpRegister(&tftpUdp);    }    return init;}static BOOLEAN RcveServer(UDP_DESCR *descr, CHAIN *chain, UDP_HDR *udpHdr, IP_HDR *ipHdr){    new = chain;    h   = ChainPop(&new, -1);    if (h!=0)    {                switch ()                                        if (new!=chain)            ChainFree(new);    }        return FALSE;    code = IpN2HWord(h);    switch (code)    {    }    {    }    {    }    if ()}static BOOLEAN RcveRead(UDP_DESCR *descr, CHAIN *chain, UDP_HDR *udpHdr, IP_HDR *ipHdr){    h = ChainPop(&new, 2);    if (h!=0)        opcode = IpN2HWord(*h);    switch (opcode)    {        case TFTP_ACK:                        new = AckDecode(chain, &ack);            if (new != 0)            {                if (ack.block > tftp->block)                    fread            }        case TFTP_ERROR:        case TFTP_READ:        case TFTP_WRITE:        case TFTP_DATA:    }        if(    {    }}static BOOLEAN RcveWrite(CHAIN *chain, UDP_HDR *udpHdr, IP_HDR *ipHdr){}HdrDecode

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -