Newsgroup: it.comp.os.linux.development
Titolo: cavo rete scollegato

Ciao,
trovo molto carina la funzione di win2k/winxp che mette un'icona sulla
systray che ti dice quando viene collegato o scollegato un cavo sulla
scheda di rete.
Mi piacerebbe mettere un'icona simile in KDE, magari esiste già
un'applet che lo fa... in questo caso ditemi come si chiama che mi
piacerebbe vedere il codice sorgente. La mia domanda è semplice: come
posso rilevare la stessa cosa sotto Linux? C'è qualche file in /proc che
mi dice lo stato della connessione?
Oppure esiste qualche chiamata di sistema?
byeZ!
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
E Dio, prima di estrarre la costola ad
Adamo lo  addormentò e  disse: «Dormi,
caro,  è  l'ultima  volta  che  potrai
dormire senza pensieri»

 mi dice lo stato della connessione?
Potresti provare a lanciare *un* echo request ogni N secondi, chessò:
verso il default gateway, e vedere che se qualcuno ti risponde. Anche
perché è quello che immagino faccia Win(2k|XP).
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://digilander.libero.it/ebassi/
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4


Non credo che faccia cosi' in quanto il rilevamento e' istantaneo.
Alessandro.

  Emmanuele.
 
Non è che il lavoro fiene fatto dal driver della scheda di rete?
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
	Il paese da dove veniva non era un paese di geni.
	Loro lo chiamavano computer umano perchè sapeva contare fino a 20.
	Nudo fino a 21

 mi dice lo stato della connessione?
Potresti dare un'occhiata a mii-tool.
Ciao
  David
-- 
<d.santinoli presso mi. flashnet. it>

 [2003-06-09 16:52]:

Vediamo un po' di buttare qualche numero a livello spannometrico.
Un echo request andato a buon fine, su una NIC, ha un round trip time
nell'ordine dei millisecondi (o anche meno). Ipotizzando, alla buona,
che il controllo sia fatto attraverso il driver della scheda di rete,
come il Tagliaferri suggerisce, quindi in kernel land, buttiamo lì un
paio di millisecondi per verificare se il default gateway sia vivo.
Considerando poi, che buona parte delle chiamate per il disegno della
GUI in Win2k (non saprei sotto WinXP, ma dato che XP è essenzialmente
un NT "on steroids", nulla dovrebbe esser cambiato, sempre parlando a
spanne), anche in questo caso sono pochi altri millisecondi.
Se l'echo request fallisse oppure se ci mettesse un tempo oscenamente
lungo, direi che siamo sempre nell'ordine dei centesimi di secondo.
Spannometricamente istantaneo. :-)
+++
Dopo aver ravanato un po' tra i moduli per le NIC nel kernel di Linux
ho visto che in molti esiste un controllo su un bit per il caso di un
"NO CARRIER" o di "CARRIER LOST". Non saprei come implementare questo
tipo di check in userland senza ricorrere al metodo di cui sopra.
Ciao,
 Emmanuele, spannometricamente ingegnere.


 Non è che il lavoro fiene fatto dal driver della scheda di rete?
Probabile, ma in userland?


 Potresti dare un'occhiata a mii-tool.
Yuk :)
E' proprio quello che volevo! :)
ot@aleste:~]# mii-tool -w
18:32:23 eth0: no link
18:32:25 eth0: negotiated 100baseTx-FD, link ok
Notare che "link ok" è comparso istantaneamente come ho acceso l'hub :)
Ed è pure un programma "furbo", nel senso che non chiuso l'output,
quindi per costruirci una GUI attorno basta usare un semplice popen :)
Grazie mille! :)
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
Se Bill Gates avesse una lira per ogni
volta  che Windows  crasha... ops!  Ho
sbagliato paragone! -- Vanni 

 perché č quello che immagino faccia Win(2k|XP).
No, č istantaneo! Cmq la dritta di mii-tool č quella giusta :)
ciao!
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
Il  marito č  la  cosa  che resta  del
findanzato dopo il matrimonio. 


Si, il fatto e' che se lo fai ogni N secondi non e' cosi' istantaneo :-)
Alessandro.

 Potresti dare un'occhiata a mii-tool.
Sul più bello che avevo scritto l'applet per il pannello di KDE/gnome
(così da fare un bel clone dell'utility di win2k) mi sono reso conto che
la popen non funzionava! :(
Ho provato a sostituirla con altre chiamate... ma niente da fare. Poi mi
è venuto un dubbio, ovvero che mii-tool chiamato con l'opzione -w non
effettuasse "fflush" dopo di printf. Ho quindi scaricato il sorgente di
mii-tool... e i miei sospetti sono stati confermati. Ora ho (banalmente)
patchato il sorgente di mii-tool, vi chiedevo però se c'è qualche
stratagemma per poter, sempre usando popen o qualcosa di simile, forzare
il programma chiamante a non buferizzare l'output.
Ogni suggerimento è ben accetto (anche perché così quando effettuerò
l'upgrade di mii-tool dovrò ogni volta ricordarmi di patcharlo).
p.s. secondo voi è un "baco" di mii-tool? E' il caso di segnalarlo?
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick Zanac    |   ICQ 18526701 |
--- remove nofesso to reply ----------
---PC powered by Linux kernel 2.4.20  
Penso   che  Salomone   dovesse  avere
l'uccello  rapace,   come  direbbe  un
naturalista,    infatti   sposò    700
principesse straniere e 300 concubine.
(I° Re Cap XXI) 


Io lo farei.
Male che vada ti mandano a quel paese.
Alessandro.

 Si, il fatto e' che se lo fai ogni N secondi non e' cosi' istantaneo :-)
L'RTT di un echo request è, nel caso migliore come nel caso medio[1], un
bel pò sotto il secondo. ;-)
Quello che rompe è il caso peggiore, ma penso proprio si possa risolvere
con un timer, o con un'icona tipo:
	MA_DOVE_DIAVOLO_SONO_ATTACCATO.ico
Che duri quei tre o quattro ms di stato dubbio... ;-)
+++
[1] Io non so su che rete usiate Win2k, ma se è staccata nel caso medio,
    o siete su wireless o state implementando una win-box sicura. ;-)
Ciao,
 Emmanuele.



Non ci siamo capiti.
La mia obiezione era sul fatto che tu suggerivi di fare il controllo ogni
N secondi, e non sull tempo necessario per fare il controllo.
Per esempio se fai il controllo ogni 10 secondi il ritardo medio con il 
quale viene notificato il nuovo stato e' di 5 secondi.
Alessandro.

 quale viene notificato il nuovo stato e' di 5 secondi.
E tu fai un check ogni secondo, che ti frega. ;-)


 No, č istantaneo! Cmq la dritta di mii-tool č quella giusta :)
Occhio che non tutte le schede di rete supportano il protocollo MII.
Di sicuro lo supportano tutte le 100mbit, ma molte 10mbit non lo supportano.
Se hai guardato i sorgenti dell'mii-tool avrai anche visto che 
l'interfaccia tramite ioctl() offre anche numerose opzioni per 
verificare lo stato di collegamento (10 o 100 half o full duplex ...) e 
per cercare di forzarlo ad un certo tipo.
Bye,
  Gabry