- if (sendto(s, msg, size, flags, sns, sizeof (*sns)) < 0)
- perror("sendto");
+ /*
+ * Kludge to allow us to get routes out to machines that
+ * don't know their addresses yet; send to that address on
+ * ALL connected nets
+ */
+ if (ns_neteqnn(sns->sns_addr.x_net, ns_zeronet)) {
+ extern struct interface *ifnet;
+ register struct interface *ifp;
+
+ for (ifp = ifnet; ifp; ifp = ifp->int_next) {
+ sns->sns_addr.x_net =
+ satons_addr(ifp->int_addr).x_net;
+ (void) sendto(s, msg, size, flags,
+ (struct sockaddr *)sns, sizeof (*sns));
+ }
+ return;
+ }
+
+ (void) sendto(s, msg, size, flags,
+ (struct sockaddr *)sns, sizeof (*sns));