added support for leftsendcert= and left|rightca= parameters
[strongswan.git] / src / stroke / stroke.h
index 7e45b3c..fd7870f 100644 (file)
  */
 #define STROKE_SOCKET "/var/run/charon.ctl"
 
+#define STROKE_BUF_LEN         2048
+
+typedef struct stroke_end_t stroke_end_t;
+
+struct stroke_end_t {
+       char *id;
+       char *cert;
+       char *ca;
+       char *address;
+       char *subnet;
+       int subnet_mask;
+       certpolicy_t sendcert;
+};
 
 typedef struct stroke_msg_t stroke_msg_t;
 
@@ -36,7 +49,7 @@ typedef struct stroke_msg_t stroke_msg_t;
  */
 struct stroke_msg_t {
        /* length of this message with all strings */
-       u_int16_t length;
+       u_int length;
 
        /* type of the message */
        enum {
@@ -64,34 +77,30 @@ struct stroke_msg_t {
        } type;
 
        union {
-               /* data for STR_INITIATE, STR_INSTALL, STR_UP, STR_DOWN */
+               /* data for STR_INITIATE, STR_INSTALL, STR_UP, STR_DOWN, ... */
                struct {
                        char *name;
-               } initiate, install, terminate, status;
+               } initiate, install, terminate, status, del_conn;
+
                /* data for STR_ADD_CONN */
                struct {
                        char *name;
-                       /* is this connection handled by charon? */
-                       int ikev2;
-                       struct {
-                               char *id;
-                               char *cert;
-                               char *address;
-                               char *subnet;
-                               int subnet_mask;
-                       } me, other;
+                       bool ikev2;
+                       stroke_end_t me, other;
                } add_conn;
+
                struct {
                        char *context;
                        char *type;
                        int enable;
                } logtype;
+
                struct {
                        char *context;
                        int level;
                } loglevel;
        };
-       u_int8_t buffer[];
+       char buffer[STROKE_BUF_LEN];
 };
 
 #endif /* STROKE_H_ */