#include <netinet/in.h>
#include "hashmap.h"
+#include "prioq.h"
#include "list.h"
#include "util.h"
void *userdata;
usec_t timeout;
uint64_t serial;
+ unsigned prioq_idx;
};
struct filter_callback {
BUS_OPENING,
BUS_AUTHENTICATING,
BUS_HELLO,
- BUS_RUNNING,
- BUS_CLOSED
+ BUS_RUNNING
};
struct sd_bus {
int fd;
int message_version;
bool can_fds:1;
- bool send_hello:1;
+ bool sent_hello:1;
void *rbuffer;
size_t rbuffer_size;
char *unique_name;
+ Prioq *reply_callbacks_prioq;
Hashmap *reply_callbacks;
LIST_HEAD(struct filter_callback, filter_callbacks);
unsigned auth_index;
size_t auth_size;
char *auth_uid;
+ usec_t auth_timeout;
};
+
+static inline void bus_unrefp(sd_bus **b) {
+ sd_bus_unref(*b);
+}
+
+#define _cleanup_bus_unref_ __attribute__((cleanup(bus_unrefp)))
+
+#define BUS_DEFAULT_TIMEOUT ((usec_t) (25 * USEC_PER_SEC))