asocket *create_local_socket(int fd) { asocket *s = reinterpret_cast<asocket*>(calloc(1, sizeof(asocket))); if (s == NULL) fatal("cannot allocate socket"); s->fd = fd; s->enqueue = local_socket_enqueue; s->ready = local_socket_ready; s->shutdown = NULL; s->close = local_socket_close; install_local_socket(s); fdevent_install(&s->fde, fd, local_socket_event_func, s); D("LS(%d): created (fd=%d)\n", s->id, s->fd); return s; }
asocket* create_jdwp_service_socket(void) { JdwpSocket* s = new JdwpSocket(); if (!s) { LOG(FATAL) << "failed to allocate JdwpSocket"; } install_local_socket(s); s->ready = jdwp_socket_ready; s->enqueue = jdwp_socket_enqueue; s->close = jdwp_socket_close; s->pass = false; return s; }
asocket *create_local_socket(int fd) { asocket *s = (asocket*)calloc(1, sizeof(asocket)); if (s == NULL) fatal("cannot allocate socket"); s->fd = fd; s->enqueue = local_socket_enqueue; s->ready = local_socket_ready; s->close = local_socket_close; install_local_socket(s); fdevent_install(&s->fde, fd, local_socket_event_func, s); /* fdevent_add(&s->fde, FDE_ERROR); */ //fprintf(stderr, "Created local socket in create_local_socket \n"); D("LS(%d): created (fd=%d)\n", s->id, s->fd); return s; }
asocket* create_jdwp_service_socket( void ) { JdwpSocket* s = calloc(sizeof(*s),1); if (s == NULL) return NULL; install_local_socket(&s->socket); s->socket.ready = jdwp_socket_ready; s->socket.enqueue = jdwp_socket_enqueue; s->socket.close = jdwp_socket_close; s->pass = 0; return &s->socket; }
asocket* create_jdwp_tracker_service_socket(void) { auto t = std::make_unique<JdwpTracker>(); if (!t) { LOG(FATAL) << "failed to allocate JdwpTracker"; } memset(t.get(), 0, sizeof(asocket)); install_local_socket(t.get()); D("LS(%d): created new jdwp tracker service", t->id); t->ready = jdwp_tracker_ready; t->enqueue = jdwp_tracker_enqueue; t->close = jdwp_tracker_close; t->need_initial = true; asocket* result = t.get(); _jdwp_trackers.emplace_back(std::move(t)); return result; }
asocket* create_jdwp_tracker_service_socket( void ) { JdwpTracker* t = calloc(sizeof(*t),1); if (t == NULL) return NULL; t->next = &_jdwp_trackers_list; t->prev = t->next->prev; t->next->prev = t; t->prev->next = t; install_local_socket(&t->socket); t->socket.ready = jdwp_tracker_ready; t->socket.enqueue = jdwp_tracker_enqueue; t->socket.close = jdwp_tracker_close; t->need_update = 1; return &t->socket; }