|
@@ -70,10 +70,13 @@ public class TracingSyncService extends IntentService {
|
|
public static final String UPLOAD_PROGRESS = "de.tudarmstadt.informatik.hostage.UPLOAD_PROGRESS";
|
|
public static final String UPLOAD_PROGRESS = "de.tudarmstadt.informatik.hostage.UPLOAD_PROGRESS";
|
|
|
|
|
|
public static final int RECORD_UPLOADED = 0x00;
|
|
public static final int RECORD_UPLOADED = 0x00;
|
|
- public static final int SYNC_COMPLETE = 0x01;
|
|
|
|
- public static final int SYNC_ERROR = 0x02;
|
|
|
|
|
|
+ public static final int RECORD_DOWNLOAD = 0x01;
|
|
|
|
+ public static final int SYNC_COMPLETE = 0x02;
|
|
|
|
+ public static final int SYNC_ERROR = 0x03;
|
|
|
|
+ public static final int SYNC_UPLOAD_ERROR = 0x04;
|
|
|
|
+ public static final int SYNC_DOWNLOAD_ERROR = 0x05;
|
|
|
|
|
|
- private HttpClient httpClient;
|
|
|
|
|
|
+ private HttpClient httpClient;
|
|
private ResultReceiver receiver;
|
|
private ResultReceiver receiver;
|
|
|
|
|
|
HostageDBOpenHelper dbh;
|
|
HostageDBOpenHelper dbh;
|
|
@@ -108,10 +111,6 @@ public class TracingSyncService extends IntentService {
|
|
if (ACTION_START_SYNC.equals(action)) {
|
|
if (ACTION_START_SYNC.equals(action)) {
|
|
receiver = intent.getParcelableExtra(EXTRA_RECEIVER);
|
|
receiver = intent.getParcelableExtra(EXTRA_RECEIVER);
|
|
syncNewRecords();
|
|
syncNewRecords();
|
|
-
|
|
|
|
- if (receiver != null) {
|
|
|
|
- receiver.send(SYNC_COMPLETE, null);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -147,7 +146,7 @@ public class TracingSyncService extends IntentService {
|
|
|
|
|
|
if(!success){
|
|
if(!success){
|
|
if(receiver != null){
|
|
if(receiver != null){
|
|
- receiver.send(SYNC_ERROR, null);
|
|
|
|
|
|
+ receiver.send(SYNC_UPLOAD_ERROR, null);
|
|
error = true;
|
|
error = true;
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -169,8 +168,17 @@ public class TracingSyncService extends IntentService {
|
|
}
|
|
}
|
|
|
|
|
|
// First download from tracing
|
|
// First download from tracing
|
|
|
|
+ if(receiver != null) receiver.send(RECORD_DOWNLOAD, null);
|
|
SyncData syncDataFromTracing = SyncUtils.getSyncDataFromTracing(this, synchronizer);
|
|
SyncData syncDataFromTracing = SyncUtils.getSyncDataFromTracing(this, synchronizer);
|
|
|
|
|
|
|
|
+ if(syncDataFromTracing == null && error){
|
|
|
|
+ receiver.send(SYNC_ERROR, null);
|
|
|
|
+ return;
|
|
|
|
+ } else if(syncDataFromTracing == null){
|
|
|
|
+ receiver.send(SYNC_DOWNLOAD_ERROR, null);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
HashSet<String> devices = new HashSet<String>();
|
|
HashSet<String> devices = new HashSet<String>();
|
|
for(SyncRecord s: syncDataFromTracing.syncRecords){
|
|
for(SyncRecord s: syncDataFromTracing.syncRecords){
|
|
devices.add(s.getDevice());
|
|
devices.add(s.getDevice());
|
|
@@ -179,58 +187,11 @@ public class TracingSyncService extends IntentService {
|
|
synchronizer.updateNewDevices(new ArrayList<String>(devices));
|
|
synchronizer.updateNewDevices(new ArrayList<String>(devices));
|
|
synchronizer.updateFromSyncData(syncDataFromTracing);
|
|
synchronizer.updateFromSyncData(syncDataFromTracing);
|
|
|
|
|
|
- if(!error) pref.edit().putLong("LAST_SYNC_TIME", System.currentTimeMillis()).apply();
|
|
|
|
|
|
+ if(!error) {
|
|
|
|
+ pref.edit().putLong("LAST_SYNC_TIME", System.currentTimeMillis()).apply();
|
|
|
|
+ if (receiver != null) {
|
|
|
|
+ receiver.send(SYNC_COMPLETE, null);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Gets the data from the server and updates the database.
|
|
|
|
- */
|
|
|
|
- private void getRemoteData(String bssid, long timestamp) {
|
|
|
|
- HttpURLConnection connection;
|
|
|
|
- OutputStreamWriter request = null;
|
|
|
|
- URL url = null;
|
|
|
|
- String response = null;
|
|
|
|
- String parameters = "bssid=" + bssid;
|
|
|
|
- try {
|
|
|
|
- url = new URL("http://87.230.23.240/hostage/pull.php");
|
|
|
|
- connection = (HttpURLConnection) url.openConnection();
|
|
|
|
- connection.setDoOutput(true);
|
|
|
|
- connection.setRequestProperty("content-type", "application/x-www-form-urlencoded");
|
|
|
|
- connection.setRequestMethod("POST");
|
|
|
|
-
|
|
|
|
- request = new OutputStreamWriter(connection.getOutputStream());
|
|
|
|
- request.write(parameters);
|
|
|
|
- request.flush();
|
|
|
|
- request.close();
|
|
|
|
- String line = "";
|
|
|
|
-
|
|
|
|
- InputStreamReader isr = new InputStreamReader(connection.getInputStream());
|
|
|
|
- BufferedReader reader = new BufferedReader(isr);
|
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
|
- while ((line = reader.readLine()) != null) {
|
|
|
|
- sb.append(line);
|
|
|
|
- }
|
|
|
|
- response = sb.toString();
|
|
|
|
- JSONObject jsonObj = new JSONObject(response);
|
|
|
|
- NetworkRecord net = new NetworkRecord();
|
|
|
|
- net.setBssid(jsonObj.getString("bssid"));
|
|
|
|
- net.setSsid(jsonObj.getString("ssid"));
|
|
|
|
- net.setLatitude(jsonObj.getDouble("latitude"));
|
|
|
|
- net.setLongitude(jsonObj.getDouble("longitude"));
|
|
|
|
- net.setTimestampLocation(jsonObj.getLong("timestamp"));
|
|
|
|
- SyncInfoRecord sync = new SyncInfoRecord();
|
|
|
|
- sync.setBSSID(jsonObj.getString("bssid"));
|
|
|
|
- sync.setDeviceID("-1");
|
|
|
|
- sync.setNumber_of_attacks(jsonObj.getLong("attacks"));
|
|
|
|
- sync.setNumber_of_portscans(jsonObj.getLong("portscans"));
|
|
|
|
- dbh.updateNetworkInformation(net);
|
|
|
|
- isr.close();
|
|
|
|
- reader.close();
|
|
|
|
- } catch (IOException e) {
|
|
|
|
- Log.i("NetworkTest", "Network Error: " + e);
|
|
|
|
- } catch (JSONException e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|