Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ser2net for openSUSE:Factory checked in at 2026-04-13 23:20:19 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ser2net (Old) and /work/SRC/openSUSE:Factory/.ser2net.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ser2net" Mon Apr 13 23:20:19 2026 rev:27 rq:1346463 version:4.6.7 Changes: -------- --- /work/SRC/openSUSE:Factory/ser2net/ser2net.changes 2025-11-12 21:15:48.161693357 +0100 +++ /work/SRC/openSUSE:Factory/.ser2net.new.21863/ser2net.changes 2026-04-13 23:22:34.109240237 +0200 @@ -1,0 +2,12 @@ +Sun Apr 12 17:29:21 UTC 2026 - Martin Hauke <[email protected]> + +- Update to version 4.6.7 + Fixes: + * A reload bug where if a connection closes during a reload it + could cause a crash. + * A reload bug where if you reload twice while a connection + stays up it can cause a crash. +- Update to version 4.6.6 + * This release fixes a couple of minor bugs. + +------------------------------------------------------------------- Old: ---- ser2net-4.6.5.tar.gz New: ---- ser2net-4.6.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ser2net.spec ++++++ --- /var/tmp/diff_new_pack.4L1a82/_old 2026-04-13 23:22:35.857312358 +0200 +++ /var/tmp/diff_new_pack.4L1a82/_new 2026-04-13 23:22:35.877313183 +0200 @@ -1,7 +1,7 @@ # # spec file for package ser2net # -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: ser2net -Version: 4.6.5 +Version: 4.6.7 Release: 0 Summary: Serial port to network proxy License: GPL-2.0-or-later ++++++ ser2net-4.6.5.tar.gz -> ser2net-4.6.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/ChangeLog new/ser2net-4.6.7/ChangeLog --- old/ser2net-4.6.5/ChangeLog 2018-12-07 19:07:28.000000000 +0100 +++ new/ser2net-4.6.7/ChangeLog 2026-02-06 20:45:10.000000000 +0100 @@ -1,706 +1 @@ -2014-01-24 Corey Minyard <[email protected]> - - * ser2net.h, Makefile.am: Move some things into a new - ser2net.h file. - - * devcfg.c, controller.c, dataxfer.c, ser2net.c, utils.c: Add the - ser2net.h include file. - - * dataxfer.c: Fix some EAGAIN handling. - -2014-01-23 Corey Minyard <[email protected]> - - * utils.h, readconfig.c, dataxfer.c: Rework the find_xxx - functions to return a strdup of the string. - - * dataxfer.c, dataxfer.h, devcfg.h: Remove the dinfo structure - and move the contents into the port structure, and remove the - now empty devcfg.h. - - * configure.ac: Minor rework. - -2014-01-22 Corey Minyard <[email protected]> - - * io.h, devcfg.h, devcfg.c, dataxfer.c, buffer.c, buffer.h: Abstract - the device I/O operations. - - * utils.c, utils.h, controller.h, controller.c: Fix some const - correctness issues - - * conroller.c, controller.h: Add printf-style output. - - * dataxfer.h, dataxfer.c, devcfg.h, devcfg.c, io.h, readconfig: - Rework the error and output handling to make it more flexible, so - errors can be output with useful information from the lower - levels. - -2013-08-08 Corey Minyard <[email protected]> - - * utils.c, utils.h, dataxfer.c, controller.c: Rework the handling - of addresses to work properly with all the return values of - getaddrinfo, and to prefer IPV6 over IPV4 when opening the socket. - This means if you specify a number, it will open the IPV6 ::,port - address first. This was a big cleanup, and moved a lot of the - base socket handling into utils.h. - - * dataxfer.c: Rework the stdio handling so it doesn't rely on the - port number in the address, since that is now gone. - - * dataxfer.c: Set port->closestr to NULL when freeing it to avoid - a double-free. - - * readconfig.c, ser2net.8: Rework the input handling so an IPV6 - can be specified as part of the portnum parameter. This was hard - because IPV6 addresses have ':' in them. Basically, if there is a - "," in the port specification, assume that everything from the - beginning of the line to the ':' after the ',' is the port number. - - * utils.c, utils.h, dataxfer.c, controller.c: Modified address - handling so that ser2net opens all the addresses returned by - getaddrinfo, not just the first one. That should make things - work correctly in a lot more cases. - -2013-08-07 Corey Minyard <[email protected]> - - * utils.c, controller.c, dataxfer.c: Return an errno from - scan_tcp_port() so it can return an out of memory error. - - * controller.c, controller.h, ser2net.c: Add an out of memory - return code from controller_init(). - -2013-07-31 Longshine <[email protected]> - - * utils.c: Copy input string to a temporary buffer before - calling strtok_r in scan_tcp_port. - -2013-07-28 Corey Minyard <[email protected]> - - * configure.ac: Move to version 2.9.1. There was an issue with - the configure setup. So autoreconf and redistribute. - -2013-07-26 Corey Minyard <[email protected]> - - * dataxfer.c: Fix a bug in format strings where hex element (\x) - would have the wrong values for a-f. Pointed out by Galen Seitz. - -2013-07-26 Corey Minyard <[email protected]> - - * configure.ac: Version 2.9. - -2013-07-25 Yegor Yefremov <[email protected]> - - * Make RFC2217 signature configurable: - Add '-s' option to configure default signature, that can be - requested via RFC2217 protocol (option 0). - Add per port signature via SIGNATURE keyword. - -2013-06-29 Yegor Yefremov <[email protected]> - - * dataxfer.c: The baudrate, that will be sent to the client, - was converted twice: first with htonl() and then via copying - to the buffer. As result 38400 was transfered as 6500960000 - instead of 6500009600. - -2013-05-07 Corey Minyard <[email protected]> - - * buffer.c: Add a buffer wrap that was missed, identified by - Brian Rzycki. - -2013-03-01 Corey Minyard <[email protected]> - - * Makefile.am: Added 'ACLOCAL_AMFLAGS = -I m4' as suggested by - libtoolize. - - * configure.in -> configure.ac - - * configure.ac: Add 'AC_CONFIG_MACRO_DIR([m4])' as suggested by - libtoolize. - - * configure.ac: Version 2.8. - -2013-02-28 Corey Minyard <[email protected]> - - * dataxfer.c, readconfig.c: Properly handle an empty string passed - as a banner, openstr, or closestr. - -2013-01-29 Corey Minyard <[email protected]> - - * utils.h, utils.c: Have scan_tcp_port() take the domain. - - * dataxfer.c, controller.c: If the socket open fails with - EAFNOSUPPORT, retry the address with IF_INET (IPV4-only). This - way the call will still work even if IPV6 is disabled. - -2012-12-19 Corey Minyard <[email protected]> - - * README: Add info on how to generate configure and friends. - -2012-12-13 Jordi Riera-Babures <[email protected]>, Corey Minyard <[email protected]> - * devcfg.c: Add support for a bunch of high-speed baud rates. - -2012-12-07 Corey Minyard <[email protected]> - - * utils.c: Change hints.ai_family from AF_INET6 to AF_UNSPEC. - That way it won't force IPV6, but it will return either. I - think that's right. - -2012-12-04 Corey Minyard <[email protected]> - - * utils.c, utils.h: Modify scan_tcp_port to return the length of - the socket info returned by getaddrinfo(). - - * controller.c, dataxfer.c: Use the length returned by - scan_tcp_port(), not the size of sockaddr_storage, for the length - of the socket information. - -2012-09-26 Corey Minyard <[email protected]> - - * configure.in: Move to 2.8-rc3 - - * dataxfer.c, dataxfer.h, selector.c, selector.h, ser2net.c: Add - clean shutdown handling so locks are properly removed when the - program is killed with SIGINT. - - * dataxfer.c: Modify the lock files to be Linux FHS compiliant. - -2012-09-10 Corey Minyard <[email protected]> - - * dataxfer.c: Fix a bug reported by Jan-Benedict Glaw, where - port->dinfo.openstr may be NULL, but srdup is called on it - without checking. Add a check. - -2012-07-23 qchats lee <[email protected]> - - * dataxfer.c: My change for this did not match Qchats' change, - so fix that. - - * utils.c: Fix the write_full() function to handle the return - result properly; the parenthesis in the if statement ended - in the wrong place. - -2012-07-22 qchats lee <[email protected]> - - * dataxfer.c: Add a missing ")" after the "OPEN(..." when - header tracing. - -2012-04-18 Corey Minyard <[email protected]> - - * buffer.c, buffer.h, Makefile.am: Added a new type and set of - operations for buffer handling. This simplifies and allows - abstraction of other parts of the code. - - * dataxfer.c, telnet.c, telnet.h, controller.c: Switch - out_telnet_cmd and associated parts to be the new buffer type. - - * dataxfer.c: Switch the banner over to the new buffer type. - - * dataxfer.c: Consolidate banner and filename string handling. - Note that there was an issue with \s, as it was something - different in banners and filenames. Added new options, \S (for - seconds) and \B (for serial port parameters) to resolve this - issue, and \s is backwards compatible but deprecated. - - * ser2net.8, ser2net.conf: Since the consolidated banner/filename - processing allows all the \<x> options to be available for both - banners and filenames, rework the documentation. - - * dataxfer.c: Convert the main I/O buffers for data transfer to - the new buffer type. - - * devcfg.h, devcfg.c, readconfig.c, utils.h: Added a - new OPENSTR and CLOSESTR option for the configuration file. These - are strings that will be transmitted to the device when a port is - opened and/or closed. - - * ser2net.8, ser2net.conf: Added docs for the OPENSTR and CLOSESTR - options. - - * dataxfer.c: Handle the new OPENSTR and CLOSESTR options. This - required adding a new state, PORT_CLOSING, for the tcp_to_dev_state - to say that the port is closing but data is going out, and splitting - up the shutdown handling. - - * utils.c: Fixed a bug that cause the "port in use" error on the - TCP connection to be printed strangely. - - * dataxfer.c: Since the banner handling no longer depends on being - able to put the whole banner in the output buffer, reduce the port - buffer sizes to 64 bytes to reduce memory usage - - * selector.c: maxfd was not initialized for a selector, fix that. - - * configure.in: Move to 2.8-rc2. - -2012-04-04 Corey Minyard <[email protected]> - - * dataxfer.c: Turn on the tcp write handler at first for raw - sockets, otherwise the banner won't come out till some data - comes in on the port. - -2012-04-03 Corey Minyard <[email protected]> - - * devcfg.c: Add 600 baud. - -2012-03-27 Corey Minyard <[email protected]> - - * ser2net.c, readconfig.c, ser2net.h, controller.c, ser2net.conf: - Add a method to specify the control port in the ser2net config - file. - - * dataxfer.c, controller.c: Add SO_KEEPALIVE to socket connections - so the connection will drop if the other end just goes away. - - * configure.in: Move to 2.8-rc1. - -2011-08-12 Corey Minyard <[email protected]> - - * dataxfer.c: Fix some unaligned write issues in telnet options. - - * dataxfer.c: Fix some signed/unsigned comparison issues and - a typo. - -2011-06-22 Corey Minyard <[email protected]> - - * utils.h, utils.c, controller.c, dataxfer.c: Fix some warnings - about the write() return value not being checked. These were - almost all cases where a failure didn't matter (tracing), except - for writing the pid file, where it should have been a handled - failure. - - * dataxfer.c: Cleaned up some style issues in the UUCP locking code. - - * ser2net.c: Fixed a warning about not checking the chdir() return - code, and added some improved logging information to syslog. - -2010-03-11 Mats Erik Andersson <[email protected]>, - Corey Minyard <[email protected]> - - * controller.c, dataxfer.c, utils.c, utils.h: Add IPV6 address - compatability. - -2009-11-12 Corey Minyard <[email protected]> - - * ser2net.spec, ser2net.spec.in: Fix the version in the spec - file to be updated automatically. - -2009-11-12 Philip Gwyn - - * dataxfer.c, devcfg.c, devcfg.h, ser2net.8: Add the ability to - dump trace files in a binary format with timestamps. - -2009-11-03 Corey Minyard <[email protected]> - - * configure.in: Move version to 2.7 for release. - -2009-10-23 Corey Minyard <[email protected]> - - * configure.in: Move to 2.7-rc3. - - * dataxfer.c, devcfg.c, devcfg.h, ser2net.h: Modified the tb= - directive to work separately from tw= and tr=, so you can do all - three at the same time independently. - - * readconfig.c: Improved an error report. - -2009-10-22 Corey Minyard <[email protected]> - - * ser2net.c: Set up routing errors to stderr before reading the - config so config errors come out properly to stdout. - - * ser2net.8, ser2net.conf: Fix the documentation, it's tw=, not - tw: for the tracefile stuff. - - * configure.in: Move to 2.7-rc2. - -2009-10-15 Corey Minyard <[email protected]> - - * dataxfer.c, devcfg.c, readconfig.c, ser2net.8, ser2net.conf: Add - the ability to trace data read written to trace files. - -2009-07-19 Geoff Simmons <[email protected]> - - * ser2net.conf: Some documentation cleanup, added missing docs - for the timeout parameter. - - * README - Minor doc cleanup. - -2009-07-15 Corey Minyard <[email protected]> - - * configure.in: Move to version 2.6. - -2009-06-30 Corey Minyard <[email protected]> - - * dataxfer.c, devcfg.c, devcfg.h, readconfig.h, utils.h: Add the - a TRACEFILE option to trace all I/O to a file., and separate - out the defconfig into a separate structure to avoid passing a - boatload of things to the config. - -2009-06-30 Sebastian Andrzej Siewior <[email protected]> - - * controller.c: Fix use after free in controller - - The controller will use its dynamically allocated data after it - got free() in error path. What we see in syslog is: - - Jun 30 10:26:38 consrv3 ser2net[3073]: read error for - controller port: Connection reset by peer - Jun 30 10:26:39 consrv3 ser2net[3073]: The tcp write for - controller had error: Bad file descriptor - - The first error is "legal" because the destitnation decided to - close its socket a little to early than expected. The second - error is allready bad because it tries to use allready - deallocated fd. Later we segfault. - -2007-11-16 Corey Minyard <[email protected]> - - * configure.in: Move to version 2.5. - -2007-11-16 Harry Flick, Corey Minyard <[email protected]> - - * devcfg.c, devcfg.h, dataxfer.c, ser2net.conf, ser2net.8: Allow a - "NOBREAK" option to disable automatically messing with the break - operations on the serial port. Useful for systems with a broken - break. - -2007-11-16 Robert Edmonds <[email protected]>,Corey Minyard <[email protected]> - - * ser2net.c, ser2net.8: Add a '-P' option to specific that a - pidfile be created. - -2007-05-03 Corey Minyard <[email protected]> - - * dataxfer.c: Change the rfc2217 signature response code - from 0 to 100. Best guess on what this should be, as the - RFC doesn't give the correct value and says "text". - -2007-04-26 Corey Minyard <[email protected]> - - * dataxfer.c: Disable the Nagle algorithm (enable TCP_NODELAY) on - the TCP ports to avoid long delays on short pieces of data. - - * configure.in: Move to version 2.4. - -2007-03-19 Corey Minyard <[email protected]> - - * dataxfer.c: Use the proper value for modem data notifies sent - to the client, it was 7, use 107 instead. - -2006-12-01 Corey Minyard <[email protected]> - - * readconfig.c: Handle an ending banner that does not have a '\n' - in the last line. - -2006-01-16 Corey Minyard <[email protected]> - - * ser2net.8: Fix the documentation for control ports. - -2006-01-09 Corey Minyard <[email protected]> - - * dataxfer.c: Don't kill the session if TIOCCBRK doesn't work. - -2005-12-29 Corey Minyard <[email protected]> - - * dataxfer.c, devcfg.c, devcfg.h, ser2net.conf, ser2net.8: Added a - '\s' banner token for printing out the serial parameters. - - * ser2net.conf: Cleaned up the ugly banner3. - - * Makefile.am: Add ser2net.init to EXTRA_DIST. - - * configure.in: Move to version 2.3. - -2005-12-29 Aurelien Jarno <[email protected]> - - * devcfg.c: Don't include "termio.h", but do include - "sys/ioctl.h". - -2005-10-20 Corey Minyard <[email protected]> - - * dataxfer.c: Fixed a problem with rfc2217 stop bit size setting. - It was interpreting the value of "3" as 2 stop bits, but 3 is for - 1.5 stop bits, and 2 is for 2 stop bits. - - * controller.c: Fixed some warnings dealing with char/unsigned - char problems. - * dataxfer.c: ditto - * telnet.c: ditto - -2005-08-25 Corey Minyard <[email protected]> - - * dataxfer.c: Fix a problem wih EAGAIN just returning and not - retrying the operation on writing data that has just been read. - Thanks to Shinlun Hsieh <[email protected]> for pointing this out. - -2005-07-07 G Goodwill <ggg2sforge at sourceforge.net> - - * dataxfer.c, devcfg.c: Added support for cygwin. - -2005-07-07 Rajiv Aaron Manglani <rajav at gentoo.org> - - * configure.in: Make the use of tcp wrappers optional. - -2005-06-13 Yura Kalinichenko <[email protected]> - - * controller.c, devcfg.c, ser2net.8, ser2net.conf: Added 57600 - baud support. - - * dataxfer.c: Don't to breaks on printer lines. - -2005-02-12 Corey Minyard <[email protected]> - - * configure.in: Move to version 2.2. - -2005-02-11 Corey Minyard <[email protected]> - - * dataxfer.c: Add a missing break statement after case 7 - in the com_port_handler() function. - -2004-11-29 Corey Minyard <[email protected]> - - * dataxfer.c: Remove UUCP lock if the setup of the device fails. - -2004-05-08 Marc Haber - - * ser2net.h: Set the man page section to the right value. - -2004-01-24 Corey Minyard <[email protected]> - - * dataxfer.c: Don't attempt to disconnect an unconnected port. - -2003-12-20 Corey Minyard <[email protected]> - - * dataxfer.c, ser2net.8: Added the ability to have port 0 mean use - standard in/out. This way, you can invoke ser2net from inetd. - - * devcfg.c: Allow "," to be used as an option separator. - - * readconfig.c: Fix handling of lines coming from "-C". - - * ser2net.c: Move creation of the selector to before the option - processing, for support of "-C'. - -2003-12-19 Corey Minyard <[email protected]> - - * dataxfer.c: Handle receive IACs from the terminal to the TCP - port, duplicating them so they will come through right. - - * telnet.c: Reset the telnet protocol state after two IACs are - received. - - * readconfig.c, readconfig.h, ser2net.c, ser2net.8: Added a way to - specify individual config lines on the command line so that no - config file is necessary. - -2003-12-04 Corey Minyard <[email protected]> - - * dataxfer.c: Add responses for all the telnet com port - control commands that we handle. - - * telnet.c: Fixed IAC processing in suboption to be able - to handle a stream of IACs properly. - -2003-12-04 Corey Minyard <[email protected]> - - * configure.in: Moved to version 2.1. - - * dataxfer.c: Have the telnet option responses use the 1xx - responses to the com port control options. I believe this is - wrong, but it is consistent with other products already in the - field. - - * dataxfer.c, ser2net.c, telnet.h: Added support for setting the - use of Cisco IOS baud rates instead of RFC 2217 ones, by command - option. - - * selector.c, ser2net.c: Cleaned up some compile warnings. - -2003-10-14 Corey Minyard <[email protected]> - - * configure.in: Moved to version 2.0. - - * datafer.c, devcfg.c, devcfg.h, readconfig.c, utils.h: Added - banner support. - - * ser2net.h, ser2net.conf: Added documentation for banner support. - - * dataxfer.c, telnet.c, telnet.h: Created a more generic telnet - command handler and split it off from dataxfer.c - - * controller.c: Moved to the new telnet command handler. - - * dataxfer.c: Added watching the CD, RI, etc. lines. - -2003-10-13 Corey Minyard <[email protected]> - - * dataxfer.c: Added a lot of the com port control handling. - -2003-10-12 Corey Minyard <[email protected]> - - * dataxfer.c: Added real telnet option processing infrastructure, - getting read for com port control handling. - -2003-04-22 Corey Minyard <[email protected]> - - * configure.in, ser2net.spec: Move to version 1.9. - - * selector.c: Turned off debugging code that accidentally got left - on. - -2003-02-14 Corey Minyard <[email protected]> - - * configure.in, ser2net.spec: Move to version 1.8. - - * dataxfer.c: Do a tcflush(fd, TCOFLUSH) before closing the - serial device, this avoids blocking on close. - -2002-11-29 Corey Minyard <[email protected]> - - * selector.c: More timer heap bugs. - -2002-10-01 Corey Minyard <[email protected]> - - * selector.c: Fixed bugs in the timer heaps. - -2002-09-23 Corey Minyard <[email protected]> - - * selector.c: Fixed a bug in the timer heaps. - -2002-09-09 Corey Minyard <[email protected]> - - * all: Reworked the selector code to make timers more general. - -2002-07-24 Corey Minyard <[email protected]> - - * dataxfer.c: Fixed a bug with handling config errors, when - an error occurs in the wrong place it will segv. - -2002-04-04 Corey Minyard <[email protected]> - - * util.c: added the final return value to scan_tcp_port. - -2002-02-20 Corey Minyard <[email protected]> - - * controller.c, dataxfer.c, dataxfer.h, ser2net.8: - Added a "short" display, where each port is shown on one line. - - * dataxfer.c, dataxfer.h, readconfig.c, selector.c, selector.h, - ser2net.8, ser2net.c: - Added the ability to reread the configuration file on a SIGHUP. - - * configure.in, ser2net.spec: Moved to version 1.6 - -2002-02-20 Przemyslaw Czerpak ([email protected]), - Corey Minyard <[email protected]> - - * dataxfer.c, dataxfer.h, configure.in, ser2net.c, ser2net.8: - Added UUCP-style locking for ports. - -2002-02-19 Corey Minyard <[email protected]> - - * controller.c, controller.h, dataxfer.c, devcfg.c, ser2net.c, - ser2net.conf, ser2net.8, utils.c utils.h: - Added support for specifying the IP address with the port to - bind to specific interfaces. - - * dataxfer.c: Added counting the input and output bytes. - -2002-02-19 Przemyslaw Czerpak ([email protected]) - - * controller.c, dataxfer.c, devcfg.c, ser2net.c, ser2net.conf, - ser2net.8: - Added support for turning on/off RTS/CTS, XON/XOFF, and LOCAL. - Also added support for raw LP devices. - -2001-10-05 Przemyslaw Czerpak ([email protected]) - - * controller.c, dataxfer.c, devcfg.c, ser2net.init, ser2net.spec: - Added an init, and cleaned up a bunch of type warnings. - - * devcfg.c, ser2net.8, ser2net.conf: Added support for RTS/CTS. - -2001-08-11 Corey Minyard <[email protected]> - - * devcfg.h, devcfg.c, controller.c, dataxfer.c, dataxfer.h, ser2net.8: - Ben Adams sent a patch to control the DTR and RTS lines, I rewrote - it to make a new command to do this (instead of using devconfig, - which didn't really match the devconfig's operation). - - * configure.in, ser2net.spec: Updated to version 1.5 - -2001-07-26 Corey Minyard <[email protected]> - - * devcfg.c - Added CREAD to the cflags so the serial port will - work, patch from Andreas Pfaller. - - * dataxfer.c - Added binary transmission to the list of telnet - opeions, again from Andreas Pfaller. - -2001-07-23 Corey Minyard <[email protected]> - - * devcfg.c, ser2net.8, ser2net.conf - Added a patch from Martin - Boese to add CLOCAL and XON/XOFF support as serial port options. - -2001-07-03 Corey Minyard <[email protected]> - - * Makefile.am, ser2net.1, ser2net.8, ser2net.spec - Moved ser2net - to /usr/sbin, renamed the makefile to have a .8 extension and - put it in /usr/share/man. - - * controller.c - Fixed problems with telnet handling in the - control interface. - - * Updated to version 1.4 - -2001-06-29 Corey Minyard <[email protected]> - - * ser2net.spec - Actually put the changed version number in - the file, set the prefix to '/usr'. - - * configure.in - Added libnsl for Redhat systems, changed - to AC_CHECK_LIB. - - * all - changed to version 1.3. - -2001-06-28 Corey Minyard <[email protected]> - - * dataxfer.c - Added the ability to convert a telnet break - to a serial port break. - - * configure.in - Updated to version 1.3 - - * ser2net.spec - Added this file for RPM building, from Ivan - Francolin Martinez. - - * dataxfer.c - Added a tcp_wrappers implementation, from Ivan - Francolin Martinez. However, some configure work needs to - be done to make it actually work properly. - - * dataxfer.c, controller.c, configure.in, ser2net.1 - Fixed the - tcp_wrappers stuff to work properly, did the config stuff for it, - and added it to the control port as well. - -2001-06-15 Corey Minyard <[email protected]> - - * controller.c - Made sure the monitor port was set to null - when the port exited. - - * ser2net.c, ser2net.1 - Added a "-d" option to send debug - output to the console and modified "-n" to just not detach. - -2001-06-05 Corey Minyard <[email protected]> - - * ser2net.c, controller.c - added a way to query the version from - the command line and from the controller port. - - * controller.c, controller.h, dataxfer.c, dataxfer.h - added - monitoring of data flowing into a port. It's somewhat primitive - yet, but still useful - - * controller.c, dataxfer.c, dataxfer.h - added a way to disconnect - a port from the control port. - -2001-06-04 Corey Minyard <[email protected]> - - * Initial creation. - +ChangeLog is all in git, use that. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/configure new/ser2net-4.6.7/configure --- old/ser2net-4.6.5/configure 2025-05-17 02:05:43.000000000 +0200 +++ new/ser2net-4.6.7/configure 2026-02-06 20:45:20.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for ser2net 4.6.5. +# Generated by GNU Autoconf 2.71 for ser2net 4.6.7. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='ser2net' PACKAGE_TARNAME='ser2net' -PACKAGE_VERSION='4.6.5' -PACKAGE_STRING='ser2net 4.6.5' +PACKAGE_VERSION='4.6.7' +PACKAGE_STRING='ser2net 4.6.7' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1353,7 +1353,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ser2net 4.6.5 to adapt to many kinds of systems. +\`configure' configures ser2net 4.6.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1424,7 +1424,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ser2net 4.6.5:";; + short | recursive ) echo "Configuration of ser2net 4.6.7:";; esac cat <<\_ACEOF @@ -1537,7 +1537,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ser2net configure 4.6.5 +ser2net configure 4.6.7 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1755,7 +1755,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ser2net $as_me 4.6.5, which was +It was created by ser2net $as_me 4.6.7, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3024,7 +3024,7 @@ # Define the identity of the package. PACKAGE='ser2net' - VERSION='4.6.5' + VERSION='4.6.7' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -13815,7 +13815,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ser2net $as_me 4.6.5, which was +This file was extended by ser2net $as_me 4.6.7, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13874,7 +13874,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -ser2net config.status 4.6.5 +ser2net config.status 4.6.7 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/configure.ac new/ser2net-4.6.7/configure.ac --- old/ser2net-4.6.5/configure.ac 2025-05-17 02:01:48.000000000 +0200 +++ new/ser2net-4.6.7/configure.ac 2026-02-06 20:26:22.000000000 +0100 @@ -1,4 +1,4 @@ -AC_INIT([ser2net],[4.6.5],[[email protected]]) +AC_INIT([ser2net],[4.6.7],[[email protected]]) AM_INIT_AUTOMAKE([-Wall]) AC_PROG_CC AM_PROG_AR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/dataxfer.c new/ser2net-4.6.7/dataxfer.c --- old/ser2net-4.6.5/dataxfer.c 2025-05-08 22:28:11.000000000 +0200 +++ new/ser2net-4.6.7/dataxfer.c 2025-06-12 15:00:54.000000000 +0200 @@ -716,6 +716,32 @@ S2N_RTS }; +static const char *s2n_ser_op_to_str(enum s2n_ser_ops op) +{ + switch(op) { + case S2N_BAUD: + return "baud"; + case S2N_DATASIZE: + return "datasize"; + case S2N_PARITY: + return "parity"; + case S2N_STOPBITS: + return "stopbits"; + case S2N_FLOWCONTROL: + return "flowcontrol"; + case S2N_IFLOWCONTROL: + return "iflowcontrol"; + case S2N_BREAK: + return "break"; + case S2N_DTR: + return "dtr"; + case S2N_RTS: + return "rts"; + default: + return "unknown"; + } +} + #ifdef GENSIO_ACONTROL_SER_BAUD static void handle_ser_modemstate(port_info_t *port, net_info_t *netcon) @@ -766,6 +792,19 @@ enum s2n_ser_ops op = (intptr_t) cb_data; net_info_t *netcon; + if (err) { + seout.out(&seout, + "ser_control_set: %s: Error setting %s: %s", + port->name, s2n_ser_op_to_str(op), gensio_err_to_str(err)); + return; + } + + if (!val) { + seout.out(&seout, "ser_control_set: %s: NULL value for %s?", + port->name, s2n_ser_op_to_str(op)); + val = ""; + } + so->lock(port->lock); for_each_connection(port, netcon) { struct gensio *io = netcon->net; @@ -1211,6 +1250,19 @@ enum s2n_ser_ops op = (intptr_t) cb_data; net_info_t *netcon; + if (err) { + seout.out(&seout, + "servensio_val_set: %s: Error setting %s: %s", + port->name, s2n_ser_op_to_str(op), gensio_err_to_str(err)); + return; + } + + if (!val) { + seout.out(&seout, "sergensio_val_set: %s: NULL value for %s?", + port->name, s2n_ser_op_to_str(op)); + val = ""; + } + so->lock(port->lock); for_each_connection(port, netcon) { struct sergensio *rsio; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/port.c new/ser2net-4.6.7/port.c --- old/ser2net-4.6.5/port.c 2025-05-15 14:35:27.000000000 +0200 +++ new/ser2net-4.6.7/port.c 2026-02-06 16:46:49.000000000 +0100 @@ -33,6 +33,7 @@ #include "gbuf.h" #include <gensio/argvutils.h> #include <gensio/gensio_err.h> +#include <gensio/gensio_time.h> struct gensio_lock *ports_lock; port_info_t *ports = NULL; /* Linked list of ports. */ @@ -609,13 +610,11 @@ } static void -accept_read_disabled(struct gensio_accepter *acc, void *cb_data) +accept_read_disabled_nolock(port_info_t *port) { - port_info_t *port = cb_data; net_info_t *netcon; bool some_to_close = false; - so->lock(port->lock); port->shutdown_started = false; /* @@ -634,7 +633,7 @@ gensio_set_read_callback_enable(netcon->net, true); } gensio_set_read_callback_enable(port->io, true); - goto out_unlock; + goto out; } /* After this point we will shut down the port completely. */ @@ -671,7 +670,17 @@ if (!some_to_close) start_shutdown_port_io(port); - out_unlock: + out: + return; +} + +static void +accept_read_disabled(struct gensio_accepter *acc, void *cb_data) +{ + port_info_t *port = cb_data; + + so->lock(port->lock); + accept_read_disabled_nolock(port); so->unlock(port->lock); } @@ -709,16 +718,22 @@ port->shutdown_started = true; - err = gensio_acc_set_accept_callback_enable_cb(port->accepter, false, - accept_read_disabled, port); - /* This is bad, it's an out of memory condition. Abort. */ - assert(err == 0); - for_each_connection(port, netcon) { if (netcon->net) gensio_set_read_callback_enable(netcon->net, false); } gensio_set_read_callback_enable(port->io, false); + + if (port->deleted) { + /* Port is already disabled, just continue. */ + accept_read_disabled_nolock(port); + } else { + err = gensio_acc_set_accept_callback_enable_cb(port->accepter, false, + accept_read_disabled, + port); + assert(err == 0); + } + return 0; } @@ -931,6 +946,17 @@ so->unlock(port->lock); } +volatile unsigned int reload_port_count; + +static void +reload_disable_port(struct gensio_accepter *acc, void *cb_data) +{ + so->lock(ports_lock); + assert(reload_port_count > 0); + reload_port_count--; + so->unlock(ports_lock); +} + void apply_new_ports(struct absout *eout) { @@ -938,31 +964,30 @@ so->lock(ports_lock); /* First turn off all the accepters. */ + reload_port_count = 0; for (curr = ports; curr; curr = curr->next) { - int err; - if (curr->deleted) continue; if (curr->enabled && curr->accepter) { - /* - * This unlock is a little strange, but we don't want to - * do any waiting while holding the ports lock, otherwise - * we might deadlock on a deletion in finish_shutdown_port(). - * This is save as long as curr is not deleted, because curr - * will not go away, though curr->next may change, that - * shouldn't matter. - */ - so->unlock(ports_lock); - err = gensio_acc_set_accept_callback_enable_s(curr->accepter, - false); - /* Errors only happen on out of memory. */ + int err; + + reload_port_count++; + err = gensio_acc_set_accept_callback_enable_cb(curr->accepter, + false, + reload_disable_port, + NULL); assert(err == 0); - so->lock(ports_lock); curr->accepter_stopped = true; } } + while (reload_port_count > 0) { + so->unlock(ports_lock); + gensio_os_funcs_service(so, NULL); + so->lock(ports_lock); + } + /* At this point we can't get any new accepts. */ /* @@ -1024,8 +1049,14 @@ if (new_ports_end == new) new_ports_end = curr; - gensio_acc_disable(curr->accepter); - curr->deleted = true; + if (!curr->deleted) { + /* + * There is a bug in older versions of gensio where + * you can't call gensio_acc_disable() more than once. + */ + gensio_acc_disable(curr->accepter); + curr->deleted = true; + } so->unlock(new->lock); new = curr; break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/port.h new/ser2net-4.6.7/port.h --- old/ser2net-4.6.5/port.h 2025-05-08 22:41:29.000000000 +0200 +++ new/ser2net-4.6.7/port.h 2026-02-06 16:46:49.000000000 +0100 @@ -145,7 +145,7 @@ bool deleted; /* Used to count operations (timer stops) during free. */ - unsigned int free_count; + unsigned int refcount; int timeout; /* The number of seconds to wait without any I/O before diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ser2net-4.6.5/portconfig.c new/ser2net-4.6.7/portconfig.c --- old/ser2net-4.6.5/portconfig.c 2025-05-08 22:57:12.000000000 +0200 +++ new/ser2net-4.6.7/portconfig.c 2026-02-06 16:46:49.000000000 +0100 @@ -270,9 +270,9 @@ static void finish_free_port(port_info_t *port) { - assert(port->free_count > 0); - port->free_count--; - if (port->free_count != 0) { + assert(port->refcount > 0); + port->refcount--; + if (port->refcount != 0) { so->unlock(port->lock); return; } @@ -367,21 +367,20 @@ } so->lock(port->lock); - port->free_count = 1; /* Make sure all the timers are stopped. */ if (port->send_timer) { err = so->stop_timer_with_done(port->send_timer, gen_timer_shutdown_done, port); if (err != GE_TIMEDOUT) - port->free_count++; + port->refcount++; } if (port->timer) { err = so->stop_timer_with_done(port->timer, gen_timer_shutdown_done, port); if (err != GE_TIMEDOUT) - port->free_count++; + port->refcount++; } finish_free_port(port); /* Releases lock */ } @@ -745,6 +744,7 @@ return -1; } memset(new_port, 0, sizeof(*new_port)); + new_port->refcount = 1; new_port->lock = so->alloc_lock(so); if (!new_port->lock) {
