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

Commit 913c8952 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Lorenzo Colitti
Browse files

Update netd interface

Adding netId for route changes

bug:13732575
Change-Id: Id171412a0f580f71398c9b0b8742acb1f3ef5a1e
parent 568891d9
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -469,11 +469,11 @@ interface INetworkManagementService
    void addDnsServersForNetId(int netId, in String[] servers, in String domains);
    void removeDnsServersForNetId(int netId, in String[] servers, in String domains);

    void addRouteForNetId(in RouteInfo routeInfo);
    void removeRouteForNetId(in RouteInfo routeInfo);
    void addRouteForNetId(int netId, in RouteInfo routeInfo);
    void removeRouteForNetId(int netId, in RouteInfo routeInfo);

    void addLegacyRouteForNetId(in RouteInfo routeInfo, int uid);
    void removeLegacyRouteForNetId(in RouteInfo routeInfo, int uid);
    void addLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid);
    void removeLegacyRouteForNetId(int netId, in RouteInfo routeInfo, int uid);

    void setDefaultNetId(int netId, boolean resetOldSockets);
    void clearDefaultNetId();
+15 −44
Original line number Diff line number Diff line
@@ -897,16 +897,7 @@ public class NetworkManagementService extends INetworkManagementService.Stub
        final LinkAddress la = route.getDestination();
        cmd.appendArg(la.getAddress().getHostAddress());
        cmd.appendArg(la.getNetworkPrefixLength());

        if (route.getGateway() == null) {
            if (la.getAddress() instanceof Inet4Address) {
                cmd.appendArg("0.0.0.0");
            } else {
                cmd.appendArg("::0");
            }
        } else {
        cmd.appendArg(route.getGateway().getHostAddress());
        }

        try {
            mConnector.execute(cmd);
@@ -2081,35 +2072,25 @@ public class NetworkManagementService extends INetworkManagementService.Stub
    }

    @Override
    public void addRouteForNetId(RouteInfo routeInfo) {
        modifyRouteForNetId(routeInfo, ADD);
    public void addRouteForNetId(int netId, RouteInfo routeInfo) {
        modifyRouteForNetId(netId, routeInfo, ADD);
    }

    @Override
    public void removeRouteForNetId(RouteInfo routeInfo) {
        modifyRouteForNetId(routeInfo, REMOVE);
    public void removeRouteForNetId(int netId, RouteInfo routeInfo) {
        modifyRouteForNetId(netId, routeInfo, REMOVE);
    }

    private void modifyRouteForNetId(RouteInfo routeInfo, String action) {
    private void modifyRouteForNetId(int netId, RouteInfo routeInfo, String action) {
        mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);

        final Command cmd = new Command("network", "route", action);
        final Command cmd = new Command("network", "route", action, netId);

        // create quadlet: dest-ip-addr prefixlength gateway-ip-addr iface
        final LinkAddress la = routeInfo.getDestination();
        cmd.appendArg(la.getAddress().getHostAddress());
        cmd.appendArg(la.getNetworkPrefixLength());

        if (routeInfo.getGateway() == null) {
            if (la.getAddress() instanceof Inet4Address) {
                cmd.appendArg("0.0.0.0");
            } else {
                cmd.appendArg("::0");
            }
        } else {
        cmd.appendArg(routeInfo.getGateway().getHostAddress());
        }

        cmd.appendArg(routeInfo.getInterface());

        try {
@@ -2120,35 +2101,25 @@ public class NetworkManagementService extends INetworkManagementService.Stub
    }

    @Override
    public void addLegacyRouteForNetId(RouteInfo routeInfo, int uid) {
        modifyLegacyRouteForNetId(routeInfo, uid, ADD);
    public void addLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid) {
        modifyLegacyRouteForNetId(netId, routeInfo, uid, ADD);
    }

    @Override
    public void removeLegacyRouteForNetId(RouteInfo routeInfo, int uid) {
        modifyLegacyRouteForNetId(routeInfo, uid, REMOVE);
    public void removeLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid) {
        modifyLegacyRouteForNetId(netId, routeInfo, uid, REMOVE);
    }

    private void modifyLegacyRouteForNetId(RouteInfo routeInfo, int uid, String action) {
    private void modifyLegacyRouteForNetId(int netId, RouteInfo routeInfo, int uid, String action) {
        mContext.enforceCallingOrSelfPermission(CONNECTIVITY_INTERNAL, TAG);

        final Command cmd = new Command("network", "legacy", uid, "route", action);
        final Command cmd = new Command("network", "legacy", uid, "route", action, netId);

        // create quadlet: dest-ip-addr prefixlength gateway-ip-addr iface
        final LinkAddress la = routeInfo.getDestination();
        cmd.appendArg(la.getAddress().getHostAddress());
        cmd.appendArg(la.getNetworkPrefixLength());

        if (routeInfo.getGateway() == null) {
            if (la.getAddress() instanceof Inet4Address) {
                cmd.appendArg("0.0.0.0");
            } else {
                cmd.appendArg("::0");
            }
        } else {
        cmd.appendArg(routeInfo.getGateway().getHostAddress());
        }

        cmd.appendArg(routeInfo.getInterface());

        try {