4 * Copyright (c) 1997-2009 Erez Zadok
5 * Copyright (c) 1990 Jan-Simon Pendry
6 * Copyright (c) 1990 Imperial College of Science, Technology & Medicine
7 * Copyright (c) 1990 The Regents of the University of California.
10 * This code is derived from software contributed to Berkeley by
11 * Jan-Simon Pendry at Imperial College, London.
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions
16 * 1. Redistributions of source code must retain the above copyright
17 * notice, this list of conditions and the following disclaimer.
18 * 2. Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions and the following disclaimer in the
20 * documentation and/or other materials provided with the distribution.
21 * 3. All advertising materials mentioning features or use of this software
22 * must display the following acknowledgment:
23 * This product includes software developed by the University of
24 * California, Berkeley and its contributors.
25 * 4. Neither the name of the University nor the names of its contributors
26 * may be used to endorse or promote products derived from this software
27 * without specific prior written permission.
29 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
30 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
31 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
32 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
33 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
34 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
35 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
37 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
38 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
42 * File: am-utils/wire-test/wire-test.c
48 #endif /* HAVE_CONFIG_H */
53 char hostname
[MAXHOSTNAMELEN
+ 1];
57 main(int argc
, char **argv
)
59 char *networkName1
, *networkNumber1
;
60 struct in_addr myipaddr
; /* (An) IP address of this host */
61 char *testhost
, *proto
, *tmp_buf
;
63 struct sockaddr_in
*ip
;
64 struct hostent
*hp
= NULL
;
66 am_set_progname(argv
[0]);
68 if (gethostname(hostname
, sizeof(hostname
)) < 0) {
72 hostname
[sizeof(hostname
) - 1] = '\0';
74 /* get list of networks */
75 getwire(&networkName1
, &networkNumber1
);
76 tmp_buf
= print_wires();
78 fprintf(stderr
, "%s", tmp_buf
);
82 /* also print my IP address */
83 amu_get_myaddress(&myipaddr
, NULL
);
84 fprintf(stderr
, "My IP address is 0x%x.\n", (unsigned int) htonl(myipaddr
.s_addr
));
87 * NFS VERSION/PROTOCOL TESTS:
88 * If argv[1] is specified perform nfs tests to that host, else use
94 testhost
= "localhost";
95 hp
= gethostbyname(testhost
);
97 fprintf(stderr
, "NFS vers/proto failed: no such hostname \"%s\"\n", testhost
);
100 ip
= (struct sockaddr_in
*) xmalloc(sizeof(struct sockaddr_in
));
101 memset((voidp
) ip
, 0, sizeof(*ip
));
102 /* as per POSIX, sin_len need not be set (used internally by kernel) */
103 ip
->sin_family
= AF_INET
;
104 memmove((voidp
) &ip
->sin_addr
, (voidp
) hp
->h_addr
, sizeof(ip
->sin_addr
));
105 ip
->sin_port
= htons(NFS_PORT
);
107 fprintf(stderr
, "NFS Version and protocol tests to host \"%s\"...\n", testhost
);
109 for (nv
=2; nv
<=3; ++nv
) {
110 fprintf(stderr
, "\ttesting vers=%d, proto=\"%s\" -> ", nv
, proto
);
111 ret
= get_nfs_version(testhost
, ip
, nv
, proto
);
113 fprintf(stderr
, "failed!\n");
115 fprintf(stderr
, "found version %d.\n", ret
);
119 for (nv
=2; nv
<=3; ++nv
) {
120 fprintf(stderr
, "\ttesting vers=%d, proto=\"%s\" -> ", nv
, proto
);
121 ret
= get_nfs_version(testhost
, ip
, nv
, proto
);
123 fprintf(stderr
, "failed!\n");
125 fprintf(stderr
, "found version %d.\n", ret
);
129 return 0; /* should never reach here */