LibreOffice
LibreOffice 4.3 SDK C/C++ API Reference
socket.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_OSL_SOCKET_H
21 #define INCLUDED_OSL_SOCKET_H
22 
23 #include <rtl/ustring.h>
24 #include <rtl/byteseq.h>
25 
26 #include <osl/time.h>
27 #include <rtl/tencinfo.h>
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 /* error returns */
34 #define OSL_INADDR_NONE 0xffffffff
35 #define OSL_INVALID_PORT (-1)
36 #define OSL_INVALID_IPX_SOCKET_NO 0xffffffff
37 
41 typedef struct oslSocketAddrImpl * oslSocketAddr;
42 
43 
47 typedef enum {
49  osl_Socket_FamilyIpx, /* Novell IPX/SPX */
50  osl_Socket_FamilyInvalid, /* always last entry in enum! */
53 
57 typedef enum {
58  osl_Socket_ProtocolIp, /* for all af_inet */
59  osl_Socket_ProtocolIpx, /* af_ipx datagram sockets (IPX) */
60  osl_Socket_ProtocolSpx, /* af_ipx seqpacket or stream for SPX */
61  osl_Socket_ProtocolSpxII, /* af_ipx seqpacket or stream for SPX II */
64 } oslProtocol;
65 
66 
70 typedef enum {
76  osl_Socket_TypeInvalid, /* always last entry in enum! */
79 
80 
84 typedef enum {
103  osl_Socket_OptionInvalid, /* always last entry in enum! */
106 
110 typedef enum {
113  osl_Socket_LevelInvalid, /* always last entry in enum! */
116 
117 
121 typedef enum {
127  osl_Socket_MsgInvalid, /* always last entry in enum! */
130 
134 typedef enum {
138  osl_Socket_DirInvalid, /* always last entry in enum! */
141 
144 typedef enum {
145  osl_Socket_E_None, /* no error */
146  osl_Socket_E_NotSocket, /* Socket operation on non-socket */
147  osl_Socket_E_DestAddrReq, /* Destination address required */
148  osl_Socket_E_MsgSize, /* Message too long */
149  osl_Socket_E_Prototype, /* Protocol wrong type for socket */
150  osl_Socket_E_NoProtocol, /* Protocol not available */
151  osl_Socket_E_ProtocolNoSupport, /* Protocol not supported */
152  osl_Socket_E_TypeNoSupport, /* Socket type not supported */
153  osl_Socket_E_OpNotSupport, /* Operation not supported on socket */
154  osl_Socket_E_PfNoSupport, /* Protocol family not supported */
155  osl_Socket_E_AfNoSupport, /* Address family not supported by */
156  /* protocol family */
157  osl_Socket_E_AddrInUse, /* Address already in use */
158  osl_Socket_E_AddrNotAvail, /* Can't assign requested address */
159  osl_Socket_E_NetDown, /* Network is down */
160  osl_Socket_E_NetUnreachable, /* Network is unreachable */
161  osl_Socket_E_NetReset, /* Network dropped connection because */
162  /* of reset */
163  osl_Socket_E_ConnAborted, /* Software caused connection abort */
164  osl_Socket_E_ConnReset, /* Connection reset by peer */
165  osl_Socket_E_NoBufferSpace, /* No buffer space available */
166  osl_Socket_E_IsConnected, /* Socket is already connected */
167  osl_Socket_E_NotConnected, /* Socket is not connected */
168  osl_Socket_E_Shutdown, /* Can't send after socket shutdown */
169  osl_Socket_E_TooManyRefs, /* Too many references: can't splice */
170  osl_Socket_E_TimedOut, /* Connection timed out */
171  osl_Socket_E_ConnRefused, /* Connection refused */
172  osl_Socket_E_HostDown, /* Host is down */
173  osl_Socket_E_HostUnreachable, /* No route to host */
174  osl_Socket_E_WouldBlock, /* call would block on non-blocking socket */
175  osl_Socket_E_Already, /* operation already in progress */
176  osl_Socket_E_InProgress, /* operation now in progress */
177  osl_Socket_E_InvalidError, /* unmapped error: always last entry in enum! */
180 
183 typedef enum {
184  osl_Socket_Ok, /* successful completion */
185  osl_Socket_Error, /* error occurred, check osl_getLastSocketError() for details */
186  osl_Socket_TimedOut, /* blocking operation timed out */
187  osl_Socket_Interrupted, /* blocking operation was interrupted */
188  osl_Socket_InProgress, /* nonblocking operation is in progress */
191 
194 
206 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_createEmptySocketAddr(
207  oslAddrFamily Family);
208 
209 
212 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_copySocketAddr(
213  oslSocketAddr Addr);
214 
220  oslSocketAddr Addr1, oslSocketAddr Addr2);
221 
227 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_resolveHostname(
228  rtl_uString *strHostname);
229 
239 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_createInetBroadcastAddr (
240  rtl_uString *strDottedAddr, sal_Int32 Port);
241 
242 
250 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_createInetSocketAddr (
251  rtl_uString *strDottedAddr, sal_Int32 Port);
252 
253 
258  oslSocketAddr Addr);
259 
264 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_getServicePort(
265  rtl_uString *strServicename, rtl_uString *strProtocol);
266 
267 
268 
274  oslSocketAddr Addr);
275 
276 
281 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_getInetPortOfSocketAddr(
282  oslSocketAddr Addr);
283 
284 
291  oslSocketAddr Addr, sal_Int32 Port);
292 
293 
300  oslSocketAddr Addr, rtl_uString **strHostname);
301 
302 
312  oslSocketAddr Addr, rtl_uString **strDottedInetAddr);
313 
317  oslSocketAddr Addr, sal_Sequence *pByteSeq );
318 
326  oslSocketAddr Addr, sal_Sequence **ppByteSeq );
327 
328 /*
329  Opaque datatype HostAddr.
330 */
331 typedef struct oslHostAddrImpl * oslHostAddr;
332 
333 
339 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_createHostAddr(
340  rtl_uString *strHostname, const oslSocketAddr Addr);
341 
342 
350 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_createHostAddrByName(rtl_uString *strHostname);
351 
352 
360 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_createHostAddrByAddr(const oslSocketAddr Addr);
361 
362 
366 SAL_DLLPUBLIC oslHostAddr SAL_CALL osl_copyHostAddr(const oslHostAddr Addr);
367 
368 
372 SAL_DLLPUBLIC void SAL_CALL osl_destroyHostAddr(oslHostAddr Addr);
373 
374 
378 SAL_DLLPUBLIC void SAL_CALL osl_getHostnameOfHostAddr(const oslHostAddr Addr, rtl_uString **strHostname);
379 
380 
384 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_getSocketAddrOfHostAddr(const oslHostAddr Addr);
385 
391 SAL_DLLPUBLIC oslSocketResult SAL_CALL osl_getLocalHostname(rtl_uString **strLocalHostname);
392 
393 
401 /*-***************************************************************************/
402 /* oslSocket */
403 /*-***************************************************************************/
404 
405 typedef struct oslSocketImpl * oslSocket;
406 
409 SAL_DLLPUBLIC void SAL_CALL osl_acquireSocket( oslSocket Socket );
410 
416 SAL_DLLPUBLIC void SAL_CALL osl_releaseSocket( oslSocket Socket );
417 
423 SAL_DLLPUBLIC oslSocket SAL_CALL osl_createSocket(
424  oslAddrFamily Family,
425  oslSocketType Type,
426  oslProtocol Protocol);
427 
434 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_getLocalAddrOfSocket(oslSocket Socket);
435 
442 SAL_DLLPUBLIC oslSocketAddr SAL_CALL osl_getPeerAddrOfSocket(oslSocket Socket);
443 
451  oslSocket Socket,
452  oslSocketAddr Addr);
453 
466  oslSocket Socket,
467  oslSocketAddr Addr,
468  const TimeValue* pTimeout);
469 
470 
480  oslSocket Socket,
481  sal_Int32 MaxPendingConnections);
482 
483 
492  (oslSocket Socket,
493  oslSocketAddr* pAddr);
494 
515 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_receiveSocket(
516  oslSocket Socket,
517  void* pBuffer,
518  sal_uInt32 BytesToRead,
519  oslSocketMsgFlag Flag);
520 
543 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_receiveFromSocket(
544  oslSocket Socket,
545  oslSocketAddr SenderAddr,
546  void* pBuffer,
547  sal_uInt32 BufferSize,
548  oslSocketMsgFlag Flag);
549 
568 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_sendSocket(
569  oslSocket Socket,
570  const void* pBuffer,
571  sal_uInt32 BytesToSend,
572  oslSocketMsgFlag Flag);
573 
599 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_sendToSocket(
600  oslSocket Socket,
601  oslSocketAddr ReceiverAddr,
602  const void* pBuffer,
603  sal_uInt32 BytesToSend,
604  oslSocketMsgFlag Flag);
605 
618  oslSocket Socket, const TimeValue* pTimeout);
619 
631  oslSocket Socket, const TimeValue* pTimeout);
632 
643  oslSocket Socket, const TimeValue* pTimeout);
644 
656 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_shutdownSocket(oslSocket Socket,
657  oslSocketDirection Direction);
658 
743 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_getSocketOption( oslSocket Socket,
744  oslSocketOptionLevel Level,
745  oslSocketOption Option,
746  void* pBuffer,
747  sal_uInt32 BufferLen);
748 
769 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_setSocketOption( oslSocket Socket,
770  oslSocketOptionLevel Level,
771  oslSocketOption Option,
772  void* pBuffer,
773  sal_uInt32 BufferLen);
774 
782  oslSocket Socket, sal_Bool On);
783 
784 
790  oslSocket Socket);
791 
792 
806  oslSocket Socket);
807 
813  oslSocket Socket, rtl_uString **strError);
814 
821  oslSocket Socket);
822 
825 typedef struct oslSocketSetImpl * oslSocketSet;
826 
830 SAL_DLLPUBLIC oslSocketSet SAL_CALL osl_createSocketSet(void);
831 
834 SAL_DLLPUBLIC void SAL_CALL osl_destroySocketSet(oslSocketSet Set);
835 
839 SAL_DLLPUBLIC void SAL_CALL osl_clearSocketSet(oslSocketSet Set);
840 
841 
846 SAL_DLLPUBLIC void SAL_CALL osl_addToSocketSet(oslSocketSet Set, oslSocket Socket);
847 
852 SAL_DLLPUBLIC void SAL_CALL osl_removeFromSocketSet(oslSocketSet Set, oslSocket Socket);
853 
859 SAL_DLLPUBLIC sal_Bool SAL_CALL osl_isInSocketSet(oslSocketSet Set, oslSocket Socket);
860 
876 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_demultiplexSocketEvents(oslSocketSet IncomingSet,
877  oslSocketSet OutgoingSet,
878  oslSocketSet OutOfBandSet,
879  const TimeValue* pTimeout);
880 
884 SAL_DLLPUBLIC void SAL_CALL osl_closeSocket(oslSocket Socket);
885 
886 
896 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_readSocket( oslSocket Socket, void *pBuffer, sal_Int32 nSize );
897 
898 
907 SAL_DLLPUBLIC sal_Int32 SAL_CALL osl_writeSocket( oslSocket Socket, const void *pBuffer, sal_Int32 nSize );
908 
914 #ifdef __cplusplus
915 }
916 #endif
917 
918 #endif // INCLUDED_OSL_SOCKET_H
919 
920 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: socket.h:71
Definition: socket.h:85
struct oslSocketAddrImpl * oslSocketAddr
Opaque datatype SocketAddr.
Definition: socket.h:41
Definition: socket.h:101
Definition: socket.h:103
SAL_DLLPUBLIC void osl_releaseSocket(oslSocket Socket)
decreases the refcount of the socket handle by one.
Definition: socket.h:112
Definition: socket.h:127
SAL_DLLPUBLIC void osl_addToSocketSet(oslSocketSet Set, oslSocket Socket)
Adds a socket to the set.
sal_uInt8 oslSocketIpxNodeNumber[6]
Definition: socket.h:193
Definition: socket.h:137
SAL_DLLPUBLIC sal_Bool osl_isInSocketSet(oslSocketSet Set, oslSocket Socket)
Checks if socket is in the set.
SAL_DLLPUBLIC oslSocketResult osl_getDottedInetAddrOfSocketAddr(oslSocketAddr Addr, rtl_uString **strDottedInetAddr)
Gets the address in dotted decimal format.
SAL_DLLPUBLIC oslHostAddr osl_createHostAddrByName(rtl_uString *strHostname)
Create an oslHostAddr by resolving the given strHostname.
Definition: socket.h:58
Definition: socket.h:184
SAL_DLLPUBLIC oslSocketResult osl_getHostnameOfSocketAddr(oslSocketAddr Addr, rtl_uString **strHostname)
Returns the hostname represented by Addr.
Definition: socket.h:147
struct oslHostAddrImpl * oslHostAddr
Definition: socket.h:330
Definition: socket.h:157
SAL_DLLPUBLIC sal_Bool osl_isNonBlockingMode(oslSocket Socket)
Query state of non-blocking-mode of the socket.
unsigned char sal_Bool
Definition: types.h:46
oslSocketType
Represents the type of a socket.
Definition: socket.h:70
SAL_DLLPUBLIC oslSocketAddr osl_createEmptySocketAddr(oslAddrFamily Family)
Creates a socket-address for the given family.
SAL_DLLPUBLIC oslSocketError osl_getLastSocketError(oslSocket Socket)
returns a constant decribing the last error for the socket system.
SAL_DLLPUBLIC oslSocketSet osl_createSocketSet(void)
Creates a set of sockets to be used with osl_demultiplexSocketEvents().
Definition: socket.h:153
SAL_DLLPUBLIC oslSocketAddr osl_getPeerAddrOfSocket(oslSocket Socket)
Retrieves the Address of the remote end of the socket.
SAL_DLLPUBLIC oslSocketType osl_getSocketType(oslSocket Socket)
Queries the socket for its type.
oslSocketDirection
Used by shutdown to denote which end of the socket to "close".
Definition: socket.h:134
Definition: socket.h:138
SAL_DLLPUBLIC void osl_closeSocket(oslSocket Socket)
Closes the socket terminating any ongoing dataflow.
Definition: socket.h:189
SAL_DLLPUBLIC oslSocketAddr osl_resolveHostname(rtl_uString *strHostname)
Uses the systems name-service interface to find an address for strHostname.
SAL_DLLPUBLIC sal_Int32 osl_writeSocket(oslSocket Socket, const void *pBuffer, sal_Int32 nSize)
Writes n bytes from pBuffer to the stream.
struct oslSocketImpl * oslSocket
Definition: socket.h:403
Definition: socket.h:164
Definition: socket.h:59
Definition: socket.h:160
Definition: socket.h:172
Definition: socket.h:126
Definition: socket.h:111
Definition: socket.h:187
Definition: socket.h:148
Definition: socket.h:76
Definition: socket.h:89
Definition: socket.h:51
oslSocketMsgFlag
Represents flags to be used with send/recv-calls.
Definition: socket.h:121
Definition: socket.h:91
Definition: socket.h:61
Definition: socket.h:155
SAL_DLLPUBLIC void osl_getHostnameOfHostAddr(const oslHostAddr Addr, rtl_uString **strHostname)
Get the hostname member of Addr.
Definition: socket.h:159
Definition: socket.h:168
SAL_DLLPUBLIC sal_Int32 osl_sendToSocket(oslSocket Socket, oslSocketAddr ReceiverAddr, const void *pBuffer, sal_uInt32 BytesToSend, oslSocketMsgFlag Flag)
Tries to send one datagram with BytesToSend data to the given ReceiverAddr via the (implicitly unconn...
Definition: socket.h:60
oslSocketError
Describes the various error socket error conditions, which may occur.
Definition: socket.h:144
SAL_DLLPUBLIC sal_Int32 osl_readSocket(oslSocket Socket, void *pBuffer, sal_Int32 nSize)
Retrieves n bytes from the stream and copies them into pBuffer.
SAL_DLLPUBLIC void osl_removeFromSocketSet(oslSocketSet Set, oslSocket Socket)
Removes a socket from the set.
Definition: time.h:42
SAL_DLLPUBLIC sal_Int32 osl_getInetPortOfSocketAddr(oslSocketAddr Addr)
Retrieves the internet port-number of Addr.
Definition: socket.h:145
Definition: socket.h:171
Definition: socket.h:186
Definition: socket.h:93
Definition: socket.h:77
SAL_DLLPUBLIC void osl_getLastSocketErrorDescription(oslSocket Socket, rtl_uString **strError)
returns a string which describes the last socket error.
Definition: socket.h:177
SAL_DLLPUBLIC oslSocketAddr osl_copySocketAddr(oslSocketAddr Addr)
Creates a new SocketAddress and fills it from Addr.
unsigned char sal_uInt8
Definition: types.h:52
oslSocketOption
Represents socket-options.
Definition: socket.h:84
Definition: socket.h:73
Definition: socket.h:161
Definition: socket.h:87
Definition: socket.h:176
This is the binary specification of a SAL sequence.
Definition: types.h:327
SAL_DLLPUBLIC sal_Int32 osl_receiveSocket(oslSocket Socket, void *pBuffer, sal_uInt32 BytesToRead, oslSocketMsgFlag Flag)
Tries to receive BytesToRead data from the connected socket, if no error occurs.
sal_uInt8 oslSocketIpxNetNumber[4]
Definition: socket.h:192
SAL_DLLPUBLIC void osl_acquireSocket(oslSocket Socket)
increases the refcount of the socket handle by one
SAL_DLLPUBLIC oslSocketAddr osl_getSocketAddrOfHostAddr(const oslHostAddr Addr)
Get the socket address member of Addr.
Definition: socket.h:90
SAL_DLLPUBLIC sal_Bool osl_isExceptionPending(oslSocket Socket, const TimeValue *pTimeout)
Checks if a request for out-of-band data will block.
SAL_DLLPUBLIC sal_Bool osl_shutdownSocket(oslSocket Socket, oslSocketDirection Direction)
Shuts down communication on a connected socket.
Definition: socket.h:124
Definition: socket.h:75
Definition: socket.h:49
SAL_DLLPUBLIC oslHostAddr osl_createHostAddr(rtl_uString *strHostname, const oslSocketAddr Addr)
Create an oslHostAddr from given hostname and socket address.
SAL_DLLPUBLIC oslHostAddr osl_createHostAddrByAddr(const oslSocketAddr Addr)
Create an oslHostAddr by reverse resolution of the given Addr.
Definition: socket.h:152
Definition: socket.h:175
Definition: socket.h:170
Definition: socket.h:113
oslAddrFamily
Represents the address-family of a socket.
Definition: socket.h:47
oslSocketOptionLevel
Represents the different socket-option levels.
Definition: socket.h:110
SAL_DLLPUBLIC oslHostAddr osl_copyHostAddr(const oslHostAddr Addr)
Create a copy of the given Addr.
SAL_DLLPUBLIC oslSocketResult osl_setAddrOfSocketAddr(oslSocketAddr Addr, sal_Sequence *pByteSeq)
Sets the addr field in the struct sockaddr with pByteSeq.
Definition: socket.h:100
SAL_DLLPUBLIC oslSocketResult osl_getLocalHostname(rtl_uString **strLocalHostname)
Retrieve this machines hostname.
Definition: socket.h:48
Definition: socket.h:97
SAL_DLLPUBLIC void osl_clearSocketSet(oslSocketSet Set)
Clears the set from all previously added sockets.
Definition: socket.h:150
SAL_DLLPUBLIC sal_Bool osl_setInetPortOfSocketAddr(oslSocketAddr Addr, sal_Int32 Port)
Sets the Port of Addr.
SAL_DLLPUBLIC sal_Int32 osl_sendSocket(oslSocket Socket, const void *pBuffer, sal_uInt32 BytesToSend, oslSocketMsgFlag Flag)
Tries to send BytesToSend data from the connected socket, if no error occurs.
SAL_DLLPUBLIC sal_Bool osl_bindAddrToSocket(oslSocket Socket, oslSocketAddr Addr)
Binds the given address to the socket.
Definition: socket.h:104
Definition: socket.h:173
Definition: socket.h:114
Definition: socket.h:96
SAL_DLLPUBLIC oslSocketAddr osl_getLocalAddrOfSocket(oslSocket Socket)
Retrieves the Address of the local end of the socket.
SAL_DLLPUBLIC void osl_destroyHostAddr(oslHostAddr Addr)
Frees all resources allocated by Addr.
SAL_DLLPUBLIC sal_Bool osl_isSendReady(oslSocket Socket, const TimeValue *pTimeout)
Checks if send operations will block.
#define SAL_DLLPUBLIC
Definition: saldllapi.h:30
Definition: socket.h:165
SAL_DLLPUBLIC oslSocketAddr osl_createInetBroadcastAddr(rtl_uString *strDottedAddr, sal_Int32 Port)
Create an internet address usable for sending broadcast datagrams.
SAL_DLLPUBLIC sal_Bool osl_isEqualSocketAddr(oslSocketAddr Addr1, oslSocketAddr Addr2)
Compares the values of two SocketAddresses.
oslProtocol
represent a specific protocol within a address-family
Definition: socket.h:57
Definition: socket.h:86
Definition: socket.h:163
Definition: socket.h:174
Definition: socket.h:128
Definition: socket.h:122
Definition: socket.h:99
SAL_DLLPUBLIC oslSocketAddr osl_createInetSocketAddr(rtl_uString *strDottedAddr, sal_Int32 Port)
Create an internet-address, consisting of hostaddress and port.
Definition: socket.h:188
SAL_DLLPUBLIC void osl_destroySocketAddr(oslSocketAddr Addr)
Frees all resources allocated by Addr.
Definition: socket.h:125
Definition: socket.h:158
Definition: socket.h:98
Definition: socket.h:94
SAL_DLLPUBLIC oslSocket osl_acceptConnectionOnSocket(oslSocket Socket, oslSocketAddr *pAddr)
Waits for an ingoing connection on the socket.
SAL_DLLPUBLIC sal_Int32 osl_demultiplexSocketEvents(oslSocketSet IncomingSet, oslSocketSet OutgoingSet, oslSocketSet OutOfBandSet, const TimeValue *pTimeout)
Checks multiple sockets for events.
SAL_DLLPUBLIC sal_Int32 osl_getSocketOption(oslSocket Socket, oslSocketOptionLevel Level, oslSocketOption Option, void *pBuffer, sal_uInt32 BufferLen)
Retrieves attributes associated with the socket.
SAL_DLLPUBLIC sal_Int32 osl_receiveFromSocket(oslSocket Socket, oslSocketAddr SenderAddr, void *pBuffer, sal_uInt32 BufferSize, oslSocketMsgFlag Flag)
Tries to receives BufferSize data from the (usually unconnected) (datagram-)socket, if no error occurs.
oslSocketResult
Common return codes of socket related functions.
Definition: socket.h:183
Definition: socket.h:72
Definition: socket.h:123
Definition: socket.h:92
Definition: socket.h:88
SAL_DLLPUBLIC oslSocket osl_createSocket(oslAddrFamily Family, oslSocketType Type, oslProtocol Protocol)
Create a socket of the specified Family and Type.
Definition: socket.h:74
SAL_DLLPUBLIC sal_Bool osl_isReceiveReady(oslSocket Socket, const TimeValue *pTimeout)
Checks if read operations will block.
Definition: socket.h:62
Definition: socket.h:135
SAL_DLLPUBLIC void osl_destroySocketSet(oslSocketSet Set)
Destroys a oslSocketSet.
Definition: socket.h:95
SAL_DLLPUBLIC oslSocketResult osl_getAddrOfSocketAddr(oslSocketAddr Addr, sal_Sequence **ppByteSeq)
Returns the addr field in the struct sockaddr.
SAL_DLLPUBLIC sal_Int32 osl_getServicePort(rtl_uString *strServicename, rtl_uString *strProtocol)
Looks up the port-number designated to the specified service/protocol-pair.
Definition: socket.h:154
Definition: socket.h:178
Definition: socket.h:136
SAL_DLLPUBLIC oslSocketResult osl_connectSocketTo(oslSocket Socket, oslSocketAddr Addr, const TimeValue *pTimeout)
Connects the socket to the given address.
SAL_DLLPUBLIC sal_Bool osl_listenOnSocket(oslSocket Socket, sal_Int32 MaxPendingConnections)
Prepares the socket to act as an acceptor of incoming connections.
Definition: socket.h:166
SAL_DLLPUBLIC sal_Bool osl_enableNonBlockingMode(oslSocket Socket, sal_Bool On)
Enables/disables non-blocking-mode of the socket.
SAL_DLLPUBLIC oslAddrFamily osl_getFamilyOfSocketAddr(oslSocketAddr Addr)
Retrieves the address-family from the Addr.
Definition: socket.h:149
Definition: socket.h:102
Definition: socket.h:151
SAL_DLLPUBLIC sal_Bool osl_setSocketOption(oslSocket Socket, oslSocketOptionLevel Level, oslSocketOption Option, void *pBuffer, sal_uInt32 BufferLen)
Sets the sockets attributes.
Definition: socket.h:167
Definition: socket.h:50
Definition: socket.h:185
Definition: socket.h:139
struct oslSocketSetImpl * oslSocketSet
Type for the representation of socket sets.
Definition: socket.h:823
Definition: socket.h:169
Definition: socket.h:146