/** * @file stroke.h * * @brief Definition of stroke_msg_t. * */ /* * Copyright (C) 2006 Martin Willi * Hochschule fuer Technik Rapperswil * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. See . * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. */ #ifndef STROKE_H_ #define STROKE_H_ #define STROKE_SOCKET "/var/run/charon.ctl" /** * @brief A stroke message sent over the unix socket. * */ typedef struct stroke_msg_t stroke_msg_t; struct stroke_msg_t { /* length of this message with all strings */ u_int16_t length; /* type of the message */ enum { /* initiate a connection */ STR_INITIATE, /* install SPD entries for a connection */ STR_INSTALL, /* add a connection */ STR_ADD_CONN, /* delete a connection */ STR_DEL_CONN, /* terminate connection */ STR_TERMINATE, /* show connection status */ STR_STATUS, /* set a log type to log/not log */ STR_LOGTYPE, /* set the verbosity of a logging context */ STR_LOGLEVEL, /* more to come */ } type; union { /* data for STR_INITIATE, STR_INSTALL, STR_UP, STR_DOWN */ struct { char *name; } initiate, install, terminate; /* data for STR_ADD_CONN */ struct { char *name; struct { char *id; char *cert; char *address; char *subnet; u_int8_t subnet_mask; } me, other; } add_conn; struct { char *context; char *type; int enable; } logtype; struct { char *context; u_int level; } loglevel; }; u_int8_t buffer[]; }; #endif /* STROKE_H_ */