From b5a9051189bb940d3df13d5b17890a058a99b22b Mon Sep 17 00:00:00 2001 From: Michael Tuexen <tuexen@fh-muenster.de> Date: Thu, 12 Nov 2015 19:50:21 +0100 Subject: [PATCH] Improving compilation. --- gtests/net/packetdrill/run_system_call.c | 40 +++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c index da5fdd2f..28a94f46 100644 --- a/gtests/net/packetdrill/run_system_call.c +++ b/gtests/net/packetdrill/run_system_call.c @@ -654,6 +654,23 @@ int check_socklen_t_expr(struct expression *expr, socklen_t value, char *val_nam return STATUS_OK; } +#ifdef linux +int check_size_t_expr(struct expression *expr, size_t value, char *val_name, char **error) { + if (expr->type != EXPR_ELLIPSIS) { + size_t script_val; + + if (get_size_t(expr, &script_val, error)) { + return STATUS_ERR; + } + if (script_val != value) { + asprintf(error, "%s: expected: %u actual: %u", val_name, script_val, value); + return STATUS_ERR; + } + } + return STATUS_OK; +} +#endif + #if defined(__FreeBSD__) || defined(linux) static int check_u8array_expr(struct expression *expr_list, u8 *data, size_t data_len, char *val_name, char **error) { if ( expr_list->type != EXPR_ELLIPSIS) { @@ -774,9 +791,15 @@ error_out: * fill in the error with a human-readable error message and return * STATUS_ERR. */ +#ifdef linux +static int cmsg_new(struct expression *expression, + void **cmsg_ptr, size_t *cmsg_len_ptr, + bool send, char **error) +#else static int cmsg_new(struct expression *expression, void **cmsg_ptr, socklen_t *cmsg_len_ptr, bool send, char **error) +#endif { struct expression_list *list; int list_len = 0, i = 0; @@ -851,7 +874,9 @@ static int cmsg_new(struct expression *expression, return STATUS_ERR; } } +#ifndef linux *cmsg_len_ptr = (socklen_t)cmsg_size; +#endif cmsg = calloc(1, cmsg_size); *cmsg_ptr = (void *)cmsg; @@ -863,7 +888,11 @@ static int cmsg_new(struct expression *expression, if(check_type(expr, EXPR_CMSGHDR, error)) goto error_out; cmsg_expr = expr->value.cmsghdr; +#ifdef linux + if (get_size_t(cmsg_expr->cmsg_len, &cmsg->cmsg_len, error)) +#else if (get_socklen_t(cmsg_expr->cmsg_len, &cmsg->cmsg_len, error)) +#endif goto error_out; if (get_s32(cmsg_expr->cmsg_level, &cmsg->cmsg_level, error)) goto error_out; @@ -987,8 +1016,13 @@ static int check_cmsghdr(struct expression *expr_list, struct msghdr *msg, char if (check_s32_expr(expr->cmsg_type, cmsg_ptr->cmsg_type, "cmsghdr.cmsg_type", error)) return STATUS_ERR; - if (check_socklen_t_expr(expr->cmsg_len, cmsg_ptr->cmsg_len, +#ifdef linux + if (check_size_t_expr(expr->cmsg_len, cmsg_ptr->cmsg_len, "cmsghdr.cmsg_len", error)) +#else + if (check_socklen_t_expr(expr->cmsg_len, cmsg_ptr->cmsg_len, + "cmsghdr.cmsg_len", error)) +#endif return STATUS_ERR; if (check_s32_expr(expr->cmsg_level, cmsg_ptr->cmsg_level, "cmsghdr.cmsg_level", error)) @@ -1142,7 +1176,11 @@ static int msghdr_new(struct expression *expression, struct msghdr_expr *msg_expr; /* input expression from script */ socklen_t name_len = sizeof(struct sockaddr_storage); struct msghdr *msg = NULL; /* live output */ +#ifdef linux + size_t cmsg_len = 0; +#else socklen_t cmsg_len = 0; +#endif if (check_type(expression, EXPR_MSGHDR, error)) goto error_out; -- GitLab