Soap bind always tries IPV6_V6ONLY on bind and fails with " Protocol not available"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
gsoap (Ubuntu) |
Fix Released
|
Undecided
|
Mattias Ellert | ||
Oneiric |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Based on various bug reports, it seems like this problem was fixed upstream in 2.7.*. I'm investigating why it emerged here.
Here is the strace.
setsockopt(3, SOL_IPV6, IPV6_V6ONLY, [0], 4) = -1 ENOPROTOOPT (Protocol not available)
dup(2) = 4
fcntl(4, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(4, {st_mode=
mmap(NULL, 4096, PROT_READ|
lseek(4, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "soap bind: Protocol not availabl"..., 34soap bind: Protocol not available
ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: gsoap 2.8.3-1
ProcVersionSign
Uname: Linux 3.0.0-12-generic x86_64
NonfreeKernelMo
ApportVersion: 1.23-0ubuntu3
Architecture: amd64
Date: Mon Oct 17 10:54:53 2011
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Release amd64 (20110427.1)
ProcEnviron:
LC_CTYPE=
PATH=(custom, user)
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: gsoap
UpgradeStatus: Upgraded to oneiric on 2011-08-31 (47 days ago)
Changed in gsoap (Ubuntu): | |
assignee: | nobody → Mattias Ellert (mattias-ellert-fysast) |
Changed in gsoap (Ubuntu): | |
status: | New → In Progress |
Changed in gsoap (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in gsoap (Ubuntu Oneiric): | |
status: | New → Confirmed |
Prepending ::ffff: to your IPv4 address fixes the problem.
I tried the upstream debian packages and found the same effect.
Gsoap 2.8.3 can be compiled with an option to disable to setsockopt to IPV6_V6ONLY. I'm not yes sure if this would be a better idea given the default response.