in dbus-java/src/main/java/org/freedesktop/dbus/connections/SASL.java [750:799]
public Command(String s) throws IOException {
String[] ss = s.split(" ");
logger.trace("Creating command from: {}", Arrays.toString(ss));
if (0 == col.compare(ss[0], "OK")) {
command = SaslCommand.OK;
data = ss[1];
} else if (0 == col.compare(ss[0], "AUTH")) {
command = AUTH;
if (ss.length > 1) {
if (0 == col.compare(ss[1], "EXTERNAL")) {
mechs = AUTH_EXTERNAL;
} else if (0 == col.compare(ss[1], "DBUS_COOKIE_SHA1")) {
mechs = AUTH_SHA;
} else if (0 == col.compare(ss[1], "ANONYMOUS")) {
mechs = AUTH_ANON;
}
}
if (ss.length > 2) {
data = ss[2];
}
} else if (0 == col.compare(ss[0], "DATA")) {
command = DATA;
data = ss[1];
} else if (0 == col.compare(ss[0], "REJECTED")) {
command = REJECTED;
for (int i = 1; i < ss.length; i++) {
if (0 == col.compare(ss[i], "EXTERNAL")) {
mechs |= AUTH_EXTERNAL;
} else if (0 == col.compare(ss[i], "DBUS_COOKIE_SHA1")) {
mechs |= AUTH_SHA;
} else if (0 == col.compare(ss[i], "ANONYMOUS")) {
mechs |= AUTH_ANON;
}
}
} else if (0 == col.compare(ss[0], "BEGIN")) {
command = BEGIN;
} else if (0 == col.compare(ss[0], "CANCEL")) {
command = CANCEL;
} else if (0 == col.compare(ss[0], "ERROR")) {
command = ERROR;
data = ss[1];
} else if (0 == col.compare(ss[0], "NEGOTIATE_UNIX_FD")) {
command = NEGOTIATE_UNIX_FD;
} else if (0 == col.compare(ss[0], "AGREE_UNIX_FD")) {
command = AGREE_UNIX_FD;
} else {
throw new IOException("Invalid Command " + ss[0]);
}
logger.trace("Created command: {}", this);
}