TCP port# にサービス名
現状でも SSH ポート転送絡みではサービス名を受け付けているので、対象を他に広げてもいいと思います。
とりあえずコマンドラインオプションでポート指定にサービス名を受け付けるようにしてみました。
https://osdn.net/downloads/users/17/17085/snapshot-20180403-doda-r7091-servicename.zip/
別チケットの方がいい話かもしれませんが、この /etc/services 的なデータベースってだれかが更新してる最新版みたいなのがあるんでしょうか?
IANAが管理しています。最新版は以下で確認できます。
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt
現状の317件(ポート名重複あり)から、最新版は6440件※とおよそ20倍になりますが、差し替えますか?
※
検討事項
現状 x-server / IANAのリスト x11 みたいな、名前が違うものもありますね。
# TTSSHが独自命名したのか正式に変更されたのかわかりません。
互換性のために残すのがいいのか、すぱっと切るのがいいのか…
maya への返信
現状の317件(ポート名重複あり)から、最新版は6440件※とおよそ20倍になりますが、差し替えますか?
データ量でいうと 130KB 程度ですね。現状の ttpcmn.dll (216KB) と比べると大きめですが、Tera Term 本体 (2MB), ttxssh.dll (2.5MB) と比べれば気にならない範囲でしょうか。
試しに差し替えてみましたが、ttpcmn.dll は 340KB 程度になりました。
他に見える部分での違いだと、SSH ポート転送追加ダイアログでのポートのメニューからの選択が多すぎてやり辛くなったかも。
後はポート転送追加ダイアログを開く時に一瞬待たされるようになりました。この辺は PC の性能によるかもしれませんが。
検討事項 * ポート番号が範囲のものは先頭だけ? * 現状と比較して消えているもの(9 nullとか)
後はポート名の重複をどうするかですね。
maya への返信
互換性のために残すのがいいのか、すぱっと切るのがいいのか…
ポート名が重複しない限りは残したいですね。まず無いと思いますが、マクロで利用していた時に既存のマクロが動かなくなるのを避けたいです。
確認を忘れていたのですが、"New Connection" ダイアログでの TCP port 欄でサービス名を使いたいという要望は有るでしょうか?
現状では数字のみ最大 5 桁という制限をかけていますが、出来ればこの制限は外したくないなと。
入力制限と言えば SSH ポート転送追加ダイアログでのポート名は 9 桁までという制限をかけてありますが、 現状最長サービス名の remote_file_sharing が 19 文字有るので、これに合わせて増やす方がよさそうですね。
doda への返信
SSH ポート転送追加ダイアログでのポートのメニューからの選択が多すぎてやり辛くなったかも。
文字を打ってからプルダウンを開けば、不完全でもそこが起点になる(ss と打って開くと ssh が選択状態になる)ようですね。
後はポート転送追加ダイアログを開く時に一瞬待たされるようになりました。この辺は PC の性能によるかもしれませんが。
ここは難しいですね。あまり多くなって重くなるようなら「公式リストの古いバージョン(いついつ時点のもの)」のような、適当な件数に間引いたものがあればと思って最初の質問をしたのですが、そういうものはなさそうですね。
お考えの案でよいと思います。
元チケットを投稿したものですが、受領ありがとうございます。 話の流れ的に、TeraTermに定義済みのサービス名DBを持たせるということなのでしょうか? 単純に getservbyname() での実装を想定してのリクエストでした。 当方では %SystemRoot%\System32\drivers\etc\services に組織内で使用するサービス名を 独自に定義して運用しています。 最初に書いておかなくて申し訳ないのですが、できれば getservbyname() による実装を検討いただけると幸いです。 (Windows標準のtelnetクライアント等はそのような実装になっていたと思います)
doda への返信
確認を忘れていたのですが、"New Connection" ダイアログでの TCP port 欄でサービス名を使いたいという要望は有るでしょうか?
はい。"New Connection" ダイアログでもサービス名を使いたいです。
もう少し、欲張ったことを書いてしまいますが、DNSのSRVレコードも参照するようになっているとさらに嬉しいです。
(匿名) への返信
話の流れ的に、TeraTermに定義済みのサービス名DBを持たせるということなのでしょうか?
新たに持たせる訳ではなく、SSH ポート転送 UI の為に有った物を転用した形です。 今回の件が無くても、ポート番号⇒ポート名の逆引きの為にデータを持たせる必要があります。
単純に getservbyname() での実装を想定してのリクエストでした。
やるのでしたら getaddrinf() でですね。ただ作業の為の時間が取れなかったので、入るとしたら 4.100 以降になります。
doda への返信
確認を忘れていたのですが、"New Connection" ダイアログでの TCP port 欄でサービス名を使いたいという要望は有るでしょうか?
はい。"New Connection" ダイアログでもサービス名を使いたいです。
やはり TCP port 欄では数字のみを許可したいです。 "New Connection" ダイアログでは Host 欄で servername:http のような入力を受け付けますが、これでは駄目でしょうか。
もう少し、欲張ったことを書いてしまいますが、DNSのSRVレコードも参照するようになっているとさらに嬉しいです。
これはちょっと気が進みません。
接続ダイアログやポート番号付きホスト名のポート番号部分でサービス名を指定できるようになると素敵だと思います。
例
myserver:80 → myserver:http