#include "signals.h"
#include "i18n.h"
-/*#define DEBUG 1
+/*
+#define DEBUG 1
+*/
+/*
#define NFS_CHECKS
*/
}
}
}
- /*printf("parsed to lp %s rh %s rp %s\n", lcl_port_str, rmt_addr_str, rmt_port_str);*/
+#ifdef DEBUG
+ printf("parsed to lp %s rh %s rp %s\n", lcl_port_str, rmt_addr_str, rmt_port_str);
+#endif
memset(&hints, 0, sizeof(hints));
#ifdef WITH_IPV6
for(resptr = res ; resptr != NULL ; resptr = resptr->ai_next ) {
switch(resptr->ai_family) {
case AF_INET:
- sin = (struct sockaddr_in*)resptr->ai_addr;
+ sin = (struct sockaddr_in*)resptr->ai_addr;
+ if (rmt_addr_str == NULL) {
+ add_ip_conn(ip_list, protocol, this_name, ntohs(lcl_port), ntohs(sin->sin_port), INADDR_ANY);
+ } else {
add_ip_conn(ip_list, protocol, this_name, ntohs(lcl_port), ntohs(sin->sin_port), sin->sin_addr.s_addr);
+ }
break;
#ifdef WITH_IPV6
case AF_INET6:
- sin6 = (struct sockaddr_in6*)resptr->ai_addr;
- add_ip6_conn(ip6_list, protocol, this_name, ntohs(lcl_port), ntohs(sin6->sin6_port), sin6->sin6_addr);
+ sin6 = (struct sockaddr_in6*)resptr->ai_addr;
+ if (rmt_addr_str == NULL) {
+ add_ip6_conn(ip6_list, protocol, this_name, ntohs(lcl_port), ntohs(sin6->sin6_port), in6addr_any);
+ } else {
+ add_ip6_conn(ip6_list, protocol, this_name, ntohs(lcl_port), ntohs(sin6->sin6_port), sin6->sin6_addr);
+ }
break;
#endif
}
&rmt_port,
&scanned_inode) != 4)
continue;
- /*printf("Found *:%lu with %s:%lu\n", loc_port, inet_ntoa(*((struct in_addr*)&rmt_addr)), rmt_port);*/
+#ifdef DEBUG
+ printf("Found IPv4 *:%lu with %s:%lu\n", loc_port, inet_ntoa(*((struct in_addr*)&rmt_addr)), rmt_port);
+#endif /* DEBUG */
inode = scanned_inode;
for(conn_tmp = conn_list ; conn_tmp != NULL ; conn_tmp = conn_tmp->next) {
- /*printf("Comparing with *.%lu %s:%lu ...",
+#ifdef DEBUG
+ printf(" Comparing with *.%lu %s:%lu\n",
conn_tmp->lcl_port,
inet_ntoa(conn_tmp->rmt_address),
- conn_tmp->rmt_port);*/
- if (conn_tmp->lcl_port == loc_port &&
- conn_tmp->rmt_port == rmt_port &&
- (memcmp(&(conn_tmp->rmt_address), &(rmt_addr),4) ==0)
+ conn_tmp->rmt_port);
+#endif
+ if ( (conn_tmp->lcl_port == 0 || conn_tmp->lcl_port == loc_port) &&
+ (conn_tmp->rmt_port == 0 || conn_tmp->rmt_port == rmt_port) &&
+ (conn_tmp->rmt_address.s_addr == INADDR_ANY ||
+ (memcmp(&(conn_tmp->rmt_address), &(rmt_addr),4) ==0))
) {
/* add inode to list */
+#ifdef DEBUG
+ printf("Added inode!\n");
+#endif /* DEBUG */
add_inode(ino_list, conn_tmp->name, netdev, inode);
}
}
if ( (fp = fopen(pathname, "r")) == NULL) {
#ifdef DEBUG
- fprintf(stderr, _("Cannot open protocol file \"%s\": %s\n"), pathname, strerror(errno));
+ printf("Cannot open protocol file \"%s\": %s\n", pathname, strerror(errno));
#endif /* DEBUG */
return ;
}
rmt_addr.s6_addr32[2] = tmp_addr[2];
rmt_addr.s6_addr32[3] = tmp_addr[3];
inet_ntop(AF_INET6, &rmt_addr, rmt_addr6str, INET6_ADDRSTRLEN);
- /*printf("Found %ld with %s:%ld\n", loc_port, rmt_addr6str, rmt_port);*/
+#ifdef DEBUG
+ printf("Found IPv6 %ld with %s:%ld\n", loc_port, rmt_addr6str, rmt_port);
+#endif /* DEBUG */
for(conn_tmp = conn_list ; conn_tmp != NULL ; conn_tmp = conn_tmp->next) {
inet_ntop(AF_INET6, &conn_tmp->rmt_address, rmt_addr6str, INET6_ADDRSTRLEN);
- /*printf("Comparing with *.%lu %s:%lu ...\n\n",
+#ifdef DEBUG
+ printf(" Comparing with *.%lu %s:%lu ...\n",
conn_tmp->lcl_port,
rmt_addr6str,
- conn_tmp->rmt_port);*/
- if (conn_tmp->lcl_port == loc_port &&
- conn_tmp->rmt_port == rmt_port &&
+ conn_tmp->rmt_port);
+#endif /* DEBUG */
+ if ( (conn_tmp->lcl_port == 0 || conn_tmp->lcl_port == loc_port) &&
+ (conn_tmp->rmt_port == 0 || conn_tmp->rmt_port == rmt_port) &&
(memcmp(&(conn_tmp->rmt_address), &(rmt_addr),16) ==0)
) {
add_inode(ino_list, conn_tmp->name, netdev, inode);
if ( (fp = fopen(KNFSD_EXPORTS, "r")) == NULL) {
#ifdef DEBUG
- fprintf(stderr, "Cannot open %s\n", KNFSD_EXPORTS);
+ printf("Cannot open %s\n", KNFSD_EXPORTS);
#endif
return;
}