]> git.ozlabs.org Git - petitboot/blobdiff - discover/discover-server.c
logging: Clean up debug logs
[petitboot] / discover / discover-server.c
index 25dbd1476cdd9d6cf2ba817d74716d7944e40542..41a4fde130a69567020f96bbfe477264a5041e1a 100644 (file)
@@ -34,6 +34,7 @@ struct client {
        struct list_item list;
        struct waiter *waiter;
        int fd;
+       bool remote_closed;
 };
 
 
@@ -73,12 +74,12 @@ static void print_clients(struct discover_server *server)
 {
        struct client *client;
 
-       pb_log("current clients [%p,%p,%p]:\n",
+       pb_debug("current clients [%p,%p,%p]:\n",
                        &server->clients.head,
                        server->clients.head.prev,
                        server->clients.head.next);
        list_for_each_entry(&server->clients, client, list)
-               pb_log("\t[%p,%p,%p] client: %d\n", &client->list,
+               pb_debug("\t[%p,%p,%p] client: %d\n", &client->list,
                                client->list.prev, client->list.next,
                                client->fd);
 }
@@ -89,9 +90,12 @@ static int client_write_message(
 {
        int rc;
 
+       if (client->remote_closed)
+               return -1;
+
        rc = pb_protocol_write_message(client->fd, message);
        if (rc)
-               talloc_free(client);
+               client->remote_closed = true;
 
        return rc;
 }
@@ -250,6 +254,9 @@ static int discover_server_process_connection(void *arg)
 
        client->fd = fd;
        client->server = server;
+       client->waiter = waiter_register_io(server->waitset, client->fd,
+                               WAIT_IN, discover_server_process_message,
+                               client);
 
        /* send sysinfo to client */
        rc = write_system_info_message(server, client, system_info_get());
@@ -275,10 +282,6 @@ static int discover_server_process_connection(void *arg)
                }
        }
 
-       client->waiter = waiter_register_io(server->waitset, client->fd,
-                               WAIT_IN, discover_server_process_message,
-                               client);
-
        return 0;
 }