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); }
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; }