MySQL.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package de.tudarmstadt.informatik.hostage.logging.formatter.protocol;
  2. import de.tudarmstadt.informatik.hostage.commons.HelperUtils;
  3. /**
  4. * MySQL log view formatter.
  5. *
  6. * @author Wulf Pfeiffer
  7. */
  8. public class MySQL extends ProtocolFormatter {
  9. @Override
  10. public String format(String packet) {
  11. byte[] bytes = HelperUtils.hexStringToBytes(packet);
  12. String command = "Command: " + getCommand(bytes) + "\n";
  13. String content = "Content: " + HelperUtils.byteToStr(bytes) + "\n";
  14. return command + content;
  15. }
  16. /**
  17. * Checks a packet for its command code and returns the name of this
  18. * command.
  19. *
  20. * @param bytes
  21. * to check.
  22. * @return name of the command.
  23. */
  24. private String getCommand(byte[] bytes) {
  25. // if packet number is 1 server started conversation so it must be login
  26. if (bytes.length < 5)
  27. return "";
  28. if (bytes[3] == 0x01)
  29. return "Login request";
  30. // else check for command code
  31. switch (bytes[4]) {
  32. case 0x00:
  33. return "COM_SLEEP";
  34. case 0x01:
  35. return "COM_QUIT";
  36. case 0x02:
  37. return "COM_INIT_DB";
  38. case 0x03:
  39. return "COM_QUERY";
  40. case 0x04:
  41. return "COM_FIELD_LIST";
  42. case 0x05:
  43. return "COM_CREATE_DB";
  44. case 0x06:
  45. return "COM_DROP_DB";
  46. case 0x07:
  47. return "COM_REFRESH";
  48. case 0x08:
  49. return "COM_SHUTDOWN";
  50. case 0x09:
  51. return "COM_STATISTICS";
  52. case 0x0a:
  53. return "COM_PROCESS_INFO";
  54. case 0x0b:
  55. return "COM_CONNECT";
  56. case 0x0c:
  57. return "COM_PROCESS_KILL";
  58. case 0x0d:
  59. return "COM_DEBUG";
  60. case 0x0e:
  61. return "COM_PING";
  62. case 0x0f:
  63. return "COM_TIME";
  64. case 0x10:
  65. return "COM_DELAYED_INSERT";
  66. case 0x11:
  67. return "COM_CHANGE_USER";
  68. case 0x12:
  69. return "COM_BINLOG_DUMP";
  70. case 0x13:
  71. return "COM_TABLE_DUMP";
  72. case 0x14:
  73. return "COM_CONNECT_OUT";
  74. case 0x15:
  75. return "COM_REGISTER_SLAVE";
  76. case 0x16:
  77. return "COM_STMT_PREPARE";
  78. case 0x17:
  79. return "COM_STMT_EXECUTE";
  80. case 0x18:
  81. return "COM_STMT_SEND_LONG_DATA";
  82. case 0x19:
  83. return "COM_STMT_CLOSE";
  84. case 0x1a:
  85. return "COM_STMT_RESET";
  86. case 0x1b:
  87. return "COM_SET_OPTION";
  88. case 0x1c:
  89. return "COM_STMT_FETCH";
  90. case 0x1d:
  91. return "COM_DAEMON";
  92. case 0x1e:
  93. return "COM_BINLOG_DUMP_GTID";
  94. default:
  95. return "unkown command";
  96. }
  97. }
  98. }