[1665] BBSNote Cometへの対応について

szk : 2018/12/01(土) 04:03


1543604627238.png (22248 B) - サムネイル表示中 -
●続きを描く
BBSNote Cometへの対応について by szk

こんにちは。szkと申します。
出来ればJavaアプレットと併用する形にしたくて、なんとかヘッダの冒頭の方にlinkとscriptタグを仕込んだNEOを別に立てる所までは出来たのですが、動画記録にチェックを入れて投稿する事が出来ないようです。
旧式のスクリプトということもあり優先度低めで、他の懸念事項を解決された後で構いません。
それとなく対応をご検討頂けると嬉しいです。
https://web.archive.org/web/20110604074802/http://wondercatstudio.com/archive/Comet-1.x/comet-1.00.zip

自分でなんとか調べられた事としましては、url_saveとurl_exitがCometの方では$ENV{SCRIPT_NAME}(lib/BN.pm)になっているためurl_saveの方でロケーションパスが重複している状態になってしまっていました。neoの方のurl_saveをurl_exitと同じように.*/までを削ることで動画記録にチェックを入れない状態であれば投稿可能になりました。
また動画記録にチェックを入れた時はlib/BN/Paint.pm内のsub post_regist内、
my $result = $pm->check_pool(0, $pm->{pmid});
で$resultにfalseが返って来るために直後のunlessで落ちてしまうようです。またPOSTされたデータの確認はlib/BN/Paint.pmのsub captor_spaで行っているようです。


[1666] 無題 : funige : 2018/12/01(土) 09:47(編集)

はじめまして。
Cometは調べたことがないのですが、BBSNoteはpchファイルの内部構造をチェックするので、
NEOの生成するpchファイルがはじかれてしまうのだと思います。

PaintBBSの生成するpchファイルのヘッダは
magic(4byte: 1f 8b 08 00) + speed(2byte) + width(2byte) + height(2byte)

ですが、NEOのヘッダは
magic(3byte: 4c 45 4f) + version(1byte: 20) + width(2byte) + height(2byte) + 拡張用(4byte: 00 00 00 00)

です。
ちゃんと調べないで実装してしまったのですが、どちらにせよ互換性がまったく無いので
cgi側でヘッダを見てNEOかどうか判別する処理の追加が必要になると思います。


[1668] 無題 : szk : 2018/12/02(日) 03:30(編集)

はじめまして&ありがとうございます。
今日1日使って結構粘ってみたのですがやはり同じ場所で落ちてしまうようです。
x1Fやreadで文字列検索してそれらしき場所は全て判定を加えて、必要に応じてseekなどしてみてました。
ただ1つ意味のわからない動作がありまして、デバッグのために$bn->error('BAD_REQUEST');を仕込んでいるのですが、これがcaptor処理(ファイル形式の判定)中に入れても効いている様子があまり無く、たまに効いてもbbsnote.cgiのあるディレクトリに対して謎のハッシュ文字列へのGETをして404を出すという動作になっています。
逆に同じcaptor処理内でもアプレット版PaintBBSであれば正常に(JavaのURLから送信中です→ポップアップウインドウで)不正なリクエストです、と表示されます。
if ( exists $bn->{module}{Paint} && $IN{query} eq 'fc=paint_captor') { $bn->pm->captor }
これの$bn->pm->captorがmagic等を見る処理に繋がっているようなのですけれど、頭を抱えています。


[1670] 無題 : さとぴあ : 2018/12/02(日) 10:43(編集) [URL]

私の場合は、古いBBSNoteのログが溜まっていたので、できればneoの動画付きに対応させたいと一瞬思いましたが、やめました。
ネットスケープ4のJavaに対応してもらったPictureBBSが、開発終了後、sunのJavaで投稿失敗するようになった経験から、いろいろなものに対応する事による弊害がでる場合もある…と思ったからです。
>出来ればJavaアプレットと併用する形に
私のブログのコメント欄にも書きましたが、
Java版と併用するだけなら、NEOテストのsamplebbsのPOTI-boardで、NEOを使うのチェックを外せば
しぃペインター、PaintBBSのJava版が起動しますから、
BBSNoteやcomet固有の機能が必要、または古いログファイルをそのまま運用したいという事でなければ
cometの新規設置のメリットはあまり無いような気もします…。
しかし、教えて頂いたcometのURLのおかげで、v8のログをそのままつかえそうです。
ありがとうございました。


[1671] 無題 : funige : 2018/12/02(日) 14:03

正直に言いまして、cgiはよくわからないのです。
前にもさとぴあさんに聞かれてlocalhostで動かそうとしたことはあったんですが
結局設定とかできずに後回しで……
お役に立てず申し訳ありません。


[1672] 無題 : szk : 2018/12/02(日) 19:41(編集)

>さとぴあさん
PictureBBSにそういった経緯があったのですね。
今回は10年以上前の過去ログを活かしたいという理由で改造をしておりまして・・・
難しいようでしたらPOTI-boardを利用させて頂くことも検討したいと思っております。ありがとうございます。

>funigeさん
いえ、ご無理を言ってすみません。私もソースコードを追ってたら訳がわからなくなっちゃって・・・
フォーマットの仕様を教えてくださっただけでも本当に助かりました。感謝です。