Implemented SOCKSv5 proxy support

This commit is contained in:
Nicolas Dufresne 2010-04-29 15:22:55 -04:00
parent c32ef1d85e
commit 6fa1136600
5 changed files with 1106 additions and 0 deletions

View File

@ -160,6 +160,8 @@ local_sources = \
glocalfileiostream.h \
glocalvfs.c \
glocalvfs.h \
gsocks5proxy.c \
gsocks5proxy.h \
$(NULL)
platform_libadd =

View File

@ -32,6 +32,7 @@
#include "gnativevolumemonitor.h"
#include "gproxyresolver.h"
#include "gproxy.h"
#include "gsocks5proxy.h"
#include "gvfs.h"
#ifdef G_OS_UNIX
#include "gdesktopappinfo.h"
@ -602,6 +603,7 @@ _g_io_modules_ensure_loaded (void)
#endif
_g_local_vfs_get_type ();
_g_dummy_proxy_resolver_get_type ();
_g_socks5_proxy_get_type ();
}
G_UNLOCK (loaded_dirs);

1053
gio/gsocks5proxy.c Normal file

File diff suppressed because it is too large Load Diff

48
gio/gsocks5proxy.h Normal file
View File

@ -0,0 +1,48 @@
/* GIO - GLib Input, Output and Streaming Library
*
* Copyright (C) 2008, 2010 Collabora, Ltd.
* Copyright (C) 2008 Nokia Corporation. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* Public License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*
* Author: Youness Alaoui <youness.alaoui@collabora.co.uk
*
* Contributors:
* Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
*/
#ifndef __G_SOCKS5_PROXY_H__
#define __G_SOCKS5_PROXY_H__
#include <gio/giotypes.h>
G_BEGIN_DECLS
#define G_TYPE_SOCKS5_PROXY (_g_socks5_proxy_get_type ())
#define G_SOCKS5_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SOCKS5_PROXY, GSocks5Proxy))
#define G_SOCKS5_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SOCKS5_PROXY, GSocks5ProxyClass))
#define G_IS_SOCKS5_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SOCKS5_PROXY))
#define G_IS_SOCKS5_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SOCKS5_PROXY))
#define G_SOCKS5_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SOCKS5_PROXY, GSocks5ProxyClass))
typedef struct _GSocks5Proxy GSocks5Proxy;
typedef struct _GSocks5ProxyClass GSocks5ProxyClass;
GType _g_socks5_proxy_get_type (void);
G_END_DECLS
#endif /* __SOCKS5_PROXY_H__ */

View File

@ -102,6 +102,7 @@ gio/gsocketconnection.c
gio/gsocketinputstream.c
gio/gsocketlistener.c
gio/gsocketoutputstream.c
gio/gsocks5proxy.c
gio/gtcpconnection.c
gio/gthemedicon.c
gio/gthreadedsocketservice.c