235 |
|
} |
236 |
|
network_stat_ptr=network_stats+interfaces; |
237 |
|
|
238 |
+ |
/* Read interface name */ |
239 |
+ |
if (sg_update_string(&network_stat_ptr->interface_name, |
240 |
+ |
ksp->ks_name) < 0) { |
241 |
+ |
kstat_close(kc); |
242 |
+ |
return NULL; |
243 |
+ |
} |
244 |
+ |
|
245 |
|
/* Finish reading rx */ |
246 |
|
network_stat_ptr->rx=knp->VALTYPE; |
247 |
|
|
281 |
|
} |
282 |
|
network_stat_ptr->collisions=knp->value.ui32; |
283 |
|
|
277 |
– |
/* Read interface name */ |
278 |
– |
if (sg_update_string(&network_stat_ptr->interface_name, |
279 |
– |
ksp->ks_name) < 0) { |
280 |
– |
kstat_close(kc); |
281 |
– |
return NULL; |
282 |
– |
} |
284 |
|
|
285 |
|
/* Store systime */ |
286 |
|
network_stat_ptr->systime=time(NULL); |
607 |
|
continue; |
608 |
|
} |
609 |
|
|
610 |
< |
/* Only intrested in the first 4 bits) - Assuming only ETHER devices */ |
611 |
< |
x = ifmed.ifm_active & 0x0f; |
610 |
> |
/* Assuming only ETHER devices */ |
611 |
> |
x = IFM_SUBTYPE(ifmed.ifm_active); |
612 |
|
switch(x){ |
613 |
|
/* 10 Mbit connections. Speedy :) */ |
614 |
|
case(IFM_10_T): |
618 |
|
case(IFM_10_FL): |
619 |
|
network_iface_stat_ptr->speed = 10; |
620 |
|
break; |
621 |
< |
/* 100 Mbit conneections */ |
621 |
> |
/* 100 Mbit connections */ |
622 |
|
case(IFM_100_TX): |
623 |
|
case(IFM_100_FX): |
624 |
|
case(IFM_100_T4): |
698 |
|
} |
699 |
|
|
700 |
|
if ((ifr.ifr_flags & IFF_UP) != 0) { |
701 |
< |
network_iface_stat_ptr->up = 1; |
701 |
> |
if ((knp = kstat_data_lookup(ksp, "link_up")) != NULL) { |
702 |
> |
/* take in to account if link |
703 |
> |
* is up as well as interface */ |
704 |
> |
if (knp->value.ui32 != 0u) { |
705 |
> |
network_iface_stat_ptr->up = 1; |
706 |
> |
} else { |
707 |
> |
network_iface_stat_ptr->up = 0; |
708 |
> |
} |
709 |
> |
} |
710 |
> |
else { |
711 |
> |
/* maintain compatibility */ |
712 |
> |
network_iface_stat_ptr->up = 1; |
713 |
> |
} |
714 |
|
} else { |
715 |
|
network_iface_stat_ptr->up = 0; |
716 |
|
} |