+#include <arpa/inet.h>
#include <assert.h>
#include <ctype.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/socket.h>
#include <map>
#include <string>
#include <utility>
// Various routines that deal with parsing the configuration file.
#include <arpa/inet.h>
+#include <netinet/in.h>
#include <stddef.h>
#include <string>
#include <vector>
#include <assert.h>
#include <stdlib.h>
+#include <sys/types.h>
#include "client.h"
+#include "log.h"
#include "server.h"
#include "serverpool.h"
#include "state.pb.h"
+#include "udpstream.h"
#include "util.h"
+struct sockaddr_in6;
+
using namespace std;
ServerPool::ServerPool(int size)
class MarkPool;
class Server;
+class UDPStream;
struct ClientStats;
+struct sockaddr_in6;
// Provides services such as load-balancing between a number of Server instances.
class ServerPool {
#include <errno.h>
#include <poll.h>
#include <stddef.h>
-#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <unistd.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+
#include "log.h"
#include "markpool.h"
#include "udpstream.h"
// that there is no state (UDP itself is, of course, stateless).
#include <arpa/inet.h>
+#include <netinet/in.h>
#include <stddef.h>
#include <stdint.h>
#include <sys/types.h>