diff options
Diffstat (limited to 'sys/rpc/krpc.h')
-rw-r--r-- | sys/rpc/krpc.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/rpc/krpc.h b/sys/rpc/krpc.h index 978edbe8ca48..53d46deddf65 100644 --- a/sys/rpc/krpc.h +++ b/sys/rpc/krpc.h @@ -42,6 +42,7 @@ void clnt_bck_svccall(void *, struct mbuf *, uint32_t); enum clnt_stat clnt_bck_call(CLIENT *, struct rpc_callextra *, rpcproc_t, struct mbuf *, struct mbuf **, struct timeval, SVCXPRT *); +struct mbuf *_rpc_copym_into_ext_pgs(struct mbuf *, int); /* * A pending RPC request which awaits a reply. Requests which have @@ -78,8 +79,18 @@ struct rc_data { CLIENT* rc_client; /* underlying RPC client */ struct rpc_err rc_err; void *rc_backchannel; + bool rc_tls; /* Enable TLS on connection */ }; +/* Bits for ct_rcvstate. */ +#define RPCRCVSTATE_NORMAL 0x01 /* Normal reception. */ +#define RPCRCVSTATE_NONAPPDATA 0x02 /* Reception of a non-application record. */ +#define RPCRCVSTATE_TLSHANDSHAKE 0x04 /* Reception blocked for TLS handshake. */ +#define RPCRCVSTATE_UPCALLNEEDED 0x08 /* Upcall to rpctlscd needed. */ +#define RPCRCVSTATE_UPCALLINPROG 0x10 /* Upcall to rpctlscd in progress. */ +#define RPCRCVSTATE_SOUPCALLNEEDED 0x20 /* Socket upcall needed. */ +#define RPCRCVSTATE_UPCALLTHREAD 0x40 /* Upcall kthread running. */ + struct ct_data { struct mtx ct_lock; int ct_threads; /* number of threads in clnt_vc_call */ @@ -101,6 +112,10 @@ struct ct_data { struct ct_request_list ct_pending; int ct_upcallrefs; /* Ref cnt of upcalls in prog. */ SVCXPRT *ct_backchannelxprt; /* xprt for backchannel */ + uint64_t ct_sslsec; /* RPC-over-TLS connection. */ + uint64_t ct_sslusec; + uint64_t ct_sslrefno; + uint32_t ct_rcvstate; /* Handle receiving for TLS upcalls */ struct mbuf *ct_raw; /* Raw mbufs recv'd */ }; |