Fix IPv6 connectivity
ClosedPublic

Authored by Kanedias on May 29 2018, 9:07 PM.

Details

Summary

IPv6 is supported by LibVNCServer but for compatibility reasons its
socket is backed by another file descriptor.

This commit adds tracking IPv6 listen socket in the same way we now
track IPv4 one.

Test Plan

Tested by connecting through ::1 and fe80:: addresses

Diff Detail

Repository
R437 Desktop Sharing
Branch
add-ipv6
Lint
No Linters Available
Unit
No Unit Test Coverage
Kanedias requested review of this revision.May 29 2018, 9:07 PM
Kanedias created this revision.
Kanedias edited the test plan for this revision. (Show Details)May 29 2018, 9:11 PM
Kanedias added reviewers: Plasma, KDE Applications.
aacid added a subscriber: aacid.May 29 2018, 9:41 PM

Do you know if there's a minimum version of libvncserver we should require so that it has that listen6Sock?

Kanedias added a comment.EditedMay 29 2018, 9:48 PM

@aacid well, it was added 6 years ago :D

See this commit. I don't actually know package rules for this lib, to me it seems the very first release of it already contained the required field.

apol added a subscriber: apol.May 29 2018, 11:27 PM
apol added inline comments.
krfb/rfbserver.cpp
34–35

They are deleted over time, make it a QPointer maybe?

156–160

Indentaion is off, if is missing one level. A set of braces would help too.

This revision was not accepted when it landed; it landed in state Needs Review.May 30 2018, 6:45 AM
This revision was automatically updated to reflect the committed changes.
Kanedias reopened this revision.May 30 2018, 6:47 AM
Kanedias updated this revision to Diff 35161.May 30 2018, 6:47 AM
  • Review comments: redo notifiers as QPointers
Kanedias marked 2 inline comments as done.May 30 2018, 6:53 AM
Kanedias added inline comments.
krfb/rfbserver.cpp
34–35

Not sure, they are tested just in that one place where they are getting deletedLater(), passing it several times is extremely unlikely and brings no harm. Done anyway.

156–160

How did I miss this, thanks for pointing out. Done.

alexeymin accepted this revision as: alexeymin.May 30 2018, 7:59 AM
alexeymin added a subscriber: alexeymin.

Compiles, works. Tested over network from another PC, IPv4. Which VNC client supports IPv6..?

This revision is now accepted and ready to land.May 30 2018, 7:59 AM
Kanedias marked 2 inline comments as done.May 30 2018, 8:15 AM

@alexeymin I checked with KRDC. Just remember to put the address in [ ]

Ok, will land this once I'm home

@aacid well, it was added 6 years ago :D

See this commit. I don't actually know package rules for this lib, to me it seems the very first release of it already contained the required field.

The commit is available in any version >=0.9.9. According https://repology.org/metapackage/libvncserver/versions , all supported OSs/distributions should have that version of a newer one, apart from CentOS 6, but that's not relevant for this change.

Kanedias closed this revision.May 30 2018, 5:59 PM