Ticket #9122: win_iocp_socket_service_base.ipp.patch

File win_iocp_socket_service_base.ipp.patch, 3.1 KB (added by smueller@…, 9 years ago)

Patch for SVN head of win_iocp_socket_service_base.ipp

  • win_iocp_socket_service_base.ipp

     
    351351    iocp_service_.on_completion(op, boost::asio::error::bad_descriptor);
    352352  else
    353353  {
    354     DWORD bytes_transferred = 0;
    355354    int result = ::WSASend(impl.socket_, buffers,
    356         static_cast<DWORD>(buffer_count), &bytes_transferred, flags, op, 0);
     355        static_cast<DWORD>(buffer_count), NULL, flags, op, 0);
    357356    DWORD last_error = ::WSAGetLastError();
    358357    if (last_error == ERROR_PORT_UNREACHABLE)
    359358      last_error = WSAECONNREFUSED;
    360359    if (result != 0 && last_error != WSA_IO_PENDING)
    361       iocp_service_.on_completion(op, last_error, bytes_transferred);
     360      iocp_service_.on_completion(op, last_error, 0);
    362361    else
    363362      iocp_service_.on_pending(op);
    364363  }
     
    377376    iocp_service_.on_completion(op, boost::asio::error::bad_descriptor);
    378377  else
    379378  {
    380     DWORD bytes_transferred = 0;
    381379    int result = ::WSASendTo(impl.socket_, buffers,
    382380        static_cast<DWORD>(buffer_count),
    383         &bytes_transferred, flags, addr, addrlen, op, 0);
     381        NULL, flags, addr, addrlen, op, 0);
    384382    DWORD last_error = ::WSAGetLastError();
    385383    if (last_error == ERROR_PORT_UNREACHABLE)
    386384      last_error = WSAECONNREFUSED;
    387385    if (result != 0 && last_error != WSA_IO_PENDING)
    388       iocp_service_.on_completion(op, last_error, bytes_transferred);
     386      iocp_service_.on_completion(op, last_error, 0);
    389387    else
    390388      iocp_service_.on_pending(op);
    391389  }
     
    405403    iocp_service_.on_completion(op, boost::asio::error::bad_descriptor);
    406404  else
    407405  {
    408     DWORD bytes_transferred = 0;
    409406    DWORD recv_flags = flags;
    410407    int result = ::WSARecv(impl.socket_, buffers,
    411408        static_cast<DWORD>(buffer_count),
    412         &bytes_transferred, &recv_flags, op, 0);
     409        NULL, &recv_flags, op, 0);
    413410    DWORD last_error = ::WSAGetLastError();
    414411    if (last_error == ERROR_NETNAME_DELETED)
    415412      last_error = WSAECONNRESET;
    416413    else if (last_error == ERROR_PORT_UNREACHABLE)
    417414      last_error = WSAECONNREFUSED;
    418415    if (result != 0 && last_error != WSA_IO_PENDING)
    419       iocp_service_.on_completion(op, last_error, bytes_transferred);
     416      iocp_service_.on_completion(op, last_error, 0);
    420417    else
    421418      iocp_service_.on_pending(op);
    422419  }
     
    454451    iocp_service_.on_completion(op, boost::asio::error::bad_descriptor);
    455452  else
    456453  {
    457     DWORD bytes_transferred = 0;
    458454    DWORD recv_flags = flags;
    459455    int result = ::WSARecvFrom(impl.socket_, buffers,
    460456        static_cast<DWORD>(buffer_count),
    461         &bytes_transferred, &recv_flags, addr, addrlen, op, 0);
     457        NULL, &recv_flags, addr, addrlen, op, 0);
    462458    DWORD last_error = ::WSAGetLastError();
    463459    if (last_error == ERROR_PORT_UNREACHABLE)
    464460      last_error = WSAECONNREFUSED;
    465461    if (result != 0 && last_error != WSA_IO_PENDING)
    466       iocp_service_.on_completion(op, last_error, bytes_transferred);
     462      iocp_service_.on_completion(op, last_error, 0);
    467463    else
    468464      iocp_service_.on_pending(op);
    469465  }