12393, 12420, 12432, 12445, 12449, 12453, 12454, 12460, 12469, 12489,
12509, 12510, 12511, 12518, 12527, 12541, 12545, 12551, 12582, 12583,
12587, 12597, 12601, 12611, 12625, 12626, 12631, 12650, 12653, 12655,
- 12660, 12671, 12681, 12685, 12711, 12713, 12714, 12717, 12723, 12724,
- 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792, 12795,
- 12811, 12813, 12814
+ 12660, 12671, 12681, 12684, 12685, 12711, 12713, 12714, 12717, 12723,
+ 12724, 12734, 12738, 12746, 12766, 12775, 12777, 12782, 12788, 12792,
+ 12795, 12811, 12813, 12814
* The RPC implementation in libc is obsoleted. Old programs keep working
but new programs cannot be linked with the routines in libc anymore.
ns, ansp, ansp2, nansp2, resplen2);
if (n < 0)
return (-1);
- if (n == 0)
+ if (n == 0 && (buf2 == NULL || resplen2 == 0))
goto next_ns;
} else {
/* Use datagrams. */
ansp2, nansp2, resplen2);
if (n < 0)
return (-1);
- if (n == 0)
+ if (n == 0 && (buf2 == NULL || resplen2 == 0))
goto next_ns;
if (v_circuit)
// XXX Check whether both requests failed or
(*thisresplenp > *thisanssizp)
? *thisanssizp : *thisresplenp);
- if (recvresp1 || (buf2 != NULL && recvresp2))
+ if (recvresp1 || (buf2 != NULL && recvresp2)) {
+ *resplen2 = 0;
return resplen;
+ }
if (buf2 != NULL)
{
+ /* No data from the first reply. */
+ resplen = 0;
/* We are waiting for a possible second reply. */
if (hp->id == anhp->id)
recvresp1 = 1;
goto err_out;
}
else {
- /* poll should not have returned > 0 in this case. */
+ /* poll should not have returned > 0 in this case. */
abort ();
}
}