HADOOP-9806. Merging r1509347 from trunk
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1509427 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
054dd3a029
commit
bc6a1d96eb
|
@ -36,6 +36,9 @@ Release 2.3.0 - UNRELEASED
|
||||||
HADOOP-9582. Non-existent file to "hadoop fs -conf" doesn't throw error
|
HADOOP-9582. Non-existent file to "hadoop fs -conf" doesn't throw error
|
||||||
(Ashwin Shankar via jlowe)
|
(Ashwin Shankar via jlowe)
|
||||||
|
|
||||||
|
HADOOP-9806 PortmapInterface should check if the procedure is out-of-range
|
||||||
|
(brandonli)
|
||||||
|
|
||||||
Release 2.1.1-beta - UNRELEASED
|
Release 2.1.1-beta - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -45,6 +45,9 @@ public interface PortmapInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Procedure fromValue(int value) {
|
public static Procedure fromValue(int value) {
|
||||||
|
if (value < 0 || value >= values().length) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return values()[value];
|
return values()[value];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,29 +131,22 @@ public class RpcProgramPortmap extends RpcProgram implements PortmapInterface {
|
||||||
@Override
|
@Override
|
||||||
public XDR handleInternal(RpcCall rpcCall, XDR in, XDR out,
|
public XDR handleInternal(RpcCall rpcCall, XDR in, XDR out,
|
||||||
InetAddress client, Channel channel) {
|
InetAddress client, Channel channel) {
|
||||||
Procedure procedure = Procedure.fromValue(rpcCall.getProcedure());
|
final Procedure portmapProc = Procedure.fromValue(rpcCall.getProcedure());
|
||||||
int xid = rpcCall.getXid();
|
int xid = rpcCall.getXid();
|
||||||
switch (procedure) {
|
if (portmapProc == Procedure.PMAPPROC_NULL) {
|
||||||
case PMAPPROC_NULL:
|
|
||||||
out = nullOp(xid, in, out);
|
out = nullOp(xid, in, out);
|
||||||
break;
|
} else if (portmapProc == Procedure.PMAPPROC_SET) {
|
||||||
case PMAPPROC_SET:
|
|
||||||
out = set(xid, in, out);
|
out = set(xid, in, out);
|
||||||
break;
|
} else if (portmapProc == Procedure.PMAPPROC_UNSET) {
|
||||||
case PMAPPROC_UNSET:
|
|
||||||
out = unset(xid, in, out);
|
out = unset(xid, in, out);
|
||||||
break;
|
} else if (portmapProc == Procedure.PMAPPROC_DUMP) {
|
||||||
case PMAPPROC_DUMP:
|
|
||||||
out = dump(xid, in, out);
|
out = dump(xid, in, out);
|
||||||
break;
|
} else if (portmapProc == Procedure.PMAPPROC_GETPORT) {
|
||||||
case PMAPPROC_GETPORT:
|
|
||||||
out = getport(xid, in, out);
|
out = getport(xid, in, out);
|
||||||
break;
|
} else if (portmapProc == Procedure.PMAPPROC_GETVERSADDR) {
|
||||||
case PMAPPROC_GETVERSADDR:
|
|
||||||
out = getport(xid, in, out);
|
out = getport(xid, in, out);
|
||||||
break;
|
} else {
|
||||||
default:
|
LOG.info("PortmapHandler unknown rpc procedure=" + portmapProc);
|
||||||
LOG.info("PortmapHandler unknown rpc procedure=" + procedure);
|
|
||||||
RpcAcceptedReply.voidReply(out, xid,
|
RpcAcceptedReply.voidReply(out, xid,
|
||||||
RpcAcceptedReply.AcceptState.PROC_UNAVAIL);
|
RpcAcceptedReply.AcceptState.PROC_UNAVAIL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue