0

-In this method i am trying to add google dns server to vpn interface but it doesnt work at all.It work only local dns which is default dns server of gsm.
@Override public int onStartCommand(Intent intent, int flags, int startId){ localAddress = CommonMethods.ipStringToInt(ipAddress);

    packet = new byte[20000];
    ipHeader = new IPHeader(packet, 0);
    tcpHeader = new TCPHeader(packet, 20);
    udpHeader = new UDPHeader(packet, 20);
    dnsBuffer = ((ByteBuffer) ByteBuffer.wrap(packet).position(28)).slice();

    proxy = new Proxy(this, 0);
    proxy.start();
    dnsProxy = new DnsProxy(this);
    dnsProxy.start();

    vpnThread = new Thread(new Runnable(){
        @Override
        public void run(){
            mInterface = builder.setSession("VPNtoSocket")
                    .addAddress(ipAddress,32)
                    .addRoute("0.0.0.0", 0)
                    .addDnsServer("8.8.8.8");
                    //.addRoute("194.163.43.216", 32)
                    .establish();

            FileInputStream vpnin = new FileInputStream(mInterface.getFileDescriptor());
            vpnout = new FileOutputStream(mInterface.getFileDescriptor());

            onStatusChanged(true);

            try{
                int size = 0;
                while(size != -1 && !vpnThread.isInterrupted()){
                    while((size = vpnin.read(packet)) > 0 && !vpnThread.isInterrupted()){
                        if(dnsProxy.isInterrupted() || proxy.isInterrupted()){ //KILL SWITCH
                            vpnin.close();
                            throw new Exception("Server stopped.");
                        }
                        onIPPacketReceived(ipHeader, size);
                    }
                }
            }catch(Exception e){
                e.printStackTrace();
            }finally{
                try{
                    vpnin.close();
                    vpnout.close();
                    if(mInterface != null){
                        mInterface.close();
                        mInterface = null;
                    }

                    kill();
                }catch(Exception e){
                }
            }
        }

    }, "VPNtoSocket");
    vpnThread.start();

    return super.onStartCommand(intent, flags, startId);//START_STICKY;
}

0 Answers0