package org.krakenapps.pcap.decoder.smb;
import java.util.HashMap;
import java.util.Map;
import org.krakenapps.pcap.decoder.smb.comparser.CheckDirectoryParser;
import org.krakenapps.pcap.decoder.smb.comparser.CloseAndTreeDiscParser;
import org.krakenapps.pcap.decoder.smb.comparser.CloseParser;
import org.krakenapps.pcap.decoder.smb.comparser.ClosePrintFileParser;
import org.krakenapps.pcap.decoder.smb.comparser.CopyParser;
import org.krakenapps.pcap.decoder.smb.comparser.CreateDirectoryParser;
import org.krakenapps.pcap.decoder.smb.comparser.CreateNewParser;
import org.krakenapps.pcap.decoder.smb.comparser.CreateParser;
import org.krakenapps.pcap.decoder.smb.comparser.CreateTemporaryParser;
import org.krakenapps.pcap.decoder.smb.comparser.DeleteDirectoryParser;
import org.krakenapps.pcap.decoder.smb.comparser.DeleteParser;
import org.krakenapps.pcap.decoder.smb.comparser.EchoParser;
import org.krakenapps.pcap.decoder.smb.comparser.FindClose2Parser;
import org.krakenapps.pcap.decoder.smb.comparser.FindCloseParser;
import org.krakenapps.pcap.decoder.smb.comparser.FindNotifyCloseParser;
import org.krakenapps.pcap.decoder.smb.comparser.FindParser;
import org.krakenapps.pcap.decoder.smb.comparser.FindUniqueParser;
import org.krakenapps.pcap.decoder.smb.comparser.FlushParser;
import org.krakenapps.pcap.decoder.smb.comparser.GetPrintQueueParser;
import org.krakenapps.pcap.decoder.smb.comparser.IOCTLParser;
import org.krakenapps.pcap.decoder.smb.comparser.IOCTLSecondaryParser;
import org.krakenapps.pcap.decoder.smb.comparser.InvalidParser;
import org.krakenapps.pcap.decoder.smb.comparser.LockAndReadParser;
import org.krakenapps.pcap.decoder.smb.comparser.LockByteRangeParser;
import org.krakenapps.pcap.decoder.smb.comparser.LockingANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.LogoffANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.MoveParser;
import org.krakenapps.pcap.decoder.smb.comparser.NegotiateParser;
import org.krakenapps.pcap.decoder.smb.comparser.NewFileSizeParser;
import org.krakenapps.pcap.decoder.smb.comparser.NoANDXCommandParser;
import org.krakenapps.pcap.decoder.smb.comparser.NtCancelParser;
import org.krakenapps.pcap.decoder.smb.comparser.NtCreateANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.NtTransactParser;
import org.krakenapps.pcap.decoder.smb.comparser.NtTransactSecondaryParser;
import org.krakenapps.pcap.decoder.smb.comparser.OpenANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.OpenParser;
import org.krakenapps.pcap.decoder.smb.comparser.OpenPrintFileParser;
import org.krakenapps.pcap.decoder.smb.comparser.ProcessExitParser;
import org.krakenapps.pcap.decoder.smb.comparser.QueryInfo2Parser;
import org.krakenapps.pcap.decoder.smb.comparser.QueryInfoDiskParser;
import org.krakenapps.pcap.decoder.smb.comparser.QueryInfoParser;
import org.krakenapps.pcap.decoder.smb.comparser.QueryServerParser;
import org.krakenapps.pcap.decoder.smb.comparser.ReadANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.ReadBulkParser;
import org.krakenapps.pcap.decoder.smb.comparser.ReadMPXParser;
import org.krakenapps.pcap.decoder.smb.comparser.ReadMPXSecondaryParser;
import org.krakenapps.pcap.decoder.smb.comparser.ReadParser;
import org.krakenapps.pcap.decoder.smb.comparser.ReadRawParser;
import org.krakenapps.pcap.decoder.smb.comparser.RenameParser;
import org.krakenapps.pcap.decoder.smb.comparser.SearchParser;
import org.krakenapps.pcap.decoder.smb.comparser.SecurityPackageANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.SeekParser;
import org.krakenapps.pcap.decoder.smb.comparser.SessionSetupANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.SetInfo2Parser;
import org.krakenapps.pcap.decoder.smb.comparser.SetInfoParser;
import org.krakenapps.pcap.decoder.smb.comparser.SmbDataParser;
import org.krakenapps.pcap.decoder.smb.comparser.Transaction2Parser;
import org.krakenapps.pcap.decoder.smb.comparser.TransactionParser;
import org.krakenapps.pcap.decoder.smb.comparser.TransactionSecondaryParser;
import org.krakenapps.pcap.decoder.smb.comparser.TreeConnectANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.TreeConnectParser;
import org.krakenapps.pcap.decoder.smb.comparser.TreeDisconnectParser;
import org.krakenapps.pcap.decoder.smb.comparser.UnlockByteRangeParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteANDXParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteAndCloseParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteAndUnlockParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteBulkDataParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteCompleteParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteMPXParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteMPXSecondaryParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteParser;
import org.krakenapps.pcap.decoder.smb.comparser.WritePrintFileParser;
import org.krakenapps.pcap.decoder.smb.comparser.WriteRawParser;
import org.krakenapps.pcap.decoder.smb.rr.SmbCommand;
public class ComCommandMapper {
private Map<SmbCommand , SmbDataParser> parsers;
ComCommandMapper()
{
parsers = new HashMap<SmbCommand, SmbDataParser>();
map(SmbCommand.SMB_COM_DELETE_DIRECTORY, new DeleteDirectoryParser());
map(SmbCommand.SMB_COM_OPEN, new OpenParser());
map(SmbCommand.SMB_COM_CREATE, new CreateParser());
map(SmbCommand.SMB_COM_CLOSE, new CloseParser());
map(SmbCommand.SMB_COM_FLUSH, new FlushParser());
map(SmbCommand.SMB_COM_DELETE, new DeleteParser());
map(SmbCommand.SMB_COM_RENAME, new RenameParser());
map(SmbCommand.SMB_COM_QUERY_INFORMATION, new QueryInfoParser());
map(SmbCommand.SMB_COM_READ, new ReadParser());
map(SmbCommand.SMB_COM_WRITE, new WriteParser());
map(SmbCommand.SMB_COM_LOCK_BYTE_RANGE, new LockByteRangeParser());
map(SmbCommand.SMB_COM_CREATE_TEMPORARY, new CreateTemporaryParser());
map(SmbCommand.SMB_COM_CREATE_NEW, new CreateNewParser());
map(SmbCommand.SMB_COM_CREATE_DIRECTORY, new CreateDirectoryParser());
map(SmbCommand.SMB_COM_PROCESS_EXIT, new ProcessExitParser());
map(SmbCommand.SMB_COM_SEEK, new SeekParser());
map(SmbCommand.SMB_COM_LOCK_AND_READ, new LockAndReadParser());
map(SmbCommand.SMB_COM_WRITE_AND_UNLOCK, new WriteAndUnlockParser());
map(SmbCommand.SMB_COM_READ_RAW, new ReadRawParser());
map(SmbCommand.SMB_COM_READ_MPX, new ReadMPXParser());
map(SmbCommand.SMB_COM_READ_MPX_SECONDARY, new ReadMPXSecondaryParser());
map(SmbCommand.SMB_COM_WRITE_RAW, new WriteRawParser());
map(SmbCommand.SMB_COM_WRITE_MPX, new WriteMPXParser());
map(SmbCommand.SMB_COM_WRITE_MPX_SECONDARY,
new WriteMPXSecondaryParser());
map(SmbCommand.SMB_COM_UNLOCK_BYTE_RANGE , new UnlockByteRangeParser());
map(SmbCommand.SMB_COM_WRITE_COMPLETE, new WriteCompleteParser());
map(SmbCommand.SMB_COM_QUERY_SERVER, new QueryServerParser());
map(SmbCommand.SMB_COM_SET_INFORMATION2, new SetInfo2Parser());
map(SmbCommand.SMB_COM_QUERY_INFORMATION2, new QueryInfo2Parser());
map(SmbCommand.SMB_COM_LOCKING_ANDX, new LockingANDXParser());
map(SmbCommand.SMB_COM_TRANSACTION, new TransactionParser());
map(SmbCommand.SMB_COM_TRANSACTION_SECONDARY,
new TransactionSecondaryParser());
map(SmbCommand.SMB_COM_IOCTL, new IOCTLParser());
map(SmbCommand.SMB_COM_IOCTL_SECONDARY, new IOCTLSecondaryParser());
map(SmbCommand.SMB_COM_COPY, new CopyParser());
map(SmbCommand.SMB_COM_MOVE, new MoveParser());
map(SmbCommand.SMB_COM_ECHO, new EchoParser());
map(SmbCommand.SMB_COM_WRITE_AND_CLOSE, new WriteAndCloseParser());
map(SmbCommand.SMB_COM_OPEN_ANDX, new OpenANDXParser());
map(SmbCommand.SMB_COM_READ_ANDX, new ReadANDXParser());
map(SmbCommand.SMB_COM_WRITE_ANDX, new WriteANDXParser());
map(SmbCommand.SMB_COM_NEW_FILE_SIZE, new NewFileSizeParser());
map(SmbCommand.SMB_COM_CLOSE_AND_TREE_DISC,
new CloseAndTreeDiscParser());
map(SmbCommand.SMB_COM_TRANSACTION2, new Transaction2Parser());
map(SmbCommand.SMB_COM_TRANSACTION2_SECONDARY, new Transaction2Parser());
// map(SmbCommand.SMB_COM_TRANSACTION2_SECONDARY,
// new Transaction2SecondaryParser());
map(SmbCommand.SMB_COM_FIND_CLOSE2, new FindClose2Parser());
map(SmbCommand.SMB_COM_FIND_NOTIFY_CLOSE, new FindNotifyCloseParser());
map(SmbCommand.SMB_COM_TREE_CONNECT, new TreeConnectParser());
map(SmbCommand.SMB_COM_TREE_DISCONNECT, new TreeDisconnectParser());
map(SmbCommand.SMB_COM_NEGOTIATE, new NegotiateParser());
map(SmbCommand.SMB_COM_SESSION_SETUP_ANDX, new SessionSetupANDXParser());
map(SmbCommand.SMB_COM_LOGOFF_ANDX, new LogoffANDXParser());
map(SmbCommand.SMB_COM_TREE_CONNECT_ANDX, new TreeConnectANDXParser());
map(SmbCommand.SMB_COM_SECURITY_PACKAGE_ANDX,
new SecurityPackageANDXParser());
map(SmbCommand.SMB_COM_QUERY_INFORMATION_DISK,
new QueryInfoDiskParser());
map(SmbCommand.SMB_COM_SEARCH, new SearchParser());
map(SmbCommand.SMB_COM_FIND, new FindParser());
map(SmbCommand.SMB_COM_FIND_UNIQUE, new FindUniqueParser());
map(SmbCommand.SMB_COM_FIND_CLOSE, new FindCloseParser());
map(SmbCommand.SMB_COM_NT_TRANSACT_SECONDARY,
new NtTransactSecondaryParser());
map(SmbCommand.SMB_COM_NT_TRANSACT, new NtTransactParser());
map(SmbCommand.SMB_COM_NT_CREATE_ANDX, new NtCreateANDXParser());
map(SmbCommand.SMB_COM_NT_CANCEL, new NtCancelParser());
map(SmbCommand.SMB_COM_NT_RENAME, new RenameParser());
map(SmbCommand.SMB_COM_OPEN_PRINT_FILE, new OpenPrintFileParser());
map(SmbCommand.SMB_COM_WRITE_PRINT_FILE, new WritePrintFileParser());
map(SmbCommand.SMB_COM_CLOSE_PRINT_FILE, new ClosePrintFileParser());
map(SmbCommand.SMB_COM_GET_PRINT_QUEUE, new GetPrintQueueParser());
map(SmbCommand.SMB_COM_READ_BULK, new ReadBulkParser());
// map(SmbCommand.SMB_COM_WRITE_BULK, new WriteBulkParser());
map(SmbCommand.SMB_COM_WIRTE_BULK_DATA, new WriteBulkDataParser());
map(SmbCommand.SMB_COM_INVALID, new InvalidParser());
map(SmbCommand.SMB_COM_NO_ANDX_COMMAND, new NoANDXCommandParser());
map(SmbCommand.SMB_COM_SET_INFORMATION , new SetInfoParser());
map(SmbCommand.SMB_COM_CHECK_DIRECTORY , new CheckDirectoryParser());
}
private void map(SmbCommand command, SmbDataParser parser) {
parsers.put(command, parser);
}
public SmbDataParser getComParser(SmbCommand command)
{
return parsers.get(command);
}
}