package de.tudarmstadt.informatik.hostage.logging; import android.app.IntentService; import android.content.Context; import android.content.Intent; import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper; public class Logger extends IntentService { private static final String ACTION_LOG = "de.tudarmstadt.informatik.hostage.action.LOG"; private static final String ACTION_LOG_PORTSCAN = "de.tudarmstadt.informatik.hostage.action.LOG_PORTSCAN"; private static final String EXTRA_RECORD = "de.tudarmstadt.informatik.hostage.extra.RECORD"; private static final String EXTRA_TIMESTAMP = "de.tudarmstadt.informatik.hostage.extra.TIMESTAMP"; private static final String EXTRA_IP = "de.tudarmstadt.informatik.hostage.extra.IP"; public static void log(Context context, Record record) { Intent intent = new Intent(context, Logger.class); intent.setAction(ACTION_LOG); intent.putExtra(EXTRA_RECORD, record); context.startService(intent); } public static void logPortscan(Context context, long timestamp, String ip) { Intent intent = new Intent(context, Logger.class); intent.setAction(ACTION_LOG); intent.putExtra(EXTRA_TIMESTAMP, timestamp); intent.putExtra(EXTRA_IP, ip); context.startService(intent); } private HostageDBOpenHelper mDbHelper; public Logger() { super("Logger"); } @Override public void onCreate() { super.onCreate(); mDbHelper = new HostageDBOpenHelper(getApplicationContext()); } private void handleActionLog(Record record) { mDbHelper.addRecord(record); } private void handleActionLogPortscan(long timestamp, String ip) { mDbHelper.insertPortscan(timestamp, ip); } @Override protected void onHandleIntent(Intent intent) { if (intent != null) { final String action = intent.getAction(); if (ACTION_LOG.equals(action)) { final Record record = intent.getParcelableExtra(EXTRA_RECORD); handleActionLog(record); } else if (ACTION_LOG_PORTSCAN.equals(action)) { final long timestamp = intent.getParcelableExtra(EXTRA_TIMESTAMP); final String ip = intent.getParcelableExtra(EXTRA_IP); handleActionLogPortscan(timestamp, ip); } } } }