Browse Source

Add ./tarball_archive/symon-2.69.tar.gz

Wictor Lund 3 years ago
parent
commit
8a65250358
5 changed files with 29 additions and 18 deletions
  1. 4 0
      symon/CHANGELOG
  2. 1 1
      symon/Makefile.inc
  3. 15 12
      symon/lib/net.c
  4. 2 2
      symon/lib/net.h
  5. 7 3
      symon/symux/symuxnet.c

+ 4 - 0
symon/CHANGELOG

@@ -1,3 +1,7 @@
+16/02/2005 - 2.69
+
+   - inet6 support works again (Eric from Catastrophe.net)
+
 14/01/2005 - 2.68
 
    - NetBSD/sm_debug.c now has proper sysctl mib values

+ 1 - 1
symon/Makefile.inc

@@ -1,6 +1,6 @@
 # $Id: Makefile.inc,v 1.28 2005/02/04 09:49:26 dijkstra Exp $
 
-V=2.68
+V=2.69
 OS!=uname -s
 
 AR=	ar

+ 15 - 12
symon/lib/net.c

@@ -1,4 +1,4 @@
-/* $Id: net.c,v 1.12 2004/08/07 12:21:36 dijkstra Exp $ */
+/* $Id: net.c,v 1.13 2005/02/16 20:24:51 dijkstra Exp $ */
 
 /*
  * Copyright (c) 2001-2004 Willem Dijkstra
@@ -67,7 +67,7 @@ getip(char *name, int family)
     if (getaddrinfo(name, NULL, &hints, &res) != 0) {
 	hints.ai_flags = 0;
 	if ((error = getaddrinfo(name, NULL, &hints, &res)) < 0) {
-	    warning("getaddrinfo(%.200s): %.200s", name, gai_strerror(error));
+	    debug("getaddrinfo(%.200s, %d): %.200s", name, family, gai_strerror(error));
 	    return 0;
 	}
     }
@@ -81,7 +81,7 @@ getip(char *name, int family)
 	freeaddrinfo(res);
 	return 1;
     } else {
-	if (res->ai_addr) {
+	if (res && res->ai_addr) {
 	    if ((error = getnameinfo(res->ai_addr, res->ai_addrlen,
 				     res_host, NI_MAXHOST,
 				     NULL, 0, NI_NUMERICHOST)) == 0) {
@@ -91,10 +91,12 @@ getip(char *name, int family)
 
 		freeaddrinfo(res);
 		return 1;
-	    } else
-		warning("getnameinfo(%.200s): %.200s", name, gai_strerror(error));
-	} else
-	    warning("getip(%.200s): could not get numeric host via getaddrinfo nor getnameinfo", name);
+	    } else {
+		debug("getnameinfo(%.200s, %d): %.200s", name, family, gai_strerror(error));
+	    }
+	} else {
+	    debug("getip(%.200s, family): could not get numeric host via getaddrinfo nor getnameinfo", name, family);
+	}
     }
 
     return 0;
@@ -207,14 +209,15 @@ get_inaddrany_sockaddr(struct sockaddr_storage * sockaddr, int family, int sockt
     }
 }
 /* fill a source->sockaddr with a sockaddr for use in address compares */
-void
+int
 get_source_sockaddr(struct source * source, int family)
 {
-    if (!getip(source->addr, family))
-	fatal("could not get address information for %.200s",
-	      source->addr);
+    if (getip(source->addr, family)) {
+	cpysock((struct sockaddr *) &res_addr, &source->sockaddr);
+	return 1;
+    }
 
-    cpysock((struct sockaddr *) &res_addr, &source->sockaddr);
+    return 0;
 }
 /* fill mux->sockaddr with a udp listen sockaddr */
 void

+ 2 - 2
symon/lib/net.h

@@ -1,4 +1,4 @@
-/* $Id: net.h,v 1.13 2004/08/07 12:21:36 dijkstra Exp $ */
+/* $Id: net.h,v 1.14 2005/02/16 20:24:51 dijkstra Exp $ */
 
 /*
  * Copyright (c) 2001-2004 Willem Dijkstra
@@ -52,7 +52,7 @@ int lookup(char *);
 void cpysock(struct sockaddr *, struct sockaddr_storage *);
 void get_inaddrany_sockaddr(struct sockaddr_storage *, int, int, char *);
 void get_mux_sockaddr(struct mux *, int);
-void get_source_sockaddr(struct source *, int);
+int get_source_sockaddr(struct source *, int);
 __END_DECLS
 
 #endif				/* _SYMON_LIB_NET_H */

+ 7 - 3
symon/symux/symuxnet.c

@@ -1,4 +1,4 @@
-/* $Id: symuxnet.c,v 1.18 2004/08/07 14:49:32 dijkstra Exp $ */
+/* $Id: symuxnet.c,v 1.19 2005/02/16 20:24:51 dijkstra Exp $ */
 
 /*
  * Copyright (c) 2001-2004 Willem Dijkstra
@@ -66,7 +66,11 @@ get_symon_sockets(struct mux * mux)
 
     /* iterate over our sources to determine what types of sockets we need */
     SLIST_FOREACH(source, &mux->sol, sources) {
-	get_source_sockaddr(source, AF_INET);
+	if (!get_source_sockaddr(source, AF_INET)) {
+	    if (!get_source_sockaddr(source, AF_INET6)) {
+		warning("cannot determine socket family for source %.200s", source->addr);
+	    }
+	}
 
 	family = source->sockaddr.ss_family;
 	/* do we have a socket for this type of family */
@@ -128,7 +132,7 @@ get_client_socket(struct mux * mux)
 	fatal("could not obtain socket: %.200s", strerror(errno));
 
     if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) {
-        fatal ("could set socket options: %.200s", strerror (errno));
+	fatal ("could set socket options: %.200s", strerror (errno));
     }
 
     bzero((void *) &hints, sizeof(struct addrinfo));