#include <sys/types.h>
#include <sys/stat.h>
#include <sys/time.h>
+#include <sys/resource.h>
#include <sys/uio.h>
#include <sys/wait.h>
#include <mLib/fdflags.h>
#include <mLib/fdpass.h>
#include <mLib/ident.h>
+#include <mLib/macros.h>
#include <mLib/mdup.h>
#include <mLib/mdwopt.h>
#include <mLib/quis.h>
extern sel_state *sel;
+/* --- Global state flags --- */
+
+extern unsigned flags;
+
+#define FW_SYSLOG 1u
+#define FW_QUIET 2u
+#define FW_SET 4u
+
/* --- Help text --- */
extern const char grammar_text[];
extern const char option_text[];
+/* --- Generally useful magic constants --- */
+
+#define NOW ((time_t)-1)
+
/* --- @fw_log@ --- *
*
- * Arguments: @time_t t@ = when the connection occurred or (@-1@)
+ * Arguments: @time_t t@ = when the connection occurred or (@NOW@)
* @const char *fmt@ = format string to fill in
* @...@ = other arguments
*
* Use: Logs a connection.
*/
-extern void fw_log(time_t /*t*/, const char */*fmt*/, ...);
+extern void PRINTF_LIKE(2, 3)
+ fw_log(time_t /*t*/, const char */*fmt*/, ...);
/* --- @fw_inc@, @fw_dec@ --- *
*
* Use: Reports an error at the current scanner location.
*/
-extern void error(scanner */*sc*/, const char */*msg*/, ...);
+extern void PRINTF_LIKE(2, 3) NORETURN
+ error(scanner */*sc*/, const char */*msg*/, ...);
/* --- @pushback@ --- *
*