> Could it be, that this commit removed the functionality that we need for Windows ?
Yes, that is the problem. These core-talk threads discuss it.
https://epics.anl.gov/core-talk/2020/msg01064.php
https://epics.anl.gov/core-talk/2020/msg01071.php
> Does `git revert db6e7c7a22b73f70a8b93e2` help ?
The patch I posted basically reverts that commit. But it is not quite that simple because base 7.0.4 changes the EPICS-specific way that __declspec(dllimport)/export is specified in base. It no longer epicsShareFunc.
Mark
________________________________
From: Torsten Bögershausen <torsten.bogershausen at ess.eu>
Sent: Saturday, June 20, 2020 2:03 AM
To: Mark Rivers; 'tech-talk'
Subject: Re: Serious problem with base 7.0.4 on Windows
Could it be, that this commit removed the functionality that we need for
Windows ?
commit db6e7c7a22b73f70a8b93e2aa4b6fa505e0218a6
Author: Michael Davidsaver <mdavidsaver at gmail.com>
Date: Wed Feb 5 10:30:58 2020 -0800
use one osdSockAddrReuse impl for all targets
drop win32 specialization of osdSockAddrReuse
After reading
<https://docs.microsoft.com/en-us/windows/win32/winsock/using-so-reuseaddr-and-so-exclusiveaddruse>
it seems clear that there a different understandings what
SO_REUSEADDR should do, compared UNIX - Windows.
Does `git revert db6e7c7a22b73f70a8b93e2` help ?
On 19/06/20 22:40, Mark Rivers via Tech-talk wrote:
> Folks,
>
> I just want to give a heads-up that I have found a serious problem in
> base 7.0.4 on Windows. Running a single IOC on a computer works fine.
> However, additional IOCs started on the same machine cannot be reached
> with Channel Access.
>
> I assume there will be a patch release soon. Meanwhile this patch
> (actually a new file) will fix the problem.
>
> corvette:local/epics/base-7.0.4>git diff R7.0.4 modules/libcom/
>
> diff --git a/modules/libcom/src/osi/os/WIN32/osdSockAddrReuse.cpp
> b/modules/libcom/src/osi/os/WIN32/osdSockAddrReuse.cpp
>
> new file mode 100644
>
> index 0000000..cc13605
>
> --- /dev/null
>
> +++ b/modules/libcom/src/osi/os/WIN32/osdSockAddrReuse.cpp
>
> @@ -0,0 +1,44 @@
>
> +
>
> +/*************************************************************************\
>
> +* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
>
> +* National Laboratory.
>
> +* Copyright (c) 2002 The Regents of the University of California, as
>
> +* Operator of Los Alamos National Laboratory.
>
> +* EPICS BASE Versions 3.13.7
>
> +* and higher are distributed subject to a Software License Agreement found
>
> +* in file LICENSE that is included with this distribution.
>
> +\*************************************************************************/
>
> +
>
> +/*
>
> + * Author: Jeff Hill
>
> + */
>
> +
>
> +#define epicsExportSharedSymbols
>
> +#include "osiSock.h"
>
> +#include "errlog.h"
>
> +
>
> +/*
>
> + * Note: WINSOCK appears to assign a different functionality for
>
> + * SO_REUSEADDR compared to other OS. With WINSOCK SO_REUSEADDR indicates
>
> + * that simultaneously servers can bind to the same TCP port on the
> same host!
>
> + * Also, servers are always enabled to reuse a port immediately after
>
> + * they exit ( even if SO_REUSEADDR isnt set ).
>
> + */
>
> +LIBCOM_API void epicsStdCall
>
> + epicsSocketEnableAddressReuseDuringTimeWaitState ( SOCKET s )
>
> +{
>
> +}
>
> +
>
> +LIBCOM_API void epicsStdCall
>
> + epicsSocketEnableAddressUseForDatagramFanout ( SOCKET s )
>
> +{
>
> + int yes = true;
>
> + int status;
>
> + status = setsockopt ( s, SOL_SOCKET, SO_REUSEADDR,
>
> + (char *) & yes, sizeof ( yes ) );
>
> + if ( status < 0 ) {
>
> + errlogPrintf (
>
> + "epicsSocketEnablePortUseForDatagramFanout: "
>
> + "unable to set SO_REUSEADDR?\n");
>
> + }
>
> +}
>
> Mark
>
- Replies:
- Re: Serious problem with base 7.0.4 on Windows Michael Davidsaver via Tech-talk
- References:
- Serious problem with base 7.0.4 on Windows Mark Rivers via Tech-talk
- Re: Serious problem with base 7.0.4 on Windows Torsten Bögershausen via Tech-talk
- Navigate by Date:
- Prev:
Re: Serious problem with base 7.0.4 on Windows Torsten Bögershausen via Tech-talk
- Next:
Re: Serious problem with base 7.0.4 on Windows Michael Davidsaver via Tech-talk
- 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: Serious problem with base 7.0.4 on Windows Torsten Bögershausen via Tech-talk
- Next:
Re: Serious problem with base 7.0.4 on Windows Michael Davidsaver via Tech-talk
- 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
|