bugGNUstep - Bugs: bug #11055, DO do not work on Windows 2003...

Group
 
 

bug #11055: DO do not work on Windows 2003 Server

Submitter:  Willem Rein Oudshoorn <wim>
Submitted:  Fri 19 Nov 2004 12:43:13 PM UTC
   
 
Category:  Base/Foundation Severity:  4 - Important
Item Group:  Bug Status:  Fixed
Privacy:  Public Assigned to:  None
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Fri 11 Nov 2005 03:06:58 PM UTC, comment #2: 

Well, the restoration of the platform independent code worked
for me in xp, so I added your fix to cvs.

Richard Frith-Macdonald <CaS>
Group Member
Fri 19 Nov 2004 12:44:36 PM UTC, comment #1: 

Sorry, haven't figured out how to attach multiple files
in one go.

Willem Rein Oudshoorn <wim>
Group Member
Fri 19 Nov 2004 12:43:13 PM UTC, original submission:  

Under windows 2003 server it distributed objects do not work.
The reason is that apparently the winsock semantics have
changed slightly.

The following happens.
1 - Application registers connection with gdomap
2 - Another application inquires about the connection
3 - gdomap checks if the connection is still alive
    by trying to bind a socket on the same address
    as the original connection. 

    Now it used to be that this fails, (so
    gdomap knows the connection is still valid)
    but on windows 2003 server the binding succeed,
    so gdomap thinks the connection is gone and
    will remove the connection from its connection map.

After looking at the gdomap code there was a curious
comment just above the aforementioned check.

  /* FIXME: This must not be INADDR_ANY on Win,
     otherwise the system will try to bind on any of
     the local addresses (including 127.0.0.1), which
     works. - bjoern */

     sa.sin_addr.s_addr = addr[0].s_addr;

After removing this MINGW specific hack everything seems
to work fine.   However I assume bjoern added
this for a reasion, so I very hesitant to apply this fix.

If anyone can shed some light on this, please go ahead.

Oh, the attached program gso2.c will demonstrate this
behaviour.

1 - compile with:
     gcc -o gso2 gso2.c -lwsock32

2 - Run in one command prompt:
     gso2 localhost

3 - Run in another comamnd prompt:
     gso2 localhost

The second gso2 invocation will tell on windows2000
that it can not bind the socket, but on windows2003 server
it will bind to the socket.

Also I attach the patch that removes the MINGW code
and seems to fix the problem.

Wim Oudshoorn.

Wim Oudshoorn.

Willem Rein Oudshoorn <wim>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #2034:  gso2.c added by wim (1KiB - application/octet-stream - file that demonstrates binding behaviour)
file #2033:  gdomap.patch added by wim (1KiB - application/octet-stream - Patch removing MINGW specific code)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Follow 4 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2005-11-11 CaS StatusNone Fixed
    Open/ClosedOpen Closed
2004-11-19 wim Attached File- Added gso2.c, #1896
2004-11-19 wim Attached File- Added gdomap.patch, #1895

Back to the top

Powered by Savane 3.13-758e.
Corresponding source code