[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bsd-nomads:16057] Re: about pccardd strict matching (was Re: [FreeBSD-users-jp



おはようございます	二宮@お四国 です
# Cc: nomads してます m(__)m

Kitagawa Shoichi <sk@xstar.kiu.ac.jp> は Thu, 22 Nov 2001 20:12:30
+0900 頃に
    Subject: [FreeBSD-users-jp 65698] LPC2-TX
    Message-Id: <20011122201230U.sk@xstar.kiu.ac.jp>
        に於いて以下のようにおっしゃっていました。
※都合により手を加えさせていただく事が有ります。御了承下さいマセヽ...
北川> PCMCIA のネットワークカード MELCO LPC2-TX について,
北川> MELCO LPC2-T と認識され, うまく動作しませんでした。
北川> Mac addressが取得できず, Type NE1000 (8bit) と報告されます。
北川> OS は FreeBSD 4.4-RELEASE です。
北川> /etc/defaults/pccard.conf にある, LPC2-T のエントリをコメントアウト
北川> するか, LPC2-T と LPC2-TX の記載順序を変更したところ, LPC2-TX と
北川> 認識され, 正常に動作しました。/etc/pccard.conf に LPC2-TX のエントリを
北川> 記述してもOkでした。
北川> 確か, 4.3-RELEASE でも同様の状況だったように記憶しています。

pccardd のソースを眺めてみました

---8<------8<--- src/usr.sbin/pccard/pccardd/cardd.c ---8<------8<------8<---
static int
cis_strcmp(char *db, char *cis)
{
	....
	n = strlen(db);
	if (n > 2 && db[0] == '/' && db[n-1] == '/') {
	....
	} else {
		/* otherwise, matching by strncmp() */
		return strncmp(db, cis, n);
	}
	....
}
---8<------8<------8<------8<------8<------8<------8<------8<------8<---

strncmp(db, cis, n) ここを strncmp(db, cis, ++n) とすれば記載順序に
関係なく認識できるものと思います。
# 試してはないけどっ ... (strncmp の動作については試したけどっ ...)

しかし、他へも影響あるかもっ、、

今の比較は pccard.conf に記述されてるとこまで一致していれば、それ
以降がどうでも一致となってしまうために、LPC2-TX が LPC2-T と
誤認されてしまうような事が起こりえるでしょう。

# MELCO LPC2-T
card "MELCO" "LPC2-T"
# MELCO LPC2-TX
card "MELCO" "LPC2-TX"

ですから。。。

++n に変えて、より厳密な比較にすべきかは、自分には何とも判断できません。
# 今までこれでやって来たんだからっ ...
# 途中までの比較でうまくいってて、厳密な比較するとマッチしないのが
# あるかもしんない。
# ほんとはそういうのは "/hoge.*/" とすべきでしょうけどっ
--─
ICQ UIN:57442553                          二宮 秀幸@愛媛 鬼北 広見町
PGP-Fingerprint:  6C59 EC08 5B23 6490 44D0  7CD3 DA40 219F 7114 8553
PGP-Public-Key:    http://user.shikoku.ne.jp/~nin/pgp/public-key.txt
mailto:nin@shikoku.ne.jp   http://user.shikoku.ne.jp/~nin/index.html
mailto:nin@Jp.FreeBSD.org http://home.jp.freebsd.org/~nin/index.html