diff options
author | Niels Provos <provos@cvs.openbsd.org> | 1997-07-18 22:48:52 +0000 |
---|---|---|
committer | Niels Provos <provos@cvs.openbsd.org> | 1997-07-18 22:48:52 +0000 |
commit | a182901164f2df77714485fcf4f81b0cdcb0e0b5 (patch) | |
tree | 080dc3e1b75e07f244a3f6c7a710c0e9e2782602 /sbin/ipsec/photurisd/handle_message_reject.c | |
parent | abe3a6221fda054003729a6f7d6d61dbb31e77b0 (diff) |
initial import of the photuris keymanagement daemon
Diffstat (limited to 'sbin/ipsec/photurisd/handle_message_reject.c')
-rw-r--r-- | sbin/ipsec/photurisd/handle_message_reject.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/sbin/ipsec/photurisd/handle_message_reject.c b/sbin/ipsec/photurisd/handle_message_reject.c new file mode 100644 index 00000000000..6c6db7c5062 --- /dev/null +++ b/sbin/ipsec/photurisd/handle_message_reject.c @@ -0,0 +1,75 @@ +/* + * Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Niels Provos. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + * handle_message_reject: + * receive a MESSAGE_REJECT packet; return -1 on failure, 0 on success + * + */ + +#ifndef lint +static char rcsid[] = "$Id: handle_message_reject.c,v 1.1 1997/07/18 22:48:50 provos Exp $"; +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "config.h" +#include "photuris.h" +#include "packets.h" +#include "state.h" +#include "cookie.h" +#include "buffer.h" +#include "packet.h" +#include "schedule.h" +#include "errlog.h" + +int +handle_message_reject(u_char *packet, int size, char *address) +{ + struct message_reject *header; + struct stateob *st; + + if (size != MESSAGE_REJECT_PACKET_SIZE) + return -1; /* packet too small/big */ + + header = (struct message_reject *) packet; + + if ((st = state_find_cookies(address, header->icookie, + header->rcookie)) == NULL) { + log_error(0, "No state for MESSAGE_REJECT message from %s", + address); + return -1; + } + + log_error(0, "Received MESSAGE_REJECT from %s on message type %d " + "offending offset %d", address, header->badtype, + header->offset); + return 0; +} |