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 = 0x0000001f;
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_TYPE_MASK = 0x000000d0;
572 static const P6SECURESOCKETFLAGS P6SSF_SECURE_CLIENT = 0x00000020;
573 static const P6SECURESOCKETFLAGS P6SSF_SECURE_CLIENT_AUTH = 0x00000040;
574 static const P6SECURESOCKETFLAGS P6SSF_SECURE_SERVER = 0x00000080;
575 static const P6SECURESOCKETFLAGS P6SSF_VRFY_MASK = 0x00001f00;
576 static const P6SECURESOCKETFLAGS P6SSF_VRFY_MASK_DISABLE = 0x00000f00;
577 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEALL = 0x00000100;
578 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEHOSTMATCH = 0x00000200;
579 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEWILDCARD = 0x00000400;
580 static const P6SECURESOCKETFLAGS P6SSF_VRFY_DISABLEEXPIRED = 0x00000800;
581 static const P6SECURESOCKETFLAGS P6SSF_VRFY_SUBJECTALWAYS = 0x00001000;
583 static const P6SECURESOCKETFLAGS P6SSF_LOG_X509SUBJECTLOOKUPS = 0x80000000;
584 static const P6SECURESOCKETFLAGS P6SSF_LOG_SSLDEBUG = 0x40000000;
585 static const P6SECURESOCKETFLAGS P6SSF_LOG_RECORDS = 0x20000000;
586 static const P6SECURESOCKETFLAGS P6SSF_LOG_CERTS = 0x10000000;
594 #undef INTERFACE
595 #define INTERFACE p6IUdpSocket
597 {
609  P6DECLCOMMETHOD(initialize)(P6THIS_ P6ADDRFAM af,P6SOCKFLAGS fFlags) P6PURE;
610 
622  P6DECLCOMMETHOD(getID)(P6THIS_ P6SIZE *pHandle) P6PURE;
623 
632  P6DECLCOMMETHOD(bind)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
633 
656  P6DECLCOMMETHOD(connect)(P6THIS_ P6NETADDR *pRemoteAddr,P6INTERVAL timeout) P6PURE;
657 
669  P6DECLCOMMETHOD(recv)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout) P6PURE;
670 
692  P6DECLCOMMETHOD(recvFrom)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout,P6NETADDR *pRemoteAddr) P6PURE;
693 
714  P6DECLCOMMETHOD(send)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout) P6PURE;
715 
730  P6DECLCOMMETHOD(sendTo)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout,P6NETADDR *pRemoteAddr) P6PURE;
731 
746  P6DECLCOMMETHOD(getLocalAddr)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
747 
757  P6DECLCOMMETHOD(getPeerAddr)(P6THIS_ P6NETADDR *pPeerAddr) P6PURE;
758 
767  P6DECLCOMMETHOD(getFlags)(P6THIS_ P6SOCKFLAGS *pfFlags) P6PURE;
768 };
769 // {77D29B06-2E8C-4aeb-99CF-1D64CAC03856}
770 #define IF_p6IUdpSocket {0x77D29B06,0x2E8C,0x4aeb,{0x99,0xCF,0x1D,0x64,0xCA,0xC0,0x38,0x56}}
771 // {B111E23D-5F72-4e5e-9795-DCD99474403C}
772 #define COMP_p6UdpSocket {0xB111E23D,0x5F72,0x4e5e,{0x97,0x95,0xDC,0xD9,0x94,0x74,0x40,0x3C}}
773 
774 #undef INTERFACE
775 #define INTERFACE p6IEnumCertChain
777 {
779  P6DECLCOMMETHOD(next)(P6THIS_ P6UINT32 cElements,p6ICert *parElements,P6UINT32 *pcReturned) P6PURE;
780  P6DECLCOMMETHOD(reset)(P6THIS) P6PURE;
781 };
782 
783 #undef INTERFACE
784 #define INTERFACE p6ITcpSecureSocket
786 {
843  P6DECLCOMMETHOD(initSecureSocket)(P6THIS_ p6IKeystore *pKeystore,p6IIoBufferFactory *pFactory,const P6WCHAR *pszHostname,const P6WCHAR *pszCiphers,P6SECURESOCKETFLAGS fSecureFlags) P6PURE;
844 
845 
859  P6DECLCOMMETHOD(getNegotiatedCipher)(P6THIS_ P6WCHAR *pBuffer,P6SIZE cBuffer) P6PURE;
860 
861 
875  P6DECLCOMMETHOD(getPeerCertificate)(P6THIS_ p6ICert **ppCert) P6PURE;
876 
890  P6DECLCOMMETHOD(getPeerCertificateChain)(P6THIS_ p6IEnumCerts **ppEnum) P6PURE;
891 
906  P6DECLCOMMETHOD(getPeerRootCertificate)(P6THIS_ p6ICert **ppCert) P6PURE;
907 
941  P6DECLCOMMETHOD(populateSSLCredentials)(P6THIS_ p6IKeystore *pKeystore) P6PURE;
942 
954  P6DECLCOMMETHOD(enableCertificateLogging)(P6THIS_ P6BOOL bEnable) P6PURE;
955 };
956 
957 // {BC3BA5EB-41C8-4A34-B180-D85EF5A1E204}
958 #define IF_p6ITcpSecureSocket {0xBC3BA5EB,0x41C8,0x4A34,{0xB1,0x80,0xD8,0x5E,0xF5,0xA1,0xE2,0x04}}
959 
969 #define P6SSL_TRUSTEDROOT_NAMESPACE P6CTEXT("p6r.trustedroot")
970 
980 #define P6SSL_CLIENTAUTH_NAMESPACE P6CTEXT("p6r.clientauth")
981 
989 #define P6SSL_SERVERAUTH_NAMESPACE P6CTEXT("p6r.serverauth")
990 
991 
992 
997 #undef INTERFACE
998 #define INTERFACE p6ITcpSocket
1000 {
1015  P6DECLCOMMETHOD(initialize)(P6THIS_ P6ADDRFAM af,P6SOCKFLAGS fFlags) P6PURE;
1016 
1037  P6DECLCOMMETHOD(accept)(P6THIS_ P6NETADDR *pAddr,P6INTERVAL timeout,p6ITcpSocket **ppSocket) P6PURE;
1038 
1047  P6DECLCOMMETHOD(bind)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
1048 
1072  P6DECLCOMMETHOD(connect)(P6THIS_ P6NETADDR *pRemoteAddr,P6INTERVAL timeout) P6PURE;
1073 
1085  P6DECLCOMMETHOD(getID)(P6THIS_ P6SIZE *pHandle) P6PURE;
1086 
1098  P6DECLCOMMETHOD(recv)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout) P6PURE;
1099 
1100 
1115  P6DECLCOMMETHOD(recvIoBuffer)(P6THIS_ p6IIoBuffer *pIoBuffer,P6UINT32 *pcBytesRead,P6INTERVAL timeout) P6PURE;
1116 
1128  P6DECLCOMMETHOD(listen)(P6THIS_ P6INT32 cBacklog) P6PURE;
1129 
1140  P6DECLCOMMETHOD(shutdown)(P6THIS_ SHUTDOWNFLAGS fFlags) P6PURE;
1141 
1165  P6DECLCOMMETHOD(send)(P6THIS_ P6UINT8 *pBuffer,P6UINT32 cBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout) P6PURE;
1166 
1194  P6DECLCOMMETHOD(sendIoBuffer)(P6THIS_ p6IIoBuffer *pIoBuffer,P6UINT32 *pcBytesSent,P6INTERVAL timeout) P6PURE;
1195 
1209  P6DECLCOMMETHOD(getLocalAddr)(P6THIS_ P6NETADDR *pLocalAddr) P6PURE;
1210 
1220  P6DECLCOMMETHOD(getPeerAddr)(P6THIS_ P6NETADDR *pPeerAddr) P6PURE;
1221 
1230  P6DECLCOMMETHOD(getFlags)(P6THIS_ P6SOCKFLAGS *pfFlags) P6PURE;
1231 };
1232 // {0D205C9D-27BE-4dd8-885D-0C089D2DC491}
1233 #define IF_p6ITcpSocket {0x0D205C9D,0x27BE,0x4dd8,{0x88,0x5D,0x0C,0x08,0x9D,0x2D,0xC4,0x91}}
1234 // {57B33148-AF90-495a-9A9E-7ACD77B94ABE}
1235 #define COMP_p6TcpSocket {0x57B33148,0xAF90,0x495a,{0x9A,0x9E,0x7A,0xCD,0x77,0xB9,0x4A,0xBE}}
1236 
1237 
1239 static const P6SOCKFACTORYFLAGS P6SFF_NOFLAGS = 0x00000000;
1240 static const P6SOCKFACTORYFLAGS P6SFF_SECURESSL = 0x00000002;
1242 #undef INTERFACE
1243 #define INTERFACE p6ISocketFactory
1245 {
1255  P6DECLCOMMETHOD(createServerSocketSimple)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,p6ITcpSocket **ppSocket) P6PURE;
1256  P6DECLCOMMETHOD(createServerSocket)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6NETADDR *pBindAddr,p6ITcpSocket **ppSocket) P6PURE;
1257  P6DECLCOMMETHOD(createServerSocket2)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6CHAR *pszBindAddrStr,p6ITcpSocket **ppSocket) P6PURE;
1258 
1259  P6DECLCOMMETHOD(createClientSocketSimple)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,p6ITcpSocket **ppSocket) P6PURE;
1260  P6DECLCOMMETHOD(createClientSocket)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6NETADDR *pBindAddr,p6ITcpSocket **ppSocket) P6PURE;
1261  P6DECLCOMMETHOD(createClientSocket2)(P6THIS_ P6SOCKFACTORYFLAGS fFlags,const P6CHAR *pszBindAddrStr,p6ITcpSocket **ppSocket) P6PURE;
1262 };
1263 
1264 // {47F73495-AE0E-4542-9A7A-D20B1B067649}
1265 #define IF_p6ISocketFactory {0x47F73495,0xAE0E,0x4542,{0x9A,0x7A,0xD2,0x0B,0x1B,0x06,0x76,0x49}}
1266 
1267 // {C8806A3E-9CFE-43F3-97CE-E577B9E86BB6}
1268 #define COMP_p6SocketFactory {0xC8806A3E,0x9CFE,0x43F3,{0x97,0xCE,0xE5,0x77,0xB9,0xE8,0x6B,0xB6}}
1269 
1270 #ifdef __cplusplus
1271 } // extern "C"
1272 } // namespace
1273 #endif
1274 
1275 
1276 #endif
1277 
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:664
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:596
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:1238
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