[Mew-dist 12289] Re: Ssh remote_port

Hajimu UMEMOTO ( 梅本 肇 ) ume at example.com
2000年 2月 8日 (火) 00:42:30 JST


  梅本@IMASYです。

>>>>> On Mon, 7 Feb 2000 21:07:15 +0900
>>>>> Hidetomo Hosono <h at example.com> said:

h>  あぁ、申し訳ありません。たぶん差出人である私は数字で指定していたもので、
h> それでずっと使えていたのだと思います。

  なるほど。了解です。

h>  ところで、imget を rpop 対応にすると、$ENV{PATH} が taint 扱いになるた
h> め、ssh が起動出来なくなります。私は独自に、以下に添付するような
h> $ENV{PATH} を固定化するパッチをつくって、それをずっと自らが作成する
h> RPM には当てていたのですが、これが正しいのかどうか自信がなく
h> (--enable-rpop を外して再コンパイルが正しい、と言われてしまえばそれまで
h> ですよね ^^; ) 、他の場所では公開してきませんでした。

  ssh の在処って大抵 /usr/local/bin ですよね。ころころ変わると思えない
し。そもそも PATH 検索に頼る必要がないと思います。
  というわけで、こんな変更はいかがでしょうか? ssh をフルパスで呼ぶよ
うにします。その代わり、configure 時点で --with-ssh=ssh/path で指定し
ます。指定されなければ、ssh を探します。

h>  梅本さんのパッチは Kondara の RPM パッケージには反映させて頂きたいと思
h> います。では。

  どうぞ。:-)

-------------- next part --------------
Index: configure.in
===================================================================
RCS file: /usr/home/ume/ncvs/src/im/configure.in,v
retrieving revision 1.10
diff -u -r1.10 configure.in
--- configure.in	1999/10/16 13:25:08	1.10
+++ configure.in	2000/02/07 15:16:23
@@ -26,6 +26,7 @@
 AC_SUBST(im_nosync)
 AC_SUBST(im_fsync_no)
 AC_SUBST(im_hostname)
+AC_SUBST(im_path_ssh)
 IM_PATH_PERLV_PROGS(im_path_perl, perl perl5, PERL5_NOT_FOUND)
 case "$im_path_perl" in
 ""|PERL5_NOT_FOUND)
@@ -97,6 +98,14 @@
     AC_MSG_RESULT([Not a Solaris; Content-Length: can be ignored])
     im_usecl=no ;;
 esac
+
+im_path_ssh='yes'
+AC_ARG_WITH(ssh,
+[  --with-ssh=PATH        Use PATH as SSH location],
+[im_path_ssh="${withval}"])
+if test "x$im_path_ssh" = 'xyes'; then
+    AC_PATH_PROG(im_path_ssh, ssh, '/usr/local/bin/ssh')
+fi
 
 AC_MSG_CHECKING([domain for mail-address])
 im_hostname=`hostname`
Index: IM/Config.pm.in
===================================================================
RCS file: /usr/home/ume/ncvs/src/im/IM/Config.pm.in,v
retrieving revision 1.1.1.17
diff -u -r1.1.1.17 Config.pm.in
--- IM/Config.pm.in	2000/02/07 06:39:51	1.1.1.17
+++ IM/Config.pm.in	2000/02/07 15:25:22
@@ -44,7 +44,7 @@
     expand_path usetouchfile touchfile
     pop_timeout imap_timeout nntp_timeout dns_timeout
     connect_timeout command_timeout rcv_buf_siz
-    db_type file_attr);
+    db_type file_attr $SSH_PATH);
 
 ##
 ## Constant
@@ -57,7 +57,7 @@
 	    %WHO_SET
 	    @SELECTORS
 	    $IM_LIBDIR $IM_DB_TYPE $FSYNC_NO
-	    $prefix $exec_prefix);
+	    $prefix $exec_prefix $SSH_PATH);
 
 ##
 ## configurable value by configure
@@ -68,6 +68,7 @@
 $IM_LIBDIR  = "@libdir@/im";
 $IM_DB_TYPE = '@im_db_type@';
 $FSYNC_NO = @im_fsync_no@;
+$SSH_PATH = "@im_path_ssh@";
 
 sub file_attr () {
     return @im_file_attr@;
Index: IM/Ssh.pm
===================================================================
RCS file: /usr/home/ume/ncvs/src/im/IM/Ssh.pm,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 Ssh.pm
--- IM/Ssh.pm	2000/02/07 06:39:53	1.1.1.4
+++ IM/Ssh.pm	2000/02/07 14:24:52
@@ -13,17 +13,13 @@
 package IM::Ssh;
 require 5.003;
 require Exporter;
-use IM::Config qw( connect_timeout command_timeout );
+use IM::Config qw( connect_timeout command_timeout $SSH_PATH );
 use IM::Util;
 use strict;
 use vars qw( @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $SSH $FH @PID );
 @ISA       = qw( Exporter );
 @EXPORT    = qw( ssh_proxy );
- at example.com = qw( $SSH );
 
-# Configuration Variables
-$SSH = 'ssh';
-
 # Global Variables
 $FH      = "SSH00000";
 @PID     = ();
@@ -75,7 +71,7 @@
 	    close $read;
 	    open( STDOUT, ">&$write" );
 	    open( STDERR, ">&$write" );
-	    exec( $SSH, '-n', '-x', '-o', 'BatchMode yes',
+	    exec( $SSH_PATH, '-n', '-x', '-o', 'BatchMode yes',
 		  "-L$local:$server:$remote", $host,
 		  sprintf( 'echo ssh_proxy_connect ; sleep %s', &command_timeout() ) );
 	    exit 0;			# Not reach.
@@ -83,7 +79,7 @@
 	    sleep 5;
 	    redo FORK;
 	} else {
-	    im_warn( "Can't fork $SSH.\n" );
+	    im_warn( "Can't fork $SSH_PATH.\n" );
 	}
     }
     0;
-------------- next part --------------
梅本 肇 @ インターネット互助会横浜  http://www.imasy.org/~ume/
ume at example.com  ume at example.com  ume at example.com
プログラムは書いた人の意図ではなく書かれた通り動く


Mew-dist メーリングリストの案内