#include "io_socket_p.h"
#include <gwenhywfar/iolayer_be.h>
#include <gwenhywfar/iorequest_be.h>
#include "i18n_l.h"
#include <gwenhywfar/misc.h>
#include <gwenhywfar/debug.h>
#include <gwenhywfar/gui.h>
#include <gwenhywfar/url.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/base64.h>
#include <assert.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
Go to the source code of this file.
#define GWEN_PROXY_ENVVAR "GWEN_PROXY" |
void GWEN_Io_LayerSocket_AbortRequests | ( | GWEN_IO_LAYER * | io, | |
int | errorCode | |||
) |
Definition at line 575 of file io_socket.c.
References GWEN_INHERIT_GETDATA, GWEN_Io_Request_Finished(), GWEN_Io_Request_free(), GWEN_Io_Request_StatusFinished, and NULL.
Referenced by GWEN_Io_LayerSocket_AddRequest(), GWEN_Io_LayerSocket_DelRequest(), GWEN_Io_LayerSocket_freeData(), and GWEN_Io_LayerSocket_WorkOnRequests().
int GWEN_Io_LayerSocket_AddRequest | ( | GWEN_IO_LAYER * | io, | |
GWEN_IO_REQUEST * | r | |||
) |
Definition at line 819 of file io_socket.c.
References DBG_INFO, GWEN_ERROR_ABORTED, GWEN_ERROR_IN_PROGRESS, GWEN_ERROR_INVALID, GWEN_ERROR_NOT_OPEN, GWEN_ERROR_NOT_SUPPORTED, GWEN_ERROR_TRY_AGAIN, GWEN_InetAddr_GetAddress(), GWEN_InetAddr_GetPort(), GWEN_INHERIT_GETDATA, GWEN_IO_LAYER_FLAGS_DONTCLOSE, GWEN_IO_LAYER_FLAGS_PASSIVE, GWEN_Io_Layer_GetFlags(), GWEN_Io_Layer_GetStatus(), GWEN_Io_Layer_SetStatus(), GWEN_Io_Layer_StatusConnected, GWEN_Io_Layer_StatusConnecting, GWEN_Io_Layer_StatusDisconnected, GWEN_Io_Layer_StatusUnconnected, GWEN_Io_Layer_SubFlags(), GWEN_Io_LayerSocket_AbortRequests(), GWEN_Io_Request_Attach(), GWEN_Io_Request_Finished(), GWEN_IO_REQUEST_FLAGS_FORCE, GWEN_Io_Request_GetFlags(), GWEN_Io_Request_GetGuiId(), GWEN_Io_Request_GetType(), GWEN_Io_Request_StatusFinished, GWEN_Io_Request_TypeConnect, GWEN_Io_Request_TypeDisconnect, GWEN_Io_Request_TypeRead, GWEN_Io_Request_TypeWrite, GWEN_LOGDOMAIN, GWEN_Proxy_Connect(), GWEN_Socket_Close(), GWEN_Socket_Open(), GWEN_Socket_SetBlocking(), and NULL.
Referenced by GWEN_Io_LayerSocket_new().
int GWEN_Io_LayerSocket_AddWaitingSockets | ( | GWEN_IO_LAYER * | io, | |
GWEN_SOCKET_LIST2 * | readSockets, | |||
GWEN_SOCKET_LIST2 * | writeSockets | |||
) |
Definition at line 1058 of file io_socket.c.
References GWEN_INHERIT_GETDATA, GWEN_Io_Layer_GetStatus(), GWEN_Io_Layer_StatusListening, and GWEN_Socket_List2_PushBack().
Referenced by GWEN_Io_LayerSocket_new().
GWEN_IO_LAYER_WORKRESULT GWEN_Io_LayerSocket_CheckForIncoming | ( | GWEN_IO_LAYER * | io | ) |
Definition at line 610 of file io_socket.c.
References DBG_INFO, GWEN_ERROR_INTERRUPTED, GWEN_ERROR_TIMEOUT, GWEN_InetAddr_free(), GWEN_InetAddr_GetAddress(), GWEN_InetAddr_GetPort(), GWEN_INHERIT_GETDATA, GWEN_Io_Layer_AddFlags(), GWEN_Io_Layer_AddIncomingLayer(), GWEN_IO_LAYER_FLAGS_PASSIVE, GWEN_IO_LAYER_FLAGS_TAKEOVER, GWEN_Io_Layer_GetStatus(), GWEN_Io_Layer_SetStatus(), GWEN_Io_Layer_StatusConnected, GWEN_Io_Layer_StatusDisconnected, GWEN_Io_Layer_StatusListening, GWEN_Io_Layer_WorkResultBlocking, GWEN_Io_Layer_WorkResultOk, GWEN_Io_LayerSocket_new(), GWEN_Io_LayerSocket_SetLocalAddr(), GWEN_Io_LayerSocket_SetPeerAddr(), GWEN_LOGDOMAIN, GWEN_Socket_Accept(), GWEN_Socket_Close(), GWEN_Socket_free(), GWEN_Socket_SetBlocking(), and NULL.
Referenced by GWEN_Io_LayerSocket_WorkOnRequests().
int GWEN_Io_LayerSocket_DelRequest | ( | GWEN_IO_LAYER * | io, | |
GWEN_IO_REQUEST * | r | |||
) |
Definition at line 983 of file io_socket.c.
References DBG_DEBUG, DBG_INFO, GWEN_ERROR_ABORTED, GWEN_ERROR_INVALID, GWEN_INHERIT_GETDATA, GWEN_IO_LAYER_FLAGS_DONTCLOSE, GWEN_Io_Layer_GetFlags(), GWEN_Io_Layer_SetStatus(), GWEN_Io_Layer_StatusDisconnected, GWEN_Io_LayerSocket_AbortRequests(), GWEN_Io_Request_Finished(), GWEN_Io_Request_free(), GWEN_Io_Request_GetType(), GWEN_Io_Request_StatusFinished, GWEN_Io_Request_TypeConnect, GWEN_Io_Request_TypeRead, GWEN_Io_Request_TypeWrite, GWEN_LOGDOMAIN, GWEN_Socket_Close(), and NULL.
Referenced by GWEN_Io_LayerSocket_new().
GWENHYWFAR_CB void GWEN_Io_LayerSocket_freeData | ( | void * | bp, | |
void * | p | |||
) |
Definition at line 482 of file io_socket.c.
References GWEN_ERROR_ABORTED, GWEN_FREE_OBJECT, GWEN_IO_LAYER_FLAGS_DONTCLOSE, GWEN_IO_LAYER_FLAGS_TAKEOVER, GWEN_Io_Layer_GetFlags(), GWEN_Io_LayerSocket_AbortRequests(), GWEN_Socket_Close(), and GWEN_Socket_free().
Referenced by GWEN_Io_LayerSocket_new().
int GWEN_Io_LayerSocket_HasWaitingRequests | ( | GWEN_IO_LAYER * | io | ) |
Definition at line 1043 of file io_socket.c.
References GWEN_INHERIT_GETDATA.
Referenced by GWEN_Io_LayerSocket_new().
int GWEN_Io_LayerSocket_Listen | ( | GWEN_IO_LAYER * | io | ) |
Definition at line 1077 of file io_socket.c.
References DBG_INFO, DBG_NOTICE, GWEN_InetAddr_GetAddress(), GWEN_InetAddr_GetPort(), GWEN_INHERIT_GETDATA, GWEN_Io_Layer_SetStatus(), GWEN_Io_Layer_StatusListening, GWEN_LOGDOMAIN, GWEN_Socket_Bind(), GWEN_Socket_Close(), GWEN_Socket_Listen(), GWEN_Socket_Open(), GWEN_Socket_SetBlocking(), and GWEN_Socket_SetReuseAddress().
Referenced by GWEN_Io_LayerSocket_new().
GWEN_IO_LAYER_WORKRESULT GWEN_Io_LayerSocket_WorkOnRequests | ( | GWEN_IO_LAYER * | io | ) |
Definition at line 672 of file io_socket.c.
References DBG_INFO, DBG_VERBOUS, GWEN_ERROR_ABORTED, GWEN_ERROR_EOF, GWEN_ERROR_INTERRUPTED, GWEN_ERROR_IO, GWEN_ERROR_TIMEOUT, GWEN_InetAddr_GetAddress(), GWEN_InetAddr_GetPort(), GWEN_INHERIT_GETDATA, GWEN_Io_Layer_SetStatus(), GWEN_Io_Layer_StatusConnected, GWEN_Io_Layer_StatusDisconnected, GWEN_Io_Layer_WorkResultBlocking, GWEN_Io_Layer_WorkResultOk, GWEN_Io_LayerSocket_AbortRequests(), GWEN_Io_LayerSocket_CheckForIncoming(), GWEN_Io_Request_Finished(), GWEN_IO_REQUEST_FLAGS_READALL, GWEN_IO_REQUEST_FLAGS_WRITEALL, GWEN_Io_Request_free(), GWEN_Io_Request_GetBufferPos(), GWEN_Io_Request_GetBufferPtr(), GWEN_Io_Request_GetBufferSize(), GWEN_Io_Request_GetFlags(), GWEN_Io_Request_SetBufferPos(), GWEN_Io_Request_StatusFinished, GWEN_LOGDOMAIN, GWEN_Socket_GetSocketError(), GWEN_Socket_Read(), GWEN_Socket_Write(), and NULL.
Referenced by GWEN_Io_LayerSocket_new().
int GWEN_Proxy_Connect | ( | GWEN_SOCKET * | sp, | |
const GWEN_INETADDRESS * | addr, | |||
uint32_t | guiid | |||
) |
Definition at line 46 of file io_socket.c.
References DBG_ERROR, DBG_INFO, GWEN_AddressFamilyIP, GWEN_Base64_Encode(), GWEN_Buffer_AppendString(), GWEN_Buffer_Dump(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_GetUsedBytes(), GWEN_Buffer_new(), GWEN_ERROR_BAD_ADDRESS, GWEN_ERROR_IN_PROGRESS, GWEN_ERROR_IO, GWEN_Gui_ProgressLog(), GWEN_InetAddr_free(), GWEN_InetAddr_GetAddress(), GWEN_InetAddr_GetPort(), GWEN_InetAddr_new(), GWEN_InetAddr_SetAddress(), GWEN_InetAddr_SetName(), GWEN_InetAddr_SetPort(), GWEN_LOGDOMAIN, GWEN_LoggerLevel_Info, GWEN_PROXY_ENVVAR, GWEN_Socket_Connect(), GWEN_Socket_GetSocketType(), GWEN_Socket_Read(), GWEN_Socket_SetBlocking(), GWEN_Socket_WaitForRead(), GWEN_Socket_WaitForWrite(), GWEN_Socket_Write(), GWEN_SocketTypeTCP, GWEN_Url_free(), GWEN_Url_fromString(), GWEN_Url_GetPassword(), GWEN_Url_GetPort(), GWEN_Url_GetServer(), GWEN_Url_GetUserName(), I18N, and NULL.
Referenced by GWEN_Io_LayerSocket_AddRequest().