diff options
author | Atin Mukherjee <amukherj@redhat.com> | 2016-09-08 11:33:59 +0530 |
---|---|---|
committer | Shyamsundar Ranganathan <srangana@redhat.com> | 2016-09-19 06:51:09 -0700 |
commit | 12ae3c448c8435decdff27643d5785698ac19dff (patch) | |
tree | b95c96a17448039066c7399ebc7859f306016296 /rpc/xdr/src/xdr-generic.c | |
parent | e9b39527d5dcfba95c4c52a522c8ce1f4512ac21 (diff) |
socket: pollerr event shouldn't trigger socket_connnect_finish
If connect fails with any other error than EINPROGRESS we cannot get
the error status using getsockopt (... SO_ERROR ... ). Hence we need
to remember the state of connect and take appropriate action in the
event_handler for the same.
As an added note, a event can come where poll_err is HUP and we have
poll_in as well (i.e some status was written to the socket), so for
such cases we need to finish the connect, process the data and then
the poll_err as is the case in the current code.
Special thanks to Kaushal M & Raghavendra G for figuring out the issue.
Change-Id: Ic45ad59ff8ab1d0a9d2cab2c924ad940b9d38528
BUG: 1372356
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Signed-off-by: Shyam <srangana@redhat.com>
Reviewed-on: http://review.gluster.org/15440
Smoke: Gluster Build System <jenkins@build.gluster.org>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Diffstat (limited to 'rpc/xdr/src/xdr-generic.c')
0 files changed, 0 insertions, 0 deletions