Hi Andrew,
I was referring to the epicsSocketDestroy() in makeSocket() rather than the one in verify(). I've checked on a windows machine and I can reproduce Lewis' behaviour - if I add a print of SOCKERRNO after a failed bind() in makeSocket() I see an error code of 10048, but printing it out again after the call to epicsSocketDestroy () in makeSocket() gives 0
Regards,
Freddie
> -----Original Message-----
> From: Johnson, Andrew N. [mailto:[email protected]]
> Sent: 10 February 2015 16:29
> To: Akeroyd, Freddie (STFC,RAL,ISIS)
> Cc: [email protected]; [email protected]
> Subject: Re: CA Repeater: bind test err was "The operation completed
> successfully. "
>
> Hi Freddie,
>
> The condition test in the verify() method either calls epicsSocketDestroy() or
> it examines the SOCKERRNO value, so I don't think your explanation quite
> works. I can't explain what's going on with Lewis' machine right now, but I'm
> not a Windows networking expert at all. Anybody else got any ideas?
>
> - Andrew
>
>
> On Feb 10, 2015, at 4:29 AM, [email protected] wrote:
>
> > Hi Lewis,
> >
> > I think the bind() in makeSocket() is failing (as expected) but the
> subsequent successful call to epicsSocketDestroy() in the same function is
> clearing the error code, hence when the check is made in
> repeaterClient::verify () rather than SOCK_EADDRINUSE it is finding 0. One
> way to fix it might be to change makeSocket() to make a copy of any socket
> error code and then return that (or 0 on success) rather than true/false
> >
> > Regards,
> >
> > Freddie
> >
> >> -----Original Message-----
> >> From: [email protected] [mailto:tech-talk-
> >> [email protected]] On Behalf Of J. Lewis Muir
> >> Sent: 09 February 2015 22:13
> >> To: EPICS Tech-Talk
> >> Subject: CA Repeater: bind test err was "The operation completed
> >> successfully. "
> >>
> >> Hello.
> >>
> >> When I run caRepeater.exe from a command prompt in Windows 7 and
> then
> >> run camonitor.exe in another command prompt for a PV (hosted on an
> IOC
> >> on a different machine) of type DBF_LONG that is updating at about 10
> >> Hz, the caRepeater.exe process prints the following message on the
> >> console:
> >>
> >> ===
> >> CA Repeater: bind test err was "The operation completed successfully. "
> >> ===
> >>
> >> The camonitor.exe program seems to continue to run correctly.
> >>
> >> Does anyone know how to fix this?
> >>
> >> I looked briefly at src/ca/repeater.cpp where this error is printed,
> >> and I changed the fprintf call to also print SOCKERRNO using the format
> >> "%d", and it prints 0.
> >>
> >> This is using win32-x86 EPICS Base 3.14.12.4 (with the Known Problems
> >> patches applied) on Windows 7.
> >>
> >> Thank you!
> >>
> >> Lewis
> >
- Replies:
- Re: CA Repeater: bind test err was "The operation completed successfully. " Andrew Johnson
- References:
- CA Repeater: bind test err was "The operation completed successfully. " J. Lewis Muir
- RE: CA Repeater: bind test err was "The operation completed successfully. " freddie.akeroyd
- Re: CA Repeater: bind test err was "The operation completed successfully. " Johnson, Andrew N.
- Navigate by Date:
- Prev:
Re: CA Repeater: bind test err was "The operation completed successfully. " Johnson, Andrew N.
- Next:
Re: medm3.1.8 linker problem Bob Soliday
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
<2015>
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: CA Repeater: bind test err was "The operation completed successfully. " Johnson, Andrew N.
- Next:
Re: CA Repeater: bind test err was "The operation completed successfully. " Andrew Johnson
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
<2015>
2016
2017
2018
2019
2020
2021
2022
2023
2024
|