[libtirpc] fix for async rpc + krb5p
don't release the lock if this is krb5p when the receiver finds nothing in the socket during the recv
This commit is contained in:
parent
0d02adba8e
commit
a173395b5a
1 changed files with 6 additions and 1 deletions
|
|
@ -514,7 +514,9 @@ clnt_vc_call(cl, proc, xdr_args, args_ptr, xdr_results, results_ptr, timeout)
|
||||||
#else
|
#else
|
||||||
/* XXX Need Windows signal/event stuff XXX */
|
/* XXX Need Windows signal/event stuff XXX */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
acquire_fd_lock(ct->ct_fd);
|
acquire_fd_lock(ct->ct_fd);
|
||||||
|
|
||||||
if (!ct->ct_waitset) {
|
if (!ct->ct_waitset) {
|
||||||
/* If time is not within limits, we ignore it. */
|
/* If time is not within limits, we ignore it. */
|
||||||
if (time_not_ok(&timeout) == FALSE)
|
if (time_not_ok(&timeout) == FALSE)
|
||||||
|
|
@ -577,7 +579,10 @@ call_again:
|
||||||
ct->reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
|
ct->reply_msg.acpted_rply.ar_results.proc = (xdrproc_t)xdr_void;
|
||||||
if (!ct->use_stored_reply_msg) {
|
if (!ct->use_stored_reply_msg) {
|
||||||
if (!xdrrec_skiprecord(xdrs)) {
|
if (!xdrrec_skiprecord(xdrs)) {
|
||||||
release_fd_lock(ct->ct_fd, mask);
|
#ifdef NO_CB_4_KRB5P
|
||||||
|
if (cl->cb_thread != INVALID_HANDLE_VALUE)
|
||||||
|
#endif
|
||||||
|
release_fd_lock(ct->ct_fd, mask);
|
||||||
SwitchToThread();
|
SwitchToThread();
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue