NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/56448 CVS commit: src/usr.sbin/inetd



The following reply was made to PR bin/56448; it has been noted by GNATS.

From: "Christos Zoulas" <christos%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/56448 CVS commit: src/usr.sbin/inetd
Date: Tue, 12 Oct 2021 15:08:04 -0400

 Module Name:	src
 Committed By:	christos
 Date:		Tue Oct 12 19:08:04 UTC 2021
 
 Modified Files:
 	src/usr.sbin/inetd: Makefile inetd.8 inetd.c inetd.h parse_v2.c
 Added Files:
 	src/usr.sbin/inetd: parse.c ratelimit.c
 
 Log Message:
 PR/56448: Solomon Ritzow: Various improvements.
 
 Rate limiting code has been moved to ratelimit.c. I renamed
 clear_ip_list to rl_clear_ip_list and broke the code up into more
 functions. I have also made the per-IP rate limiting allocation more
 efficient. IP addresses are now stored in their network format instead
 of a string from getnameinfo (see inetd.h struct rl_ip_node). malloc
 calls use only the space needed by the structure by using offsetof on
 union members (I suppose this can be a bit dangerous if not done
 correctly...). Per-IP rate limiting still supports textual comparison
 using getnameinfo for address families other than AF_INET and AF_INET6, but I
 don't think there are any that are actually compatible or used by inetd (I
 haven't tested UNIX sockets with a remote bound to another file, but I did test
 using IPv6 with the textual format by commenting out the IPv6 specific
 code, and it works properly). Still potentially handy for the future.
 The IP node list (se_rl_ip_list) now uses the <sys/queue.h> SLIST macros
 instead of a custom list. I've broken rl_process up into helper functions
 for each type of rate limiting and created a separate function for
 address stringification, for use with printouts from the -d flag. I
 tried to reduce stack memory use by moving printing code involving
 string buffers into separate functions. I haven't tested rl_ipv6_eq on
 a 32-bit system.
 
 The code for the positional syntax has also been moved to parse.c.
 Function try_biltin has been added to remove parse.c:parse_server's
 dependency on the biltin structure definition.
 
 File inetd.h has been updated with the proper function prototypes, and
 the servtab structure has been update with the new IP node SLIST. I also
 moved things around a bit. The way we (a peer and myself)
 formatted inetd.h previously was somewhat confusing. Function and global
 variable prototypes are now organized by the source file they are
 defined in.
 
 I also added a -f flag that I saw in another problem report
 (https://gnats.netbsd.org/12823) that I thought could be useful. It
 runs inetd in the foreground but without debug printouts or SO_DEBUG.
 I'm not completely sure about the line "if (foreground) setsid()" that
 I changed from "if (debug) setsid()".
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.29 -r1.30 src/usr.sbin/inetd/Makefile
 cvs rdiff -u -r1.64 -r1.65 src/usr.sbin/inetd/inetd.8
 cvs rdiff -u -r1.136 -r1.137 src/usr.sbin/inetd/inetd.c
 cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/inetd/inetd.h
 cvs rdiff -u -r0 -r1.1 src/usr.sbin/inetd/parse.c \
     src/usr.sbin/inetd/ratelimit.c
 cvs rdiff -u -r1.5 -r1.6 src/usr.sbin/inetd/parse_v2.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index