struct list_item list;
struct waiter *waiter;
int fd;
+ bool remote_closed;
};
{
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;
}
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());
}
}
- client->waiter = waiter_register_io(server->waitset, client->fd,
- WAIT_IN, discover_server_process_message,
- client);
-
return 0;
}