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 57 GWEN_SYNCIO_SOCKET *xio;
68 xio->socketType=sockType;
69 xio->addressFamily=addressFamily;
79 GWEN_SYNCIO_SOCKET *xio;
101 GWEN_SYNCIO_SOCKET *xio;
103 xio=(GWEN_SYNCIO_SOCKET *) p;
113 GWEN_SYNCIO_SOCKET *xio;
126 GWEN_SYNCIO_SOCKET *xio;
134 xio->address=strdup(s);
143 GWEN_SYNCIO_SOCKET *xio;
156 GWEN_SYNCIO_SOCKET *xio;
169 GWEN_SYNCIO_SOCKET *xio;
194 I18N(
"Error setting up socket: %d"),
205 I18N(
"Resolving hostname \"%s\" ..."),
211 I18N(
"Unknown hostname \"%s\""),
221 addrBuf[
sizeof(addrBuf)-1]=0;
228 I18N(
"IP address is \"%s\""),
237 I18N(
"Connecting to \"%s\""),
244 I18N(
"Error connecting to \"%s\": %s"),
257 I18N(
"Connected to \"%s\""),
266 GWEN_SYNCIO_SOCKET *xio;
289 GWEN_SYNCIO_SOCKET *xio;
309 if (xio->socket==
NULL) {
364 const uint8_t *buffer,
367 GWEN_SYNCIO_SOCKET *xio;
381 if (xio->socket==
NULL) {
int GWENHYWFAR_CB GWEN_SyncIo_Socket_Write(GWEN_SYNCIO *sio, const uint8_t *buffer, uint32_t size)
void GWENHYWFAR_CB GWEN_SyncIo_Socket_FreeData(GWEN_UNUSED void *bp, void *p)
#define GWEN_SYNCIO_SOCKET_TYPE
GWENHYWFAR_API 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
int GWENHYWFAR_CB GWEN_SyncIo_Socket_Disconnect(GWEN_SYNCIO *sio)
#define GWEN_NEW_OBJECT(typ, varname)
struct GWEN_SYNCIO GWEN_SYNCIO
GWENHYWFAR_API int GWEN_Gui_ProgressLog2(uint32_t id, GWEN_LOGGER_LEVEL level, const char *text,...)
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)