/*
 * DF-2697 setup helper (run by ROOT).
 * Creates the target POSIX message queue: owned by root:wheel, mode 0660.
 * mq_euid/mq_egid are copied from the creator's cred (sys_mqueue.c),
 * so the queue is group-writable by gid 0 (wheel) only.
 */
#include <stdio.h>
#include <errno.h>
#include <fcntl.h>
#include <mqueue.h>

int
main(void)
{
	struct mq_attr attr;
	mqd_t mqd;

	attr.mq_maxmsg = 4;
	attr.mq_msgsize = 64;

	mq_unlink("/svgidtest");	/* idempotent re-create */

	attr.mq_maxmsg = 4;
	attr.mq_msgsize = 64;

	mqd = mq_open("/svgidtest", O_CREAT | O_EXCL | O_RDWR, 0660, &attr);
	if (mqd == (mqd_t)-1) {
		perror("mq_open(create)");
		return (1);
	}
	printf("created /svgidtest mode 0660 root:wheel (mqd=%d)\n", (int)mqd);
	mq_close(mqd);
	return (0);
}
