Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
p6net.h
Go to the documentation of this file.
1 
9 #ifndef P6NET_H__
10 #define P6NET_H__ 1
11 
12 #include "p6err.h"
13 #include "p6runtimeif.h"
14 #include "p6log.h"
15 #include "p6thread.h"
16 #include "p6runtimeapi.h"
17 #include "p6compif.h"
18 #include "p6keystore.h"
19 #include "p6iobuffer.h"
20 #include "p6pkcs12.h"
21 
22 
23 #ifdef __cplusplus
24 namespace P6R {
25 extern "C" {
26 #endif
27 
29 static const SHUTDOWNFLAGS SDF_SEND = 0x00000001;
30 static const SHUTDOWNFLAGS SDF_RECV = 0x00000002;
31 static const SHUTDOWNFLAGS SDF_BOTH = 0x00000003;
32 
34 static const P6INADDR P6INADDR_ANY = 0;
35 static const P6INADDR P6INADDR_LOOPBACK = 0x7f000001;
36 static const P6INADDR P6INADDR_BROADCAST= (P6UINT32)0xffffffff;
37 
42 typedef struct {
44 } P6NETALIAS;
45 
53 #undef INTERFACE
54 #define INTERFACE p6IEnumAddrs
56 {
58  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,P6NETADDR *parElements,P6UINT32 *pcReturned) P6PURE;
60 };
61 
62 // {9BD24E32-5116-4D37-9FF3-2CADBBC949D5}
63 #define IF_p6IEnumAddrs {0x9BD24E32,0x5116,0x4D37,{0x9F,0xF3,0x2C,0xAD,0xBB,0xC9,0x49,0xD5}}
64 
73 #undef INTERFACE
74 #define INTERFACE p6IEnumAliases
76 {
78  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,P6NETALIAS *parElements,P6UINT32 *pcReturned) P6PURE;
80 };
81 
82 // {02370101-1D65-4946-BBAE-5F4D712F06E1}
83 #define IF_p6IEnumAliases {0x02370101,0x1D65,0x4946,{0xBB,0xAE,0x5F,0x4D,0x71,0x2F,0x06,0xE1}}
84 
94 #undef INTERFACE
95 #define INTERFACE p6IHostent
97 {
112  P6DECLCOMMETHOD(getName)(P6THIS_ P6CHAR *pBuffer,P6UINT32 *pcBuffer) P6PURE;
113 
123  P6DECLCOMMETHOD(getType)(P6THIS_ P6INT32 *pAddrType) P6PURE;
124 
134  P6DECLCOMMETHOD(enumAliases)(P6THIS_ p6IEnumAliases **ppEnum) P6PURE;
135 
145  P6DECLCOMMETHOD(enumAddresses)(P6THIS_ p6IEnumAddrs **ppEnum) P6PURE;
146 };
147 // {47544238-7574-41FD-8600-05AFE2781EFB}
148 #define IF_p6IHostent {0x47544238,0x7574,0x41FD,{0x86,0x00,0x05,0xAF,0xE2,0x78,0x1E,0xFB}}
149 
159 #undef INTERFACE
160 #define INTERFACE p6IProtoent
162 {
175  P6DECLCOMMETHOD(getName)(P6THIS_ P6CHAR *pBuffer,P6UINT32 *pcBuffer) P6PURE;
176 
186  P6DECLCOMMETHOD(enumAliases)(P6THIS_ p6IEnumAliases **ppEnum) P6PURE;
187 
195  P6DECLCOMMETHOD(getProto)(P6THIS_ P6UINT16 *pnProto) P6PURE;
196 };
197 // {5CF4F86A-1548-4605-8B31-78737D4F9C4A}
198 #define IF_p6IProtoent {0x5CF4F86A,0x1548,0x4605,{0x8B,0x31,0x78,0x73,0x7D,0x4F,0x9C,0x4A}}
199 
208 #undef INTERFACE
209 #define INTERFACE p6IServent
211 {
225  P6DECLCOMMETHOD(getName)(P6THIS_ P6CHAR *pBuffer,P6UINT32 *pcBuffer) P6PURE;
226 
236  P6DECLCOMMETHOD(enumAliases)(P6THIS_ p6IEnumAliases **ppEnum) P6PURE;
237 
245  P6DECLCOMMETHOD(getPort)(P6THIS_ P6UINT16 *pnPort) P6PURE;
246 
259  P6DECLCOMMETHOD(getProto)(P6THIS_ P6CHAR *pBuffer,P6UINT32 *pcBuffer) P6PURE;
260 };
261 // {BAE7A477-E898-419A-BD53-85EC14D8CC9D}
262 #define IF_p6IServent {0xBAE7A477,0xE898,0x419A,{0xBD,0x53,0x85,0xEC,0x14,0xD8,0xCC,0x9D}}
263 
265 static const P6IFFLAGS P6IFF_NONE = 0x00000000;
266 static const P6IFFLAGS P6IFF_UP = 0x00000001;
267 static const P6IFFLAGS P6IFF_BROADCAST = 0x00000002;
268 static const P6IFFLAGS P6IFF_MULTICAST = 0x00000004;
269 static const P6IFFLAGS P6IFF_LOOPBACK = 0x00000008;
270 static const P6IFFLAGS P6IFF_POINT2POINT = 0x00000010;
271 
272 typedef struct {
273  P6IFFLAGS m_flags;
274  P6NETADDR m_ip;
275  P6NETADDR m_broadcast;
276  P6NETADDR m_netmask;
277  P6CHAR m_hostname[P6MAXHOSTNAME];
278 } P6IFACEINFO;
279 #undef INTERFACE
280 #define INTERFACE p6IEnumInterfaces
282 {
284  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,P6IFACEINFO *parElements,P6UINT32 *pcReturned) P6PURE;
285  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
286 };
287 
288 // {94583D57-54A0-48BD-8E84-CFCF37313B19}
289 #define IF_p6IEnumInterfaces {0x94583D57,0x54A0,0x48BD,{0x8E,0x84,0xCF,0xCF,0x37,0x31,0x3B,0x19}}
290 
291 #undef INTERFACE
292 #define INTERFACE p6INetdb
294 {
296  P6DECLCOMMETHOD(initialize)(P6THIS) P6PURE;
297 
298  P6DECLCOMMETHOD(enumInterfaces)(P6THIS_ P6ADDRFAM nFamily,p6IEnumInterfaces **ppEnum) P6PURE;
299 
313  P6DECLCOMMETHOD(getHostByName)(P6THIS_ const P6CHAR *pszHostname,P6NETADDR *pAddr) P6PURE;
314 
329  P6DECLCOMMETHOD(getHostByNameW)(P6THIS_ const P6WCHAR *pszHostname,P6NETADDR *pAddr) P6PURE;
330 
343  P6DECLCOMMETHOD(getHostByName2)(P6THIS_ const P6CHAR *pszHostname,p6IHostent **ppEnt) P6PURE;
344 
358  P6DECLCOMMETHOD(getHostByName2W)(P6THIS_ const P6WCHAR *pszHostname,p6IHostent **ppEnt) P6PURE;
359 
370  P6DECLCOMMETHOD(getHostByAddr)(P6THIS_ const P6NETADDR *pInAddr,p6IHostent **ppEnt) P6PURE;
371 
380  P6DECLCOMMETHOD(getHostname)(P6THIS_ P6CHAR *pBuffer,P6UINT32 cBuffer) P6PURE;
381 
390  P6DECLCOMMETHOD(getHostnameW)(P6THIS_ P6WCHAR *pBuffer,P6UINT32 cBuffer) P6PURE;
391 
402  P6DECLCOMMETHOD(getProtoByName)(P6THIS_ const P6CHAR *pszName,p6IProtoent **ppEnt) P6PURE;
403 
414  P6DECLCOMMETHOD(getProtoByNameW)(P6THIS_ const P6WCHAR *pszName,p6IProtoent **ppEnt) P6PURE;
415 
426  P6DECLCOMMETHOD(getProtoByNumber)(P6THIS_ P6INT32 nNumber,p6IProtoent **ppEnt) P6PURE;
427 
442  P6DECLCOMMETHOD(getServByName)(P6THIS_ const P6CHAR *pszName,const P6CHAR *pszProto,p6IServent **ppEnt) P6PURE;
443 
458  P6DECLCOMMETHOD(getServByNameW)(P6THIS_ const P6WCHAR *pszName,const P6WCHAR *pszProto,p6IServent **ppEnt) P6PURE;
459 
473  P6DECLCOMMETHOD(getServByPort)(P6THIS_ P6UINT16 nPort,const P6CHAR *pszProto,p6IServent **ppEnt) P6PURE;
474 
489  P6DECLCOMMETHOD(getServByPortW)(P6THIS_ P6UINT16 nPort,const P6WCHAR *pszProto,p6IServent **ppEnt) P6PURE;
490 };
491 // {0012BE20-541C-4850-9CDB-12AF652238B2}
492 #define IF_p6INetdb {0x0012BE20,0x541C,0x4850,{0x9C,0xDB,0x12,0xAF,0x65,0x22,0x38,0xB2}}
493 // {5E836E31-910E-47e2-ABC5-C08BB531FC50}
494 #define COMP_p6Netdb {0x5E836E31,0x910E,0x47e2,{0xAB,0xC5,0xC0,0x8B,0xB5,0x31,0xFC,0x50}}
495 
496 
502 #undef INTERFACE
503 #define INTERFACE p6ISocketOptions
505 {
520  P6DECLCOMMETHOD(ipTOS)(P6THIS_ P6BOOL bSet,P6UINT16 *pTOS) P6PURE;
521 
522 
523  P6DECLCOMMETHOD(ipTTL)(P6THIS_ P6BOOL bSet,P6UINT16 *pTTL) P6PURE;
524  P6DECLCOMMETHOD(mcastDropGroup)(P6THIS_ P6NETADDR *pmcastAddr,P6NETADDR *pLocalAddr) P6PURE;
525  P6DECLCOMMETHOD(mcastIF)(P6THIS_ P6BOOL bSet,P6NETADDR *pLocalAddr) P6PURE;
526  P6DECLCOMMETHOD(mcastJoinGroup)(P6THIS_ P6NETADDR *pmcastAddr,P6NETADDR *pLocalAddr) P6PURE;
527  P6DECLCOMMETHOD(mcastLoopback)(P6THIS_ P6BOOL bSet,P6BOOL *pbEnable) P6PURE;
528  P6DECLCOMMETHOD(mcastTTL)(P6THIS_ P6BOOL bSet,P6UINT16 *pTTL) P6PURE;
529  P6DECLCOMMETHOD(soKeepAlive)(P6THIS_ P6BOOL bSet,P6BOOL *pbEnable) P6PURE;
530  P6DECLCOMMETHOD(soLinger)(P6THIS_ P6BOOL bSet,P6BOOL *pbEnable,P6INTERVAL *ptLinger) P6PURE;
531  P6DECLCOMMETHOD(soNonBlock)(P6THIS_ P6BOOL bSet,P6BOOL *pbEnable) P6PURE;
532  P6DECLCOMMETHOD(soRecvBuf)(P6THIS_ P6BOOL bSet,P6UINT32 *pSize) P6PURE;
533  P6DECLCOMMETHOD(soReuseAddr)(P6THIS_ P6BOOL bSet,P6BOOL *pbReuse) P6PURE;
534  P6DECLCOMMETHOD(soSendBuf)(P6THIS_ P6BOOL bSet,P6UINT32 *pSize) P6PURE;
535  P6DECLCOMMETHOD(tcpMaxSeg)(P6THIS_ P6BOOL bSet,P6UINT32 *pSize) P6PURE;
536 
549  P6DECLCOMMETHOD(tcpNoDelay)(P6THIS_ P6BOOL bSet,P6BOOL *pbEnable) P6PURE;
550 };
551 // {980583C5-F272-4c9f-A703-6010F6550A9A}
552 #define IF_p6ISocketOptions {0x980583C5,0xF272,0x4c9f,{0xA7,0x03,0x60,0x10,0xF6,0x55,0x0A,0x9A}}
553 
555 static const P6SOCKFLAGS P6SF_NONE = 0x00000000;
556 static const P6SOCKFLAGS P6SF_CTLMASK = 0x0000FFFF;
557 static const P6SOCKFLAGS P6SF_ASYNC = 0x00000001;
558 static const P6SOCKFLAGS P6SF_SECURESSL = 0x00000002;
559 static const P6SOCKFLAGS P6SF_LOGPACKETS = 0x00000004;
560 static const P6SOCKFLAGS P6SF_STATEMASK = 0xFFFF0000;
561 static const P6SOCKFLAGS P6SF_LISTENING = 0x80000000;
562 
564 static const P6SECURESOCKETFLAGS P6SSF_NONE = 0x00000000;
565 static const P6SECURESOCKETFLAGS P6SSF_METHOD_MASK = 0x0001001f;
566 static const P6SECURESOCKETFLAGS P6SSF_METHOD_SSLV2 = 0x00000001;
567 static const P6SECURESOCKETFLAGS P6SSF_METHOD_SSLV3 = 0x00000002;
568 static const P6SECURESOCKETFLAGS P6SSF_METHOD_NEGOTIATE = 0x00000004;
569 static const P6SECURESOCKETFLAGS P6SSF_METHOD_TLS1 = 0x00000008;
570 static const P6SECURESOCKETFLAGS P6SSF_METHOD_TLS1_1 = 0x00000010;
571 static const P6SECURESOCKETFLAGS P6SSF_METHOD_TLS1_2 = 0x00010000;
572 
573 static const P6SECURESOCKETFLAGS P6SSF_TYPE_MASK = 0x000000d0;
574 static const P6SECURESOCKETFLAGS P6SSF_SECURE_CLIENT = 0x00000020;
575 static const P6SECURESOCKETFLAGS P6SSF_SECURE_CLIENT_AUTH = 0x00000040;
576 static const P6SECURESOCKETFLAGS P6SSF_SECURE_SERVER = 0x00000080;
578 static const P6SECURESOCKETFLAGS P6SSF_VRFY_MASK = 0x00001f00;
579 static const P6SECURESOCKETFLAGS P6SSF_VRFY_MASK_DISABLE = 0x00000f00;
580 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEALL = 0x00000100;
581 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEHOSTMATCH = 0x00000200;
582 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEWILDCARD = 0x00000400;
583 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEEXPIRED = 0x00000800;
584 static const P6SECURESOCKETFLAGS P6SSF_VRFY_SUBJECTALWAYS = 0x00001000;
586 static const P6SECURESOCKETFLAGS P6SSF_LOG_X509SUBJECTLOOKUPS = 0x80000000;
587 static const P6SECURESOCKETFLAGS P6SSF_LOG_SSLDEBUG = 0x40000000;
588 static const P6SECURESOCKETFLAGS P6SSF_LOG_RECORDS = 0x20000000;
589 static const P6SECURESOCKETFLAGS P6SSF_LOG_CERTS = 0x10000000;
597 #undef INTERFACE
598 #define INTERFACE p6IUdpSocket
600 {
612  P6DECLCOMMETHOD(initialize)(P6THIS_ P6ADDRFAM af,P6SOCKFLAGS fFlags) P6PURE;
613 
625  P6DECLCOMMETHOD(getID)(P6THIS_ P6SIZE *pHandle) P6PURE;
626 
635  P6DECLCOMMETHOD(bind)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
636 
659  P6DECLCOMMETHOD(connect)(P6THIS_ P6NETADDR *pRemoteAddr,P6INTERVAL timeout) P6PURE;
660 
672  P6DECLCOMMETHOD(recv)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout) P6PURE;
673 
695  P6DECLCOMMETHOD(recvFrom)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout,P6NETADDR *pRemoteAddr) P6PURE;
696 
717  P6DECLCOMMETHOD(send)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout) P6PURE;
718 
733  P6DECLCOMMETHOD(sendTo)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout,P6NETADDR *pRemoteAddr) P6PURE;
734 
749  P6DECLCOMMETHOD(getLocalAddr)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
750 
760  P6DECLCOMMETHOD(getPeerAddr)(P6THIS_ P6NETADDR *pPeerAddr) P6PURE;
761 
770  P6DECLCOMMETHOD(getFlags)(P6THIS_ P6SOCKFLAGS *pfFlags) P6PURE;
771 };
772 // {77D29B06-2E8C-4aeb-99CF-1D64CAC03856}
773 #define IF_p6IUdpSocket {0x77D29B06,0x2E8C,0x4aeb,{0x99,0xCF,0x1D,0x64,0xCA,0xC0,0x38,0x56}}
774 // {B111E23D-5F72-4e5e-9795-DCD99474403C}
775 #define COMP_p6UdpSocket {0xB111E23D,0x5F72,0x4e5e,{0x97,0x95,0xDC,0xD9,0x94,0x74,0x40,0x3C}}
776 
777 #undef INTERFACE
778 #define INTERFACE p6IEnumCertChain
780 {
782  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,p6ICert *parElements,P6UINT32 *pcReturned) P6PURE;
783  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
784 };
785 
786 #undef INTERFACE
787 #define INTERFACE p6ITcpSecureSocket
789 {
853  P6DECLCOMMETHOD(initSecureSocket)(P6THIS_ p6IKeystore *pKeystore,p6IIoBufferFactory *pFactory,const P6WCHAR *pszHostname,const P6WCHAR *pszCiphers,P6SECURESOCKETFLAGS fSecureFlags) P6PURE;
854 
855 
869  P6DECLCOMMETHOD(getNegotiatedCipher)(P6THIS_ P6WCHAR *pBuffer,P6SIZE cBuffer) P6PURE;
870 
871 
885  P6DECLCOMMETHOD(getPeerCertificate)(P6THIS_ p6ICert **ppCert) P6PURE;
886 
900  P6DECLCOMMETHOD(getPeerCertificateChain)(P6THIS_ p6IEnumCerts **ppEnum) P6PURE;
901 
916  P6DECLCOMMETHOD(getPeerRootCertificate)(P6THIS_ p6ICert **ppCert) P6PURE;
917 
951  P6DECLCOMMETHOD(populateSSLCredentials)(P6THIS_ p6IKeystore *pKeystore) P6PURE;
952 
964  P6DECLCOMMETHOD(enableCertificateLogging)(P6THIS_ P6BOOL bEnable) P6PURE;
965 };
966 
967 // {BC3BA5EB-41C8-4A34-B180-D85EF5A1E204}
968 #define IF_p6ITcpSecureSocket {0xBC3BA5EB,0x41C8,0x4A34,{0xB1,0x80,0xD8,0x5E,0xF5,0xA1,0xE2,0x04}}
969 
979 #define P6SSL_TRUSTEDROOT_NAMESPACE P6CTEXT("p6r.trustedroot")
980 
990 #define P6SSL_CLIENTAUTH_NAMESPACE P6CTEXT("p6r.clientauth")
991 
999 #define P6SSL_SERVERAUTH_NAMESPACE P6CTEXT("p6r.serverauth")
1000 
1001 
1002 
1007 #undef INTERFACE
1008 #define INTERFACE p6ITcpSocket
1010 {
1025  P6DECLCOMMETHOD(initialize)(P6THIS_ P6ADDRFAM af,P6SOCKFLAGS fFlags) P6PURE;
1026 
1047  P6DECLCOMMETHOD(accept)(P6THIS_ P6NETADDR *pAddr,P6INTERVAL timeout,p6ITcpSocket **ppSocket) P6PURE;
1048 
1057  P6DECLCOMMETHOD(bind)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
1058 
1082  P6DECLCOMMETHOD(connect)(P6THIS_ P6NETADDR *pRemoteAddr,P6INTERVAL timeout) P6PURE;
1083 
1095  P6DECLCOMMETHOD(getID)(P6THIS_ P6SIZE *pHandle) P6PURE;
1096 
1108  P6DECLCOMMETHOD(recv)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout) P6PURE;
1109 
1110 
1125  P6DECLCOMMETHOD(recvIoBuffer)(P6THIS_ p6IIoBuffer *pIoBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout) P6PURE;
1126 
1138  P6DECLCOMMETHOD(listen)(P6THIS_ P6INT32 cBacklog) P6PURE;
1139 
1150  P6DECLCOMMETHOD(shutdown)(P6THIS_ SHUTDOWNFLAGS fFlags) P6PURE;
1151 
1175  P6DECLCOMMETHOD(send)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout) P6PURE;
1176 
1204  P6DECLCOMMETHOD(sendIoBuffer)(P6THIS_ p6IIoBuffer *pIoBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout) P6PURE;
1205 
1219  P6DECLCOMMETHOD(getLocalAddr)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
1220 
1230  P6DECLCOMMETHOD(getPeerAddr)(P6THIS_ P6NETADDR *pPeerAddr) P6PURE;
1231 
1240  P6DECLCOMMETHOD(getFlags)(P6THIS_ P6SOCKFLAGS *pfFlags) P6PURE;
1241 };
1242 // {0D205C9D-27BE-4dd8-885D-0C089D2DC491}
1243 #define IF_p6ITcpSocket {0x0D205C9D,0x27BE,0x4dd8,{0x88,0x5D,0x0C,0x08,0x9D,0x2D,0xC4,0x91}}
1244 // {57B33148-AF90-495a-9A9E-7ACD77B94ABE}
1245 #define COMP_p6TcpSocket {0x57B33148,0xAF90,0x495a,{0x9A,0x9E,0x7A,0xCD,0x77,0xB9,0x4A,0xBE}}
1246 
1247 
1249 static const P6SOCKFACTORYFLAGS P6SFF_NOFLAGS = 0x00000000;
1250 static const P6SOCKFACTORYFLAGS P6SFF_SECURESSL = 0x00000002;
1252 #undef INTERFACE
1253 #define INTERFACE p6ISocketFactory
1255 {
1265  P6DECLCOMMETHOD(createServerSocketSimple)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,p6ITcpSocket **ppSocket) P6PURE;
1266  P6DECLCOMMETHOD(createServerSocket)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6NETADDR *pBindAddr,p6ITcpSocket **ppSocket) P6PURE;
1267  P6DECLCOMMETHOD(createServerSocket2)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6CHAR *pszBindAddrStr,p6ITcpSocket **ppSocket) P6PURE;
1268 
1269  P6DECLCOMMETHOD(createClientSocketSimple)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,p6ITcpSocket **ppSocket) P6PURE;
1270  P6DECLCOMMETHOD(createClientSocket)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6NETADDR *pBindAddr,p6ITcpSocket **ppSocket) P6PURE;
1271  P6DECLCOMMETHOD(createClientSocket2)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6CHAR *pszBindAddrStr,p6ITcpSocket **ppSocket) P6PURE;
1272 };
1273 
1274 // {47F73495-AE0E-4542-9A7A-D20B1B067649}
1275 #define IF_p6ISocketFactory {0x47F73495,0xAE0E,0x4542,{0x9A,0x7A,0xD2,0x0B,0x1B,0x06,0x76,0x49}}
1276 
1277 // {C8806A3E-9CFE-43F3-97CE-E577B9E86BB6}
1278 #define COMP_p6SocketFactory {0xC8806A3E,0x9CFE,0x43F3,{0x97,0xCE,0xE5,0x77,0xB9,0xE8,0x6B,0xB6}}
1279 
1280 #ifdef __cplusplus
1281 } // extern "C"
1282 } // namespace
1283 #endif
1284 
1285 
1286 #endif
1287 
P6IFFLAGS m_flags
Definition: p6net.h:273
size_t P6SIZE
Definition: p6types.h:90
Interface for importing and exporting PKCS12 format files.
P6UINT32 P6IFFLAGS
Definition: p6net.h:264
P6NETADDR m_ip
Definition: p6net.h:274
<div class="p6box"> This interface has been depricated in favor of p6IKeystore3.
Definition: p6keystore.h:689
This interface is used to enumerate a set of certificates.
Definition: p6cert.h:806
uint32_t P6UINT32
Definition: p6types.h:77
UDP socket interface.
Definition: p6net.h:599
Threading interfaces and definitions.
#define P6DECLAREICOM
Definition: p6defs.h:191
P6R's keystore component to manage keys, certificates, and blobs.
I/O Buffer Interfaces.
P6UINT32 P6SOCKFLAGS
Definition: p6net.h:554
#define P6PURE
Definition: p6defs.h:192
Standard error codes.
This interface is used to enumerate addresses returned from methods (eg.
Definition: p6net.h:55
unsigned char P6BOOL
Boolean type.
Definition: p6types.h:133
This factory interface is responsible for creating and managing memory pooled Io Buffers (p6IIoBuffer...
Definition: p6iobuffer.h:605
This structure is used to hold alias strings returned by enumertators like p6IEnumAliases.
Definition: p6net.h:42
P6UINT32 SHUTDOWNFLAGS
Definition: p6net.h:28
unsigned char P6UINT8
Definition: p6types.h:71
P6UINT32 P6SOCKFACTORYFLAGS
Definition: p6net.h:1248
P6COM runtime interfaces definitions.
wchar_t P6WCHAR
Wide character type see p6i18n.h.
Definition: p6types.h:111
The base interface all [p6]COM components must derive from and implement.
Definition: p6comdef.h:97
Log producer component interfaces.
This interface encapsulates protocol information retrieved using various network API's.
Definition: p6net.h:210
This interface encapsulates protocol information retrieved using various network API's.
Definition: p6net.h:161
This interface encapsultes host information retrieved using various network API's.
Definition: p6net.h:96
This interface allows the caller to access parts of an X509 V3 certificate for use in protocols and i...
Definition: p6cert.h:111
P6UINT32 P6SECURESOCKETFLAGS
Definition: p6net.h:563
#define P6MAXHOSTNAME
Definition: p6defs.h:42
P6UINT32 P6INADDR
Definition: p6net.h:33
P6COM runtime interfaces definitions.
uint16_t P6UINT16
Definition: p6types.h:75
P6COM runtime component interface definitions.
P6NETADDR m_netmask
Definition: p6net.h:276
#define P6DECLCOMMETHOD(method)
Definition: p6defs.h:189
Set various options on the current socket.
Definition: p6net.h:504
#define P6THIS_
Definition: p6defs.h:193
int32_t P6INT32
Definition: p6types.h:76
P6NETADDR m_broadcast
Definition: p6net.h:275
This interface is used to enumerate aliases for host and protocol alias information.
Definition: p6net.h:75
#define P6THIS
Definition: p6defs.h:194
char P6CHAR
Narrow character type.
Definition: p6types.h:105
#define P6DECLAREIF_(iface, baseif)
Definition: p6defs.h:188