Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Side by Side Diff: nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.h

Issue 2078763002: Delete bundled copy of NSS and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss@master
Patch Set: Delete bundled copy of NSS and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 /*
5 * pkix_pl_socket.h
6 *
7 * Socket Object Type Definition
8 *
9 */
10
11 #ifndef _PKIX_PL_SOCKET_H
12 #define _PKIX_PL_SOCKET_H
13
14 #include <errno.h>
15 #include "pkix_pl_common.h"
16
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20
21 typedef enum {
22 SOCKET_BOUND,
23 SOCKET_LISTENING,
24 SOCKET_ACCEPTPENDING,
25 SOCKET_UNCONNECTED,
26 SOCKET_CONNECTPENDING,
27 SOCKET_CONNECTED,
28 SOCKET_SENDPENDING,
29 SOCKET_RCVPENDING,
30 SOCKET_SENDRCVPENDING,
31 SOCKET_SHUTDOWN
32 } SockStatus;
33
34 /* This is the default port number, if none is supplied to CreateByName. */
35 #define LDAP_PORT 389
36
37 /*
38 * These callbacks allow a user to substitute a counterfeit socket in places
39 * where a PKIX_PL_Socket is expected. A conforming usage will use the
40 * ListenCallback function instead of Listen, AcceptCallback instead of Accept,
41 * etc. The counterfeit socket may have special capabilites such as the
42 * ability to do proxy authentication, etc.
43 */
44
45 typedef PKIX_Error *
46 (*pkix_pl_Socket_ListenCallback)(
47 PKIX_PL_Socket *socket,
48 PKIX_UInt32 backlog,
49 void *plContext);
50
51 typedef PKIX_Error *
52 (*pkix_pl_Socket_AcceptCallback)(
53 PKIX_PL_Socket *socket,
54 PKIX_PL_Socket **pRendezvousSock,
55 void *plContext);
56
57 typedef PKIX_Error *
58 (*pkix_pl_Socket_ConnectContinueCallback)(
59 PKIX_PL_Socket *socket,
60 PRErrorCode *pStatus,
61 void *plContext);
62
63 typedef PKIX_Error *
64 (*pkix_pl_Socket_SendCallback)(
65 PKIX_PL_Socket *sendSock,
66 void *buf,
67 PKIX_UInt32 bytesToWrite,
68 PKIX_Int32 *pBytesWritten,
69 void *plContext);
70
71 typedef PKIX_Error *
72 (*pkix_pl_Socket_RecvCallback)(
73 PKIX_PL_Socket *rcvSock,
74 void *buf,
75 PKIX_UInt32 capacity,
76 PKIX_Int32 *pBytesRead,
77 void *plContext);
78
79 typedef PKIX_Error *
80 (*pkix_pl_Socket_PollCallback)(
81 PKIX_PL_Socket *sock,
82 PKIX_Int32 *pBytesWritten,
83 PKIX_Int32 *pBytesRead,
84 void *plContext);
85
86 typedef PKIX_Error *
87 (*pkix_pl_Socket_ShutdownCallback)(
88 PKIX_PL_Socket *socket, void *plContext);
89
90 typedef struct PKIX_PL_Socket_CallbackStruct {
91 pkix_pl_Socket_ListenCallback listenCallback;
92 pkix_pl_Socket_AcceptCallback acceptCallback;
93 pkix_pl_Socket_ConnectContinueCallback connectcontinueCallback;
94 pkix_pl_Socket_SendCallback sendCallback;
95 pkix_pl_Socket_RecvCallback recvCallback;
96 pkix_pl_Socket_PollCallback pollCallback;
97 pkix_pl_Socket_ShutdownCallback shutdownCallback;
98 } PKIX_PL_Socket_Callback;
99
100 struct PKIX_PL_SocketStruct {
101 PKIX_Boolean isServer;
102 PRIntervalTime timeout; /* zero for non-blocking I/O */
103 SockStatus status;
104 PRFileDesc *clientSock;
105 PRFileDesc *serverSock;
106 void *readBuf;
107 void *writeBuf;
108 PKIX_UInt32 readBufSize;
109 PKIX_UInt32 writeBufSize;
110 PRNetAddr *netAddr;
111 PKIX_PL_Socket_Callback callbackList;
112 };
113
114 /* see source file for function documentation */
115
116 PKIX_Error *pkix_pl_Socket_RegisterSelf(void *plContext);
117
118 PKIX_Error *
119 pkix_pl_Socket_Create(
120 PKIX_Boolean isServer,
121 PRIntervalTime timeout, /* zero for non-blocking I/O */
122 PRNetAddr *netAddr,
123 PRErrorCode *status,
124 PKIX_PL_Socket **pSocket,
125 void *plContext);
126
127 PKIX_Error *
128 pkix_pl_Socket_CreateByName(
129 PKIX_Boolean isServer,
130 PRIntervalTime timeout,
131 char *serverName,
132 PRErrorCode *pStatus,
133 PKIX_PL_Socket **pSocket,
134 void *plContext);
135
136 PKIX_Error *
137 pkix_pl_Socket_CreateByHostAndPort(
138 PKIX_Boolean isServer,
139 PRIntervalTime timeout,
140 char *hostname,
141 PRUint16 portnum,
142 PRErrorCode *pStatus,
143 PKIX_PL_Socket **pSocket,
144 void *plContext);
145
146 /* Do not use these functions directly; use their callback variants instead
147 * static PKIX_Error *
148 * pkix_pl_Socket_Listen(
149 * PKIX_PL_Socket *socket,
150 * PKIX_UInt32 backlog,
151 * void *plContext);
152 *
153 * static PKIX_Error *
154 * pkix_pl_Socket_Accept(
155 * PKIX_PL_Socket *socket,
156 * PKIX_PL_Socket **pRendezvousSock,
157 * void *plContext);
158 *
159 * static PKIX_Error *
160 * pkix_pl_Socket_ConnectContinue(
161 * PKIX_PL_Socket *socket,
162 * PRErrorCode *pStatus,
163 * void *plContext);
164 *
165 * static PKIX_Error *
166 * pkix_pl_Socket_Send(
167 * PKIX_PL_Socket *sendSock,
168 * void *buf,
169 * PKIX_UInt32 bytesToWrite,
170 * PKIX_Int32 *pBytesWritten,
171 * void *plContext);
172 *
173 * static PKIX_Error *
174 * pkix_pl_Socket_Recv(
175 * PKIX_PL_Socket *rcvSock,
176 * void *buf,
177 * PKIX_UInt32 capacity,
178 * PKIX_Int32 *pBytesRead,
179 * void *plContext);
180 *
181 * static PKIX_Error *
182 * pkix_pl_Socket_Poll(
183 * PKIX_PL_Socket *sock,
184 * PKIX_Int32 *pBytesWritten,
185 * PKIX_Int32 *pBytesRead,
186 * void *plContext);
187 *
188 * static PKIX_Error *
189 * pkix_pl_Socket_Shutdown(
190 * PKIX_PL_Socket *socket, void *plContext);
191 */
192
193 PKIX_Error *
194 pkix_pl_Socket_GetCallbackList(
195 PKIX_PL_Socket *socket,
196 PKIX_PL_Socket_Callback **pCallbackList,
197 void *plContext);
198
199 PKIX_Error *
200 pkix_pl_Socket_GetPRFileDesc(
201 PKIX_PL_Socket *socket,
202 PRFileDesc **pDesc,
203 void *plContext);
204
205 #ifdef __cplusplus
206 }
207 #endif
208
209 #endif /* _PKIX_PL_SOCKET_H */
OLDNEW
« no previous file with comments | « nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c ('k') | nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698