Coding system = EUC の時に smbclient から日本語の共有に接続できない

提供: Samba-JP
2006年8月10日 (木) 11:01時点におけるRibbon (トーク | 投稿記録)による版 (J0024)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索
KB番号 J0024
最終更新日 2001/06/30
作成者 たかはしもとのぶ
最終更新者

対象

この文書は、以下のプロダクトに付いて説明したものです。

  • Samba 2.0.9 日本語版リリース1.0
  • Samba 2.0.7 日本語版リリース2.2

現象

smb.confでcoding system = EUC に設定していると、smbclientから日本語の共有に対して接続しようとした時に、以下のようにエラーが発生して接続できないことがあります。

 tree connect failed: ERRSRV - ERRinvnetname (Invalid network name in tree connect.)

原因

これは、既に unix_to_dos() 関数を発行して符号化コードを変換した文字列に対して再度 unix_to_dos() 関数を発行してしまっているロジックの不備になります。

smbclientコマンドの実体である client/client.c では、与えられた引数を unix_to_dos() していますが、このロジックを削除することで問題が解決されます。 詳細は sugj-tech:2736 から始まるスレッドを参照してください。

対応策

Samba 2.0.10日本語版リリース1.0以降では、この問題は修正されています。

Samba 2.0.7日本語版リリース2.2は以下のパッチにて対応しました。

また、リリース2.2以前のSamba 2.0.7日本語版に対しても、同様のロジックを適用することで、この問題を修正することが可能です。

samba-2.0.7-ja-2.2_smbclient.patch

なお、Samba 2.0.7ではコマンドの引数に日本語を指定する場合は、 coding system パラメータで指定した符号化コードで指定する必要があります。詳細に付いては コマンド引数に日本語を指定する場合の注意点 を参照してください。