29 #define DISABLE_DEBUGLOG
33 #include "syncio_socket_p.h"
36 #include <gwenhywfar/misc.h>
37 #include <gwenhywfar/debug.h>
38 #include <gwenhywfar/gui.h>
39 #include <gwenhywfar/text.h>
46 #define GWEN_SYNCIO_SOCKET_READ_TIMEOUT 60000
47 #define GWEN_SYNCIO_SOCKET_WRITE_TIMEOUT 60000
56 GWEN_SYNCIO_SOCKET *xio;
67 xio->socketType=sockType;
68 xio->addressFamily=addressFamily;
77 GWEN_SYNCIO_SOCKET *xio;
98 GWEN_SYNCIO_SOCKET *xio;
100 xio=(GWEN_SYNCIO_SOCKET*) p;
109 GWEN_SYNCIO_SOCKET *xio;
121 GWEN_SYNCIO_SOCKET *xio;
128 if (s) xio->address=strdup(s);
129 else xio->address=
NULL;
135 GWEN_SYNCIO_SOCKET *xio;
147 GWEN_SYNCIO_SOCKET *xio;
159 GWEN_SYNCIO_SOCKET *xio;
184 I18N(
"Error setting up socket: %d"),
195 I18N(
"Resolving hostname \"%s\" ..."),
201 I18N(
"Unknown hostname \"%s\""),
211 addrBuf[
sizeof(addrBuf)-1]=0;
218 I18N(
"IP address is \"%s\""),
227 I18N(
"Connecting to \"%s\""),
234 I18N(
"Error connecting to \"%s\": %s"),
247 I18N(
"Connected to \"%s\""),
255 GWEN_SYNCIO_SOCKET *xio;
277 GWEN_SYNCIO_SOCKET *xio;
297 if (xio->socket==
NULL) {
352 const uint8_t *buffer,
354 GWEN_SYNCIO_SOCKET *xio;
368 if (xio->socket==
NULL) {
int GWENHYWFAR_CB GWEN_SyncIo_Socket_Write(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
#define GWEN_SYNCIO_SOCKET_TYPE
int GWEN_Gui_WaitForSockets(GWEN_SOCKET_LIST2 *readSockets, GWEN_SOCKET_LIST2 *writeSockets, uint32_t guiid, int msecs)
struct GWEN_SOCKET_LIST2 GWEN_SOCKET_LIST2
#define GWEN_ERROR_INVALID
GWENHYWFAR_API int GWEN_Socket_Write(GWEN_SOCKET *sp, const char *buffer, int *bsize)
void GWEN_Text_DumpString(const char *s, unsigned int l, unsigned int insert)
GWEN_SYNCIO_WRITE_FN GWEN_SyncIo_SetWriteFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_WRITE_FN fn)
#define GWEN_FREE_OBJECT(varname)
GWENHYWFAR_API void GWEN_InetAddr_free(GWEN_INETADDRESS *ia)
GWEN_SYNCIO_CONNECT_FN GWEN_SyncIo_SetConnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_CONNECT_FN fn)
void GWEN_SyncIo_Socket_SetAddress(GWEN_SYNCIO *sio, const char *s)
GWENHYWFAR_API GWEN_INETADDRESS * GWEN_InetAddr_new(GWEN_AddressFamily af)
void GWEN_Socket_List2_free(GWEN_SOCKET_LIST2 *l)
uint32_t GWEN_SyncIo_GetFlags(const GWEN_SYNCIO *sio)
GWENHYWFAR_API int GWEN_Socket_WaitForWrite(GWEN_SOCKET *sp, int timeout)
GWENHYWFAR_API int GWEN_Socket_Open(GWEN_SOCKET *sp)
void GWEN_SyncIo_SetStatus(GWEN_SYNCIO *sio, GWEN_SYNCIO_STATUS st)
int GWEN_SyncIo_Socket_GetPort(const GWEN_SYNCIO *sio)
GWENHYWFAR_API int GWEN_Socket_Read(GWEN_SOCKET *sp, char *buffer, int *bsize)
#define GWEN_ERROR_INTERRUPTED
int GWENHYWFAR_CB GWEN_SyncIo_Socket_Read(GWEN_SYNCIO *sio, uint8_t *buffer, uint32_t size)
int GWENHYWFAR_CB GWEN_SyncIo_Socket_Connect(GWEN_SYNCIO *sio)
#define GWEN_ERROR_NOT_CONNECTED
void GWENHYWFAR_CB GWEN_SyncIo_Socket_FreeData(void *bp, void *p)
int GWENHYWFAR_CB GWEN_SyncIo_Socket_Disconnect(GWEN_SYNCIO *sio)
#define GWEN_NEW_OBJECT(typ, varname)
struct GWEN_SYNCIO GWEN_SYNCIO
int GWEN_Gui_ProgressLog2(uint32_t id, GWEN_LOGGER_LEVEL level, const char *fmt,...)
GWENHYWFAR_API int GWEN_Socket_Connect(GWEN_SOCKET *sp, const GWEN_INETADDRESS *addr)
#define GWEN_SYNCIO_SOCKET_WRITE_TIMEOUT
#define GWEN_SYNCIO_SOCKET_READ_TIMEOUT
#define GWEN_SYNCIO_FLAGS_PASSIVE
GWENHYWFAR_API GWEN_SOCKETTYPE GWEN_Socket_GetSocketType(GWEN_SOCKET *sp)
GWEN_SYNCIO_STATUS GWEN_SyncIo_GetStatus(const GWEN_SYNCIO *sio)
GWENHYWFAR_API int GWEN_Socket_Close(GWEN_SOCKET *sp)
struct GWEN_INETADDRESSSTRUCT GWEN_INETADDRESS
void GWEN_SyncIo_Socket_SetPort(GWEN_SYNCIO *sio, int i)
GWENHYWFAR_API int GWEN_InetAddr_SetName(GWEN_INETADDRESS *ia, const char *name)
#define DBG_ERROR(dbg_logger, format, args...)
GWEN_SOCKET_LIST2 * GWEN_Socket_List2_new()
void GWEN_Socket_List2_PushBack(GWEN_SOCKET_LIST2 *l, GWEN_SOCKET *p)
GWENHYWFAR_API GWEN_SOCKET * GWEN_Socket_new(GWEN_SOCKETTYPE socketType)
GWEN_SYNCIO * GWEN_SyncIo_new(const char *typeName, GWEN_SYNCIO *baseIo)
GWEN_SYNCIO_DISCONNECT_FN GWEN_SyncIo_SetDisconnectFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_DISCONNECT_FN fn)
#define DBG_INFO(dbg_logger, format, args...)
GWENHYWFAR_API int GWEN_InetAddr_SetAddress(GWEN_INETADDRESS *ia, const char *addr)
struct GWEN_SOCKET GWEN_SOCKET
GWEN_SYNCIO * GWEN_SyncIo_Socket_TakeOver(GWEN_SOCKET *socket)
GWEN_SYNCIO * GWEN_SyncIo_Socket_new(GWEN_SOCKETTYPE sockType, GWEN_AddressFamily addressFamily)
#define GWEN_ERROR_TIMEOUT
#define GWEN_INHERIT(bt, t)
GWEN_SYNCIO_READ_FN GWEN_SyncIo_SetReadFn(GWEN_SYNCIO *sio, GWEN_SYNCIO_READ_FN fn)
const char * GWEN_SyncIo_Socket_GetAddress(const GWEN_SYNCIO *sio)
#define GWEN_ERROR_INTERNAL
GWENHYWFAR_API int GWEN_Socket_WaitForRead(GWEN_SOCKET *sp, int timeout)
#define GWEN_INHERIT_SETDATA(bt, t, element, data, fn)
GWENHYWFAR_API int GWEN_InetAddr_GetAddress(const GWEN_INETADDRESS *ia, char *buffer, unsigned int bsize)
GWENHYWFAR_API void GWEN_Socket_free(GWEN_SOCKET *sp)
#define GWEN_INHERIT_GETDATA(bt, t, element)
GWENHYWFAR_API int GWEN_InetAddr_SetPort(GWEN_INETADDRESS *ia, int port)