Revert "Add mapper-wait-until-removed"

This reverts commit 9f4c3c7c408a5f84a52416da99d0dd8035f1ae5a.

After further design discussions, the new wait until
removed implementation should be a new API. Reverting this
change to put back the original wait interfaces since new
ones will be created instead of modifying the existing ones.

Change-Id: I605439dcb24c6dca7f394325afc6587eacf417f1
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
diff --git a/libmapper/app.c b/libmapper/app.c
index aa42461..7efc08c 100644
--- a/libmapper/app.c
+++ b/libmapper/app.c
@@ -119,10 +119,7 @@
 		goto finish;
 	}
 
-	if (!strcmp(argv[1], "wait"))
-		r = mapper_wait_async(conn, loop, argv+2, quit, loop, &wait, true);
-	else if (!strcmp(argv[1], "wait-until-removed"))
-		r = mapper_wait_async(conn, loop, argv+2, quit, loop, &wait, false);
+	r = mapper_wait_async(conn, loop, argv+2, quit, loop, &wait);
 	if(r < 0) {
 		fprintf(stderr, "Error configuring waitlist: %s\n",
 				strerror(-r));
@@ -181,8 +178,6 @@
 		"\nCOMMANDS:\n"
 		"  call           invoke the specified method\n"
 		"  wait           wait for the specified objects to appear on the DBus\n"
-		"  wait-until-removed"
-		"		wait until the specified objects are not present in the DBus\n"
 		"  get-service    return the service identifier for input path\n";
 
 	if(argc < 2) {
@@ -192,8 +187,7 @@
 
 	if(!strcmp(argv[1], "call"))
 		call_main(argc, argv);
-	if(!strcmp(argv[1], "wait") ||
-	   !strcmp(argv[1], "wait-until-removed"))
+	if(!strcmp(argv[1], "wait"))
 		wait_main(argc, argv);
 	if(!strcmp(argv[1], "get-service"))
 		get_service_main(argc, argv);
diff --git a/libmapper/mapper.c b/libmapper/mapper.c
index ad64d4a..962b4e0 100644
--- a/libmapper/mapper.c
+++ b/libmapper/mapper.c
@@ -35,11 +35,6 @@
 	"interface='org.freedesktop.DBus.ObjectManager',"
 	"member='InterfacesAdded'";
 
-static const char *async_wait_interfaces_removed_match =
-	"type='signal',"
-	"interface='org.freedesktop.DBus.ObjectManager',"
-	"member='InterfacesRemoved'";
-
 static const int mapper_busy_retries = 5;
 static const uint64_t mapper_busy_delay_interval_usec = 1000000;
 
@@ -56,7 +51,6 @@
 	int count;
 	int finished;
 	int r;
-	bool added;
 };
 
 struct async_wait_callback_data
@@ -163,12 +157,8 @@
 		goto exit;
 
 	r = sd_bus_message_get_errno(m);
-	if(r == ENOENT) {
-		if (wait->added)
-			goto exit;
-		else
-			r = 0;
-	}
+	if(r == ENOENT)
+		goto exit;
 
 	if(r == EBUSY && data->retry < mapper_busy_retries) {
 		r = sd_event_now(wait->loop,
@@ -306,8 +296,7 @@
 		char *objs[],
 		void (*callback)(int, void *),
 		void *userdata,
-		mapper_async_wait **w,
-		bool added)
+		mapper_async_wait **w)
 {
 	int r;
 	mapper_async_wait *wait = NULL;
@@ -324,7 +313,6 @@
 	wait->count = sarraylen(objs);
 	if(!wait->count)
 		return 0;
-	wait->added = added;
 
 	wait->objs = sarraydup(objs);
 	if(!wait->objs) {
@@ -339,39 +327,26 @@
 	}
 	memset(wait->status, 0, sizeof(*wait->status) * wait->count);
 
-	if (wait->added) {
-		r = sd_bus_add_match(conn,
-				&wait->introspection_slot,
-				async_wait_introspection_match,
-				async_wait_match_introspection_complete,
-				wait);
-		if(r < 0) {
-			fprintf(stderr, "Error adding match rule: %s\n",
-					strerror(-r));
-			goto free_status;
-		}
+	r = sd_bus_add_match(conn,
+			&wait->introspection_slot,
+			async_wait_introspection_match,
+			async_wait_match_introspection_complete,
+			wait);
+	if(r < 0) {
+		fprintf(stderr, "Error adding match rule: %s\n",
+				strerror(-r));
+		goto free_status;
+	}
 
-		r = sd_bus_add_match(conn,
-				&wait->intf_slot,
-				async_wait_interfaces_added_match,
-				async_wait_match_introspection_complete,
-				wait);
-		if(r < 0) {
-			fprintf(stderr, "Error adding match rule: %s\n",
-					strerror(-r));
-			goto unref_name_slot;
-		}
-	} else {
-		r = sd_bus_add_match(conn,
-				&wait->intf_slot,
-				async_wait_interfaces_removed_match,
-				async_wait_match_introspection_complete,
-				wait);
-		if(r < 0) {
-			fprintf(stderr, "Error adding match rule: %s\n",
-					strerror(-r));
-			goto unref_name_slot;
-		}
+	r = sd_bus_add_match(conn,
+                        &wait->intf_slot,
+			async_wait_interfaces_added_match,
+                        async_wait_match_introspection_complete,
+                        wait);
+	if(r < 0) {
+		fprintf(stderr, "Error adding match rule: %s\n",
+				strerror(-r));
+		goto unref_name_slot;
 	}
 
 	r = async_wait_get_objects(wait);
diff --git a/libmapper/mapper.h b/libmapper/mapper.h
index 9f85c5f..7459e15 100644
--- a/libmapper/mapper.h
+++ b/libmapper/mapper.h
@@ -1,4 +1,3 @@
-#include <stdbool.h>
 #include <systemd/sd-bus.h>
 #include <systemd/sd-event.h>
 
@@ -9,8 +8,7 @@
 void mapper_wait_async_free(mapper_async_wait *);
 
 int mapper_wait_async(sd_bus *, sd_event *, char *[],
-		void (*)(int, void *), void *, mapper_async_wait **,
-		bool);
+		void (*)(int, void *), void *, mapper_async_wait **);
 int mapper_get_service(sd_bus *conn, const char *obj, char **service);
 int mapper_get_object(sd_bus *conn, const char *obj, sd_bus_message **reply);
 #ifdef __cplusplus