chiark / gitweb /
www-cgi/: Add some trivial tracing.
[userv-utils.git] / ipif / forwarder.h
index fbaf2e2433dfb102972c102ec589a8370589182e..599eb41a0e6bc521e5f818d333f7915f68ab2ed5 100644 (file)
@@ -1,4 +1,23 @@
 /*
+ * Encrypting tunnel for userv-ipif tunnels, header file
+ */
+/*
+ * Copyright (C) 2000,2003 Ian Jackson
+ * This file is part of ipif, part of userv-utils
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with userv-utils; if not, write to the Free Software
+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
 #ifndef MECHS_H
@@ -6,8 +25,8 @@
 
 #include <stdio.h>
 #include <time.h>
-
-#include "automech.h"
+#include <string.h>
+#include <sys/utsname.h>
 
 struct buffer {
   unsigned char *base;
@@ -31,6 +50,8 @@ struct mechanism {
   mdec_functype *decode;
 };
 
+#include "automech.h"
+
 extern const struct mechanism *const mechanismlists[];
 
 /* setup function may call getarg_xxx functions and then
@@ -38,12 +59,14 @@ extern const struct mechanism *const mechanismlists[];
  * 
  * setup_in function may increase maxprefix and maxsuffix
  * code functions modify buffer in place
- * decode function returns message to print
+ * decode function returns 0 meaning packet decoded ok,
+ *  "" meaning discard it quietly, or message to print for verbose discard
  */
   
 const char *getarg_string(void);
 unsigned long getarg_ulong(void);
 
+#define PROGRAM "udptunnel-forwarder"
 extern char programid[];
 
 void *buf_append(struct buffer *buf, size_t amount);
@@ -56,10 +79,14 @@ void fail(const char *msg);
 void sysdiag(const char *msg);
 void diag(const char *msg);
 
+extern const char *const *argv;
+
 time_t now(void);
 void *xmalloc(size_t sz);
 void get_random(void *ptr, size_t sz);
 void random_key(void *ptr, size_t sz);
+void write_must(int fd, const void *p_in, int sz, const char *what);
+void read_must(int fd, void *p_in, int sz, const char *what);
 
 void arg_assert_fail(const char *msg);
 #define arg_assert(v)  (v ? (void)0 : arg_assert_fail(#v))