GNU bug report logs - #18199
24.4.50; tramp uses wrong arguments to nc

Previous Next

Package: emacs;

Reported by: Jason Rumney <jasonr <at> gnu.org>

Date: Tue, 5 Aug 2014 16:03:01 UTC

Severity: normal

Found in version 24.4.50

Done: Jason Rumney <jasonr <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Jason Rumney <jasonr <at> gnu.org>
Cc: 18199 <at> debbugs.gnu.org
Subject: bug#18199: 24.4.50; tramp uses wrong arguments to nc
Date: Wed, 06 Aug 2014 09:43:46 +0200
Jason Rumney <jasonr <at> gnu.org> writes:

Hi Jason,

> When connecting to a Busybox/Linux based router with tramp's new nc method,
> the file transfer fails.  Below is the relevant debug log:
>
> ---------------------------------------------------------------------
> ///3359aa65e9a4645eb0b84d831a25d5c2#$
> 23:26:29.200991 tramp-send-command (6) # nc -l -p 51257 </etc/TZ &
> 23:26:29.250828 tramp-wait-for-regexp (6) # 
>
> ///3359aa65e9a4645eb0b84d831a25d5c2#$
> 23:26:29.251550 tramp-send-command (6) # netstat -l | grep -q :51257
> 23:26:29.308484 tramp-wait-for-regexp (6) # 
> BusyBox v1.6.1 (2011-05-25 14:47:48 CST) multi-call binary
>
> Usage: 
> nc [IPADDR PORTNUM]
>
> Open a pipe to IP:port

[...]

> The actual command required is
>
>    nc -l 51257 </etc/TZ &

Well, as you might guess I have tested this with my own equipment. My
silly router runs a more recent version of busybox, which requires the
"-p" prefix for nc's port specification:

--8<---------------cut here---------------start------------->8---
# nc -l 51257
nc: bad address '51257'
# nc -h
nc: invalid option -- h
BusyBox v1.19.3 (2012-08-08 12:53:46 CEST) multi-call binary.

Usage: nc [-iN] [-wN] [-l] [-p PORT] [-f FILE|IPADDR PORT] [-e PROG]

Open a pipe to IP:PORT or FILE

        -e PROG Run PROG after connect
        -l      Listen mode, for inbound connects
                (use -l twice with -e for persistent server)
        -p PORT Local port
        -w SEC  Timeout for connect
        -i SEC  Delay interval for lines sent
        -f FILE Use file (ala /dev/ttyS0) instead of network
--8<---------------cut here---------------end--------------->8---

I don't see how to unify both syntax variants. Therfore, I will add a
check for nc prior the first call, in order to determine what to
use. Alternatively, it could be made configurable; haven't decided yet.

This might take some days. For further testing (which would much be
appreciated!), you could use the following patch:

--8<---------------cut here---------------start------------->8---
*** /home/albinus/src/emacs/lisp/net/tramp-sh.el.~117648~	2014-08-06 09:23:05.687261671 +0200
--- /home/albinus/src/emacs/lisp/net/tramp-sh.el	2014-08-06 09:22:01.750100553 +0200
***************
*** 218,225 ****
      ;; We use "-v" for better error tracking.
      (tramp-copy-args            (("-w" "1") ("-v") ("%h") ("%r")))
      (tramp-remote-copy-program  "nc")
!     ;; We use "-p" as required for busyboxes.
!     (tramp-remote-copy-args     (("-l") ("-p" "%r")))
      (tramp-default-port         23)))
  ;;;###tramp-autoload
  (add-to-list 'tramp-methods
--- 218,224 ----
      ;; We use "-v" for better error tracking.
      (tramp-copy-args            (("-w" "1") ("-v") ("%h") ("%r")))
      (tramp-remote-copy-program  "nc")
!     (tramp-remote-copy-args     (("-l") ("%r")))
      (tramp-default-port         23)))
  ;;;###tramp-autoload
  (add-to-list 'tramp-methods
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.




This bug report was last modified 10 years and 287 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.