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;
 }