summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings2/usb/usbrun.cpp
Unidiff
Diffstat (limited to 'noncore/settings/networksettings2/usb/usbrun.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings2/usb/usbrun.cpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/noncore/settings/networksettings2/usb/usbrun.cpp b/noncore/settings/networksettings2/usb/usbrun.cpp
index 49b5a77..3007e79 100644
--- a/noncore/settings/networksettings2/usb/usbrun.cpp
+++ b/noncore/settings/networksettings2/usb/usbrun.cpp
@@ -35,6 +35,15 @@ void USBRun::detectState( NodeCollection * NC ) {
35 } 35 }
36 36
37 fprintf( stderr, "NUP\n" ); 37 fprintf( stderr, "Assigned %p\n", assignedInterface() );
38 // definitively not up 38 if( ( Run = assignedInterface() ) ) {
39 // we already have an interface assigned -> still present ?
40 if( ! Run->IsUp ) {
41 // usb is still free -> keep assignment
42 NC->setCurrentState( Available );
43 return;
44 } // else interface is up but NOT us -> some other profile
45 }
46
47 // nothing (valid) assigned to us
39 assignInterface( 0 ); 48 assignInterface( 0 );
40 49
@@ -44,14 +53,16 @@ void USBRun::detectState( NodeCollection * NC ) {
44 ++It ) { 53 ++It ) {
45 Run = It.current(); 54 Run = It.current();
55
46 fprintf( stderr, "%s %d %d=%d %d\n", 56 fprintf( stderr, "%s %d %d=%d %d\n",
47 Run->Name.latin1(), 57 Run->Name.latin1(),
48 handlesInterface( Run->Name ), 58 handlesInterface( Run->Name ),
49 Run->CardType, ARPHRD_ETHER, 59 Run->CardType, ARPHRD_ETHER,
50 ! Run->IsUp ); 60 ! Run->IsUp );
61
51 if( handlesInterface( Run->Name ) && 62 if( handlesInterface( Run->Name ) &&
52 Run->CardType == ARPHRD_ETHER && 63 Run->CardType == ARPHRD_ETHER &&
53 ! Run->IsUp 64 ! Run->IsUp
54 ) { 65 ) {
55 fprintf( stderr, "OFF\n" ); 66 fprintf( stderr, "Released(OFF)\n" );
56 // proper type, and Not UP -> free 67 // proper type, and Not UP -> free
57 NC->setCurrentState( Off ); 68 NC->setCurrentState( Off );
@@ -84,4 +95,5 @@ bool USBRun::setState( NodeCollection * NC, Action_t A ) {
84 N->assignNode( netNode() ); 95 N->assignNode( netNode() );
85 assignInterface( N ); 96 assignInterface( N );
97 fprintf( stderr, "Assing %p\n", N );
86 NC->setCurrentState( Available ); 98 NC->setCurrentState( Available );
87 return 1; 99 return 1;
@@ -93,6 +105,5 @@ bool USBRun::setState( NodeCollection * NC, Action_t A ) {
93 // could not ... 105 // could not ...
94 return 0; 106 return 0;
95 } 107 } else if( NC->currentState() != Available ) {
96 if( NC->currentState() != Available ) {
97 return 1; 108 return 1;
98 } 109 }