PMAP: allow to ask for tcp/udp port, dont assume users only ever want the tcp port
parent
345422a2e3
commit
5c6b1176c2
|
@ -324,7 +324,7 @@ void pmap_getport1_cb(struct rpc_context *rpc, int status, void *data, void *pri
|
|||
}
|
||||
|
||||
printf("Send getport request asking for MOUNT port\n");
|
||||
if (rpc_pmap_getport_async(rpc, MOUNT_PROGRAM, MOUNT_V3, pmap_getport2_cb, client) != 0) {
|
||||
if (rpc_pmap_getport_async(rpc, MOUNT_PROGRAM, MOUNT_V3, IPPROTO_TCP, pmap_getport2_cb, client) != 0) {
|
||||
printf("Failed to send getport request\n");
|
||||
exit(10);
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ void pmap_null_cb(struct rpc_context *rpc, int status, void *data, void *private
|
|||
|
||||
printf("Got reply from server for PORTMAP/NULL procedure.\n");
|
||||
printf("Send getport request asking for MOUNT port\n");
|
||||
if (rpc_pmap_getport_async(rpc, RQUOTA_PROGRAM, RQUOTA_V1, pmap_getport1_cb, client) != 0) {
|
||||
if (rpc_pmap_getport_async(rpc, RQUOTA_PROGRAM, RQUOTA_V1, IPPROTO_TCP, pmap_getport1_cb, client) != 0) {
|
||||
printf("Failed to send getport request\n");
|
||||
exit(10);
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ int rpc_pmap_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data);
|
|||
* RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
|
||||
* data is NULL.
|
||||
*/
|
||||
int rpc_pmap_getport_async(struct rpc_context *rpc, int program, int version, rpc_cb cb, void *private_data);
|
||||
int rpc_pmap_getport_async(struct rpc_context *rpc, int program, int version, int protocol, rpc_cb cb, void *private_data);
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -459,7 +459,7 @@ static void nfs_mount_2_cb(struct rpc_context *rpc, int status, void *command_da
|
|||
return;
|
||||
}
|
||||
|
||||
if (rpc_pmap_getport_async(rpc, MOUNT_PROGRAM, MOUNT_V3, nfs_mount_3_cb, private_data) != 0) {
|
||||
if (rpc_pmap_getport_async(rpc, MOUNT_PROGRAM, MOUNT_V3, IPPROTO_TCP, nfs_mount_3_cb, private_data) != 0) {
|
||||
data->cb(-ENOMEM, nfs, command_data, data->private_data);
|
||||
free_nfs_cb_data(data);
|
||||
return;
|
||||
|
@ -3443,7 +3443,7 @@ static void mount_export_2_cb(struct rpc_context *rpc, int status, void *command
|
|||
return;
|
||||
}
|
||||
|
||||
if (rpc_pmap_getport_async(rpc, MOUNT_PROGRAM, MOUNT_V3, mount_export_3_cb, private_data) != 0) {
|
||||
if (rpc_pmap_getport_async(rpc, MOUNT_PROGRAM, MOUNT_V3, IPPROTO_TCP, mount_export_3_cb, private_data) != 0) {
|
||||
data->cb(rpc, -ENOMEM, command_data, data->private_data);
|
||||
free_mount_cb_data(data);
|
||||
return;
|
||||
|
|
|
@ -46,7 +46,7 @@ int rpc_pmap_null_async(struct rpc_context *rpc, rpc_cb cb, void *private_data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int rpc_pmap_getport_async(struct rpc_context *rpc, int program, int version, rpc_cb cb, void *private_data)
|
||||
int rpc_pmap_getport_async(struct rpc_context *rpc, int program, int version, int protocol, rpc_cb cb, void *private_data)
|
||||
{
|
||||
struct rpc_pdu *pdu;
|
||||
struct pmap_mapping m;
|
||||
|
@ -59,7 +59,7 @@ int rpc_pmap_getport_async(struct rpc_context *rpc, int program, int version, rp
|
|||
|
||||
m.prog = program;
|
||||
m.vers = version;
|
||||
m.prot = IPPROTO_TCP;
|
||||
m.prot = protocol;
|
||||
m.port = 0;
|
||||
if (xdr_pmap_mapping(&pdu->xdr, &m) == 0) {
|
||||
rpc_set_error(rpc, "XDR error: Failed to encode data for portmap/getport call");
|
||||
|
|
Loading…
Reference in New Issue