package org.krakenapps.pcap.decoder.smb; import java.util.HashMap; import java.util.Map; import org.krakenapps.pcap.decoder.smb.rr.TransactionCommand; import org.krakenapps.pcap.decoder.smb.transparser.CallNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.PeekNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.QueryNmpipeInfoParser; import org.krakenapps.pcap.decoder.smb.transparser.RawReadNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.RawWriteNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.ReadNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.TransParser; import org.krakenapps.pcap.decoder.smb.transparser.TransactNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.WaitNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.WriteNmpipeParser; import org.krakenapps.pcap.decoder.smb.transparser.setNmpipeStateParser; public class TransSubcommandMapper { private Map<TransactionCommand, TransParser> parsers; public TransSubcommandMapper() { parsers = new HashMap<TransactionCommand, TransParser>(); map(TransactionCommand.TRANS_SET_NMPIPE_STATE , new setNmpipeStateParser()); map(TransactionCommand.TRANS_CALL_NMPIPE, new CallNmpipeParser()); //map(TransactionCommand.TRANS_MAILSLOT_WRITE, new CallNmpipeParser()); // now not use this //TRANS_MAILSLOT_WRITE(0x0001), map(TransactionCommand.TRANS_RAW_READ_NMPIPE , new RawReadNmpipeParser() ); map(TransactionCommand.TRANS_QUERY_NMPIPE_INFO, new QueryNmpipeInfoParser()); map(TransactionCommand.TRANS_PEEK_NMPIPE, new PeekNmpipeParser()); map(TransactionCommand.TRANS_TRANSACT_NMPIPE , new TransactNmpipeParser()); map(TransactionCommand.TRANS_RAW_WRITE_NMPIPE , new RawWriteNmpipeParser()); map(TransactionCommand.TRANS_READ_NMPIPE , new ReadNmpipeParser()); map(TransactionCommand.TRANS_WRITE_NMPIPE, new WriteNmpipeParser()); map(TransactionCommand.TRANS_WAIT_NMPIPE , new WaitNmpipeParser() ); map(TransactionCommand.TRANS_CALL_NMPIPE , new CallNmpipeParser()); } private void map(TransactionCommand command, TransParser parser) { parsers.put(command, parser); } public TransParser getParser(TransactionCommand code){ // System.out.println("this command = " + code); return parsers.get(code); } }