void register_usb_transport(usb_handle *usb, const char *serial, unsigned writeable) { atransport *t = calloc(1, sizeof(atransport)); D("transport: %p init'ing for usb_handle %p (sn='%s')\n", t, usb, serial ? serial : ""); init_usb_transport(t, usb, (writeable ? CS_OFFLINE : CS_NOPERM)); if(serial) { t->serial = strdup(serial); } register_transport(t); }
void register_socket_transport(int s, const char *serial, int port, int local) { atransport *t = calloc(1, sizeof(atransport)); D("transport: %p init'ing for socket %d, on port %d\n", t, s, port); if ( init_socket_transport(t, s, port, local) < 0 ) { adb_close(s); free(t); return; } if(serial) { t->serial = strdup(serial); } register_transport(t); }
int register_socket_transport(int s, const char *serial, int port, int local) { atransport *t = reinterpret_cast<atransport*>(calloc(1, sizeof(atransport))); if (t == nullptr) { return -1; } atransport *n; char buff[32]; if (!serial) { snprintf(buff, sizeof buff, "T-%p", t); serial = buff; } D("transport: %s init'ing for socket %d, on port %d\n", serial, s, port); if (init_socket_transport(t, s, port, local) < 0) { free(t); return -1; } adb_mutex_lock(&transport_lock); for (n = pending_list.next; n != &pending_list; n = n->next) { if (n->serial && !strcmp(serial, n->serial)) { adb_mutex_unlock(&transport_lock); free(t); return -1; } } for (n = transport_list.next; n != &transport_list; n = n->next) { if (n->serial && !strcmp(serial, n->serial)) { adb_mutex_unlock(&transport_lock); free(t); return -1; } } t->next = &pending_list; t->prev = pending_list.prev; t->next->prev = t; t->prev->next = t; t->serial = strdup(serial); adb_mutex_unlock(&transport_lock); register_transport(t); return 0; }
void register_socket_transport(int s, const char *serial, int port, int local) { atransport *t = (atransport*)calloc(1, sizeof(atransport)); char buff[32]; if (!serial) { snprintf(buff, sizeof buff, "T-%p", t); serial = buff; } D("transport: %s init'ing for socket %d, on port %d\n", serial, s, port); if ( init_socket_transport(t, s, port, local) < 0 ) { adb_close(s); free(t); return; } if(serial) { t->serial = strdup(serial); } register_transport(t); }
void register_usb_transport(usb_handle *usb, const char *serial, const char *devpath, unsigned writeable) { atransport *t = (atransport*)calloc(1, sizeof(atransport)); D("transport: %p init'ing for usb_handle %p (sn='%s')\n", t, usb, serial ? serial : ""); init_usb_transport(t, usb, (writeable ? CS_OFFLINE : CS_NOPERM)); if (serial) { t->serial = strdup(serial); } //GUID guid; //char buf[9] = { 0 }; //CoCreateGuid(&guid); //_snprintf_s( // buf, // sizeof(buf), // "%08X" /*"%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X"*/, // guid.Data1, guid.Data2, guid.Data3, // guid.Data4[0], guid.Data4[1], // guid.Data4[2], guid.Data4[3], // guid.Data4[4], guid.Data4[5], // guid.Data4[6], guid.Data4[7]); //t->serial = new char[strlen(serial)+strlen(buf)+2]; //strcpy(t->serial, serial); //strcat(t->serial, "-"); //strcat(t->serial, buf); if(devpath) { t->devpath = strdup(devpath); } adb_mutex_lock(&transport_lock); t->next = &pending_list; t->prev = pending_list.prev; t->next->prev = t; t->prev->next = t; adb_mutex_unlock(&transport_lock); register_transport(t); }
void register_usb_transport(usb_handle* usb, const char* serial, const char* devpath, unsigned writeable) { atransport* t = new atransport(); D("transport: %p init'ing for usb_handle %p (sn='%s')", t, usb, serial ? serial : ""); init_usb_transport(t, usb, (writeable ? kCsOffline : kCsNoPerm)); if(serial) { t->serial = strdup(serial); } if (devpath) { t->devpath = strdup(devpath); } adb_mutex_lock(&transport_lock); pending_list.push_front(t); adb_mutex_unlock(&transport_lock); register_transport(t); }
int register_socket_transport(int s, const char *serial, int port, int local) { atransport* t = new atransport(); if (!serial) { char buf[32]; snprintf(buf, sizeof(buf), "T-%p", t); serial = buf; } D("transport: %s init'ing for socket %d, on port %d", serial, s, port); if (init_socket_transport(t, s, port, local) < 0) { delete t; return -1; } adb_mutex_lock(&transport_lock); for (const auto& transport : pending_list) { if (transport->serial && strcmp(serial, transport->serial) == 0) { adb_mutex_unlock(&transport_lock); delete t; return -1; } } for (const auto& transport : transport_list) { if (transport->serial && strcmp(serial, transport->serial) == 0) { adb_mutex_unlock(&transport_lock); delete t; return -1; } } pending_list.push_front(t); t->serial = strdup(serial); adb_mutex_unlock(&transport_lock); register_transport(t); return 0; }
void register_usb_transport(usb_handle *usb, const char *serial, const char *devpath, unsigned writeable) { atransport *t = calloc(1, sizeof(atransport)); D("transport: %p init'ing for usb_handle %p (sn='%s')\n", t, usb, serial ? serial : ""); init_usb_transport(t, usb, (writeable ? CS_OFFLINE : CS_NOPERM)); if(serial) { t->serial = strdup(serial); } if(devpath) { t->devpath = strdup(devpath); } adb_mutex_lock(&transport_lock); t->next = &pending_list; t->prev = pending_list.prev; t->next->prev = t; t->prev->next = t; adb_mutex_unlock(&transport_lock); register_transport(t); }
void register_usb_transport(usb_handle *usb, const char *serial, const char *devpath, unsigned writeable) { atransport *t = reinterpret_cast<atransport*>(calloc(1, sizeof(atransport))); if (t == nullptr) fatal("cannot allocate USB atransport"); D("transport: %p init'ing for usb_handle %p (sn='%s')\n", t, usb, serial ? serial : ""); init_usb_transport(t, usb, (writeable ? kCsOffline : kCsNoPerm)); if(serial) { t->serial = strdup(serial); } if(devpath) { t->devpath = strdup(devpath); } adb_mutex_lock(&transport_lock); t->next = &pending_list; t->prev = pending_list.prev; t->next->prev = t; t->prev->next = t; adb_mutex_unlock(&transport_lock); register_transport(t); }
void register_usb_transport(usb_handle *usb, const char *serial, const char *devpath, unsigned writeable) { atransport *t = reinterpret_cast<atransport*>(calloc(1, sizeof(atransport))); if (t == nullptr) fatal("cannot allocate USB atransport"); ADB_LOGD(ADB_TSPT, "transport: %p init'ing for usb_handle %p (sn='%s')", t, usb, serial ? serial : ""); init_usb_transport(t, usb, (writeable ? CS_OFFLINE : CS_NOPERM)); if (serial) { t->serial = strdup(serial); } if (devpath) { t->devpath = strdup(devpath); } pthread_mutex_lock(&transport_lock); t->next = &pending_list; t->prev = pending_list.prev; t->next->prev = t; t->prev->next = t; pthread_mutex_unlock(&transport_lock); register_transport(t); }