*pb++ = '\0';
DR("%s\n", buffer);
}
+
+static const char *statename(atransport *t)
+{
+ switch(t->connection_state){
+ case CS_OFFLINE: return "offline";
+ case CS_BOOTLOADER: return "bootloader";
+ case CS_DEVICE: return "device";
+ case CS_HOST: return "host";
+ case CS_RECOVERY: return "recovery";
+ case CS_SIDELOAD: return "sideload";
+ case CS_NOPERM: return "no permissions";
+ default: return "unknown";
+ }
+}
#endif
void
}
} else {
if(active) {
- D("%s: transport got packet, sending to remote\n", t->serial);
+ D("%s: transport got packet, sending to remote, state(%s)\n", t->serial, statename(t));
#ifdef SUPPORT_ENCRYPT
if (t->encryption == ENCR_ON && p->msg.command != A_ENCR) // 현재 연결이 암호화 모드이고, 암호화 관련 메시지가 아닌 경우, 메시지를 암호화
}
#if SDB_HOST
-static const char *statename(atransport *t)
-{
- switch(t->connection_state){
- case CS_OFFLINE: return "offline";
- case CS_BOOTLOADER: return "bootloader";
- case CS_DEVICE: return "device";
- case CS_HOST: return "host";
- case CS_RECOVERY: return "recovery";
- case CS_SIDELOAD: return "sideload";
- case CS_NOPERM: return "no permissions";
- default: return "unknown";
- }
-}
-
int list_transports(char *buf, size_t bufsize)
{
char* p = buf;
atransport *t;
sdb_mutex_lock(&transport_lock);
for(t = transport_list.next; t != &transport_list; t = t->next) {
- D("broadcast device transport:%d\n", t->connection_state);
- apacket* ap = get_apacket();
- copy_packet(ap, p);
- send_packet(ap, t);
+ D("broadcast device transport:%s\n", statename(t));
+ if (t->connection_state != CS_OFFLINE && t->connection_state != CS_NOPERM) {
+ apacket* ap = get_apacket();
+ copy_packet(ap, p);
+ send_packet(ap, t);
- if (ap->msg.command == A_STAT && ap->msg.arg1 == 0) {
- // lock state message
- if (ap->msg.arg0 == 0) {
- // unlocked
- t->connection_state = CS_DEVICE;
- } else {
- // locked
- t->connection_state = CS_PWLOCK;
+ if (ap->msg.command == A_STAT && ap->msg.arg1 == 0) {
+ // lock state message
+ if (ap->msg.arg0 == 0) {
+ // unlocked
+ t->connection_state = CS_DEVICE;
+ } else {
+ // locked
+ t->connection_state = CS_PWLOCK;
+ }
}
}
-
- }
+ }
sdb_mutex_unlock(&transport_lock);
}