精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>有待整理的文章-新加的文章都在这里>>telnet的patch (for FreeBSD 4.4-release)

主题:telnet的patch (for FreeBSD 4.4-release)
发信人: jokhva()
整理人: hackerbay(2002-09-06 16:48:51), 站内信件
可以使telnet传输文件内容, 比如在字符模式下上BBS, 要把本地的文件内容
给贴过去, 但是无法在字符模式下剪贴, 就可以用这个功能.
方法: telnet>send file 要传输的文件名
------------------------begin of telnet.pacth-0.1 ------------
*** /usr/src/usr.bin/telnet/commands.c Mon May 28 03:44:48 2001
--- ./commands.c Sun Apr 14 22:54:35 2002
*************** static int
*** 291,297 ****
   send_dontcmd P((char *)),
   send_willcmd P((char *)),
   send_wontcmd P((char *));

  static struct sendlist Sendlist[] = {
      { "ao", "Send Telnet Abort output", 1, 0, 0, 2, AO },
      { "ayt", "Send Telnet 'Are You There'", 1, 0, 0, 2, AYT },
--- 291,297 ----
   send_dontcmd P((char *)),
   send_willcmd P((char *)),
   send_wontcmd P((char *));
! void    send_file P((char *));
  static struct sendlist Sendlist[] = {
      { "ao", "Send Telnet Abort output", 1, 0, 0, 2, AO },
      { "ayt", "Send Telnet 'Are You There'", 1, 0, 0, 2, AYT },
*************** static struct sendlist Sendlist[] = {
*** 318,323 ****
--- 318,324 ----
      { "dont", 0, 0, 1, send_dontcmd, 3, 0 },
      { "will", 0, 0, 1, send_willcmd, 3, 0 },
      { "wont", 0, 0, 1, send_wontcmd, 3, 0 },
+     { "file", "Send file to remote host", 0, 1, send_file, 3, 0 },
      { 0 }
  };
  
*************** send_wontcmd(name)
*** 439,444 ****
--- 440,465 ----
      char *name;
  {
      return(send_tncmd(send_wont, "wont", name));
+ }

+ void
+ send_file(name)
+      char *name;
+ {
+      int fd;
+      char buf[10*BUFSIZ];

+      fd = open(name, O_RDONLY, 0);

+      if(fd)
+         while(read(fd, buf, 1) > 0)
+                write(net, buf, 1);
+      else {
+            printf("Error opening file!\n");
+            return ;
+         }
+      close(fd);
+      return ;
  }
  
      int
----------------------------end of telnet.patch-0.1 ----------

[关闭][返回]