📄 tftpport.c
字号:
/* tftpport.c
Copyright 1998 by InterNiche Technologies Inc. All rights reserved.
Copyright 1995 by NetPort Software.
Copyright 1986 by Carnegie Mellon
Copyright 1984 by the Massachusetts Institute of Technology
TFTP per-port code
*/
#include "tftpport.h"
#include "tftp.h"
#include "q.h"
#include "netbuf.h"
#include "net.h"
#include "ip.h"
#include "menu.h"
int tfs_done(int status, struct tfconn *, char * filename);
extern struct menu_op tftpmenu[8];
/* tftp_init() - open UDP port for listen on tftp port, do any prep
required for client UDP use.
Returns 0 if OK, else negative NP error code.
*/
int
tftp_init()
{
#ifdef TFTP_SERVER
int e;
e = tfsinit(NULL, tfs_done);
if(e)
dprintf("tftp server start err %d\n", e);
#endif /* TFTP_SERVER */
if(install_menu(tftpmenu))
dprintf("tftp client menu failure\n");
return 0;
}
#ifdef TFTP_SERVER
/* tfs_done() - server's status callback */
int
tfs_done(int status, struct tfconn * cn, char * msg)
{
ip_addr fhost = cn->tf_fhost;
unsigned dir = cn->tf_dir;
if(status == 0)
{
ns_printf(NULL, "tftp server: moved %lu bytes %s ",
cn->tf_size, dir==PUT?"to":"from");
ns_printf(NULL, "%u.%u.%u.%u\n", PUSH_IPADDR(fhost) );
}
else /* error of some kind */
{
ns_printf(NULL, "tftp server error: status %d, msg: %s, host:",
status, msg?msg:"None" );
ns_printf(NULL, "%u.%u.%u.%u\n", PUSH_IPADDR(fhost) );
}
return 0;
}
#endif /* TFTP_SERVER */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -