|
|
public void run() {
//noinspection InfiniteLoopStatement
for (;;) {
int index;
int i;
int cmd;
String dev;
if (localLOGV) Slog.v(TAG, "zcfdebug go poll events");
String eventName = EthernetNative.waitForEvent();
if (eventName == null) {
if (localLOGV) Slog.v(TAG, "zcfdebug no ethernet monitor events");
continue;
}
if (localLOGV) Slog.v(TAG, "zcfdebug get event " + eventName);
/*
* Map event name into event enum
*/
if (eventName.length()==0) {
EthUeventFail=true;
Slog.v(TAG, "the eventName length is " + eventName.length());
}
i = 0;
while (i < eventName.length()) {
index = eventName.substring(i).indexOf(":");
if (index == -1)
break;
dev = eventName.substring(i, index);
i += index + 1;
index = eventName.substring(i).indexOf(":");
if (index == -1)
break;
cmd = Integer.parseInt(eventName.substring(i, i+index));
i += index + 1;
if (localLOGV) Slog.v(TAG, "zcfdebug dev: " + dev + " ev " + cmd);
switch (cmd) {
case DEL_LINK:
handleEvent(dev, DISCONNECTED);
break;
case ADD_ADDR:
handleEvent(dev, CONNECTED);
break;
case NEW_LINK:
handleEvent(dev, PHYUP);
break;
}
}
}
}
|
|