«前の日(08-06) 最新 次の日(08-08)» 追記

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

OSS活動をご支援いただける方を募集しています


2012-08-07 OptionsNG

net/xrdp を OptionsNG に対応させました (xrdp-0.6.0.20110117_2) 他

net/xrdp の port を OptionsNG に対応させました。

現在の portversion と 0.6.0系の間に結構変更点がたまってきているので、アップデートも行いたいのですが、いちどに多くを弄るのも大変なのでとりあえず OptionsNG への対応を行いました。

OptionsNG は以下のような取り組みです。

OptionsNGはPorts Collectionで指定するオプションの挙動の一貫性を向上させようという取り組みです。たとえば現在の実装ではWITH_HOOとWITHOUT_HOOが指定できた場合,portAではWITH_HOOを指定しても何も処理されずWITHOUT_HOOを指定したときだけ処理が実行される,portBではこの逆,といったように,こうした部分での挙動に決まりがありません。OptionsNGはこうした挙動をまとめあげるフレームワークです。

また、前回と今回のアップデートで OptionsNG 対応の他に以下の点を変更しました。 pkg-plist や ports フレームワークの変更のみなので xrdp のソフトウェア自体は全く同じものですが、 xrdp-0.6.0.20110117_2 にアップグレードする場合は注意してください。

設定ファイルのアンインストール

アンインストール時、未変更の設定ファイルを削除。net/xrdp をアンインストールする際、/usr/local/etc/xrdp 以下にインストールされた3つの設定ファイル、

  • rsakeys.ini
  • sesman.ini
  • xrdp.ini
  • startwm.sh

に変更を加えていなければ削除するようにしました。これまでは変更を加えたか否かに関わらず、これらの設定ファイルは残っていました。

アンインストール時にデーモン停止

net/xrdp をアンインストールする際、xrdp と xrdpsesman のデーモン2つが停止されるようになりました。 これまではアンインストールされて動作しないのにプロセスは残ったままという中途半端な状態で、 アップグレードした際にも動いているのは古いバージョンのままでした。

この変更により、portupgrade や portmaster で net/xrdp をアップグレード(内部的にはアンインストール&新バージョンインストールになる)した後にはデーモンは止まっているはずなので注意してください。

xrdpsesman_enable="YES" が不要に

net/xrdp を動かす際には /etc/rc.conf に

xrdp_enable="YES"
xrdpsesman_enable="YES"

が必要でしたが、後者が必要なくなり xrdp_enable="YES" だけで動作するようになりました。 NO, YES とか YES, NO とかいう組み合わせだと使えないので両方指定する必要ないよね、という意図です。

rc.conf に書くのは xrdp_enable="YES" だけで動きます。xrdpsesman_enable="YES" は書いても書かなくても一緒ですが、xrdpsesman_enable="NO" は無視されるわけではなく、書いてあると動かないので注意してください。


2018-08-07

Amazon Route 53 Health Check の User-Agent が変わっていた

Amazon Route 53 Health Check で HTTP/HTTPS でヘルスチェックするときの User-Agent が変わってました。

新旧はこんな感じ(UUIDはダミーです)。

旧:

Amazon Route 53 Health Check Service; ref:b0eb04d5-cb5e-40e7-839b-558e52fc3f0d; report http://amzn.to/1vsZADi

新:

Amazon-Route53-Health-Check-Service (ref b0eb04d5-cb5e-40e7-839b-558e52fc3f0d; report http://amzn.to/1vsZADi)

Apache 側で以下のようにしてヘルスチェックのアクセスはログに残さないようにしていたので、User-Agent が変わっていていつのまにか全部ログに残っていました。

SetEnvIf      User-Agent      "Amazon Route 53 Health Check Service;.*"       nolog
CustomLog     /path/to/access_log combined env=!nolog

ログによると、JSTで 11/Jul/2018:02:03:16 +0900 からこのUser-Agentでアクセスしているっぽい。

ちょっとググったところ、以下のAWSフォーラムの投稿が見つかりました。以前のUser-Agentのセミコロンの使い方がよくないということで、それを反映した変更っぽい? RFC7231を斜め読みしただけではいまいちよく理解できてないけど、( ) の中にセミコロンが登場するのは許されるということだろうか。