Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 357f5cb9 authored by Seweryn Fornalik's avatar Seweryn Fornalik
Browse files

Add basic firewall commands in netpolicy CLI

parent cc39262a
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@ class NetworkPolicyManagerShellCommand extends ShellCommand {
                    return runAdd();
                case "remove":
                    return runRemove();
                case "firewall":
                    return runFirewall();
                default:
                    return handleDefaultCommands(cmd);
            }
@@ -104,6 +106,38 @@ class NetworkPolicyManagerShellCommand extends ShellCommand {
        pw.println("    Sets the data plan owner package for subId.");
    }

    private int runFirewall() throws RemoteException {
        final PrintWriter pw = getOutPrintWriter();
        final String type = getNextArg();
        if (type == null) {
            pw.println("Error: didn't specify type of data to get");
            return -1;
        }
        switch(type) {
            case "status":
                pw.println(if (mInterface.isFirewallEnabled() ? "enabled" : "disabled"));
                return 0;
            case "enable":
                return enableFireWall(true);
            case "disable":
                return enableFireWall(false);
        }
        pw.println("Error: unknown get type '" + type + "'");
        return -1;
    }

    private int enableFireWall(boolean enable) {
        final PrintWriter pw = getOutPrintWriter();
        try {
            mInterface.setFirewallEnabled(enable);
            pw.println("OK")
            return 0;
        } catch (Exception e) {
            pw.println("Error: " + e.getMessage);
            return -1;
        }
    }

    private int runGet() throws RemoteException {
        final PrintWriter pw = getOutPrintWriter();
        final String type = getNextArg();