任务单 #38314

SSH X転送設定のメニュー表示

开放日期: 2018-06-02 18:24 最后更新: 2018-09-01 00:26

报告人:
(匿名)
属主:
类型:
状态:
关闭
组件:
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

『設定(S)』-『SSH転送(O)』-『Xクライアントアプリケーションの転送』を有効にして使用しています。

SSHでサーバーにログイン・ログアウト後、再度上記のメニューを開くとチェックが外れています。

表示上は外れていますが内部的には有効のままのようで、『キャンセル』を選択すると次回のログイン時もX転送は有効です。

『OK』を選択すると外れた状態が反映され、X転送が無効になります。

任务单历史 (3/10 Histories)

2018-06-02 18:24 Updated by: None
  • New Ticket "SSH X転送設定のメニュー表示" created
2018-06-02 21:11 Updated by: (del#1144)
  • 处理结果 Update from to Accepted
  • 组件 Update from (无) to TTSSH
2018-06-02 23:25 Updated by: (del#1144)
评论

とりあえずソースを見た感じ:

転送設定は、INIから読んだ設定をそのまま持ってるメモリ領域(1)と、接続に使うために分解したあとのメモリ領域(2)があって、UIでの設定は(2)を編集しています。

SSH切断時には(2)の設定を初期化するので、TCP切断後にウィンドウを閉じない設定をしていて切断後にUIで設定しに行くと、空の状態になります。

接続時には改めて(1)から(2)を生成し直すので、見えなくなった設定が復活したように見えそうです。

呼び出し構造メモ

FWDUI_load_settings() {
  copy pvar->settings.DefaultForwarding to pvar->fwd_state.requests[]
  call FWDUI_save_settings()
}
FWDUI_load_settings() is called by TTXReadINIFile(), TTXOpenTCP(), TTXParseParam() and read_ssh_options_from_user_file()

FWDUI_save_settings() {
  copy pvar->fwd_state.requests[] to pvar->settings.DefaultForwarding
}
FWDUI_save_settings() is called by end_fwd_dlg() and FWDUI_load_settings()

TTXCloseTCP() {
  call uninit_TTSSH() {
    call FWD_end() {
      free(pvar->fwd_state.requests) // ここで設定を消している
    }
  }
  call init_TTSSH() {
    初期化はしているけど、設定の読み込みはしていない
  }
}

TTXOpenTCP() {
  call FWDUI_load_settings()
}
2018-06-06 15:52 Updated by: doda
评论

UIが(2)を編集対象としているのに、(2)がクリアされていて(1)の内容を反映していないという状態が出来る事が問題なように思います。

対処は、

  • TTXCloseTCP()で、init_TTSSH() の後に FWDUI_load_settings() を呼ぶ
  • init_TTSSH()か、またはその中で呼ばれるFWDUI_init() で FWDUI_load_settings() を呼ぶ

のどちらかでよさそうです。

2018-06-06 15:57 Updated by: doda
评论

UI関連の初期化という意味では後者の方がよさそうですが、起動時はコピーした内容が参照される事なく TTXReadINIFile() の呼び出し時に再度上書きされるのがちょっと無駄になりますね。

まあ、この程度ならば気にする必要はなさそうですが。

2018-06-06 17:56 Updated by: doda
2018-06-06 19:00 Updated by: doda
  • 处理结果 Update from Accepted to Fixed
评论

r7127 で修正してみました。

2018-06-06 23:15 Updated by: (del#1144)
评论

doda への返信

r7127 で修正してみました。

ありがとうございます。

FWD_end()で設定をまるごとクリアするのではなく、設定は維持してステータスだけ初期状態に戻せばよいのでは、と考えていましたが、DefaultForwardingが持っているのを読み直せばよかったんですね。

2018-08-27 18:30 Updated by: None
评论

報告者です。4.100-RC1で修正確認いたしました。 ご対応いただきありがとうございます。

2018-09-01 00:26 Updated by: (del#1144)
  • 状态 Update from 开启 to 关闭

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名