1 /*
2 * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
3 * University Research and Technology
4 * Corporation. All rights reserved.
5 * Copyright (c) 2004-2006 The University of Tennessee and The University
6 * of Tennessee Research Foundation. All rights
7 * reserved.
8 * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9 * University of Stuttgart. All rights reserved.
10 * Copyright (c) 2004-2005 The Regents of the University of California.
11 * All rights reserved.
12 * Copyright (c) 2006-2013 Los Alamos National Security, LLC.
13 * All rights reserved.
14 * Copyright (c) 2010-2011 Cisco Systems, Inc. All rights reserved.
15 * $COPYRIGHT$
16 *
17 * Additional copyrights may follow
18 *
19 * $HEADER$
20 */
21
22 #ifndef _MCA_OOB_TCP_LISTENER_H_
23 #define _MCA_OOB_TCP_LISTENER_H_
24
25 #include "orte_config.h"
26
27 #ifdef HAVE_SYS_TYPES_H
28 #include <sys/types.h>
29 #endif
30 #ifdef HAVE_SYS_SOCKET_H
31 #include <sys/socket.h>
32 #endif
33
34 #include "opal/class/opal_list.h"
35 #include "opal/mca/event/event.h"
36
37 /*
38 * Data structure for accepting connections.
39 */
40 struct mca_oob_tcp_listener_t {
41 opal_list_item_t item;
42 bool ev_active;
43 opal_event_t event;
44 bool tcp6;
45 int sd;
46 uint16_t port;
47 };
48 typedef struct mca_oob_tcp_listener_t mca_oob_tcp_listener_t;
49 OBJ_CLASS_DECLARATION(mca_oob_tcp_listener_t);
50
51 typedef struct {
52 opal_object_t super;
53 opal_event_t ev;
54 int fd;
55 struct sockaddr_storage addr;
56 } mca_oob_tcp_pending_connection_t;
57 OBJ_CLASS_DECLARATION(mca_oob_tcp_pending_connection_t);
58
59 ORTE_MODULE_DECLSPEC int orte_oob_tcp_start_listening(void);
60
61 #endif /* _MCA_OOB_TCP_LISTENER_H_ */