miniDLNAいじり(いろいろ)

miniDLNAのVideoフォルダに、foltiaの録画先である/home/fotia/php/tvを指定して使っているのだけど、FreeBSDなので、inotifyがなくって、録画ファイルが増えてもリストが更新されない。想定外だったのが、再起動してもDBのアップデートはされなくて、DBを消して起動するしかないこと。そうすると録画ファイル200個をフルスキャン、えらく時間がかかる。
というわけで、いろいろ試行錯誤中。
まずは、inotify部分をkqueueに変えようとしてみたが、途中で面倒になって挫折。あるファイルが新規作成されて完了した、というのをどうやったらうまく検知できるのか分からなかった。directoryのWRITEを拾っても、どのファイルが増えたのか減ったのか分からないし、そこをopendirして既知のと比較したとしても、ファイルが作成完了したかどうかは分からない(たぶん)。file descriptorに対してひっかけるので、検知したいdirectotyをopenしっぱなしにしておく必要がある(たぶん)のも気持ち悪いし。
というわけで王道(たぶん)の、HUPを受けたら再スキャン、というのを実装してみた。スキャンしてみつけた更新に対して、追加と削除自体はinotifyのそれを呼んでいる。追加はできたが削除に問題が。もう一歩って感じ。