diff --git a/src/libstrongswan/utils.h b/src/libstrongswan/utils.h index 3f8ffc6d4..ebc67db00 100644 --- a/src/libstrongswan/utils.h +++ b/src/libstrongswan/utils.h @@ -108,6 +108,12 @@ */ #define POS printf("%s, line %d\n", __FILE__, __LINE__) +/** + * Object allocation/initialization macro, using designated initializer. + */ +#define INIT(this, ...) { (this) = malloc(sizeof(*this)); \ + *(this) = (typeof(*this)){ __VA_ARGS__ }; } + /** * Macro to allocate a sized type. */