Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Linux
検証環境は Samba 3.3.3。
smb_browser.php の 192-194 行目(実質的には 194 行目のみ)を、次のように修正した。
- $cmd = 'net share -W "'.$workgroup.'" -S "'.$location.'" -I "'.$ip.'" -U "'.$uname.'%***"';
- report("Command",$cmd);
- $cmd = 'net share -W "'.$workgroup.'" -S "'.$location.'" -I "'.$ip.'" -U "'.$uname.'%'.$pwd.'"';
+ $cmd = 'net rpc share -s /dev/null -W "'.$workgroup.'" -S "'.$location.'" -I "'.$ip.'" -U "'.$uname.'%***"';
+ report("Command",$cmd);
+ $cmd = 'net rpc share -s /dev/null -W "'.$workgroup.'" -S "'.$location.'" -I "'.$ip.'" -U "'.$uname.'%'.$pwd.'"';
Samba 3.3 系では、net share の利用時にメソッドの指定が必須になった模様(ヘルプだと auto-detected if not specified っと書いてあるのでバグかもしれない?)なので、rpc を追加。
また、net コマンドの使用時に smb.conf を読めないと処理を中断するようになったみたいなので、とりあえず /dev/null でも食っとけ、ということで(追記: これは権限を落としている環境のみ。apache ユーザの権限で smb.conf が読める環境では不要なはずです)。

 *

Apache の気持ちになれる、秘密の呪文。
# su -s /bin/sh - apache
Category: Computer
JavaScript や Perl の join 相当のものが欲しかった。
要するに、最後の要素の後にはセパレータを入れないということで、結構面倒...

今後はこれをテンプレートに登録しておこうと思います。
private String join(Iterable<String> iterable, String separator) {
StringBuilder builder = new StringBuilder();
for (Iterator<String> iterator = iterable.iterator(); iterator.hasNext();) {
builder.append(iterator.next());
if (iterator.hasNext()) {
builder.append(separator);
}
}
return builder.toString();
}
 *

追記: 要素数が 0 のときだめだったのを直した。結局 hasNext() は 2 回呼ばないとだめですね。
Category: Computer
Leopard には Maven が標準インストールされてるのか...。
iMac:/usr/share/maven $ mvn -v
Maven version: 2.0.6