AFPサーバ using netatalk
ちょっと手こずったのでメモ。
Leopardから何も考えずにインストールしたdebian linux上のafpdに接続すると-5002エラーがでる。これを調べてみるとどうやら"badUAM"エラーらしい。
Debianはlibsslとnetatalkパッケージのライセンス矛盾の問題からDHXというSSLで暗号化された経路経由で認証するUAM(認証モジュール)をバイナリパッケージに同梱していないため、clear text認証を試みたafpdが、Leopard側に拒否されているようだ。暗号化されたセキュアな認証に対応していないafpdをLeopard側で受け付けてくれないようだ。
ここで、Leopardのcleartext認証を有効化してやる方法もあるのだが、念のためDHXモジュールを自力でビルドしておく。
http://blog.our-files.com/?p=5
いくつか他にも解説しているサイトはあるが、上記のサイトの方法で通った。
DEB_BUILD_OPTIONSを直接コマンドラインから指定してもいけるはずなのだが、なぜかそれだと通らなかった。debian/rulesを直接いじったらいけた。
動作を確認したら、あとはnetatalkパッケージをアップデートされないように固定:
echo "netatalk hold" | sudo dpkg --set-selections
atalkd他レガシー関連daemon&papdを起動しないように/etc/default/nettalk編集:
ATALKD_RUN=no PAPD_RUN=no
mount point編集: /etc/netatalk/AppleVolumes.default
ZeroConf用avahi-daemonセットアップ:
kouhei@chartreuse:~$ sudo apt-get install avahi-daemon kouhei@chartreuse:~$ sudo vim /etc/nsswitch (hostsにmdns4を追加) kouhei@chartreuse:~$ vim /etc/avahi/services/afpd.service kouhei@chartreuse:~$ cat /etc/avahi/services/afpd.service <?xml version="1.0" standalone='no'?><!--*-nxml-*--> <!DOCTYPE service-group SYSTEM "avahi-service.dtd"> <service-group> <name>chartreuse-afp</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service> </service-group> kouhei@chartreuse:~$ sudo /etc/init.d/netatalk restart kouhei@chartreuse:~$ sudo /etc/init.d/avahi-daemon restart
近況
なにもしていないわけではなくて、ひたすらタスクシステムを書き直し中。ただしスローペース。
このへん:http://websvn.nyaxtstep.com/viewvc.cgi/libpolatsk/trunk/
FResourceクラス
conceptテンプレート習作。RAIIなリソース操作とか。
http://websvn.nyaxtstep.com/viewvc.cgi/fecti/trunk/fecti/Utility/FResource.h
http://websvn.nyaxtstep.com/viewvc.cgi/fecti/trunk/test/util_FResource/test_FResource.cpp
gcc -O3で完全にインライン化されることを確認。