/* * Copyright 2011 Future Systems * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.krakenapps.pcap.decoder.rpce.tcppacket.association; import org.krakenapps.pcap.decoder.rpce.RpcTcpHeader; import org.krakenapps.pcap.decoder.rpce.structure.AuthVerifierCo; import org.krakenapps.pcap.decoder.rpce.structure.PResultList; import org.krakenapps.pcap.decoder.rpce.structure.PortAny; import org.krakenapps.pcap.util.Buffer; import org.krakenapps.pcap.util.ByteOrderConverter; public class TcpBindAckPDU implements TcpPDUInterface { private short maxXmitFrag; private short maxRecvFrag; private int assocGroupId; private PortAny secAddr; private byte[] pad2; private PResultList pResultList; private AuthVerifierCo authVerifier; public TcpBindAckPDU() { secAddr = new PortAny(); pResultList = new PResultList(); authVerifier = new AuthVerifierCo(); } @Override public void parse(Buffer b, RpcTcpHeader h) { int length = 0; maxXmitFrag = ByteOrderConverter.swap(b.getShort()); maxRecvFrag = ByteOrderConverter.swap(b.getShort()); assocGroupId = ByteOrderConverter.swap(b.getInt()); secAddr.parse(b); secAddr.parse(b); length = length + secAddr.getLength(); length = length % 4; if (length != 0) { pad2 = new byte[length]; b.gets(pad2); } pResultList.parse(b); if(h.getAuthLength() != 0){ authVerifier.parse(b); } } public short getMaxXmitFrag() { return maxXmitFrag; } public void setMaxXmitFrag(short maxXmitFrag) { this.maxXmitFrag = maxXmitFrag; } public short getMaxRecvFrag() { return maxRecvFrag; } public void setMaxRecvFrag(short maxRecvFrag) { this.maxRecvFrag = maxRecvFrag; } public int getAssocGroupId() { return assocGroupId; } public void setAssocGroupId(int assocGroupId) { this.assocGroupId = assocGroupId; } public PortAny getSecAddr() { return secAddr; } public void setSecAddr(PortAny secAddr) { this.secAddr = secAddr; } public byte[] getPad2() { return pad2; } public void setPad2(byte[] pad2) { this.pad2 = pad2; } public PResultList getpResultList() { return pResultList; } public void setpResultList(PResultList pResultList) { this.pResultList = pResultList; } public AuthVerifierCo getAuthVerifier() { return authVerifier; } public void setAuthVerifier(AuthVerifierCo authVerifier) { this.authVerifier = authVerifier; } }