Menu

Serial port to network proxy / News: Recent posts

Gensio 3.0.0 Released

This release is a major release, but the only major thing is all the deprecated sergensio code has been removed. ser2net, the rust and go interfaces have all had that removed for a while and hopefully any other users have removed it. sergensio, in the end, just didn't make any sense.

There are also some minor bug fixes, some documentation improvements, some minor improvements, and a bug fix around ax25 where it was reporting the close of the last channel too soon.

Posted by Corey Minyard 2025-09-13

gensio 2.8.15, ser2net 4.6.5 released

This release adds the ability to set the timeout waiting for output to clear. The default has not changed, but you can set a drain_timeout option on many gensios that will set the time to wait before dropping data on the floor and shutting down the connection. This will help in situations where a remote end crashes or a network partition happens.

This will be the last 2.8.x release with new features. It's going to maintenance, and I will be starting a 3.0.x series. This will remove the sergensio code that has been deprecated for a long time.... read more

Posted by Corey Minyard 2025-05-17

gensio 2.8.14 released

Thanks to Pavel Kudrna, who discovered the problem and pointed out a fix after I botched a first try, the modem control handling for Windows will now work correctly. When I did the original work, I suppose I misread (or perhaps didn't read and assumed) how the DTR and RTS line handling actually worked.

This release only affects Windows.

Posted by Corey Minyard 2025-04-08

gensio 2.8.13 released

Changes for this release:

  • Receiving serial breaks is now supported. That way the sending of breaks can be tested.

  • Windows devices using the "dev" gensio will not be set up as serial ports, even if Windows says they are serial ports. Apparently some devices do this.

  • Commands sent to windows via gtlssh should work now. It was not using the right flag to pass the command string.

  • MSYS builds and sort of works. I did this so gtlssync would work and I could do file transfers. It's not altogether working, see the README.... read more

Posted by Corey Minyard 2025-04-05

gensio 2.8.12 and ser2net 4.6.4 released

For gensio changes for this release:

  • Receiving serial breaks is now supported. That way the sending of breaks can be tested.

  • Windows devices using the "dev" gensio will not be set up as serial ports, even if Windows says they are serial ports. Apparently some devices do this.

  • Commands sent to windows via gtlssh should work now. It was not using the right flag to pass the command string.... read more

Posted by Corey Minyard 2025-02-10

gensio 2.8.11 and ser2net 4.6.3 released

Lots of bug little fixes. You should upgrade if you can.

Posted by Corey Minyard 2025-01-09

Gensio 2.8.7 Released

This release fixes lots of little issues. The biggest issue it fixes is gtlsshd was not working on MacOS because gtlsshd had a bug that interacted with the kevent changes. I got Coverity scan and LLVM's scan-build working on Windows and amazingly it only found two small issues in the Windows-specific code. I also spent some time getting fixing some issues on FreeBSD.

So tons of little fixes. You should probably upgrade if you can.

Posted by Corey Minyard 2024-09-07

gensio 2.8.6 released

I spent some quality time with gensio on various platforms, except for Linux, and fixed a number of issues and added some features:

  • Lots of fixes to unix sockets.
  • The addition of unix stream sockets to Windows.
  • Unix datagram and seqpacket sockets are now supported. seqpacket is like the normal stream sockets, just with packet support. datagram works like UDP, sort of. See the docs for details.
  • For older systems and newer systems whose pselect() operation is non-atomic (BSDs, MacOS) there were race conditions and some issues. Most should all be fixed now. There is still a race around global signals, but I'm not sure there's much I can do about it.
  • However, For MacOS and later BSDs, kevent() is now supported. It still has the broken pselect() issue, as kevent doesn't even take a sigmask parameters, but it has another way to handle signals, so using kevent() should solve all the race isues around signals on those platforms.
  • External threads doing gensio calls will now have their signal masks fixed up to work properly with gensio. This hopefully won't cause issues, but it was definitely an issue if it was done, as sometimes happens in go programs.... read more
Posted by Corey Minyard 2024-08-31

gensio 2.8.5 released

gensio 2.8.4 was never announced, it was for fixing some issues on MacOS. Unfortunately, one of those fixes broke installation in some cases.

Anyway, this release has some minor fixes beyond that. You should upgrade if you could, but it's not critical.

Posted by Corey Minyard 2024-06-01

ser2net 4.6.2 released

This release removes some debugging cruft that got left in, fixes some doc typos, and fixes an issue with the admin interface.

-corey

Posted by Corey Minyard 2024-04-24

gensio-2.8.3, ser2net-4.6.1 released

It's been a while since a release, I have lots of little fixes queued and some user-reported issues fixed, so it's worth a release now.

There is one new feature in gensio, an AGWPE server for Ham Radio AX25. If you don't know what this is, you probably don't care. Along with that are some extensions to the ax25 gensio to support it and some bug fixes for minor things.

I did have to rework the telnet rfc2217 modemstate, linestate, and purge handling again. This time I think I have it correct, and this time the changes are backwards compatible.... read more

Posted by Corey Minyard 2024-02-03

gensio-2.8.2 released

I messed up some initialization code that cause some breakage in some cases. This release simply fixes that issue. Upgrading is recommended. Sorry for the mistake.

-corey

Posted by Corey Minyard 2023-12-01

gensio-2.8.1 released

Rust testing shook out some Windows bugs. There was also a generic use after free that somehow escaped all the testing that had been done. I think it was only happening if using a telnet rfc2217 gensio without using the serialdev part, and that's how it escaped notice for so long, but it's fixed now.

Also some minor doc updates.

I'd strongly suggest updating, especially if you are using Windows.

-corey

Posted by Corey Minyard 2023-11-29

gensio-2.8.0, ser2net-4.6.0 released

Some minor m4 updates for OpenWRT and a few other small build issues. You can see the -rc released for the updates.

Nobody had reported any issues, so everything looks good.

And as I mentioned before, there is a rust binding at https://github.com/cminyard/rust-gensio for people to try. It's still a work in progress, and I'd love comments.

-corey

Posted by Corey Minyard 2023-11-24

gensio-2.7.8, ser2net-4.6.0-rc1, and gensio-2.8.0-rc2 released. Plus Rust!

gensio-2.7.8 fixes a 2 bugs:
* A bug in telnet that can let data leak through when read is disabled at startup if more data comes in during the initial negotiation.
* hangup-when-done basically didn't work. Fixes are done for Unix and Windows.

ser2net-4.6.0-rc1 is a test release for a rework of the YAML parsing to allow a fully YAML compliant ser2net file. The anchors and refs ("\&" and "*") were not exactly legal as used, and you can only have one node of a specific name in a YAML file. The new format is different, but not hugely different, and can be fully parsed by normal YAML parsers. I expect both formats will be supported in the future. It's auto-detected and documented.... read more

Posted by Corey Minyard 2023-11-16

gensio 2.7.7, ser2net 4.5.1 released

A bug was reported where if you had a serial device on the accepter (this is strange, but useful in some circumstances) the system would go into an event loop. ser2net and gensio changes fix that. It also allows LED brightness to be set. Other than that, no major ser2net changes.

For gensio, I've modified the the library to deprecate the default OS handler. It turns out that it complicates things more than it helps, it was really just a bad idea. There has been some work on OS handler allocation and making sure multiple OS handlers can be used at the same time. Everything was mostly ok, just minor tweaks.... read more

Posted by Corey Minyard 2023-11-07

gensio 2.7.5, ser2net 4.5.0 released

I've been working on getting everything working smoothly on Windows, and I think I'm there.

gensio 2.7.5 reworks the config files for gtlssh on windows to be exeutable-relative, like most things are on windows. So the config directories move to the location of the executable plus ../etc/gtlssh. There is a windows installer config file for Inno, and I will be doing a binary release for Windows, but that will be on github.... read more

Posted by Corey Minyard 2023-08-27

gensio 2.7.4 released

This release cleans up a ton of things to make MacOS support work well. Including adding portaudio for sound support (which also works on Linux and probably works on Windows, but not recommended).

It also fixes various other little build and documentation issues.

There are some intermediate releases testing things on MacOS with homebrew, but 2.7.4 is the next official release. (I should have done -rc releases, live and learn.)... read more

Posted by Corey Minyard 2023-08-20

gensio 2.7.0, 2.6.8 released

I have full MacOS and Windows support working. All tests available for the platform pass. I thing everything for 2.7.x has been handled, so this is the first official release.

You can look at the 2.7.0-rc1 release info for more details on what has changed since 2.6.

As part of the final work on this, I traced down a bug I had been having on Windows for a long time. It turned out to be a general bug in the base code, not something Windows specific.... read more

Posted by Corey Minyard 2023-08-08

gensio 2.7.0-rc1, ser2net 4.4.0 released

I've been working for a while on MacOS and Windows support in gensio. This release contains:
* Support for MacOS, all tests pass.
* Improved Windows support. MinGW32 should work now, too.
* Support for flock() based locking on serial ports. UUCP locking is still there,and SVR4 style locking is added, but the locking type can be independently enabled and disabled, and both can be used at the same time.
* MDNS support in MacOS and Windows (and DNS-SD on Linux). There were some minor semantic changes in the interface because the Windows native MDNS and DNS-SD work a little differently than Avahi. But nothing major. The C++ interface for allocating MDNS services and watches has changed, adjustments may need to be made to code that uses those.
* Improvements in Windows. Going through why tests are failing and fixing things. Some tests still fail, but I don't think it's something that would affect most users.
* An added ISSUES file with the issues (mostly on Windows) documented. Also a TODO file for things I'm looking at doing.
It's a new minor version because of all the new support, and an rc because a lot of things have been touched, especially in MDNS. I don't expect any issues, though, and I expect a final release will come out soon.... read more

Posted by Corey Minyard 2023-07-27

gensio 2.6.7, ser2net 4.3.13 released

This version of ser2net
* Has some license template updates and spelling fixes
* Adds the ability for admin connections to be advertised through MDNS
* A systemd unit file example is added

For gensio:
* Fixes a few issues with pkg-config
* I ran coverity on Windows. It found a bunch of little things, but nothing of any real significance. But the little things are fixed.
* A "dev" gensio is added for devices that are not serial ports. For instance, line-printers with two-way data transfer can be used.
* You can now use "sdev" as shorthand for "serialdev".
* A systemd unit file example is added
* Other typos and little fixes.... read more

Posted by Corey Minyard 2023-07-07

gensio 2.6.6 released

This release fixes a lot of little issues. I won't document most of them, but there were minor security issues found:

  • The setgroup() function for ptys and stdio was not being called if running the child under a new user and the new user had no groups. This means the child woudl be in any supplemental groups the parent user was in. This is really only theoretical, in practice you are running as root to do this, and root never has supplemental users. But it is an issue, so it's fixed.
  • A random time was added to the certauth challenge response. This improves resistance to timing attacks, and is a fairly standard thing to do. I'm not sure it's such a big deal, the data being transferred is encrypted, but maybe you could do timing attacks even on encrypted data. Well, you probably can.
  • A timer was added to ssl and certauth; if the connection doesn't complete in time (60 seconds by default) the connection will be terminated. This keeps someone from opening connections part-way and leaving them around. Again, not sure it's a big deal, as this is running over TCP generally and you have to have that connection up, too, but at least it will help if you have a protocol issue to keep the connection from getting stuck.... read more
Posted by Corey Minyard 2023-06-16

gensio 2.6.3, ser2net 4.3.12 released

This release adds the ability for gensios to report errors as they parse the gensio string. All the gensios are updated to provide useful information about what is wrong. This should reduce guessing, especially with complicated gensio strings.

If you are using afskmdm, this release adds the ability to control a transmitter directly using a serial port or a CM108 GPIO. No more having to run rigctld. Read the docs in gensio.5 about caveats on Windows.... read more

Posted by Corey Minyard 2023-04-14

gensio 2.6.2 released

This release fixes a number of packaging issues I introduced with recent changes.

There are a few small fixes to afskmdm, most around adding a FIR filter for lower sample rates and fixing some compile issues.

No need to upgrade unless you need it.

-corey

Posted by Corey Minyard 2023-01-12

ser2net 4.3.11 released

A bug that, in very rare circumstances, could cause ser2net to go into an infinite loop was discovered. I was able to trace it down to an incorrect usage of gensio (something that changed in gensio at the beginning and I never fixed in ser2net). This really only showed up because the user was using rate limiting with multiple threads, increasing the odds of this showing up, and it still only showed up occasionally in a busy setup.... read more

Posted by Corey Minyard 2022-12-21
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.