Ticket #38314

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

Eröffnet am: 2018-06-02 18:24 Letztes Update: 2018-09-01 00:26

Auswertung:
(Anonym)
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

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

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

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

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

Ticket-Verlauf (3/10 Historien)

2018-06-02 18:24 Aktualisiert von: None
  • New Ticket "SSH X転送設定のメニュー表示" created
2018-06-02 21:11 Aktualisiert von: (del#1144)
  • Lösung Update from Keine to Accepted
  • Komponente Update from (Keine) to TTSSH
2018-06-02 23:25 Aktualisiert von: (del#1144)
Kommentar

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

転送設定は、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 Aktualisiert von: doda
Kommentar

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

対処は、

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

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

2018-06-06 15:57 Aktualisiert von: doda
Kommentar

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

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

2018-06-06 17:56 Aktualisiert von: doda
2018-06-06 19:00 Aktualisiert von: doda
  • Lösung Update from Accepted to Gefixt
Kommentar

r7127 で修正してみました。

2018-06-06 23:15 Aktualisiert von: (del#1144)
Kommentar

doda への返信

r7127 で修正してみました。

ありがとうございます。

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

2018-08-27 18:30 Aktualisiert von: None
Kommentar

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

2018-09-01 00:26 Aktualisiert von: (del#1144)
  • Status Update from Offen to Geschlossen

Dateianhangliste

Keine Anhänge

Bearbeiten

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