#define PASS(f, buf, sz) ((f) ? (f)->func((f), (buf), (sz)) : (void)0)
#define RND(i) (rng->ops->range(rng, (i)))
#define PASS(f, buf, sz) ((f) ? (f)->func((f), (buf), (sz)) : (void)0)
#define RND(i) (rng->ops->range(rng, (i)))
- if (ac != 4)
- die(1, "syntax: peer:NAME:PORT:ADDR:PORT");
- if (npeer >= 2)
- die(1, "enough peers already");
+ if (ac != 4) die(1, "syntax: peer:NAME:PORT:ADDR:PORT");
+ if (npeer >= 2) die(1, "enough peers already");
+ if (!key_bytag(&keys, av[0])) die(1, "no key named `%s'", av[0]);
- kp = key_fetchinit(dh_pubfetch, kps, &p->kpub);
- e = key_fetchbyname(kp, &keys, av[0]);
- key_fetchdone(kp);
- if (e)
- die(1, "key_fetch `%s': %s", av[0], key_strerror(e));
if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
die(1, "socket: %s", strerror(errno));
fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
if ((fd = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
die(1, "socket: %s", strerror(errno));
fdflags(fd, O_NONBLOCK, O_NONBLOCK, FD_CLOEXEC, FD_CLOEXEC);
- for (j = 0; j < ac; j++) {
- if (strcmp(av[j], ff->name) == 0)
- goto match;
- }
+ for (j = 0; j < ac; j++)
+ if (strcmp(av[j], ff->name) == 0) goto match;
- if (!RND(d->p_drop))
- puts("drop packet");
- else
- PASS(f->next, buf, sz);
+ if (!RND(d->p_drop)) puts("drop packet");
+ else PASS(f->next, buf, sz);
fputs(" send...\n", stdout);
assert(dn->buf);
PASS(d->f->next, dn->buf, dn->sz);
fputs(" send...\n", stdout);
assert(dn->buf);
PASS(d->f->next, dn->buf, dn->sz);
ddn->flag = 0;
printf(" move id %u from slot %u to slot %u", ddn->seq, ddn->i, dn->i);
}
ddn->flag = 0;
printf(" move id %u from slot %u to slot %u", ddn->seq, ddn->i, dn->i);
}
- if (ac < 1)
- die(1, "syntax: {l,r,}filt:NAME:...");
+ if (ac < 1) die(1, "syntax: {l,r,}filt:NAME:...");
- for (ft = filtab; ft->name; ft++) {
- if (strcmp(av[0], ft->name) == 0) {
- ft->func(f, ac - 1, av + 1);
- return;
- }
- }
+ for (ft = filtab; ft->name; ft++)
+ if (strcmp(av[0], ft->name) == 0)
+ { ft->func(f, ac - 1, av + 1); return; }
- if (ac > 0)
- f->type = strtoul(av[0], 0, 16);
- else
- f->type = 0x100;
- if (ac > 1)
- f->t = atoi(av[1]);
- else
- f->t = 10;
- if (ac > 2)
- f->sz = atoi(av[2]);
- else
- f->sz = 128;
+ if (ac > 0) f->type = strtoul(av[0], 0, 16);
+ else f->type = 0x100;
+ if (ac > 1) f->t = atoi(av[1]);
+ else f->t = 10;
+ if (ac > 2) f->sz = atoi(av[2]);
+ else f->sz = 128;
while (*av) {
if ((fp = fopen(*av, "r")) == 0)
die(1, "fopen `%s': %s", *av, strerror(errno));
while (*av) {
if ((fp = fopen(*av, "r")) == 0)
die(1, "fopen `%s': %s", *av, strerror(errno));
{ pquis(fp, "$, TrIPE version " VERSION "\n"); }
static void usage(FILE *fp)
{ pquis(fp, "$, TrIPE version " VERSION "\n"); }
static void usage(FILE *fp)
-v, --version Show the version number.\n\
-u, --usage Show terse usage summary.\n\
\n\
-v, --version Show the version number.\n\
-u, --usage Show terse usage summary.\n\
\n\
{ "help", 0, 0, 'h' },
{ "version", 0, 0, 'v' },
{ "usage", 0, 0, 'u' },
{ "help", 0, 0, 'h' },
{ "version", 0, 0, 'v' },
{ "usage", 0, 0, 'u' },
{ "keyring", OPTF_ARGREQ, 0, 'k' },
{ 0, 0, 0, 0 }
};
{ "keyring", OPTF_ARGREQ, 0, 'k' },
{ 0, 0, 0, 0 }
};
- if ((i = mdwopt(argc, argv, "hvuk:", opt, 0, 0, 0)) < 0)
- break;
+ if ((i = mdwopt(argc, argv, "hvud:k:", opt, 0, 0, 0)) < 0) break;
- case 'h':
- help(stdout);
- exit(0);
- case 'v':
- version(stdout);
- exit(0);
- case 'u':
- usage(stdout);
- exit(0);
- case 'k':
- kfname = optarg;
- break;
- default:
- f |= f_bogus;
+ case 'h': help(stdout); exit(0);
+ case 'v': version(stdout); exit(0);
+ case 'u': usage(stdout); exit(0);
+ case 'd':
+ if (!optarg[0] || optarg[1])
+ die(1, "delimiter must be a single character");
+ delim = optarg;
sel_init(&sel);
if (key_open(&keys, kfname, KOPEN_READ, key_moan, 0))
die(1, "couldn't open `%s': %s", kfname, strerror(errno));
sel_init(&sel);
if (key_open(&keys, kfname, KOPEN_READ, key_moan, 0))
die(1, "couldn't open `%s': %s", kfname, strerror(errno));
- for (i = optind; i < argc; i++)
- parse(argv[i]);
- if (npeer != 2)
- die(1, "need two peers");
- for (;;)
- sel_select(&sel);
+ for (i = optind; i < argc; i++) parse(argv[i]);
+ if (npeer != 2) die(1, "need two peers");
+ for (;;) {
+ if (sel_select(&sel) && errno != EINTR)
+ die(1, "select failed: %s", strerror(errno));
+ }