Qore Programming Language Reference Manual 2.1.1
Loading...
Searching...
No Matches
QC_Socket.dox.h
1
2namespace Qore {
4
6hashdecl SseMessageInfo {
8 string comment;
10
12 auto data;
14 string event;
16 auto id;
18 int retry;
19};
20}
22namespace Qore {
24
34}
35
37namespace Qore {
39
173
174public:
176
192
193public:
195
212
213public:
215
232
233public:
235
253
254public:
256
273
274public:
276
297
298public:
300
314int bind(int port, softbool reuseaddr = False);
315
316public:
318
347
348public:
350
366nothing bindUNIX(string path, softint socktype = SOCK_STREAM, softint protocol = 0);
367
368public:
370
384
385public:
387
397
398public:
400
410
411public:
413
426int close();
427
428public:
430
469
470public:
472
497
498public:
500
526
527public:
529
558
559public:
561
581
582public:
584
605
606public:
608
612
613public:
615
619
620public:
622/***/
624
625public:
627
645
646public:
648
654string getCharset();
655
656public:
658
673
674public:
676
681string getEncoding();
682
683public:
685
698
699public:
701
718
719public:
721
732
733public:
735
746
747public:
749
761
762public:
764
776
777public:
779
791
792public:
794
805
806public:
808
819
820public:
822
839
840public:
842
860
861public:
863
885
886public:
888
907
908public:
910
920bool isOpen();
921
922public:
924
934bool isSecure();
935
936public:
938
956
957public:
959
972int listen(int backlog = 20);
973
974public:
976
984
985public:
987
1014
1015public:
1017
1039
1040public:
1042
1064
1065public:
1067
1100
1101public:
1103
1126
1127public:
1129
1158
1159public:
1161
1209
1210public:
1212
1236
1237public:
1239
1255
1256public:
1258
1273
1274public:
1276
1301string recv(softint size = 0, timeout timeout_ms = -1);
1302
1303public:
1305
1329
1330public:
1332
1356
1357public:
1359
1382
1383public:
1385
1408
1409public:
1411
1434
1435public:
1437
1465
1466public:
1468
1491
1492public:
1494
1517
1518public:
1520
1543
1544public:
1546
1569
1570public:
1572
1595
1596public:
1598
1621
1622public:
1624
1647
1648public:
1650
1673
1674public:
1676
1703
1704public:
1706
1734int send(string str, timeout timeout_ms = -1);
1735
1736public:
1738
1762
1763public:
1765
1791
1792public:
1794
1820
1821public:
1823
1849
1850public:
1852
1875
1876public:
1878
1901
1902public:
1904
1926
1927public:
1929
1961
1962public:
1964
1988
1989public:
1991
2027
2028public:
2030
2063
2064public:
2066
2095
2096public:
2098
2123
2124public:
2126
2165
2166public:
2168
2198
2199public:
2201
2236
2237public:
2239
2282
2283public:
2285
2321
2322public:
2324
2363
2364public:
2366
2390
2391public:
2393
2417
2418public:
2420
2444
2445public:
2447
2471
2472public:
2474
2498
2499public:
2501
2525
2526public:
2528
2552
2553public:
2555
2563
2564public:
2566
2574
2575public:
2577
2585
2586public:
2588
2599
2600public:
2602
2605nothing setCharset(string encoding);
2606
2607public:
2609
2611nothing setEncoding(string encoding);
2612
2613public:
2615
2623
2624public:
2626
2643
2644public:
2646
2664int setNoDelay(bool nd = True);
2665
2666public:
2668
2676
2677public:
2679
2688
2689public:
2691
2699
2700public:
2702
2717
2718public:
2720
2733
2734public:
2736
2754
2755public:
2757
2790
2791public:
2793
2804
2805public:
2807
2817
2818public:
2820
2832
2833public:
2835
2843
2844public:
2846
2856
2857public:
2859
2888
2889public:
2891
2901
2902public:
2904
2913
2914public:
2916
2926
2927public:
2929
2939
2940public:
2942
2952
2953public:
2955
2962
2963public:
2965
2972
2973public:
2975
2984
2985public:
2987
2996
2997public:
2999
3014
3015public:
3017
3032
3033public:
3035
3046
3047public:
3049
3054
3055public:
3057
3089};
3093
3101
3106
3108
3120
3132
3141
3158
3165
3167 const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH = "X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH";
3169 const X509_V_ERR_AKID_SKID_MISMATCH = "X509_V_ERR_AKID_SKID_MISMATCH";
3171 const X509_V_ERR_APPLICATION_VERIFICATION = "X509_V_ERR_APPLICATION_VERIFICATION";
3173 const X509_V_ERR_CERT_CHAIN_TOO_LONG = "X509_V_ERR_CERT_CHAIN_TOO_LONG";
3175 const X509_V_ERR_CERT_HAS_EXPIRED = "X509_V_ERR_CERT_HAS_EXPIRED";
3177 const X509_V_ERR_CERT_NOT_YET_VALID = "X509_V_ERR_CERT_NOT_YET_VALID";
3179 const X509_V_ERR_CERT_REJECTED = "X509_V_ERR_CERT_REJECTED";
3181 const X509_V_ERR_CERT_REVOKED = "X509_V_ERR_CERT_REVOKED";
3183 const X509_V_ERR_CERT_SIGNATURE_FAILURE = "X509_V_ERR_CERT_SIGNATURE_FAILURE";
3185 const X509_V_ERR_CERT_UNTRUSTED = "X509_V_ERR_CERT_UNTRUSTED";
3187 const X509_V_ERR_CRL_HAS_EXPIRED = "X509_V_ERR_CRL_HAS_EXPIRED";
3189 const X509_V_ERR_CRL_NOT_YET_VALID = "X509_V_ERR_CRL_NOT_YET_VALID";
3191 const X509_V_ERR_CRL_SIGNATURE_FAILURE = "X509_V_ERR_CRL_SIGNATURE_FAILURE";
3193 const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT = "X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT";
3195 const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD = "X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD";
3197 const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD = "X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD";
3199 const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD = "X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD";
3201 const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD = "X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD";
3203 const X509_V_ERR_INVALID_CA = "X509_V_ERR_INVALID_CA";
3205 const X509_V_ERR_INVALID_PURPOSE = "X509_V_ERR_INVALID_PURPOSE";
3207 const X509_V_ERR_KEYUSAGE_NO_CERTSIGN = "X509_V_ERR_KEYUSAGE_NO_CERTSIGN";
3209 const X509_V_ERR_OUT_OF_MEM = "X509_V_ERR_OUT_OF_MEM";
3211 const X509_V_ERR_PATH_LENGTH_EXCEEDED = "X509_V_ERR_PATH_LENGTH_EXCEEDED";
3213 const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN = "X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN";
3215 const X509_V_ERR_SUBJECT_ISSUER_MISMATCH = "X509_V_ERR_SUBJECT_ISSUER_MISMATCH";
3217 const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY = "X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY";
3219 const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE = "X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE";
3221 const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE = "X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE";
3223 const X509_V_ERR_UNABLE_TO_GET_CRL = "X509_V_ERR_UNABLE_TO_GET_CRL";
3225 const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT = "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT";
3227 const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY = "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY";
3229 const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE = "X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE";
3231 const X509_V_OK = "X509_V_OK";
3234 "X509_V_OK": "OK",
3235 "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT": "Unable to get issuer certificate",
3236 "X509_V_ERR_UNABLE_TO_GET_CRL": "Unable to get certificate CRL",
3237 "X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE": "Unable to decrypt certificate's signature. This means that the actual signature value could not be determined rather than it not matching the expected value; this is only meaningful for RSA",
3238 "X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE": "Unable to decrypt CRL's signature",
3239 "X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY": "Unable to decode issuer public key (SubjectPublicKeyInfo)",
3240 "X509_V_ERR_CERT_SIGNATURE_FAILURE": "Certificate signature failure; the signature of the certificate is invalid",
3241 "X509_V_ERR_CRL_SIGNATURE_FAILURE": "CRL signature failure; the signature of the certificate is invalid",
3242 "X509_V_ERR_CERT_NOT_YET_VALID": "Certificate is not yet valid",
3243 "X509_V_ERR_CERT_HAS_EXPIRED": "Certificate has expired",
3244 "X509_V_ERR_CRL_NOT_YET_VALID": "CRL is not yet valid",
3245 "X509_V_ERR_CRL_HAS_EXPIRED": "CRL has expired",
3246 "X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD": "Format error in certificate's notBefore field (invalid time)",
3247 "X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD": "Format error in certificate's notAfter field (invalid time)",
3248 "X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD": "Format error in CRL's lastUpdate field (invalid time)",
3249 "X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD": "Format error in CRL's nextUpdate field (invalid time)",
3250 "X509_V_ERR_OUT_OF_MEM": "Out of memory error",
3251 "X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT": "Certificate is self-signed and cannot be found in the trusted list",
3252 "X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN": "Self signed certificate in certificate chain",
3253 "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY": "Unable to get local issuer certificate. This normally means the list of trusted certificates is not complete",
3254 "X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE": "Unable to verify the first certificate",
3255 "X509_V_ERR_CERT_CHAIN_TOO_LONG": "Certificate chain too long",
3256 "X509_V_ERR_CERT_REVOKED": "Certificate has been revoked",
3257 "X509_V_ERR_INVALID_CA": "Invalid CA certificate",
3258 "X509_V_ERR_PATH_LENGTH_EXCEEDED": "The basicConstraints pathlength parameter has been exceeded",
3259 "X509_V_ERR_INVALID_PURPOSE": "The certificate cannot be used for the specified purpose",
3260 "X509_V_ERR_CERT_UNTRUSTED": "Root CA is not marked as trusted for the specified purpose",
3261 "X509_V_ERR_CERT_REJECTED": "Root CA is marked to reject the specified purpose",
3262 "X509_V_ERR_SUBJECT_ISSUER_MISMATCH": "The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate",
3263 "X509_V_ERR_AKID_SKID_MISMATCH": "The current candidate issuer certificate was rejected because its subject key identifier was present and did not match the authority key identifier of the current certificate",
3264 "X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH": "Issuer name and serial number of candidate certificate do not match the authority key identifier of the current certificate",
3265 "X509_V_ERR_KEYUSAGE_NO_CERTSIGN": "The keyUsage extension does not permit certificate signing",
3266 "X509_V_ERR_APPLICATION_VERIFICATION": "Verification failure",
3267);
3269
3273
3277 const AFStrMap = (
3278 "AF_INET": AF_INET,
3279 "AF_INET6": AF_INET6,
3280 "AF_UNIX": AF_UNIX,
3281 "AF_LOCAL": AF_UNIX,
3282 "AF_UNSPEC": AF_UNSPEC,
3283);
3295
3300
3310
3317
3328
3332
3336
3342
3346
3354}
Abstract poll operation objects provide the polling interface for pollable objects.
Definition QC_AbstractPollOperation.dox.h:6
Interface for builtin classes that support I/O polling.
Definition QC_AbstractPollableIoObjectBase.dox.h:8
This interfaces declares that the inheriting class supports a pollable file descriptor.
Definition QC_AbstractPollableIoObject.dox.h:6
This class defines an abstract interface for input streams.
Definition QC_InputStream.dox.h:19
This class defines an abstract interface for output streams.
Definition QC_OutputStream.dox.h:18
SSLCertificate objects allow Qore code to work with X.509 certificate data.
Definition QC_SSLCertificate.dox.h:10
This class implements a container for private key data.
Definition QC_SSLPrivateKey.dox.h:10
The Socket class allows Qore programs safe access to network sockets.
Definition QC_Socket.dox.h:172
int sendi2LSB(softint i=0, timeout timeout_ms=-1)
Sends a 2-byte (16-bit) integer in little-endian format over the socket.
nothing send2(string str, timeout timeout_ms=-1)
Sends string data over the socket; string data is converted to the socket's encoding if necessary; if...
int getSendTimeout()
Returns the send timeout socket option value as an integer in milliseconds.
hash< auto > readHTTPChunkedBodyBinary(timeout timeout_ms=-1)
Reads in an HTTP message body sent in chunked transfer encoding and returns it with any footers recei...
int sendBinary(binary bin, timeout timeout_ms=-1)
Sends binary data over the socket; if any errors occur, an exception is thrown.
nothing sendHTTPMessage(string method, string path, string http_version, hash< auto > headers, *binary body, *reference< hash< auto > > info, timeout timeout_ms=-1)
Sends an HTTP message with a method and user-defined headers given as a hash and an optional message ...
bool getAcceptAllCertificates()
returns the current value of the "accept all certificates" flag
int sendi1(softint i=0, timeout timeout_ms=-1)
Sends a 1-byte integer over the socket.
int sendi8LSB(softint i=0, timeout timeout_ms=-1)
Sends an 8-byte (64-bit) integer in little-endian format over the socket.
nothing sendHTTPResponse(softint status_code, string status_desc, string http_version, hash< auto > headers, *binary body, *reference< hash< auto > > info, timeout timeout_ms=-1)
Sends an HTTP response with user-defined headers given as a hash and a message body as literal binary...
bool pendingHttpChunkedBody()
returns True if the socket is still connected, and a HTTP header was read indicating chunked transfer...
AbstractPollOperation startPollAccept()
Returns an AbstractPollOperation object to accept a new connection.
bool captureRemoteCertificates(bool set=True)
Sets the flag for capturing remote X.509 certificates; by default no capture of remote certificates i...
bool isOpen()
Returns True if the socket is open.
int recvu2(timeout timeout_ms=-1)
Receives a 2-byte (16-bit) unsigned integer in big-endian format (network byte order) from the socket...
int getSocket()
Returns the socket file descriptor number.
hash< auto > getSocketInfo(bool host_lookup=True)
Returns information about the local socket as a hash.
AbstractPollOperation startPollConnectSsl(string target)
Returns an AbstractPollOperation object to poll the socket for an SSL connection.
int setRecvTimeout(timeout timeout_ms)
sets the receive timeout as a socket option
Socket accept()
Accepts connections on a listening socket.
bool getNoDelay()
Returns the TCP_NODELAY setting for the socket.
nothing connectSSL(string target, timeout timeout_ms=-1)
Connects to a remote socket and attempts to establish a TLS/SSL connection; accepts an optional timeo...
nothing sendHTTPResponse(softint status_code, string status_desc, string http_version, hash< auto > headers, string body, timeout timeout_ms=-1)
Sends an HTTP response with user-defined headers given as a hash and an optional message body.
nothing setCertificate(binary cert_der)
Sets the X.509 certificate to use for negotiating encrypted connections from the DER-encoded binary o...
nothing sendFromInputStream(Qore::InputStream input_stream, softint size=-1, timeout timeout_ms=-1)
Reads data from an InputStream and sends the bytes over the socket.
int close()
Closes an open socket.
AbstractPollOperation startPollRecvBinary(int size)
Returns an AbstractPollOperation object to read data in non-blocking mode.
*string getSSLCipherName()
Returns the name of the cipher for an encrypted connection or NOTHING if a secure connection has not ...
int listen(int backlog=20)
Listens for connections on a bound socket; sets the socket in a listening state.
nothing sendHTTPResponseWithCallback(code scb, softint status_code, string status_desc, string http_version, hash< auto > headers, timeout timeout_ms=-1)
Sends an HTTP response with user-defined headers given as a hash and a message body to send with chun...
hash< auto > readHTTPChunk(timeout timeout_ms=-1)
Reads in a single HTTP message chunk.
static list< hash< SocketPollInfo > > poll(list< hash< SocketPollInfo > > items, timeout timeout_ms)
polls multiple sockets and returns all sockets with events
*Socket accept(timeout timeout_ms)
Accepts connections on a listening socket (see Socket::listen()) accepting a timeout value with a mil...
*string getSSLCipherVersion()
Returns the version string of the cipher for an encrypted connection or NOTHING if a secure connectio...
nothing setWarningQueue(int warning_ms, int warning_bs, Queue queue, auto arg, timeout min_ms=1s)
Sets a Queue object to receive socket warnings.
int recvu4LSB(timeout timeout_ms=-1)
Receives a 4-byte (32-bit) unsigned integer in little-endian format from the socket.
int recvi2(timeout timeout_ms=-1)
Receives a 2-byte (16-bit) signed integer in big-endian format (network byte order) from the socket.
hash< auto > getUsageInfo()
Returns performance statistics for the socket.
bool isWriteFinished(timeout timeout_ms=0)
Returns True or False depending on whether all the data has been written to the socket.
nothing connectUNIXSSL(string path, softint socktype=SOCK_STREAM, softint protocol=0)
Connects to the given UNIX domain socket file and attempts to establish a TLS/SSL connection.
nothing setCertificateAndPrivateKey(SSLCertificate cert, SSLPrivateKey key)
Sets the X.509 certificate and private key in one atomic operation to use for negotiating encrypted c...
nothing sendHTTPResponseWithCallback(code scb, softint status_code, string status_desc, string http_version, hash< auto > headers, *reference< hash< auto > > info, timeout timeout_ms=-1)
Sends an HTTP response with user-defined headers given as a hash and a message body to send with chun...
*string verifyPeerCertificate()
Returns a string code giving the result of verifying the remote certificate or NOTHING if an encrypte...
hash< auto > readHTTPChunkedBody(timeout timeout_ms=-1)
Reads in an HTTP message body sent in chunked transfer encoding and returns it with any footers recei...
int recvi4LSB(timeout timeout_ms=-1)
Receives a 4-byte (32-bit) signed integer in little-endian format from the socket.
bool isSecure()
Returns True if the connection is a secure TLS/SSL connection.
static hash< SseMessageInfo > parseServerSentEvent(string str)
Parse the given string as a Server Sent Event (SSE) string.
AbstractPollOperation startPollUpgradeClientToSSL()
Returns an AbstractPollOperation object to upgrade a connected client socket to SSL.
hash< auto > readHTTPChunkedBodyToOutputStream(Qore::OutputStream os, timeout timeout_ms=-1)
Reads in an HTTP message body sent in chunked transfer encoding, writes it in an OutputStream and ret...
nothing sendBinary2(string str, timeout timeout_ms=-1)
Sends string data over the socket without converting the string to the socket's encoding,...
*Socket acceptSSL(timeout timeout_ms)
Accepts connections on a listening socket and attempts to negotiate a TLS/SSL connection accepting a ...
int sendi4LSB(softint i=0, timeout timeout_ms=-1)
Sends a 4-byte (32-bit) integer in little-endian format over the socket.
int getConnectionId()
Returns an integer connection ID that is incremented every time the socket is disconnected.
nothing connectINETSSL(string host, softstring service, timeout timeout_ms=-1, softint family=AF_UNSPEC, softint socktype=SOCK_STREAM, softint protocol=0)
Connects to the given host and port and attempts to establish a TLS/SSL connection; accepts an option...
*SSLCertificate getRemoteCertificate()
Returns any remote certificate captured or NOTHING if there is none.
hash< auto > getPeerInfo(bool host_lookup=True)
Returns a hash of information about the remote end for connected sockets.
int getSslVerifyMode()
returns the current SSL verification mode
AbstractPollOperation startPollConnect(string target)
Returns an AbstractPollOperation object to poll the socket for a standard connection.
nothing connectINET(string host, softstring service, timeout timeout_ms=-1, softint family=AF_UNSPEC, softint socktype=SOCK_STREAM, softint protocol=0)
Connects to the given host and port with an optional timeout value with a millisecond resolution.
int recvi8LSB(timeout timeout_ms=-1)
Receives an 8-byte (64-bit) signed integer in little-endian format from the socket.
nothing connect(string target, timeout timeout_ms=-1)
Connects to a remote port (if the string has a format "host:port") or UNIX domain socket file.
int bind(int port, softbool reuseaddr=False)
Opens and binds the socket to an INET port on all interfaces.
hash< SseMessageInfo > readServerSentEvent(*string content_encoding, timeout timeout_ms=-1)
Read a server sent event message.
nothing setPrivateKey(string key_pem, *string pass)
Sets the private key to use for negotiating encrypted connections along with the X....
nothing upgradeServerToSSL(timeout timeout_ms=-1)
Upgrades a server socket connection to a TLS/SSL connection.
int bind(string str, softbool reuseaddr=False)
Opens and binds the socket to a port, interface and port (if the bind_to string has a format "host:po...
AbstractPollOperation startPollRecvUntilBytesString(string pattern)
Returns an AbstractPollOperation object to read data in non-blocking mode.
nothing sendHTTPResponse(softint status_code, string status_desc, string http_version, hash< auto > headers, Qore::InputStream input_stream, int max_chunk_size=4096, *reference< hash< auto > > info, timeout timeout_ms=-1, *code tcb)
Sends an HTTP response with user-defined headers and a message body from an input stream in chunked t...
nothing sendBinary2(binary bin, timeout timeout_ms=-1)
Sends binary data over the socket; if any errors occur, an exception is thrown.
int sendi8(softint i=0, timeout timeout_ms=-1)
Sends an 8-byte (64-bit) integer in big-endian format (network byte order) over the socket.
nothing bindINET(*string iface, *softstring service, softbool reuseaddr=False, softint family=AF_UNSPEC, softint socktype=SOCK_STREAM, softint protocol=0)
Opens and binds the socket to the given IPv4 or IPv6 interface (or if no interface is given,...
int sendi4(softint i=0, timeout timeout_ms=-1)
Sends a 4-byte (32-bit) integer in big-endian format (network byte order) over the socket.
AbstractPollOperation startPollSend(binary data)
Returns an AbstractPollOperation object to send data in non-blocking mode.
nothing recvToOutputStream(Qore::OutputStream os, softint size=-1, timeout timeout_ms=-1)
Receives data from the socket and writes the bytes to an OutputStream.
nothing setCertificate(SSLCertificate cert)
Sets the X.509 certificate to use for negotiating encrypted connections.
readHTTPChunkedBodyWithCallback(code rcb, timeout timeout_ms=-1)
Reads in an HTTP message body sent in chunked transfer encoding and returns it with any footers recei...
nothing clearWarningQueue()
Removes any warning Queue object from the Socket.
int recvi1(timeout timeout_ms=-1)
Receives a 1-byte signed integer from the socket.
int getRecvTimeout()
Returns the receive timeout socket option value as an integer in milliseconds.
nothing setCertificate(string cert_pem)
Sets the X.509 certificate to use for negotiating encrypted connections from the PEM-encoded string r...
clearStats()
Clears performance statistics.
int recvu2LSB(timeout timeout_ms=-1)
Receives a 2-byte (16-bit) unsigned integer in little-endian format from the socket.
binary recvBinary(softint size=0, timeout timeout_ms=-1)
Receives data from the socket and returns a binary object.
int send(string str, timeout timeout_ms=-1)
Sends string data over the socket; string data is converted to the socket's encoding if necessary; if...
readHTTPChunkedBodyBinaryWithCallback(code rcb, timeout timeout_ms=-1)
Reads in an HTTP message body sent in chunked transfer encoding and returns it with any footers recei...
acceptAllCertificates(bool accept_all=True)
with peer verification enabled, all certificates are accepted regardless of the validity of the Certi...
int send(binary bin, timeout timeout_ms=-1)
Sends binary data over the socket; if any errors occur, an exception is thrown.
AbstractPollOperation startPollRecvString(int size)
Returns an AbstractPollOperation object to read data in non-blocking mode.
nothing setPrivateKey(binary key_der)
Sets the private key to use for negotiating encrypted connections along with the X....
int setSendTimeout(timeout timeout_ms)
sets the send timeout as a socket option
copy()
Creates a new Socket object, not based on the source being copied.
int sendi2(softint i=0, timeout timeout_ms=-1)
Sends a 2-byte (16-bit) integer in big-endian format (network byte order) over the socket.
AbstractPollOperation startPollUpgradeServerToSSL()
Returns an AbstractPollOperation object to upgrade a connected server socket to SSL.
setSslVerifyMode(int mode)
sets the SSL verification mode
int shutdown()
Ensures that a socket will be closed even if the file descriptor is shared with other processes (for ...
nothing sendHTTPMessageWithCallback(code scb, string method, string path, string http_version, hash< auto > headers, *reference< hash< auto > > info, timeout timeout_ms=-1)
Sends an HTTP message with a method and user-defined headers given as a hash and an optional message ...
constructor()
Creates the socket object.
nothing shutdownSSL()
Shuts down the SSL connection on a secure connection.
AbstractPollOperation startPollRecvUntilBytesBinary(string pattern)
Returns an AbstractPollOperation object to read data in non-blocking mode.
nothing setEventQueue(Qore::Thread::Queue queue, auto arg, *bool with_data)
Sets a Queue object to receive socket events.
int recvu1(timeout timeout_ms=-1)
Receives a 1-byte unsigned integer from the socket.
nothing send2(binary bin, timeout timeout_ms=-1)
Sends binary data over the socket; if any errors occur, an exception is thrown.
AbstractPollOperation startPollSend(string data)
Returns an AbstractPollOperation object to send data in non-blocking mode.
string readHTTPHeaderString(timeout timeout_ms=-1)
Retuns a string representing the data in the HTTP header read (reads until "\r\n\r\n")
int recvi4(timeout timeout_ms=-1)
Receives a 4-byte (32-bit) signed integer in big-endian format (network byte order) from the socket.
string getEncoding()
Returns the character encoding for the socket.
hash< auto > readHTTPHeader(timeout timeout_ms=-1, *reference< hash< auto > > info)
Retuns a hash representing the data in the HTTP header read, or, if the data cannot be parsed as an H...
nothing setEventQueue()
Removes any Queue object from the Socket object so that socket events are no longer added to the Queu...
nothing sendHTTPChunkedBodyTrailer(*hash< auto > trailer, timeout timeout_ms=-1)
Sends the trialer of an HTTP message body in chunked transfer encoding.
nothing upgradeClientToSSL(timeout timeout_ms=-1)
Upgrades a client socket connection to a TLS/SSL connection.
nothing setCharset(string encoding)
Sets the character encoding for the socket.
nothing connectUNIX(string path, softint socktype=SOCK_STREAM, softint protocol=0)
Connects to a UNIX domain socket file.
int sendBinary(string str, timeout timeout_ms=-1)
Sends string data over the socket without converting the string to the socket's encoding,...
bool isDataAvailable(timeout timeout_ms=0)
Returns True or False depending on whether there is data to be read on the socket.
int setNoDelay(bool nd=True)
Sets the boolean TCP_NODELAY setting for the socket.
Socket acceptSSL()
Accepts connections on a listening socket and attempts to negotiate a TLS/SSL connection.
string recv(softint size=0, timeout timeout_ms=-1)
Receives data from the socket and returns a string tagged with the Socket's character encoding.
int recvu4(timeout timeout_ms=-1)
Receives a 4-byte (32-bit) unsigned integer in big-endian format (network byte order) from the socket...
int recvi8(timeout timeout_ms=-1)
Receives an 8-byte (64-bit) signed integer in big-endian format (network byte order) from the socket.
AbstractPollOperation startPollReadHttpHeader()
Returns an AbstractPollOperation object to read an HTTP header without blocking.
nothing sendHTTPMessage(string method, string path, string http_version, hash< auto > headers, string body, *reference< hash > info, timeout timeout_ms=-1)
Sends an HTTP message with a method and user-defined headers given as a hash and an optional message ...
int recvi2LSB(timeout timeout_ms=-1)
Receives a 2-byte (16-bit) signed integer in little-endian format from the socket.
int getPort()
Returns the port number of the socket for INET sockets.
nothing sendHTTPResponse(softint status_code, string status_desc, string http_version, hash< auto > headers, *binary body, timeout timeout_ms=-1)
Sends an HTTP response with user-defined headers given as a hash and a message body as literal binary...
nothing bindUNIX(string path, softint socktype=SOCK_STREAM, softint protocol=0)
Opens and binds the socket to the given UNIX domain socket file as given by the filename argument....
hash< SseMessageInfo > readServerSentEvent(timeout timeout_ms=-1)
Read a server sent event message.
nothing setEncoding(string encoding)
Sets the character encoding for the socket.
destructor()
Deletes the object.
nothing setPrivateKey(SSLPrivateKey key)
Sets the private key to use for negotiating encrypted connections along with the X....
AbstractPollOperation startPollRecvData()
Returns an AbstractPollOperation object for receiving data in non-blocking mode.
nothing sendHTTPResponse(softint status_code, string status_desc, string http_version, hash< auto > headers, string body, *reference< hash< auto > > info, timeout timeout_ms=-1)
Sends an HTTP response with user-defined headers given as a hash and an optional message body.
nothing sendHTTPChunkedBodyFromInputStream(Qore::InputStream input_stream, int max_chunk_size=4096, timeout timeout_ms=-1, *code tcb)
Sends an HTTP message body in chunked transfer encoding.
string getCharset()
Returns the character encoding for the socket.
Queue objects provide a blocking, thread-safe message-passing object to Qore programs
Definition QC_Queue.dox.h:22
const True
logical True
Definition qc_qore.dox.h:98
const False
logical False
Definition qc_qore.dox.h:96
const AF_LOCAL
POSIX synonym for AF_UNIX.
Definition QC_Socket.dox.h:3289
const AF_INET6
IPv6 address family.
Definition QC_Socket.dox.h:3287
const AF_UNIX
UNIX domain address family (UNIX socket files)
Definition QC_Socket.dox.h:3291
const AFMap
mapping from Network Address Family Constants to string codes
Definition QC_Socket.dox.h:3275
const AF_UNSPEC
unspecified address family
Definition QC_Socket.dox.h:3293
const AF_INET
IPv4 address family.
Definition QC_Socket.dox.h:3285
const AFStrMap
mapping from network address family string codes to Network Address Family Constants
Definition QC_Socket.dox.h:3277
const AI_NUMERICHOST
If this bit is set, then the host is assumed to be an address and no hostname lookup will be preforme...
Definition QC_Socket.dox.h:3308
const AI_ADDRCONFIG
if this bit is set, addresses of each family are returned only if they are configured on the system
Definition QC_Socket.dox.h:3302
const AI_CANONNAME
If this bit is set, then getaddrinfo() will return the canonical name of the hostname in the "canonna...
Definition QC_Socket.dox.h:3306
const AI_ALL
If this bit is set along with AI_V4MAPPED then all matching IPv6 and IPv4 addresses are returned.
Definition QC_Socket.dox.h:3304
const AI_NUMERICSERV
If this bit is set, then the service is assumed to be a numeric port string, and no service lookup wi...
Definition QC_Socket.dox.h:3315
const AI_V4MAPPED
If this bit is set, getaddrinfo() will return IPv4-mapped IPv6 addresses on finding no matching IPv6 ...
Definition QC_Socket.dox.h:3330
const AI_PASSIVE
If this bit is set, then the returned information should be usable for a call to Socket::bind()
Definition QC_Socket.dox.h:3326
const IPPROTO_TCP
for the TCP protocol
Definition QC_Socket.dox.h:3338
const IPPROTO_UDP
for the UDP protocol
Definition QC_Socket.dox.h:3340
const SOCK_POLLIN
(input and output) for polling for read events
Definition QC_Socket.dox.h:3097
const SOCK_POLLERR
(output only) indicates that the socket or connection is closed
Definition QC_Socket.dox.h:3095
const SOCK_POLLOUT
(input and output) for polling for write events
Definition QC_Socket.dox.h:3099
const SOCK_STREAM
for sequenced, reliable, two-way connection-based byte streams (the default)
Definition QC_Socket.dox.h:3352
const SOCK_RAW
raw socket interface, only available to the superuser, untested
Definition QC_Socket.dox.h:3350
const SOCK_DGRAM
for datagrams (connectionless, unreliable messages of a fixed (typically small) maximum length
Definition QC_Socket.dox.h:3348
const SSL_VERIFY_NONE
Do not verify the peer's certificate.
Definition QC_Socket.dox.h:3139
const SSL_VERIFY_FAIL_IF_NO_PEER_CERT
Require a client certificate in server mode.
Definition QC_Socket.dox.h:3130
const SSL_VERIFY_CLIENT_ONCE
Only request a client certificate once in server mode.
Definition QC_Socket.dox.h:3118
const SSL_VERIFY_PEER
Verify the peer's certificate.
Definition QC_Socket.dox.h:3156
list< auto > list(...)
Returns a list of the arguments passed at the top level.
binary binary()
Always returns an empty binary object (of zero length)
const X509_V_ERR_CERT_SIGNATURE_FAILURE
Certificate signature failure; the signature of the certificate is invalid.
Definition QC_Socket.dox.h:3183
const X509_V_ERR_CERT_REJECTED
Root CA is marked to reject the specified purpose.
Definition QC_Socket.dox.h:3179
const X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH
Issuer name and serial number of candidate certificate do not match the authority key identifier of t...
Definition QC_Socket.dox.h:3167
const X509_VerificationReasons
maps from varification strings to verification code descriptions
Definition QC_Socket.dox.h:3233
const X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD
Format error in certificate's notBefore field (invalid time)
Definition QC_Socket.dox.h:3197
const X509_V_ERR_PATH_LENGTH_EXCEEDED
The basicConstraints pathlength parameter has been exceeded.
Definition QC_Socket.dox.h:3211
const X509_V_ERR_KEYUSAGE_NO_CERTSIGN
The keyUsage extension does not permit certificate signing.
Definition QC_Socket.dox.h:3207
const X509_V_ERR_INVALID_PURPOSE
The certificate cannot be used for the specified purpose.
Definition QC_Socket.dox.h:3205
const X509_V_ERR_APPLICATION_VERIFICATION
Verification failure.
Definition QC_Socket.dox.h:3171
const X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT
Certificate is self-signed and cannot be found in the trusted list.
Definition QC_Socket.dox.h:3193
const X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE
Unable to decrypt certificate's signature. This means that the actual signature value could not be de...
Definition QC_Socket.dox.h:3219
const X509_V_ERR_UNABLE_TO_GET_CRL
Unable to get certificate CRL.
Definition QC_Socket.dox.h:3223
const X509_V_OK
Verification OK.
Definition QC_Socket.dox.h:3231
const X509_V_ERR_CRL_NOT_YET_VALID
CRL is not yet valid.
Definition QC_Socket.dox.h:3189
const X509_V_ERR_CERT_CHAIN_TOO_LONG
Certificate chain too long.
Definition QC_Socket.dox.h:3173
const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY
Unable to get local issuer certificate. This normally means the list of trusted certificates is not c...
Definition QC_Socket.dox.h:3227
const X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE
Unable to verify the first certificate.
Definition QC_Socket.dox.h:3229
const X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY
Unable to decode issuer public key (SubjectPublicKeyInfo)
Definition QC_Socket.dox.h:3217
const X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD
Format error in CRL's nextUpdate field (invalid time)
Definition QC_Socket.dox.h:3201
const X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD
Format error in CRL's lastUpdate field (invalid time)
Definition QC_Socket.dox.h:3199
const X509_V_ERR_CERT_REVOKED
Certificate has been revoked.
Definition QC_Socket.dox.h:3181
const X509_V_ERR_SUBJECT_ISSUER_MISMATCH
The current candidate issuer certificate was rejected because its subject name did not match the issu...
Definition QC_Socket.dox.h:3215
const X509_V_ERR_INVALID_CA
Invalid CA certificate.
Definition QC_Socket.dox.h:3203
const X509_V_ERR_OUT_OF_MEM
Out of memory error.
Definition QC_Socket.dox.h:3209
const X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT
Unable to get issuer certificate.
Definition QC_Socket.dox.h:3225
const X509_V_ERR_CRL_HAS_EXPIRED
CRL has expired.
Definition QC_Socket.dox.h:3187
const X509_V_ERR_CERT_UNTRUSTED
Root CA is not marked as trusted for the specified purpose.
Definition QC_Socket.dox.h:3185
const X509_V_ERR_CERT_NOT_YET_VALID
Certificate is not yet valid.
Definition QC_Socket.dox.h:3177
const X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD
Format error in certificate's notAfter field (invalid time)
Definition QC_Socket.dox.h:3195
const X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE
Unable to decrypt CRL's signature.
Definition QC_Socket.dox.h:3221
const X509_V_ERR_CERT_HAS_EXPIRED
Certificate has expired.
Definition QC_Socket.dox.h:3175
const X509_V_ERR_AKID_SKID_MISMATCH
The current candidate issuer certificate was rejected because its subject key identifier was present ...
Definition QC_Socket.dox.h:3169
const X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN
Self signed certificate in certificate chain.
Definition QC_Socket.dox.h:3213
const X509_V_ERR_CRL_SIGNATURE_FAILURE
CRL signature failure; the signature of the certificate is invalid.
Definition QC_Socket.dox.h:3191
Qore namespace.
Definition QC_AbstractSmartLock.dox.h:2
Socket or other pollable object poll info hash.
Definition QC_Socket.dox.h:26
int events
The poll type; see Socket Poll Constants for possible values to be combined with binary or.
Definition QC_Socket.dox.h:30
Qore::AbstractPollableIoObject socket
the pollable object to monitor
Definition QC_Socket.dox.h:32
Server-sent event hash.
Definition QC_Socket.dox.h:6
string event
Event type.
Definition QC_Socket.dox.h:14
int retry
Client should set the reconnection time to this value in milliseconds.
Definition QC_Socket.dox.h:18
string comment
Any comment.
Definition QC_Socket.dox.h:8
auto id
Message ID.
Definition QC_Socket.dox.h:16
auto data
Message data.
Definition QC_Socket.dox.h:12