aboutsummaryrefslogtreecommitdiff
path: root/src/platform/windows/win_ipc.h
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-12-22 19:23:26 -0800
committerGitHub <noreply@github.com>2018-12-22 19:23:26 -0800
commitee16d11a59120cd4d981e0dcb90741fa4141372a (patch)
tree98da4bc9601f30e2c9deb403fe213c9fb4335597 /src/platform/windows/win_ipc.h
parentd00483eadbee48b820a8a79163c5296953b6f5cb (diff)
downloadnng-ee16d11a59120cd4d981e0dcb90741fa4141372a.tar.gz
nng-ee16d11a59120cd4d981e0dcb90741fa4141372a.tar.bz2
nng-ee16d11a59120cd4d981e0dcb90741fa4141372a.zip
fixes #823 Define public IPC (#824)
This introduces a basic IPC API, modeled on the TCP API, for direct access. Only connection options are exposed at present -- we need to add options for dialers and listeners (and particularly listener settings for permissions and security attributes.) Documentation is still outstanding, but a very limited test suite exists.
Diffstat (limited to 'src/platform/windows/win_ipc.h')
-rw-r--r--src/platform/windows/win_ipc.h38
1 files changed, 19 insertions, 19 deletions
diff --git a/src/platform/windows/win_ipc.h b/src/platform/windows/win_ipc.h
index 51ce5548..9a4e245a 100644
--- a/src/platform/windows/win_ipc.h
+++ b/src/platform/windows/win_ipc.h
@@ -1,6 +1,7 @@
//
// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+// Copyright 2018 Devolutions <infos@devolutions.net>
//
// This software is supplied under the terms of the MIT License, a
// copy of which should be located in the distribution where this
@@ -14,26 +15,27 @@
// This header file is private to the IPC (named pipes) support for Windows.
#include "core/nng_impl.h"
+#include "win_impl.h"
-#ifdef NNG_PLATFORM_WINDOWS
+#define IPC_PIPE_PREFIX "\\\\.\\pipe\\"
struct nni_ipc_conn {
- HANDLE f;
- nni_win_io recv_io;
- nni_win_io send_io;
- nni_win_io conn_io;
- nni_list recv_aios;
- nni_list send_aios;
- nni_aio * conn_aio;
- nni_ipc_dialer * dialer;
- nni_ipc_listener *listener;
- int recv_rv;
- int send_rv;
- int conn_rv;
- bool closed;
- nni_mtx mtx;
- nni_cv cv;
- nni_reap_item reap;
+ HANDLE f;
+ nni_win_io recv_io;
+ nni_win_io send_io;
+ nni_win_io conn_io;
+ nni_list recv_aios;
+ nni_list send_aios;
+ nni_aio * conn_aio;
+ nng_sockaddr sa;
+ bool dialer;
+ int recv_rv;
+ int send_rv;
+ int conn_rv;
+ bool closed;
+ nni_mtx mtx;
+ nni_cv cv;
+ nni_reap_item reap;
};
struct nni_ipc_dialer {
@@ -57,6 +59,4 @@ struct nni_ipc_listener {
extern int nni_win_ipc_conn_init(nni_ipc_conn **, HANDLE);
-#endif // NNG_PLATFORM_WINDOWS
-
#endif // NNG_PLATFORM_WIN_WINIPC_H