SSTPサーバのできることを取得

SSTPサーバもいくつか種類があります。
中には簡易実装的なもの*1もあり、COMMUNICATEが全サーバに通じる、などという前提が難しくなってきました。

で、SSTPサーバの「できること」をきちんと取得できるようにしようというのがこのメモの目的です。

追記:案1と2か3併用かなぁと。全部FMOに突っ込むとえらいことになりますし。

案1(改)/EXECUTE GetProperty sstp

SSTP EXECUTEはまぁだいたい実装できるだろうという前提のもと、CROWのプロパティシステム互換でsstpを追加して、SSTPサーバでできること、SSTPサーバのクセ等を取ろうという案です。

EXECUTE SSTP/1.4
Charset: Shift_JIS
Command: GetProperty[sstp.commands]
Sender: SSP
SSTP/1.4 200 OK

EXECUTE,SEND,NOTIFY,COMMUNICATE,GIVE,INSTALL
EXECUTE SSTP/1.4
Charset: Shift_JIS
Command: GetProperty[sstp.option]
Sender: SSP
SSTP/1.4 200 OK

SecurityLevel,Marker
  • 利点
    • 情報を追加し放題
    • (拡張の仕方によってはGetの代替も含めて)一挙に必要な情報が取れる
  • 欠点
    • 取得にコストが多少かかる

案2/FMOにエントリ追加

sspfmo_83908390_76607660.info[1]
CMD=EXECUTE,SEND,NOTIFY,COMMUNICATE,GIVE,INSTALL&OPTION=SecurityLevel,Marker
(上記すべて1行)

これが長ければ、利用可能コマンドだけ列挙、しかも略記して

sspfmo_83908390_76607660.cmd[1]E,S,N,C,G,I
  • 利点
    • ローコスト
  • 欠点
    • ただでさえ不足気味のFMOが埋まる
      (サイズ拡張すれば非互換な処理系が出てくる)
      • 解決策:Sakura2 FMOとか作る?

案2.5/FMOエントリ追加+FINE

本当にゴーストの数分だけバリエーションがあるかというと そうでもない気がしますので、

[Sakura FMO]
sspfmo_83908390_76607660.infoclass[1]NORMAL
sspfmo_83908390_98019801.infoclass[1]TEMPORARY
[FINE FMO]
SSP@37564000:infoclass:
NORMAL=EXECUTE,SEND,NOTIFY,COMMUNICATE,GIVE,INSTALL&OPTION=SecurityLevel,Marker
SSP@37564000:infoclass:
TEMPORARY=SEND,NOTIFY,GIVE

のように「情報のクラス」を規定するとか。

  • 利点
    • SakuraFMOのサイズをそれほど圧迫せずに必要なだけの情報を展開できる
  • 欠点
    • 読むほうも書くほうもとってもめんどい。

案3/FINEの大拡張祭

……。
※注:半分本気です。

  • 利点
    • ネタが増える
    • 今のうちなら影響範囲は小さい(笑)
  • 欠点
    • バグが増える
#SAKURAFMO@sspfmo_83908390_76607660:GhostInfo:
EXECUTE,SEND,NOTIFY,COMMUNICATE,GIVE,INSTALL&OPTION=SecurityLevel,Marker

だとどうか。。。

FINE規格上で、「情報の提供のみを目的とした(つまり、FINEリクエストを受けることを想定しない)FINEサーバエントリはアプリケーション名の先頭に#を付ける。
その場合Hwnd,Capability,ServerVersionの各プロパティを必須としない」とか変更が必要ですが。


*1 SSTPViewerとか

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-11-25 (金) 12:39:58