| /******************************************************************************* |
| * |
| * Copyright (c) 2011, 2012, 2013, 2014, 2015 Olaf Bergmann (TZI) and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * and Eclipse Distribution License v. 1.0 which accompanies this distribution. |
| * |
| * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html |
| * and the Eclipse Distribution License is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * Contributors: |
| * Olaf Bergmann - initial API and implementation |
| * |
| *******************************************************************************/ |
| |
| #ifndef _DTLS_SESSION_H_ |
| #define _DTLS_SESSION_H_ |
| |
| #include <string.h> |
| |
| #include "tinydtls.h" |
| #include "global.h" |
| |
| #ifdef WITH_CONTIKI |
| #include "ip/uip.h" |
| typedef struct { |
| unsigned char size; |
| uip_ipaddr_t addr; |
| unsigned short port; |
| int ifindex; |
| } session_t; |
| |
| #else /* WITH_CONTIKI */ |
| |
| #include <sys/socket.h> |
| #include <netinet/in.h> |
| #include <arpa/inet.h> |
| |
| typedef struct { |
| socklen_t size; /**< size of addr */ |
| union { |
| struct sockaddr sa; |
| struct sockaddr_storage st; |
| struct sockaddr_in sin; |
| struct sockaddr_in6 sin6; |
| } addr; |
| uint8_t ifindex; |
| } session_t; |
| #endif /* WITH_CONTIKI */ |
| |
| /** |
| * Resets the given session_t object @p sess to its default |
| * values. In particular, the member rlen must be initialized to the |
| * available size for storing addresses. |
| * |
| * @param sess The session_t object to initialize. |
| */ |
| void dtls_session_init(session_t *sess); |
| |
| /** |
| * Compares the given session objects. This function returns @c 0 |
| * when @p a and @p b differ, @c 1 otherwise. |
| */ |
| int dtls_session_equals(const session_t *a, const session_t *b); |
| |
| #endif /* _DTLS_SESSION_H_ */ |