Coding system = EUC の時に smbclient から日本語の共有に接続できない
提供:Samba-JP
ナビゲーションに移動検索に移動
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ではコマンドの引数に日本語を指定する場合は、 coding system パラメータで指定した符号化コードで指定する必要があります。詳細に付いては コマンド引数に日本語を指定する場合の注意点 を参照してください。