[Mono-bugs] [Bug 494275] New: send zero-sized buffer to Socket doesn't send empty tcp packet

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Apr 13 05:44:47 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=494275


           Summary: send zero-sized buffer to Socket doesn't send empty
                    tcp packet
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.2.x
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: System
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: vsevolodp at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8)
Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)

when i try to check connection like this

            bool blockingState = Socket.Blocking;
            try
            {
                byte[] tmp = new byte[1];

                Socket.Blocking = false;
                Socket.Send(tmp, 0, SocketFlags.None);
            }
            catch (SocketException e)
            {
                // 10035 == WSAEWOULDBLOCK
                if (!e.NativeErrorCode.Equals(10035))
                    throw;
            }
            finally
            {
                Socket.Blocking = blockingState;
            }

it doesn't send empty TCP packet. so I can't check if connection is alive.
ms framework does and ms advise to use this technique to check connection

Reproducible: Always

Steps to Reproduce:
1. connect client socket to server socket
2. kill server process with connected socket
3. try to check connection from client side with code from details
Actual Results:  
client doesn't send empty tcp packet

Expected Results:  
client should send empty tcp packet and report problems if any

see \mcs\class\System\System.Net.Sockets\Socket.cs
method
internal int Send_nochecks (byte [] buf, int offset, int size, SocketFlags
flags, out SocketError error) 
code:
            if (size == 0) {
                error = SocketError.Success;
                return 0;
            }

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list