aboutsummaryrefslogtreecommitdiffstats
path: root/proxy/proxy_int.h
diff options
context:
space:
mode:
Diffstat (limited to 'proxy/proxy_int.h')
-rw-r--r--proxy/proxy_int.h201
1 files changed, 0 insertions, 201 deletions
diff --git a/proxy/proxy_int.h b/proxy/proxy_int.h
deleted file mode 100644
index 739bb75..0000000
--- a/proxy/proxy_int.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2007-2008 The Android Open Source Project
-**
-** This software is licensed under the terms of the GNU General Public
-** License version 2, as published by the Free Software Foundation, and
-** may be copied, distributed, and modified under those terms.
-**
-** This program is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-** GNU General Public License for more details.
-*/
-#ifndef _PROXY_INT_H
-#define _PROXY_INT_H
-
-#include "proxy_common.h"
-#include "sockets.h"
-#include "android/utils/stralloc.h"
-
-extern int proxy_log;
-
-extern void
-proxy_LOG(const char* fmt, ...);
-
-#define PROXY_LOG(...) \
- do { if (proxy_log) proxy_LOG(__VA_ARGS__); } while (0)
-
-
-/* ProxySelect is used to handle events */
-
-enum {
- PROXY_SELECT_READ = (1 << 0),
- PROXY_SELECT_WRITE = (1 << 1),
- PROXY_SELECT_ERROR = (1 << 2)
-};
-
-typedef struct {
- int* pcount;
- fd_set* reads;
- fd_set* writes;
- fd_set* errors;
-} ProxySelect;
-
-extern void proxy_select_set( ProxySelect* sel,
- int fd,
- unsigned flags );
-
-extern unsigned proxy_select_poll( ProxySelect* sel, int fd );
-
-
-/* sockets proxy manager internals */
-
-typedef struct ProxyConnection ProxyConnection;
-typedef struct ProxyService ProxyService;
-
-/* free a given proxified connection */
-typedef void (*ProxyConnectionFreeFunc) ( ProxyConnection* conn );
-
-/* modify the ProxySelect to tell which events to listen to */
-typedef void (*ProxyConnectionSelectFunc) ( ProxyConnection* conn,
- ProxySelect* sel );
-
-/* action a proxy connection when select() returns certain events for its socket */
-typedef void (*ProxyConnectionPollFunc) ( ProxyConnection* conn,
- ProxySelect* sel );
-
-
-/* root ProxyConnection object */
-struct ProxyConnection {
- int socket;
- SockAddress address; /* for debugging */
- ProxyConnection* next;
- ProxyConnection* prev;
- ProxyEventFunc ev_func;
- void* ev_opaque;
- ProxyService* service;
-
- /* the following is useful for all types of services */
- char name[64]; /* for debugging purposes */
-
- stralloc_t str[1]; /* network buffer (dynamic) */
- int str_pos; /* see proxy_connection_send() */
- int str_sent; /* see proxy_connection_send() */
- int str_recv; /* see proxy_connection_receive() */
-
- /* connection methods */
- ProxyConnectionFreeFunc conn_free;
- ProxyConnectionSelectFunc conn_select;
- ProxyConnectionPollFunc conn_poll;
-
- /* rest of data depend on exact implementation */
-};
-
-
-
-extern void
-proxy_connection_init( ProxyConnection* conn,
- int socket,
- SockAddress* address,
- ProxyService* service,
- ProxyConnectionFreeFunc conn_free,
- ProxyConnectionSelectFunc conn_select,
- ProxyConnectionPollFunc conn_poll );
-
-extern void
-proxy_connection_done( ProxyConnection* conn );
-
-/* free the proxy connection object. this will also
- * close the corresponding socket unless the
- * 'keep_alive' flag is set to TRUE.
- */
-extern void
-proxy_connection_free( ProxyConnection* conn,
- int keep_alive,
- ProxyEvent event );
-
-/* status of data transfer operations */
-typedef enum {
- DATA_ERROR = -1,
- DATA_NEED_MORE = 0,
- DATA_COMPLETED = 1
-} DataStatus;
-
-/* try to send data from the connection's buffer to a socket.
- * starting from offset conn->str_pos in the buffer
- *
- * returns DATA_COMPLETED if everything could be written
- * returns DATA_ERROR for a socket disconnection or error
- * returns DATA_NEED_MORE if all data could not be sent.
- *
- * on exit, conn->str_sent contains the number of bytes
- * that were really sent. conn->str_pos will be incremented
- * by conn->str_sent as well.
- *
- * note that in case of success (DATA_COMPLETED), this also
- * performs a proxy_connection_rewind which sets conn->str_pos
- * to 0.
- */
-extern DataStatus
-proxy_connection_send( ProxyConnection* conn, int fd );
-
-/* try to read 'wanted' bytes into conn->str from a socket
- *
- * returns DATA_COMPLETED if all bytes could be read
- * returns DATA_NEED_MORE if not all bytes could be read
- * returns DATA_ERROR in case of socket disconnection or error
- *
- * on exit, the amount of data received is in conn->str_recv
- */
-extern DataStatus
-proxy_connection_receive( ProxyConnection* conn, int fd, int wanted );
-
-/* tries to receive a line of text from the proxy.
- * when an entire line is read, the trailing \r\n is stripped
- * and replaced by a terminating zero. str->n will be the
- * lenght of the line, exclusing the terminating zero.
- * returns 1 when a line has been received
- * returns 0 if there is still some data to receive
- * returns -1 in case of error
- */
-extern DataStatus
-proxy_connection_receive_line( ProxyConnection* conn, int fd );
-
-/* rewind the string buffer for a new operation */
-extern void
-proxy_connection_rewind( ProxyConnection* conn );
-
-/* base64 encode a source string, returns size of encoded result,
- * or -1 if there was not enough room in the destination buffer
- */
-extern int
-proxy_base64_encode( const char* src, int srclen,
- char* dst, int dstlen );
-
-extern int
-proxy_resolve_server( SockAddress* addr,
- const char* servername,
- int servernamelen,
- int serverport );
-
-/* a ProxyService is really a proxy server and associated options */
-
-/* destroy a given proxy service */
-typedef void (*ProxyServiceFreeFunc) ( void* opaque );
-
-/* tries to create a new proxified connection, returns NULL if the service can't
- * handle this address */
-typedef ProxyConnection* (*ProxyServiceConnectFunc)( void* opaque,
- SocketType socket_type,
- const SockAddress* address );
-
-struct ProxyService {
- void* opaque;
- ProxyServiceFreeFunc serv_free;
- ProxyServiceConnectFunc serv_connect;
-};
-
-extern int
-proxy_manager_add_service( ProxyService* service );
-
-
-#endif /* _PROXY_INT_H */