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

Unverified Commit 28f29b5f authored by Oliver Scott's avatar Oliver Scott Committed by Michael Bestas
Browse files

Split network policy XML parsing into read/write helper functions

Bug: https://issuetracker.google.com/issues/207800947
Change-Id: I360bfad4c549c24f56201164442056f842708124
(cherry picked from commit 15357070f3d6e039443c383b00c66a59b5f979ec)
parent 0769646d
Loading
Loading
Loading
Loading
+304 −297
Original line number Diff line number Diff line
@@ -293,6 +293,8 @@ import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -2395,6 +2397,18 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        FileInputStream fis = null;
        try {
            fis = mPolicyFile.openRead();
            readPolicyXml(fis);
        } catch (FileNotFoundException e) {
            // missing policy is okay, probably first boot
            upgradeDefaultBackgroundDataUL();
        } catch (Exception e) {
            Log.wtf(TAG, "problem reading network policy", e);
        } finally {
            IoUtils.closeQuietly(fis);
        }
    }

    private void readPolicyXml(FileInputStream fis) {
        final TypedXmlPullParser in = Xml.resolvePullParser(fis);

         // Must save the <restrict-background> tags and convert them to <uid-policy> later,
@@ -2609,15 +2623,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
                Slog.w(TAG, "unable to update policy on UID " + uid);
            }
        }

        } catch (FileNotFoundException e) {
            // missing policy is okay, probably first boot
            upgradeDefaultBackgroundDataUL();
        } catch (Exception e) {
            Log.wtf(TAG, "problem reading network policy", e);
        } finally {
            IoUtils.closeQuietly(fis);
        }
    }

    /**
@@ -2693,7 +2698,16 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        FileOutputStream fos = null;
        try {
            fos = mPolicyFile.startWrite();
            writePolicyXml(fos);
            mPolicyFile.finishWrite(fos);
        } catch (IOException e) {
            if (fos != null) {
                mPolicyFile.failWrite(fos);
            }
        }
    }

    private void writePolicyXml(FileOutputStream fos) {
        TypedXmlSerializer out = Xml.resolveSerializer(fos);
        out.startDocument(null, true);

@@ -2799,13 +2813,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub {
        out.endTag(null, TAG_WHITELIST);

        out.endDocument();

            mPolicyFile.finishWrite(fos);
        } catch (IOException e) {
            if (fos != null) {
                mPolicyFile.failWrite(fos);
            }
        }
    }

    @Override