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

Commit b8b08a31 authored by Emil Bengtsson's avatar Emil Bengtsson Committed by Bhaskar Borthakur
Browse files

Cancel dumpstate if client disconnects

Bug: 268200878
Test: manual
Change-Id: I834c0af0852c0e80ebdad8f2f90b698434e4d2ed
(cherry picked from commit 3d509846cfa9430575f9eb4dfb46957b04788638)
parent cc943938
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -75,6 +75,23 @@ int main(int argc, char* argv[]) {
        return EXIT_FAILURE;
    }

    // Wait a little while for dumpstatez to stop if it is running
    bool dumpstate_running = false;
    for (int i = 0; i < 20; i++) {
        char buf[PROPERTY_VALUE_MAX];
        property_get("init.svc.dumpstatez", buf, "");
        dumpstate_running = strcmp(buf, "running") == 0;

        if (!dumpstate_running) break;

        sleep(1);
    }

    if (dumpstate_running) {
        fprintf(stderr, "FAIL:dumpstatez service is already running\n");
        return EXIT_FAILURE;
    }

    // TODO: code below was copy-and-pasted from bugreport.cpp (except by the
    // timeout value);
    // should be reused instead.
+5 −1
Original line number Diff line number Diff line
@@ -2593,7 +2593,11 @@ static void ShowUsage() {
}

static void register_sig_handler() {
    signal(SIGPIPE, SIG_IGN);
    signal(SIGPIPE, [](int) {
        MYLOGE("Connection with client lost, canceling.");
        ds.Cancel();
        abort();
    });
}

bool Dumpstate::FinishZipFile() {