|
@@ -3,12 +3,16 @@ package de.tudarmstadt.informatik.hostage.logging;
|
|
|
import java.net.InetAddress;
|
|
|
import java.net.UnknownHostException;
|
|
|
import java.util.ArrayList;
|
|
|
+
|
|
|
+import de.tudarmstadt.informatik.hostage.R;
|
|
|
import de.tudarmstadt.informatik.hostage.logging.Record.TYPE;
|
|
|
+import de.tudarmstadt.informatik.hostage.protocol.Protocol;
|
|
|
import android.content.ContentValues;
|
|
|
import android.content.Context;
|
|
|
import android.database.Cursor;
|
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
|
import android.database.sqlite.SQLiteOpenHelper;
|
|
|
+import android.util.Log;
|
|
|
/**
|
|
|
* This class creates SQL tables and handles all access to the database.<br>
|
|
|
* It contains several methods with predefined queries to extract different kinds of information from the database.<br>
|
|
@@ -27,15 +31,18 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
private static final String DATABASE_NAME = "recordManager";
|
|
|
|
|
|
// Contacts table names
|
|
|
+ private static final String TABLE_ATTACK_INFO = "attack_info";
|
|
|
private static final String TABLE_RECORDS = "records";
|
|
|
private static final String TABLE_BSSIDS = "bssids";
|
|
|
+ private static final String TABLE_PORTS = "ports";
|
|
|
|
|
|
// Contacts Table Columns names
|
|
|
private static final String KEY_ID = "_id";
|
|
|
- private static final String KEY_ATTACK_ID = "attack_id";
|
|
|
- private static final String KEY_PROTOCOL = "protocol";
|
|
|
+ private static final String KEY_ATTACK_ID = "_attack_id";
|
|
|
private static final String KEY_TYPE = "type";
|
|
|
private static final String KEY_TIME = "timestamp";
|
|
|
+ private static final String KEY_PACKET = "packet";
|
|
|
+ private static final String KEY_PROTOCOL = "protocol";
|
|
|
private static final String KEY_EXTERNAL_IP ="externalIP";
|
|
|
private static final String KEY_LOCAL_IP = "localIP";
|
|
|
private static final String KEY_LOCAL_HOSTNAME = "localHostName";
|
|
@@ -45,37 +52,73 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
private static final String KEY_REMOTE_PORT = "remotePort";
|
|
|
private static final String KEY_BSSID = "_bssid";
|
|
|
private static final String KEY_SSID = "ssid";
|
|
|
- private static final String KEY_PACKET = "packet";
|
|
|
+ private static final String KEY_LATITUDE = "latitude";
|
|
|
+ private static final String KEY_LONGITUDE = "longitude";
|
|
|
+ private static final String KEY_ACCURACY = "accuracy";
|
|
|
+
|
|
|
|
|
|
// Database sql create statements
|
|
|
- private static final String CREATE_RECORD_TABLE = "CREATE TABLE " + TABLE_RECORDS + "(" + KEY_ID
|
|
|
- + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_ATTACK_ID + " INTEGER," + KEY_PROTOCOL + " TEXT,"
|
|
|
- + KEY_TYPE + " TEXT," + KEY_TIME + " INTEGER," + KEY_EXTERNAL_IP + " TEXT," + KEY_LOCAL_IP
|
|
|
- + " BLOB," + KEY_LOCAL_HOSTNAME + " TEXT," + KEY_LOCAL_PORT + " INTEGER," + KEY_REMOTE_IP
|
|
|
- + " BLOB," + KEY_REMOTE_HOSTNAME + " TEXT," + KEY_REMOTE_PORT + " INTEGER,"
|
|
|
- + KEY_BSSID + " TEXT," + KEY_PACKET + " TEXT,"
|
|
|
- + "FOREIGN KEY("+ KEY_BSSID +") REFERENCES " + TABLE_BSSIDS + "("+KEY_BSSID+")" + ")";
|
|
|
+ private static final String CREATE_RECORD_TABLE = "CREATE TABLE " + TABLE_RECORDS + "("
|
|
|
+ + KEY_ID + " INTEGER NOT NULL," + KEY_ATTACK_ID + " INTEGER NOT NULL,"
|
|
|
+ + KEY_TYPE + " TEXT," + KEY_TIME + " INTEGER," + KEY_PACKET + " TEXT,"
|
|
|
+ + "FOREIGN KEY("+ KEY_ATTACK_ID +") REFERENCES " + TABLE_ATTACK_INFO + "("+KEY_ATTACK_ID+")"
|
|
|
+ + "PRIMARY KEY("+ KEY_ID + ", " + KEY_ATTACK_ID + ")"
|
|
|
+ + ")";
|
|
|
+
|
|
|
+ private static final String CREATE_ATTACK_INFO_TABLE = "CREATE TABLE " + TABLE_ATTACK_INFO + "("
|
|
|
+ + KEY_ATTACK_ID + " INTEGER PRIMARY KEY," + KEY_PROTOCOL + " TEXT,"
|
|
|
+ + KEY_EXTERNAL_IP + " TEXT," + KEY_LOCAL_IP + " BLOB," + KEY_LOCAL_HOSTNAME + " TEXT,"
|
|
|
+ + KEY_REMOTE_IP + " BLOB," + KEY_REMOTE_HOSTNAME + " TEXT," + KEY_REMOTE_PORT + " INTEGER," + KEY_BSSID + " TEXT,"
|
|
|
+ + "FOREIGN KEY("+ KEY_BSSID +") REFERENCES " + TABLE_BSSIDS + "("+KEY_BSSID+")"
|
|
|
+ + "FOREIGN KEY("+ KEY_PROTOCOL +") REFERENCES " + TABLE_PORTS + "("+KEY_PROTOCOL+")"
|
|
|
+ + ")";
|
|
|
+
|
|
|
+ private static final String CREATE_BSSID_TABLE = "CREATE TABLE " + TABLE_BSSIDS + "("
|
|
|
+ + KEY_BSSID + " TEXT PRIMARY KEY," + KEY_SSID + " TEXT," + KEY_LATITUDE + " INTEGER,"
|
|
|
+ + KEY_LONGITUDE + " INTEGER," + KEY_ACCURACY + " INTEGER"
|
|
|
+ + ")";
|
|
|
|
|
|
- private static final String CREATE_BSSID_TABLE = "CREATE TABLE " + TABLE_BSSIDS + "(" + KEY_BSSID
|
|
|
- + " TEXT PRIMARY KEY," + KEY_SSID + " TEXT" + ")";
|
|
|
+ private static final String CREATE_PORT_TABLE = "CREATE TABLE " + TABLE_PORTS + "("
|
|
|
+ + KEY_PROTOCOL + " TEXT PRIMARY KEY," + KEY_LOCAL_PORT + " INTEGER"
|
|
|
+ + ")";
|
|
|
|
|
|
+ private Context context;
|
|
|
+
|
|
|
public DatabaseHandler(Context context) {
|
|
|
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
|
|
+ this.context = context;
|
|
|
}
|
|
|
|
|
|
// Creating Tables
|
|
|
@Override
|
|
|
public void onCreate(SQLiteDatabase db) {
|
|
|
+ db.execSQL(CREATE_PORT_TABLE);
|
|
|
db.execSQL(CREATE_BSSID_TABLE);
|
|
|
+ db.execSQL(CREATE_ATTACK_INFO_TABLE);
|
|
|
db.execSQL(CREATE_RECORD_TABLE);
|
|
|
- }
|
|
|
+
|
|
|
+ String[] protocols = context.getResources().getStringArray(R.array.protocols);
|
|
|
+ String packageName = Protocol.class.getPackage().getName();
|
|
|
|
|
|
+ //Initialize Port Table
|
|
|
+ for (String protocol : protocols) {
|
|
|
+ try {
|
|
|
+ int port = ((Protocol<?>) Class.forName(String.format("%s.%s", packageName, protocol)).newInstance()).getPort();
|
|
|
+ db.execSQL("INSERT INTO " + TABLE_PORTS + " VALUES ( '" + protocol + "'," + port + ")");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// Upgrading database
|
|
|
@Override
|
|
|
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
|
|
// Drop older table if existed
|
|
|
db.execSQL("DROP TABLE IF EXISTS " + TABLE_RECORDS);
|
|
|
+ db.execSQL("DROP TABLE IF EXISTS " + TABLE_ATTACK_INFO);
|
|
|
db.execSQL("DROP TABLE IF EXISTS " + TABLE_BSSIDS);
|
|
|
+ db.execSQL("DROP TABLE IF EXISTS " + TABLE_PORTS);
|
|
|
|
|
|
// Create tables again
|
|
|
onCreate(db);
|
|
@@ -91,24 +134,32 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
ContentValues bssidValues = new ContentValues();
|
|
|
bssidValues.put(KEY_BSSID, record.getBSSID());
|
|
|
bssidValues.put(KEY_SSID, record.getSSID());
|
|
|
+ bssidValues.put(KEY_LATITUDE, record.getLatitude());
|
|
|
+ bssidValues.put(KEY_LONGITUDE, record.getLongitude());
|
|
|
+ bssidValues.put(KEY_ACCURACY, record.getAccuracy());
|
|
|
+
|
|
|
+ ContentValues attackValues = new ContentValues();
|
|
|
+ attackValues.put(KEY_ATTACK_ID, record.getAttack_id()); // Log Attack ID
|
|
|
+ attackValues.put(KEY_PROTOCOL, record.getProtocol().toString());
|
|
|
+ attackValues.put(KEY_EXTERNAL_IP, record.getExternalIP());
|
|
|
+ attackValues.put(KEY_LOCAL_IP, record.getLocalIP().getAddress()); // Log Local IP
|
|
|
+ attackValues.put(KEY_LOCAL_HOSTNAME, record.getLocalIP().getHostName());
|
|
|
+ attackValues.put(KEY_REMOTE_IP, record.getRemoteIP().getAddress()); // Log Remote IP
|
|
|
+ attackValues.put(KEY_REMOTE_HOSTNAME, record.getRemoteIP().getHostName());
|
|
|
+ attackValues.put(KEY_REMOTE_PORT, record.getRemotePort()); // Log Remote Port
|
|
|
+ attackValues.put(KEY_BSSID, record.getBSSID());
|
|
|
|
|
|
ContentValues recordValues = new ContentValues();
|
|
|
+ recordValues.put(KEY_ID, record.getId()); // Log Message Number
|
|
|
recordValues.put(KEY_ATTACK_ID, record.getAttack_id()); // Log Attack ID
|
|
|
- recordValues.put(KEY_PROTOCOL, record.getProtocol().toString());
|
|
|
recordValues.put(KEY_TYPE, record.getType().name()); // Log Type
|
|
|
recordValues.put(KEY_TIME, record.getTimestamp()); // Log Timestamp
|
|
|
- recordValues.put(KEY_EXTERNAL_IP, record.getExternalIP());
|
|
|
- recordValues.put(KEY_LOCAL_IP, record.getLocalIP().getAddress()); // Log Local IP
|
|
|
- recordValues.put(KEY_LOCAL_HOSTNAME, record.getLocalIP().getHostName());
|
|
|
- recordValues.put(KEY_LOCAL_PORT, record.getLocalPort()); // Log Local Port
|
|
|
- recordValues.put(KEY_REMOTE_IP, record.getRemoteIP().getAddress()); // Log Remote IP
|
|
|
- recordValues.put(KEY_REMOTE_HOSTNAME, record.getRemoteIP().getHostName());
|
|
|
- recordValues.put(KEY_REMOTE_PORT, record.getRemotePort()); // Log Remote Port
|
|
|
- recordValues.put(KEY_BSSID, record.getBSSID());
|
|
|
recordValues.put(KEY_PACKET, record.getPacket()); // Log Packet
|
|
|
+
|
|
|
|
|
|
// Inserting Rows
|
|
|
db.insertWithOnConflict(TABLE_BSSIDS, null, bssidValues, SQLiteDatabase.CONFLICT_REPLACE);
|
|
|
+ db.insertWithOnConflict(TABLE_ATTACK_INFO, null, attackValues, SQLiteDatabase.CONFLICT_REPLACE);
|
|
|
db.insert(TABLE_RECORDS, null, recordValues);
|
|
|
db.close(); // Closing database connection
|
|
|
}
|
|
@@ -123,17 +174,20 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
try {
|
|
|
record.setId(Integer.parseInt(cursor.getString(0)));
|
|
|
record.setAttack_id(cursor.getLong(1));
|
|
|
- record.setProtocol(cursor.getString(2));
|
|
|
- record.setType(cursor.getString(3).equals("SEND") ? TYPE.SEND : TYPE.RECEIVE);
|
|
|
- record.setTimestamp(cursor.getLong(4));
|
|
|
- record.setExternalIP(cursor.getString(5));
|
|
|
- record.setLocalIP(InetAddress.getByAddress(cursor.getString(7), cursor.getBlob(6)));
|
|
|
- record.setLocalPort(Integer.parseInt(cursor.getString(8)));
|
|
|
+ record.setType(cursor.getString(2).equals("SEND") ? TYPE.SEND : TYPE.RECEIVE);
|
|
|
+ record.setTimestamp(cursor.getLong(3));
|
|
|
+ record.setPacket(cursor.getString(4));
|
|
|
+ record.setProtocol(cursor.getString(5));
|
|
|
+ record.setExternalIP(cursor.getString(6));
|
|
|
+ record.setLocalIP(InetAddress.getByAddress(cursor.getString(8), cursor.getBlob(7)));
|
|
|
record.setRemoteIP(InetAddress.getByAddress(cursor.getString(10), cursor.getBlob(9)));
|
|
|
record.setRemotePort(Integer.parseInt(cursor.getString(11)));
|
|
|
record.setBSSID(cursor.getString(12));
|
|
|
- record.setPacket(cursor.getString(13));
|
|
|
- record.setSSID(cursor.getString(14));
|
|
|
+ record.setSSID(cursor.getString(13));
|
|
|
+ record.setLatitude(Double.parseDouble(cursor.getString(14)));
|
|
|
+ record.setLongitude(Double.parseDouble(cursor.getString(15)));
|
|
|
+ record.setAccuracy(Float.parseFloat(cursor.getString(16)));
|
|
|
+ record.setLocalPort(Integer.parseInt(cursor.getString(17)));
|
|
|
} catch (UnknownHostException e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -146,7 +200,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return The {@link Record}.
|
|
|
*/
|
|
|
public Record getRecord(int id) {
|
|
|
- String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_BSSIDS + " WHERE " + KEY_ID + " = " + id;
|
|
|
+ String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS + " NATURAL JOIN " + TABLE_PORTS + " WHERE " + KEY_ID + " = " + id;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
@@ -168,14 +222,16 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
public ArrayList<Record> getAllRecords() {
|
|
|
ArrayList<Record> recordList = new ArrayList<Record>();
|
|
|
// Select All Query
|
|
|
- String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_BSSIDS;
|
|
|
+ String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS + " NATURAL JOIN " + TABLE_PORTS;
|
|
|
|
|
|
SQLiteDatabase db = this.getWritableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
|
|
|
+ Log.i("Database", "Start loop");
|
|
|
// looping through all rows and adding to list
|
|
|
if (cursor.moveToFirst()) {
|
|
|
do {
|
|
|
+ Log.i("Database", "Add Record");
|
|
|
Record record = createRecord(cursor);
|
|
|
// Adding record to list
|
|
|
recordList.add(record);
|
|
@@ -193,7 +249,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return The {@link Record}.
|
|
|
*/
|
|
|
public Record getRecordOfAttackId(long attack_id) {
|
|
|
- String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_BSSIDS + " WHERE " + KEY_ATTACK_ID + " = " + attack_id + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
+ String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS + " NATURAL JOIN " + TABLE_PORTS + " WHERE " + KEY_ATTACK_ID + " = " + attack_id + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
Record record = null;
|
|
@@ -214,7 +270,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
*/
|
|
|
public ArrayList<Record> getAllReceivedRecordsOfEachAttack() {
|
|
|
ArrayList<Record> recordList = new ArrayList<Record>();
|
|
|
- String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_BSSIDS + " WHERE " + KEY_TYPE + "='RECEIVE'" + " ORDER BY " + KEY_TIME;
|
|
|
+ String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS + " NATURAL JOIN " + TABLE_PORTS + " WHERE " + KEY_TYPE + "='RECEIVE'" + " ORDER BY " + KEY_TIME;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
|
|
@@ -239,7 +295,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
*/
|
|
|
public ArrayList<Record> getRecordOfEachAttack() {
|
|
|
ArrayList<Record> recordList = new ArrayList<Record>();
|
|
|
- String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_BSSIDS + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
+ String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS + " NATURAL JOIN " + TABLE_PORTS + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
|
|
@@ -265,7 +321,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
*/
|
|
|
public ArrayList<Record> getRecordOfEachAttack(long attack_id) {
|
|
|
ArrayList<Record> recordList = new ArrayList<Record>();
|
|
|
- String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_BSSIDS + " WHERE " + KEY_ATTACK_ID + " > " + attack_id + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
+ String selectQuery = "SELECT * FROM " + TABLE_RECORDS + " NATURAL JOIN " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS + " NATURAL JOIN " + TABLE_PORTS + " WHERE " + KEY_ATTACK_ID + " > " + attack_id + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
|
|
@@ -305,7 +361,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return The number of different attack_ids in the database.
|
|
|
*/
|
|
|
public int getAttackCount() {
|
|
|
- String countQuery = "SELECT * FROM " + TABLE_RECORDS + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
+ String countQuery = "SELECT * FROM " + TABLE_ATTACK_INFO;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(countQuery, null);
|
|
|
int result = cursor.getCount();
|
|
@@ -322,7 +378,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return The number of different attack_ids in the database.
|
|
|
*/
|
|
|
public int getAttackPerProtokolCount(String protocol) {
|
|
|
- String countQuery = "SELECT * FROM " + TABLE_RECORDS + " WHERE " + KEY_PROTOCOL + " = " + "'" + protocol + "'" + " GROUP BY " + KEY_ATTACK_ID;
|
|
|
+ String countQuery = "SELECT * FROM " + TABLE_ATTACK_INFO + " WHERE " + KEY_PROTOCOL + " = " + "'" + protocol + "'";
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(countQuery, null);
|
|
|
int result = cursor.getCount();
|
|
@@ -338,7 +394,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return The smallest attack id stored in the database.
|
|
|
*/
|
|
|
public long getSmallestAttackId(){
|
|
|
- String selectQuery = "SELECT MIN(" + KEY_ATTACK_ID +") FROM " + TABLE_RECORDS;
|
|
|
+ String selectQuery = "SELECT MIN(" + KEY_ATTACK_ID +") FROM " + TABLE_ATTACK_INFO;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
int result;
|
|
@@ -358,7 +414,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return The highest attack id stored in the database.
|
|
|
*/
|
|
|
public long getHighestAttackId(){
|
|
|
- String selectQuery = "SELECT MAX(" + KEY_ATTACK_ID +") FROM " + TABLE_RECORDS;
|
|
|
+ String selectQuery = "SELECT MAX(" + KEY_ATTACK_ID +") FROM " + TABLE_ATTACK_INFO;
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(selectQuery, null);
|
|
|
int result;
|
|
@@ -380,7 +436,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
* @return True if an attack on the given protocol has been recorded in a network with the given BSSID, else false.
|
|
|
*/
|
|
|
public boolean bssidSeen(String protocol, String BSSID){
|
|
|
- String countQuery = "SELECT * FROM " + TABLE_RECORDS + " WHERE " + KEY_PROTOCOL + " = " + "'" + protocol + "'" + " AND " + KEY_BSSID + " = " + "'" + BSSID + "'";
|
|
|
+ String countQuery = "SELECT * FROM " + TABLE_ATTACK_INFO + " NATURAL JOIN " + TABLE_BSSIDS+ " WHERE " + KEY_PROTOCOL + " = " + "'" + protocol + "'" + " AND " + KEY_BSSID + " = " + "'" + BSSID + "'";
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
Cursor cursor = db.rawQuery(countQuery, null);
|
|
|
int result = cursor.getCount();
|
|
@@ -436,9 +492,11 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
public void deleteByBSSID(String bssid){
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
db.delete(TABLE_RECORDS, KEY_BSSID + " = ?", new String[]{bssid});
|
|
|
+ db.delete(TABLE_ATTACK_INFO, KEY_BSSID + " = ?", new String[]{bssid});
|
|
|
db.close();
|
|
|
}
|
|
|
|
|
|
+ //TODO Delete statement überarbeiten
|
|
|
/**
|
|
|
* Deletes all records from {@link #TABLE_RECORDS} with a time stamp smaller then the given
|
|
|
* @param date A Date represented in milliseconds.
|
|
@@ -446,6 +504,8 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
public void deleteByDate(long date){
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
String deleteQuery = "DELETE FROM " + TABLE_RECORDS + " WHERE " + KEY_TIME + " < " + date;
|
|
|
+ //TODO Delete statement überarbeiten
|
|
|
+// String deleteQuery2 = "DELETE "
|
|
|
db.execSQL(deleteQuery);
|
|
|
db.close();
|
|
|
}
|
|
@@ -456,6 +516,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
|
|
public void clearData(){
|
|
|
SQLiteDatabase db = this.getReadableDatabase();
|
|
|
db.delete(TABLE_RECORDS, null, null);
|
|
|
+ db.delete(TABLE_ATTACK_INFO, null, null);
|
|
|
db.close();
|
|
|
}
|
|
|
}
|