]> git.saurik.com Git - apple/security.git/blobdiff - libsecurity_utilities/lib/socks++5.h
Security-57031.1.35.tar.gz
[apple/security.git] / libsecurity_utilities / lib / socks++5.h
diff --git a/libsecurity_utilities/lib/socks++5.h b/libsecurity_utilities/lib/socks++5.h
deleted file mode 100644 (file)
index 0c6bbb0..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (c) 2000-2001,2004 Apple Computer, Inc. All Rights Reserved.
- * 
- * @APPLE_LICENSE_HEADER_START@
- * 
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- * 
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- * 
- * @APPLE_LICENSE_HEADER_END@
- */
-
-
-//
-// socks++5 - version 5 Socks protocol
-//
-#ifndef _H_SOCKSPLUSPLUS5
-#define _H_SOCKSPLUSPLUS5
-
-#include "socks++.h"
-
-
-namespace Security {
-namespace IPPlusPlus {
-namespace Socks5 {
-
-
-typedef unsigned char Byte;
-
-
-class Server : public SocksServer {
-public:
-    Server(const IPSockAddress &s) : SocksServer(5, s) { }
-    
-    virtual void connect(SocksClientSocket &me, const IPSockAddress &peer);
-    virtual void connect(SocksClientSocket &me, const Host &host, IPPort port);
-    virtual void bind(SocksServerSocket &me, const IPAddress &peer, IPPort port);
-    virtual void receive(SocksServerSocket &me, SocksClientSocket &receiver);
-    
-private:
-    void open(Socket &s, Support &me);
-};
-
-
-// request code (message field outbound)
-enum Command {
-    socksConnect = 1,                                  // connect (outbound)
-    socksBind = 2,                                             // bind (single inbound)
-    socksUDP = 3                                               // UDP associate (not implemented)
-};
-
-// reply code (message field inbound)
-enum SocksReply {
-    socksSuccess = 0,
-    socksFailed = 1,
-    socksDenied = 2,
-    socksNetUnreach = 3,
-    socksHostUnreach = 4,
-    socksConRefused = 5,
-    socksTTLExpired = 6,
-    socksUnsupported = 7,
-    socksAddressNotSupported = 8
-};
-
-// authentication type (in setup request)
-enum AuthenticationType {
-    socksAuthPublic = 0,                               // anonymous access
-    socksAuthGSSAPI = 1,                               // GSSAPI (yuk)
-    socksAuthUsername = 2,                             // username/password
-    socksAuthNoneAcceptable = 0xff             // can't help you there...
-};
-
-// address types (inbound/outbound)
-enum AddressType {
-    socksIPv4 = 1,
-    socksName = 3,
-    socksIPv6 = 4
-};
-
-
-//
-// A Message object contains a single request or reply of the Socks5 protocol.
-// Since some of the data is dynamically sized, we have to fudge a bit. The static
-// layout corresponds to IPv4 addresses, the common case. The object itself is big
-// enough for all cases.
-//
-struct Message {
-    Byte version;                      // Socks version
-    Byte message;                      // message/reply
-    Byte reserved;                     // not used (zero)
-    Byte addressType;          // address type
-    IPAddress addr;                    // address starts here (IPv4 case)
-    // following fields dynamically located if (addressType != socksIPv4)
-    IPPort port;                       // port field IF addr is IPv4
-    Byte pad[256-sizeof(IPAddress)-sizeof(IPPort)]; // enough room for type 3 addresses (256 bytes)
-
-    // the following fields are not part of the message data
-    size_t length;                     // calculated length of message (bytes, starting at version)
-    
-    Message(Command cmd, IPAddress addr, IPPort port); // type 1 request
-    Message(Command cmd, const char *hostname, IPPort port); // type 3 request
-    void send(Socket &s);      // send request
-
-    Message(Socket &socket); // receive (type 1 only)
-    
-    IPSockAddress address() const      { return IPSockAddress(addr, ntohs(port)); }
-};
-
-
-}      // end namespace Socks
-}      // end namespace IPPlusPlus
-}      // end namespace Security
-
-#endif //_H_SOCKSPLUSPLUS5