Changeset 38


Ignore:
Timestamp:
Aug 29, 2012 6:26:31 PM (5 years ago)
Author:
psaiteja
Message:

Made the clientproxy code compatible for NAT clients. Added a timer module to the Client Proxy code. This timer module periodically (every 59 seconds) sends a "hello" message to the VSN server - to keep the NAT entry for the UDP port active. This enables the clients to receive hash entry updates sent as UDP packets.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • VSNClient/appClientModule/ClientProxy.java

    r37 r38  
    1212import java.sql.Statement; 
    1313import java.sql.Timestamp; 
     14import java.util.TimerTask; 
    1415 
    1516public class ClientProxy extends Thread 
     
    263264        private DatagramSocket UDPClient = null; 
    264265         
     266        private Timer timer; 
     267         
    265268        public UDPClientThread(int port, int fwdport, String fwd_server, Connection conn){ 
    266269                UDPport = port; 
     
    275278                        e.printStackTrace(); 
    276279                } 
    277                 if(UDPClient!=null) 
    278                         informUDPserver(); 
     280                if(UDPClient!=null){ 
     281                        timer = new Timer(); 
     282                    timer.schedule(new PeriodicTask(this), 0, //initial delay 
     283                        59 * 1000); //subsequent rate 
     284                } 
    279285        } 
    280286         
     
    390396} 
    391397 
    392  
     398class PeriodicTask extends TimerTask{ 
     399         
     400        UDPClientThread udpthread; 
     401         
     402        public PeriodicTask(UDPClientThread t){ 
     403                udpthread = t; 
     404        } 
     405         
     406        public void run(){ 
     407                udpthread.informUDPserver(); 
     408        } 
     409} 
    393410 
    394411/*  
     
    493510                        } 
    494511                         
    495                         System.out.println("host:"+host+" url:"+url); 
    496512                        // either forward this request to another proxy server or 
    497513                        // send it straight to the Host 
     
    9921008                                                                                ResultSet rs = stmt2.executeQuery("select * from ClientHashlist where UrlHash='"+urldigest+"'"); 
    9931009                                                                                if (rs.next()) { 
    994                                                                                         System.out.println("ENTRY EXISTS -  UrlHash: " + rs.getString(1) 
    995                                                                                                         + " ObjectHash:" + rs.getString(2) + " Time:" 
    996                                                                                                         + rs.getString(3)); 
    997                                                                                         System.out.println("stored hash"+rs.getString(2)+" computed hash"+objectdigest.toString()); 
    9981010                                                                                        if(toVSN){ 
    9991011                                                                                                PreparedStatement psUpdate = conn.prepareStatement("UPDATE ClientHashlist SET ObjectHash=?, hashTime=? WHERE UrlHash=?"); 
Note: See TracChangeset for help on using the changeset viewer.