+ int fd; /* The connection to the client */
+ selbuf b; /* Accumulate lines of input */
+ struct query q; /* The clients query and our reply */
+ struct listen *l; /* Back to the listener (and ops) */
+ struct writebuf wb; /* Write buffer for our reply */
+ struct proxy *px; /* Proxy if conn goes via NAT */
+};
+
+/* A proxy connection. */
+struct proxy {
+ int fd; /* Connection; -1 if in progress */
+ struct client *c; /* Back to the client */
+ conn cn; /* Nonblocking connection */
+ selbuf b; /* Accumulate the response line */
+ struct writebuf wb; /* Write buffer for query */
+ char nat[ADDRLEN]; /* Server address, as text */