summary |
tags |
clone url |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e343f9b)
allow -r for MSG_DONTROUTE when using as XNS ping equivalent.
SCCS-vsn: sbin/XNSrouted/tools/query.c 5.7
#endif /* not lint */
#ifndef lint
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)query.c 5.6 (Berkeley) %G%";
+static char sccsid[] = "@(#)query.c 5.7 (Berkeley) %G%";
#endif /* not lint */
#include <sys/param.h>
#endif /* not lint */
#include <sys/param.h>
int timedout, timeout();
char packet[MAXPACKETSIZE];
extern int errno;
int timedout, timeout();
char packet[MAXPACKETSIZE];
extern int errno;
-struct sockaddr_ns myaddr = {AF_NS};
+struct sockaddr_ns myaddr = {sizeof(myaddr), AF_NS};
char *ns_ntoa();
struct ns_addr ns_addr();
main(argc, argv)
char *ns_ntoa();
struct ns_addr ns_addr();
main(argc, argv)
-static struct sockaddr_ns router = {AF_NS};
+static struct sockaddr_ns router = {sizeof(myaddr), AF_NS};
static struct ns_addr zero_addr;
static short allones[] = {-1, -1, -1};
static struct ns_addr zero_addr;
static short allones[] = {-1, -1, -1};
{
register struct rip *msg = (struct rip *)packet;
char *host = *argv;
{
register struct rip *msg = (struct rip *)packet;
char *host = *argv;
+ if (bcmp(*argv, "-r", 3) == 0) {
+ flags = MSG_DONTROUTE; argv++; argc--;
+ }
+ host = *argv;
router.sns_addr = ns_addr(host);
router.sns_addr.x_port = htons(IDPPORT_RIF);
if (ns_hosteq(zero_addr, router.sns_addr)) {
router.sns_addr = ns_addr(host);
router.sns_addr.x_port = htons(IDPPORT_RIF);
if (ns_hosteq(zero_addr, router.sns_addr)) {
specific.x_port = zero_addr.x_port;
printf("Net asked for was %s\n", ns_ntoa(specific));
}
specific.x_port = zero_addr.x_port;
printf("Net asked for was %s\n", ns_ntoa(specific));
}
- if (sendto(s, packet, sizeof (struct rip), 0,
+ if (sendto(s, packet, sizeof (struct rip), flags,
&router, sizeof(router)) < 0)
perror(host);
}
&router, sizeof(router)) < 0)
perror(host);
}