clatd - wait for SIGTERM before terminating am: 05b0541b73
Original change: https://android-review.googlesource.com/c/platform/external/android-clat/+/1661919
Change-Id: Ifac631378ef7e59429084560f3ab2613ebe75537
diff --git a/main.c b/main.c
index bfcad48..52e22ac 100644
--- a/main.c
+++ b/main.c
@@ -148,5 +148,16 @@
logmsg(ANDROID_LOG_INFO, "Shutting down clat on %s", uplink_interface);
del_anycast_address(tunnel.write_fd6, &Global_Clatd_Config.ipv6_local_subnet);
+ close(tunnel.write_fd6);
+ close(tunnel.read_fd6);
+ close(tunnel.fd4);
+
+ if (running) {
+ logmsg(ANDROID_LOG_INFO, "Clatd on %s waiting for SIGTERM", uplink_interface);
+ while (running) sleep(60);
+ logmsg(ANDROID_LOG_INFO, "Clatd on %s received SIGTERM", uplink_interface);
+ } else {
+ logmsg(ANDROID_LOG_INFO, "Clatd on %s already received SIGTERM", uplink_interface);
+ }
return 0;
}