slp_service_agent::slp_service_agent(const char *local_interface, unsigned short target_port, const char *scopes, Boolean listen, Boolean use_da) : _listen_thread(service_listener, this, false), _initialized(0) { try { _init(); } catch(...) { } if(_initialized.value() && _lib_handle && _create_client) { _rep = _create_client("239.255.255.253", local_interface, target_port, "DSA", "scopes", listen, use_da); } }
void _connectcb(int fd, int id, void* data, int error) { struct sockaddr_in remote_addr; socklen_t len = sizeof(remote_addr); getpeername(fd, (struct sockaddr*)&remote_addr, &len); printf("new client %d,%d, %s:%u\n", fd, id, inet_ntoa(remote_addr.sin_addr), ntohs(remote_addr.sin_port)); if (error == 0) { printf("connect ok %d,%d, %s:%u\n", fd, id, inet_ntoa(remote_addr.sin_addr), ntohs(remote_addr.sin_port)); s->nconnected += 1; struct client* c = _create_client(s, id); assert(c); netev_add_event(s->ne, id, NETEV_READ|NETEV_WRITE, readcb, writecb, c); } else { s->nconnectfail += 1; printf("connect failed %u, %s\n", error, strerror(error)); } }
slp_service_agent::slp_service_agent(void) : _listen_thread(service_listener, this, false), _initialized(0) { try { _init(); } catch(...) { } if(_initialized.value() && _lib_handle && _create_client) { _rep = _create_client("239.255.255.253", 0, 427, "DSA", "DEFAULT", TRUE, FALSE); } }