The lttng_create_session commands send lttng_uri structures over
a UNIX socket. As such, the structure must be packed to preclude
the inclusion of any padding.
Moreover, the 'in_port_t' is replaced by uint16_t and PATH_MAX
is replaced by LTTNG_PATH_MAX to prevent conflicts if both ends
of the IPC are not build with the same toolchain/definitions.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
#include <netinet/in.h>
#include <lttng/lttng.h>
+#include <common/macros.h>
/* Destination type of lttng URI */
enum lttng_dst_type {
enum lttng_uri_type utype;
enum lttng_stream_type stype;
enum lttng_proto_type proto;
- in_port_t port;
- char subdir[PATH_MAX];
+ uint16_t port;
+ char subdir[LTTNG_PATH_MAX];
union {
char ipv4[INET_ADDRSTRLEN];
char ipv6[INET6_ADDRSTRLEN];
- char path[PATH_MAX];
+ char path[LTTNG_PATH_MAX];
} dst;
-};
+} LTTNG_PACKED;
int uri_compare(struct lttng_uri *uri1, struct lttng_uri *uri2);
void uri_free(struct lttng_uri *uri);