/* -*-c-*-
*
- * $Id: mallory.c,v 1.1 2001/06/19 22:11:14 mdw Exp $
+ * $Id$
*
* An evil proxy for TrIPE
*
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: mallory.c,v $
- * Revision 1.1 2001/06/19 22:11:14 mdw
- * The beginnings of a malicious proxy for TrIPE.
- *
- */
-
/*----- Header files ------------------------------------------------------*/
#include "config.h"
#include <mLib/sub.h>
#include <mLib/tv.h>
+#include <catacomb/buf.h>
+
#include <catacomb/key.h>
#include <catacomb/mp.h>
-#include <catacomb/mpmont.h>
#include <catacomb/mprand.h>
#include <catacomb/dh.h>
#include <catacomb/rand.h>
#include <catacomb/rc4.h>
-#include "buf.h"
/*----- Data structures ---------------------------------------------------*/
static void nextfork(unsigned ac, char **av)
{
- unsigned i;
+ unsigned i, j;
filter *f;
forkfilt *ff;
forknode *fn, **ffn;
peer *p;
+ if (ac < 1)
+ die(1, "syntax: next:NAME:...");
for (i = 0; i < 2; i++) {
p = &peers[i];
for (f = p->f; f; f = f->next) {
if (f->func != dofork)
continue;
ff = f->state;
+ for (j = 0; j < ac; j++) {
+ if (strcmp(av[j], ff->name) == 0)
+ goto match;
+ }
+ continue;
+ match:
fn = CREATE(forknode);
for (ffn = &ff->fn; *ffn; ffn = &(*ffn)->next)
;
static void usage(FILE *fp)
{
- pquis(fp, "Usage: $ [-k keyring] directive...\n");
+ pquis(fp, "Usage: $ [-k KEYRING] DIRECTIVE...\n");
}
static void help(FILE *fp)
version(fp);
putc('\n', fp);
usage(fp);
+ fputs("\n\
+Options:\n\
+\n\
+-h, --help Show this help text.\n\
+-v, --version Show the version number.\n\
+-u, --usage Show terse usage summary.\n\
+\n\
+-k, --keyring=FILE Fetch keys from FILE.\n\
+\n\
+Directives:\n\
+ peer:NAME:LOCAL-PORT:REMOTE-ADDR:REMOTE-PORT\n\
+ include:FILE\n\
+ {,l,r}filt:FILTER:ARGS:...\n\
+ next:TAG\n\
+ {,l,r}flood:TYPE:MILLIS:SIZE\n\
+\n\
+Filters:\n\
+ send\n\
+ fork:TAG\n\
+ delay:QLEN[:MILLIS:P-REPLAY]\n\
+ corrupt[:P-CORRUPT]\n",
+ fp);
}
int main(int argc, char *argv[])