1: /*************************************************************************
2: * (C) 2011 AITNET - Sofia/Bulgaria - <office@aitnet.org>
3: * by Michael Pounov <misho@elwix.org>
4: *
5: * $Author: misho $
6: * $Id: ansh.c,v 1.1 2011/10/04 22:37:46 misho Exp $
7: *
8: *************************************************************************/
9: #include "global.h"
10: #include "ansh.h"
11:
12:
13: int Verbose, Kill, Crypted = 1;
14:
15: extern char compiled[], compiledby[], compilehost[];
16:
17: static void
18: Usage()
19: {
20: printf( " -= ansh =- ELWIX Layer2 remote management client\n"
21: "=== %s === %s@%s ===\n\n"
22: " Syntax: ansh [options] <connect2host>\n\n"
23: "\t-d <dev>\tBind to host interface, like 'em0' (default is first host interface)\n"
24: "\t-i <id>\tService ID (default is 42)\n"
25: "\t-u\t\tSwitch to unencrypted traffic between hosts\n"
26: "\t-v\t\tVerbose (more -v, more verbosity ...)\n"
27: "\t-h\t\tThis help screen!\n"
28: "\n", compiled, compiledby, compilehost);
29: }
30:
31: int
32: main(int argc, char **argv)
33: {
34: char ch, szDev[STRSIZ] = { 0 };
35: int h, len;
36: u_short id = ANSH_ID;
37: struct ether_addr ea;
38:
39: Get1stEth(szDev, STRSIZ);
40:
41: while ((ch = getopt(argc, argv, "hvui:d:")) != -1)
42: switch (ch) {
43: case 'd':
44: strlcpy(szDev, optarg, sizeof szDev);
45: break;
46: case 'i':
47: id = strtol(optarg, NULL, 0);
48: break;
49: case 'u':
50: Crypted ^= Crypted;
51: break;
52: case 'v':
53: Verbose++;
54: break;
55: case 'h':
56: default:
57: Usage();
58: return 1;
59: }
60: argc -= optind;
61: argv += optind;
62: if (!argc) {
63: printf("Error:: not specified mac for connect ...\n");
64: return 1;
65: }
66: if (!ether_aton_r(argv[0], &ea)) {
67: printf("Error:: invalid mac ...\n");
68: return 1;
69: }
70:
71: h = PrepareL2(szDev, &len);
72: if (h == -1) {
73: printf("Error:: Descriptor not opened ... \n");
74: return 1;
75: }
76:
77: ConnectL2(h, id, &ea, len);
78:
79: VERB(1) printf("Finish client.\n");
80: close(h);
81: return 0;
82: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>