if ((_rpcfdtype == 0) || (_rpcfdtype == SOCK_DGRAM)) {
static SVCXPRT *last_transp = NULL;
- if (_rpcfdtype == 0 && defport != 0) {
- if (last_transp && last_transp->xp_port == defport) {
+ if (_rpcfdtype == 0) {
+ if (last_transp
+ && (!defport || defport == last_transp->xp_port)) {
transp = last_transp;
goto udp_transport;
}
if ((_rpcfdtype == 0) || (_rpcfdtype == SOCK_STREAM)) {
static SVCXPRT *last_transp = NULL;
- if (_rpcfdtype == 0 && defport != 0) {
- if (last_transp && last_transp->xp_port == defport) {
+ if (_rpcfdtype == 0) {
+ if (last_transp
+ && (!defport || defport == last_transp->xp_port)) {
transp = last_transp;
goto tcp_transport;
}