X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=ipif%2Fforwarder.h;h=5397317cb76e1653d7b946d0371872bd52030df4;hb=03e3cd7d0224293624a17af7de6638cdd8659917;hp=fbaf2e2433dfb102972c102ec589a8370589182e;hpb=1fb3cba0b41ae774f83c11d2a9c23b12b2c87d1a;p=userv-utils.git diff --git a/ipif/forwarder.h b/ipif/forwarder.h index fbaf2e2..5397317 100644 --- a/ipif/forwarder.h +++ b/ipif/forwarder.h @@ -1,4 +1,27 @@ /* + * Encrypting tunnel for userv-ipif tunnels, header file + */ +/* + * This file is part of ipif, part of userv-utils + * + * Copyright 1996-2013 Ian Jackson + * Copyright 1998 David Damerell + * Copyright 1999,2003 + * Chancellor Masters and Scholars of the University of Cambridge + * Copyright 2010 Tony Finch + * + * 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 3 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, see http://www.gnu.org/licenses/. */ #ifndef MECHS_H @@ -6,8 +29,8 @@ #include #include - -#include "automech.h" +#include +#include struct buffer { unsigned char *base; @@ -31,6 +54,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 +63,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 +83,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))