-#define SELECT_ERROR_THRESHOLD 20 /* after 20 select errors, restart */
-#define ERROR_EXPIRE_TIME 3600 /* expire errors after an hour */
+#if FD_SETSIZE < (MAXCONNECTIONS + 4)
+/*
+ * Sanity check
+ *
+ * All operating systems work when MAXCONNECTIONS <= 252.
+ * Most operating systems work when MAXCONNECTIONS <= 1020 and FD_SETSIZE is
+ * updated correctly in the system headers (on BSD systems sys/types.h might
+ * have abruptly redefined it so the check is still done), you might
+ * already need to recompile your kernel.
+ * For larger FD_SETSIZE your mileage may vary (kernel patches may be needed).
+ */
+# error FD_SETSIZE is too small or MAXCONNECTIONS too large.
+#endif
+
+#define SELECT_ERROR_THRESHOLD 20 /**< after 20 select errors, restart */
+#define ERROR_EXPIRE_TIME 3600 /**< expire errors after an hour */