aboutsummaryrefslogtreecommitdiffstats
path: root/project/src/fil/libre/repwifiapp/helpers/Engine.java
diff options
context:
space:
mode:
Diffstat (limited to 'project/src/fil/libre/repwifiapp/helpers/Engine.java')
-rw-r--r--project/src/fil/libre/repwifiapp/helpers/Engine.java397
1 files changed, 0 insertions, 397 deletions
diff --git a/project/src/fil/libre/repwifiapp/helpers/Engine.java b/project/src/fil/libre/repwifiapp/helpers/Engine.java
deleted file mode 100644
index cdddb0b..0000000
--- a/project/src/fil/libre/repwifiapp/helpers/Engine.java
+++ /dev/null
@@ -1,397 +0,0 @@
-//
-// Copyright 2017 Filippo "Fil" Bergamo <fil.bergamo@riseup.net>
-//
-// This file is part of RepWifiApp.
-//
-// RepWifiApp is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// RepWifiApp is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with RepWifiApp. If not, see <http://www.gnu.org/licenses/>.
-//
-// ********************************************************************
-
-package fil.libre.repwifiapp.helpers;
-
-import fil.libre.repwifiapp.Commons;
-
-
-public abstract class Engine implements IEngine{
-
- protected String getCmdWpaSup(){
- return "wpa_supplicant -B -dd -i" + Commons.INTERFACE_NAME + " -C\"" +Commons.SOCKET_DIR + "\" -P\"" + Commons.PID_FILE + "\"";
- }
-
- protected String getCmdWpaCli() {
- return "wpa_cli -p" + Commons.SOCKET_DIR + " -P" + Commons.PID_FILE + " -i" + Commons.INTERFACE_NAME;
- }
-
- protected abstract String getCmdWpaStart();
-
- public static final String DNS1 = "193.183.98.154";
- public static final String DNS2 = "87.98.175.85";
-
- public boolean deleteFileIfExists(String filePath){
-
- if (filePath == null){
- return false;
- }
-
- if (filePath.contains("*")){
- //it's safer to reject bulk rm'ing
- return false;
- }
-
- if (filePath.contains(" -r ")){
- //only file rm'ing acceppted
- return false;
- }
-
- return executeRootCmd("if [ -e \""+ filePath + "\" ]; then rm \"" + filePath + "\"; fi");
- }
-
- public boolean chmodFile(String filePath, String mod){
- return executeRootCmd("chmod " + mod + " \"" + filePath + "\"");
- }
-
- @Override
- public boolean killPreviousConnections() {
-
- Utils.logDebug("killing wpa_supplicant..:");
- if (executeRootCmd("killall -SIGINT wpa_supplicant")){
- Utils.logDebug("Killed wpa_supplicant");
- }else{
- Utils.logDebug("Wpa_supplicant NOT killed.");
- }
-
- Utils.logDebug("killing dhcpcd..");
- if (executeRootCmd("killall -SIGINT dhcpcd")){
- Utils.logDebug("Killed dhcpcd");
- }else{
- Utils.logDebug("dhcpcd NOT killed.");
- }
-
-
- return true;
-
- }
-
- @Override
- public boolean clearWorkingDir(){
-
- Utils.logDebug("clearWorkingDir():");
-
- if (executeRootCmd("rm -r " + Commons.SOCKET_DIR)){
- Utils.logDebug("removed socket dir");
- }
-
- if (executeRootCmd("rm " + Commons.ENTROPY_FILE)){
- Utils.logDebug("removed entropy file");
- }
-
- if (executeRootCmd("rm " + Commons.PID_FILE)){
- Utils.logDebug("removed pidfile");
- }
-
- if (executeRootCmd("rm " + Commons.SOFTAP_FILE)){
- Utils.logDebug("removed softap file");
- }
-
- if (executeRootCmd("rm " + Commons.WPA_CONF)){
- Utils.logDebug("removed wpa conf file");
- }
-
- if (executeRootCmd("rm " + Commons.P2P_CONF)){
- Utils.logDebug("removed p2p conf file");
- }
-
-
- return true;
-
- }
-
- @Override
- public boolean startWpaSupplicant(){
-
- Utils.logDebug("startWpaSupplicant():");
-
- if (executeRootCmd(getCmdWpaSup())){
- return true;
- }else{
- Utils.logDebug("Failed to start wpa");
- return false;
- }
-
- }
-
- @Override
- public AccessPointInfo[] getAvailableNetworks(){
-
- Utils.logDebug("getAvailableNetworks():");
-
- killPreviousConnections();
-
- if (! clearWorkingDir()){
- Utils.logError("Failed clearing dir");
- return null;
- }
-
- if (! startWpaSupplicant()){
- Utils.logError("Failed starting wpa_supplicant");
- return null;
- }
-
- if (! createScanScripts()){
- Utils.logError("Failed creating scripts");
- return null;
- }
-
- if (! scanNetworks()){
- Utils.logError("failed scanning networks");
- return null;
- }
-
- if (!getScanResults()){
- Utils.logError("failed getting scan results");
- return null;
- }
-
- //chmod 666 scan_file to make it readable
- if (!chmodFile(Commons.getScanFile(), "666")){
- Utils.logError("failed chmodding scan_file");
- return null;
- }
-
- AccessPointInfo[] a = AccessPointInfo.parseScanResult(Commons.getScanFile());
- if (a == null){
- Utils.logError("Unable to parse scan file into AccessPointInfo array");
- }
-
-
- return a;
-
- }
-
- @Override
- public abstract boolean connect(AccessPointInfo info);
-
- @Override
- public boolean disconnect(){
-
- if (! isWpaSupplicantRunning()){
- return true;
- }
-
- try {
-
- RootCommand su = new RootCommand(getCmdWpaCli() + " disconnect");
- if (su.execute() == 0){
- String out = su.getOutput();
- if (out != null && out.trim().replace("\n", "").equals("OK")){
- return true;
- }else {
- return false;
- }
- }
- else{
- return false;
- }
-
- } catch (Exception e) {
- Utils.logError("Error while enabling network", e);
- return false;
- }
- }
-
- /***
- * returns null if unable to determine connection status for any reason.
- */
- @Override
- public ConnectionStatus getConnectionStatus(){
-
- Utils.logDebug("called getConnecitonStatus()");
- if (! isWpaSupplicantRunning()){
- //wpa_supplicant is not running.
- //unable to determin status.
- Utils.logDebug("wpa not running, cannot get connection status.");
- return null;
-
- }
-
- try {
-
- RootCommand su = new RootCommand(getCmdWpaCli() + " status");
- if(su.execute() == 0){
- String out = su.getOutput();
- if (out == null || out.trim().equals("")){
- return null;
- }
- else {
- return ConnectionStatus.parseWpaCliOutput(out);
- }
- }
- else {
- return null;
- }
-
- } catch (Exception e) {
- Utils.logError("Error while executing wpa_cli status", e);
- return null;
- }
-
- }
-
- public boolean runDhcpcd(){
-
- return executeRootCmd("dhcpcd " + Commons.INTERFACE_NAME);
-
- }
-
- public boolean interfaceUp(){
- return executeRootCmd("ifconfig " + Commons.INTERFACE_NAME + " up");
- }
-
- protected boolean executeRootCmd(String cmd){
-
- try {
-
- RootCommand c = new RootCommand(cmd);
- if ( c.execute() == 0){
- return true;
- }else {
- return false;
- }
-
- } catch (Exception e) {
- Utils.logError("Error executing \"" + cmd + "\"",e);
- return false;
- }
- }
-
- protected boolean isWpaSupplicantRunning(){
-
- boolean retval = false;
-
- try {
-
- RootCommand su = new RootCommand("pidof wpa_supplicant");
- if (su.execute() == 0){
-
- if (su.getOutput().trim().equals("")){
- retval = false;
- }else{
- retval = true;
- }
-
- }else {
- retval = false;
- }
-
-
- } catch (Exception e) {
- Utils.logError("Exception during isWpaSupplicantRunning()",e);
- retval = false;
- }
-
- return retval;
-
- }
-
- protected boolean scanNetworks(){
-
- return executeRootCmd("bash " + Commons.getScriptScan());
-
- }
-
- protected boolean getScanResults(){
-
- return executeRootCmd("bash " + Commons.getScriptScanRes());
-
- }
-
- protected boolean createScanScripts(){
-
- try {
-
- String scan = getCmdWpaCli() + " scan\n" +
- "if [ $? -ne 0 ]; then\n" +
- "exit 1\n" +
- "fi\n" +
- "sleep 2s\n";
-
- String scanRes = "if [ -e \"" + Commons.getScanFile() + "\" ]; then\n" +
- " rm \"" + Commons.getScanFile() + "\"\n" +
- "fi\n" +
- getCmdWpaCli() + " scan_results > \""+ Commons.getScanFile() + "\"\n" +
- "if [ $? -ne 0 ]; then\n" +
- " exit 1\n" +
- "fi\n" +
- "sleep 1s\n";
-
-
- //Try to create and chmod script scan
- /* executeRootCmd("echo > " + Commons.getSCRIPT_SCAN());
- chmodFile(Commons.getSCRIPT_SCAN(), "666");*/
-
-
- if (! Utils.writeFile(Commons.getScriptScan(),scan,true) ){
-
- Exception e = Utils.getLastException();
- if (e != null){
- Utils.logError("Error while writing scan script.",e);
- }
-
- return false;
- }
-
- //Try to create and chmod script scanres
- /*executeRootCmd("echo > " + Commons.getSCRIPT_SCANRES());
- chmodFile(Commons.getSCRIPT_SCANRES(), "666");*/
-
- if (! Utils.writeFile(Commons.getScriptScanRes(),scanRes,true) ){
-
- Exception e = Utils.getLastException();
- if (e != null){
- Utils.logError("Error while writing getScanResults script.",e);
- }
-
- return false;
- }
-
-
- return true;
-
- } catch (Exception e) {
-
- Utils.logError("Error while creating the scanning script.",e);
- return false;
- }
-
- }
-
- /*protected boolean createDhcpcdScritp(){
-
- String scriptDhcp = "dhcpcd "+ Commons.INTERFACE_NAME + "\n" +
- "sleep 3s\n";
-
- if (! Utils.writeFile(Commons.getScriptDhcpcd(),scriptDhcp,true) ){
-
- Exception e = Utils.getLastException();
- if (e != null){
- Utils.logError("Error while writing dhcpcd script.",e);
- }
-
- return false;
- }
-
- return true;
-
- }*/
-}