public void setExtOutputStream(Stream outs)
		{
			if(outs!=null)
			{
				this.outs_ext=new JStream(outs); 
			}
			else
			{
				this.outs_ext=null;
			}
		}
Exemple #2
0
 public void close()
 {
     try
     {
         if(ins!=null)ins.close();
         if(outs!=null)outs.close();
         if(socket!=null)socket.close();
     }
     catch(Exception e)
     {
     }
     ins=null;
     outs=null;
     socket=null;
 }
		public void setInputStream(Stream ins)
		{ 
			//ConsoleStream low buffer patch
			if(ins!=null)
			{
				if(ins.GetType() == Type.GetType("System.IO.__ConsoleStream"))
				{
					ins = new Tamir.Streams.ProtectedConsoleStream(ins);
				}
				else if(ins.GetType() == Type.GetType("System.IO.FileStream"))
				{
					ins = new Tamir.Streams.ProtectedConsoleStream(ins);
				}
				this.ins=new JStream(ins);
			}
			else
			{
				this.ins=null;
			}
		}
Exemple #4
0
 public void close()
 {
     try
     {
         if(ins!=null && !in_dontclose) ins.Close();
         ins=null;
     }
     catch(Exception ee){}
     try
     {
         if(outs!=null && !out_dontclose) outs.Close();
         outs=null;
     }
     catch(Exception ee){}
     try
     {
         if(outs_ext!=null && !outs_ext_dontclose) outs_ext.Close();
         outs_ext=null;
     }
     catch(Exception ee){}
 }
Exemple #5
0
        public void Connect(SocketFactory socketFactory, String host, int port, int timeout)
        {
            try
            {
                if (socketFactory == null)
                {
                    Socket = Util.createSocket(Host, Port, timeout);
                    inputStream = new JStream(Socket.getInputStream());
                    outputStream = new JStream(Socket.getOutputStream());
                }
                else
                {
                    Socket = socketFactory.createSocket(Host, Port);
                    inputStream = new JStream(socketFactory.getInputStream(Socket));
                    outputStream = new JStream(socketFactory.getOutputStream(Socket));
                }
                if (timeout > 0)
                {
                    Socket.setSoTimeout(timeout);
                }
                Socket.setTcpNoDelay(true);

                outputStream.Write(("CONNECT " + host + ":" + port + " HTTP/1.0\r\n").GetBytes());

                if (User != null && Password != null)
                {
                    byte[] _code = (User + ":" + Password).GetBytes();
                    _code = Util.toBase64(_code, 0, _code.Length);
                    outputStream.Write("Proxy-Authorization: Basic ".GetBytes());
                    outputStream.Write(_code);
                    outputStream.Write("\r\n".GetBytes());
                }

                outputStream.Write("\r\n".GetBytes());
                outputStream.flush();

                int foo = 0;

                StringBuilder sb = new StringBuilder();
                while (foo >= 0)
                {
                    foo = inputStream.read();
                    if (foo != 13)
                    {
                        sb.Append((char)foo);
                        continue;
                    }
                    foo = inputStream.read();
                    if (foo != 10)
                    {
                        continue;
                    }
                    break;
                }
                if (foo < 0)
                {
                    throw new IOException();
                }

                String response = sb.ToString();
                String reason = "Unknow reason";
                int code = -1;
                try
                {
                    foo = response.IndexOf(' ');
                    int bar = response.IndexOf(' ', foo + 1);
                    code = Int32.Parse(response.Substring(foo + 1, bar));
                    reason = response.Substring(bar + 1);
                }
                catch (Exception) { }

                if (code != 200)
                {
                    throw new IOException("proxy error: " + reason);
                }

                int count = 0;
                while (true)
                {
                    count = 0;
                    while (foo >= 0)
                    {
                        foo = inputStream.read();
                        if (foo != 13)
                        {
                            count++;
                            continue;
                        }
                        foo = inputStream.read();
                        if (foo != 10)
                        {
                            continue;
                        }
                        break;
                    }
                    if (foo < 0)
                    {
                        throw new IOException();
                    }
                    if (count == 0) break;
                }
            }
            catch (Exception e)
            {
                try
                {
                    if (Socket != null) Socket.Close();
                }
                catch (Exception) { }

                String message = "ProxyHTTP: " + e;
                throw e;
            }
        }
Exemple #6
0
		public void connect(SocketFactory socket_factory, String host, int port, int timeout)
		{
			try
			{
				if(socket_factory==null)
				{
					socket=Util.createSocket(proxy_host, proxy_port, timeout);    
					ins= new JStream(socket.getInputStream());
					outs=new JStream(socket.getOutputStream());
				}
				else
				{
					socket=socket_factory.createSocket(proxy_host, proxy_port);
					ins=new JStream(socket_factory.getInputStream(socket));
					outs=new JStream(socket_factory.getOutputStream(socket));
				}
				if(timeout>0)
				{
					socket.setSoTimeout(timeout);
				}
				socket.setTcpNoDelay(true);

				outs.write(new String("CONNECT "+host+":"+port+" HTTP/1.0\r\n").getBytes());

				if(user!=null && passwd!=null)
				{
					byte[] _code=(user+":"+passwd).getBytes();
					_code=Util.toBase64(_code, 0, _code.Length);
					outs.write(new String("Proxy-Authorization: Basic ").getBytes());
					outs.write(_code);
					outs.write(new String("\r\n").getBytes());
				}

				outs.write(new String("\r\n").getBytes());
				outs.flush();

				int foo=0;

				StringBuffer sb=new StringBuffer();
				while(foo>=0)
				{
					foo=ins.read(); if(foo!=13){sb.append((char)foo);  continue;}
					foo=ins.read(); if(foo!=10){continue;}
					break;
				}
				if(foo<0)
				{
					throw new System.IO.IOException(); 
				}

				String response=sb.toString(); 
				String reason="Unknow reason";
				int code=-1;
				try
				{
					foo=response.indexOf(' ');
					int bar=response.indexOf(' ', foo+1);
					code=Integer.parseInt(response.substring(foo+1, bar));
					reason=response.substring(bar+1);
				}
				catch(Exception e)
				{
				}
				if(code!=200)
				{
					throw new System.IO.IOException("proxy error: "+reason);
				}

				/*
				while(foo>=0){
				  foo=in.read(); if(foo!=13) continue;
				  foo=in.read(); if(foo!=10) continue;
				  foo=in.read(); if(foo!=13) continue;      
				  foo=in.read(); if(foo!=10) continue;
				  break;
				}
				*/

				int count=0;
				while(true)
				{
					count=0;
					while(foo>=0)
					{
						foo=ins.read(); if(foo!=13){count++;  continue;}
						foo=ins.read(); if(foo!=10){continue;}
						break;
					}
					if(foo<0)
					{
						throw new System.IO.IOException();
					}
					if(count==0)break;
				}
			}
			catch(RuntimeException e)
			{
				throw e;
			}
			catch(Exception e)
			{
				try{ if(socket!=null)socket.close(); }
				catch(Exception eee)
				{
				}
				String message="ProxyHTTP: "+e.toString();
				throw e;
			}
		}