encodeCall function
Build a complete ONC RPC CALL message (no record marker — caller wraps via wrapRecord).
Implementation
Uint8List encodeCall({
required int xid,
required int program,
required int version,
required int procedure,
required List<int> args,
}) {
final w = XdrWriter()
..writeUint32(xid)
..writeUint32(0) // msg_type = CALL
..writeUint32(2) // rpcvers = 2
..writeUint32(program)
..writeUint32(version)
..writeUint32(procedure)
// cred = AUTH_NONE + zero-length opaque
..writeUint32(AuthFlavor.authNone)
..writeUint32(0)
// verf = AUTH_NONE + zero-length opaque
..writeUint32(AuthFlavor.authNone)
..writeUint32(0);
// Args encoded by the caller — already in `args`.
final body = w.takeBytes();
final out = Uint8List(body.length + args.length);
out.setRange(0, body.length, body);
out.setRange(body.length, body.length + args.length, args);
return out;
}