Logger.java 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package de.tudarmstadt.informatik.hostage.logging;
  2. import android.app.IntentService;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Parcelable;
  6. import de.tudarmstadt.informatik.hostage.logging.MessageRecord.TYPE;
  7. import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper;
  8. public class Logger extends IntentService {
  9. private static final String ACTION_LOG_MESSAGE = "de.tudarmstadt.informatik.hostage.action.LOG_MESSAGE";
  10. private static final String ACTION_LOG_ATTACK = "de.tudarmstadt.informatik.hostage.action.LOG_ATTACK";
  11. private static final String ACTION_LOG_NETWORK = "de.tudarmstadt.informatik.hostage.action.LOG_NETWORK";
  12. private static final String ACTION_LOG_PORTSCAN = "de.tudarmstadt.informatik.hostage.action.LOG_PORTSCAN";
  13. private static final String EXTRA_RECORD = "de.tudarmstadt.informatik.hostage.extra.RECORD";
  14. private static final String EXTRA_TIMESTAMP = "de.tudarmstadt.informatik.hostage.extra.TIMESTAMP";
  15. public static void log(Context context, MessageRecord record) {
  16. Intent intent = new Intent(context, Logger.class);
  17. intent.setAction(ACTION_LOG_MESSAGE);
  18. intent.putExtra(EXTRA_RECORD, (Parcelable)record);
  19. context.startService(intent);
  20. }
  21. public static void log(Context context, AttackRecord record) {
  22. Intent intent = new Intent(context, Logger.class);
  23. intent.setAction(ACTION_LOG_ATTACK);
  24. intent.putExtra(EXTRA_RECORD, (Parcelable)record);
  25. context.startService(intent);
  26. }
  27. public static void log(Context context, NetworkRecord record) {
  28. Intent intent = new Intent(context, Logger.class);
  29. intent.setAction(ACTION_LOG_NETWORK);
  30. intent.putExtra(EXTRA_RECORD, (Parcelable)record);
  31. context.startService(intent);
  32. }
  33. public static void logPortscan(Context context, AttackRecord record, long timestamp){
  34. Intent intent = new Intent(context, Logger.class);
  35. intent.setAction(ACTION_LOG_PORTSCAN);
  36. intent.putExtra(EXTRA_RECORD, (Parcelable)record);
  37. intent.putExtra(EXTRA_TIMESTAMP, timestamp);
  38. context.startService(intent);
  39. }
  40. private HostageDBOpenHelper mDbHelper;
  41. public Logger() {
  42. super("Logger");
  43. }
  44. @Override
  45. public void onCreate() {
  46. super.onCreate();
  47. mDbHelper = new HostageDBOpenHelper(getApplicationContext());
  48. }
  49. private void handleActionLog(MessageRecord record) {
  50. mDbHelper.addMessageRecord(record);
  51. }
  52. private void handleActionLog(AttackRecord record) {
  53. mDbHelper.addAttackRecord(record);
  54. mDbHelper.updateSyncAttackCounter(record);
  55. }
  56. private void handleActionLog(NetworkRecord record) {
  57. mDbHelper.updateNetworkInformation(record);
  58. }
  59. @Override
  60. protected void onHandleIntent(Intent intent) {
  61. if (intent != null) {
  62. final String action = intent.getAction();
  63. if (ACTION_LOG_MESSAGE.equals(action)) {
  64. final MessageRecord record = intent.getParcelableExtra(EXTRA_RECORD);
  65. handleActionLog(record);
  66. }else if(ACTION_LOG_ATTACK.equals(action)){
  67. final AttackRecord record = intent.getParcelableExtra(EXTRA_RECORD);
  68. handleActionLog(record);
  69. }else if(ACTION_LOG_NETWORK.equals(action)){
  70. final NetworkRecord record = intent.getParcelableExtra(EXTRA_RECORD);
  71. handleActionLog(record);
  72. }else if(ACTION_LOG_PORTSCAN.equals(action)){
  73. final AttackRecord record = intent.getParcelableExtra(EXTRA_RECORD);
  74. handleActionLog(record);
  75. MessageRecord mRecord = new MessageRecord();
  76. mRecord.setAttack_id(record.getAttack_id());
  77. mRecord.setId(0);
  78. mRecord.setPacket("");
  79. mRecord.setTimestamp(intent.getLongExtra(EXTRA_TIMESTAMP, 0));
  80. mRecord.setType(TYPE.RECEIVE);
  81. }
  82. }
  83. }
  84. }