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

 
 

You are not allowed to post comments on this tracker with your current authentication level.

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

Submitted by:  Willem Rein Oudshoorn <wim>
Submitted on:  Fri 19 Nov 2004 12:43:13 PM UTC  
 
Category: Base/FoundationSeverity: 4 - Important
Item Group: BugStatus: Fixed
Privacy: PublicAssigned to: None
Open/Closed: Closed

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>
Project 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>
Project 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>
Project Member

 

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

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follow 4 latest changes.

Date Changed By Updated Field Previous Value => Replaced By
Fri 11 Nov 2005 03:06:58 PM UTCCaSStatusNone=>Fixed
  Open/ClosedOpen=>Closed
Fri 19 Nov 2004 12:44:36 PM UTCwimAttached File-=>Added gso2.c, #1896
Fri 19 Nov 2004 12:43:13 PM UTCwimAttached File-=>Added gdomap.patch, #1895

Back to the top


Powered by Savane 3.1-cleanup1