[Armadillo:02050] Armadillo220のLANの結線状況の取得
林田 平馬
email@hidden
2007年 9月 18日 (火) 10:45:41 JST
いつもお世話になっております。
林田と申します。
最新の環境(Atmark-dist,v20070720とkernel,v2.6.12.3-a9-9)でLANの結線状況
が取得可能(Armadillo:01784、Armadilloシリーズ ソフトウェアアップデートのお知
らせ)
になったとのことなので、過去スレッド、Armadillo:01955、00824を参考に、下記
コードで
試してみましたが、ケーブルを抜いていてもupの状態が帰ってきます。固定IP環境な
ので
IP関連の判別式は意味が無さそうなのはわかるのですが、どうやって結線状況を取得
するのかがわかりません。何か参考がありましたらよろしくお願いします。
int Eth_Link_Get(char *iface)
{
struct ifreq ifreq;
int fd;
int ret;
memset(&ifreq, 0, sizeof(struct ifreq));
fd = socket(PF_INET, SOCK_RAW, IPPROTO_RAW);
if (fd < 0) {
return 1; /* down */
}
strcpy(ifreq.ifr_ifrn.ifrn_name, iface);
ret = ioctl(fd, SIOCGIFFLAGS, &ifreq);
if (ret < 0) {
return 1; /* down */
}
if(ifreq.ifr_flags & IFF_RUNNING){
if (ioctl(fd, SIOCGIFADDR, &ifreq) == 0) {
return 0; /* up */
}
}
return 1; /* down */
}
link = Eth_Link_Get("eth0");で呼び出してます。
_________________________________________________________________
いよいよ日本時間9月17日に行われるエミー賞授賞式!受賞結果やレポートを随時掲載
http://event.jp.msn.com/autumn2007/emmy59/default.htm
armadillo メーリングリストの案内