Return to stroke_control.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / libcharon / plugins / stroke |
1.1 misho 1: /* 2: * Copyright (C) 2008 Martin Willi 3: * HSR Hochschule fuer Technik Rapperswil 4: * 5: * This program is free software; you can redistribute it and/or modify it 6: * under the terms of the GNU General Public License as published by the 7: * Free Software Foundation; either version 2 of the License, or (at your 8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. 9: * 10: * This program is distributed in the hope that it will be useful, but 11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 13: * for more details. 14: */ 15: 16: /** 17: * @defgroup stroke_control stroke_control 18: * @{ @ingroup stroke 19: */ 20: 21: #ifndef STROKE_CONTROL_H_ 22: #define STROKE_CONTROL_H_ 23: 24: #include <stroke_msg.h> 25: #include <library.h> 26: #include <stdio.h> 27: 28: typedef struct stroke_control_t stroke_control_t; 29: 30: /** 31: * Process stroke control messages 32: */ 33: struct stroke_control_t { 34: 35: /** 36: * Initiate a connection. 37: * 38: * @param msg stroke message 39: */ 40: void (*initiate)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 41: 42: /** 43: * Terminate a connection. 44: * 45: * @param msg stroke message 46: */ 47: void (*terminate)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 48: 49: /** 50: * Terminate a connection by peers virtual IP. 51: * 52: * @param msg stroke message 53: */ 54: void (*terminate_srcip)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 55: 56: /** 57: * Rekey a connection. 58: * 59: * @param msg stroke message 60: */ 61: void (*rekey)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 62: 63: /** 64: * Delete IKE_SAs without a CHILD_SA. 65: * 66: * @param msg stroke message 67: */ 68: void (*purge_ike)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 69: 70: /** 71: * Route a connection. 72: * 73: * @param msg stroke message 74: */ 75: void (*route)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 76: 77: /** 78: * Unroute a connection. 79: * 80: * @param msg stroke message 81: */ 82: void (*unroute)(stroke_control_t *this, stroke_msg_t *msg, FILE *out); 83: 84: /** 85: * Destroy a stroke_control instance. 86: */ 87: void (*destroy)(stroke_control_t *this); 88: }; 89: 90: /** 91: * Create a stroke_control instance. 92: */ 93: stroke_control_t *stroke_control_create(); 94: 95: #endif /** STROKE_CONTROL_H_ @}*/