package DBProxy.MySQL.Protocol;
import java.util.ArrayList;
public class Com_Changeuser extends Packet {
public String user = "";
public String authResponse = "";
public String schema = "";
public long characterSet = 0;
public long capabilityFlags = 0;
public void setCapabilityFlag(long flag) {
this.capabilityFlags |= flag;
}
public void removeCapabilityFlag(long flag) {
this.capabilityFlags &= ~flag;
}
public void toggleCapabilityFlag(long flag) {
this.capabilityFlags ^= flag;
}
public boolean hasCapabilityFlag(long flag) {
return ((this.capabilityFlags & flag) == flag);
}
public ArrayList<byte[]> getPayload() {
ArrayList<byte[]> payload = new ArrayList<byte[]>();
payload.add(Proto.build_byte(Flags.COM_CHANGE_USER));
payload.add(Proto.build_null_str(this.user));
if (!this.hasCapabilityFlag(Flags.CLIENT_SECURE_CONNECTION))
payload.add(Proto.build_lenenc_str(this.authResponse));
else
payload.add(Proto.build_null_str(this.authResponse));
payload.add(Proto.build_null_str(this.schema));
payload.add(Proto.build_fixed_int(2, this.characterSet));
return payload;
}
public static Com_Changeuser loadFromPacket(byte[] packet) {
Com_Changeuser obj = new Com_Changeuser();
Proto proto = new Proto(packet, 3);
obj.sequenceId = proto.get_fixed_int(1);
proto.get_filler(1);
obj.user = proto.get_null_str();
if (!obj.hasCapabilityFlag(Flags.CLIENT_SECURE_CONNECTION))
obj.authResponse = proto.get_lenenc_str();
else
obj.authResponse = proto.get_null_str();
obj.schema = proto.get_null_str();
obj.characterSet = proto.get_fixed_int(2);
return obj;
}
}