/* Or even a list that you can iterate over... */ static void __printf (SOCKET *self) { char tb[100]; socket_t *sock = self->data; char c = c; fprintf(stderr, "class: %s\n", c == 'c' ? "client" : c == 'd' ? "server (child)" : "server (parent)"); fprintf(stderr, "conntype: %s\n", type_type(tb, sock->connection_type)); fprintf(stderr, "opened: %s\n", sock->opened ? "yes" : "no"); fprintf(stderr, "domain: %s\n", domain_type(tb, sock->domain)); fprintf(stderr, "protocol: %s\n", proto_type(tb, sock->protocol)); fprintf(stderr, "buffer size: %d\n", sock->bufsz); fprintf(stderr, "backlog: %d\n", sock->backlog); fprintf(stderr, "hostname: %s\n", sock->hostname); // fprintf(stderr, "service: %s\n", sock->service); fprintf(stderr, "fd: %d\n", sock->fd); fprintf(stderr, "port: %d\n", sock->port); fprintf(stderr, "tcp socket buffer: %p (%s)\n", sock->buffer, c == 'c' ? "client" : c == 'd' ? "child" : "server"); }
proto_type str2proto(std::string const& s) { static int n = sizeof(proto_type_s) / sizeof(char const*); for (int i = 0; i < n; ++i) if (strcmp(s.c_str(), proto_type_s[i]) == 0) return proto_type(i); return proto_type::unkown; }