Changeset 15


Ignore:
Timestamp:
Aug 9, 2012 8:31:30 PM (5 years ago)
Author:
psaiteja
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • VSNClient/appClientModule/jProxy.java

    r13 r15  
    8282        { 
    8383                int port = 5555; 
    84                 String fwdProxyServer = ""; 
    85                 int fwdProxyPort = 0; 
     84                String fwdProxyServer = "127.0.0.1"; 
     85                int fwdProxyPort = 5556; 
    8686                 
    8787                // create and start the jProxy thread, using a 20 second timeout 
     
    365365                        } 
    366366                         
     367                        System.out.println("host:"+host+" url:"+url); 
    367368                        // either forward this request to another proxy server or 
    368369                        // send it straight to the Host 
    369370                        try 
    370371                        { 
    371                                 MessageDigest sha1 = MessageDigest.getInstance("SHA-1"); 
    372                                 byte [] udigest = sha1.digest((host.toString()+url.toString()).getBytes()); 
    373                         StringBuffer urldigest = new StringBuffer(); 
    374                         for (int i=0;i<udigest.length;i++) { 
    375                                 urldigest.append(Integer.toHexString(0xFF & udigest[i])); 
    376                         } 
    377                          
    378                                 try {            
    379                                         Statement stmt2 = conn.createStatement(); 
    380                                         ResultSet rs = stmt2.executeQuery("select * from ClientHashlist where UrlHash='"+urldigest+"'"); 
    381                                         int num = 0; 
    382                                         if (rs.next()) { 
     372                                if(hostName.indexOf("google.com")>0){ 
     373                                        if ((fwdServer.length() > 0) && (fwdPort > 0)) 
     374                                        { 
     375                                                System.out.println("google.com to VSN:"); 
     376                                                toVSN = true; 
     377                                                server = new Socket(fwdServer, fwdPort); 
     378                                        }  else  { 
     379                                                System.out.println("google.com to origin server:"); 
    383380                                                server = new Socket(hostName, hostPort); 
    384381                                                contacted_origin = true; 
    385382                                                toVSN = false; 
    386                                         } else { 
    387                                                 if ((fwdServer.length() > 0) && (fwdPort > 0)) 
    388                                                 { 
    389                                                         toVSN = true; 
    390                                                         server = new Socket(fwdServer, fwdPort); 
    391                                                 }  else  { 
     383                                        } 
     384                                } 
     385                                else{ 
     386                                        MessageDigest sha1 = MessageDigest.getInstance("SHA-1"); 
     387                                        byte [] udigest = sha1.digest((host.toString()+url.toString()).getBytes()); 
     388                                StringBuffer urldigest = new StringBuffer(); 
     389                                for (int i=0;i<udigest.length;i++) { 
     390                                        urldigest.append(Integer.toHexString(0xFF & udigest[i])); 
     391                                } 
     392                                 
     393                                        try {            
     394                                                Statement stmt2 = conn.createStatement(); 
     395                                                ResultSet rs = stmt2.executeQuery("select * from ClientHashlist where UrlHash='"+urldigest+"'"); 
     396                                                int num = 0; 
     397                                                if (rs.next()) { 
    392398                                                        server = new Socket(hostName, hostPort); 
    393399                                                        contacted_origin = true; 
    394400                                                        toVSN = false; 
     401                                                        System.out.println("to origin server:"); 
     402                                                } else { 
     403                                                        if ((fwdServer.length() > 0) && (fwdPort > 0)) 
     404                                                        { 
     405                                                                System.out.println("to VSN:"); 
     406                                                                toVSN = true; 
     407                                                                server = new Socket(fwdServer, fwdPort); 
     408                                                        }  else  { 
     409                                                                System.out.println("to origin server (2):"); 
     410                                                                server = new Socket(hostName, hostPort); 
     411                                                                contacted_origin = true; 
     412                                                                toVSN = false; 
     413                                                        } 
    395414                                                } 
    396                                         } 
    397                                         rs.close(); 
    398  
    399                                 } catch (Exception e) { 
    400                                         e.printStackTrace(); 
    401                                 } 
    402                                  
     415                                                rs.close(); 
     416 
     417                                        } catch (Exception e) { 
     418                                                e.printStackTrace(); 
     419                                        } 
     420                                } 
    403421                        }  catch (Exception e)  { 
    404422                                // tell the client there was an error 
     
    418436                                        //modifying request header to add if VSN server was contacted before and we are sending the request to VSN server 
    419437                                        if(toVSN){ 
    420                                                 String temp_request = request.toString(); 
     438                                                String temp_request = new String(request); 
    421439                                                vsnrequest.setLength(0); 
    422440                                                while(temp_request.indexOf("\r\n")>=0){ 
     
    436454                                        else{ 
    437455                                                // send the request to origin server 
     456                                                //System.out.println("request sent to origin server:"+host.toString()+url.toString()); 
    438457                                                serverOut.write(request, 0, requestLength); 
    439458                                        } 
     
    457476                                         
    458477                                        if(responseLength==-2){ 
     478                                                System.out.println("Got redirected by VSN server"); 
    459479                                                PreparedStatement psInsert = conn.prepareStatement("insert into ClientHashlist values (?,?,?)"); 
    460480                                                psInsert.setString(1, VSNurldigest.toString()); 
     
    480500                                                        redirect_serverOut.flush(); 
    481501                                                         
    482                                                         responseLength = streamHTTPData2(serverIn, clientOut,host,url, true,toVSN,VSNurldigest,VSNobjectdigest); 
     502                                                        responseLength = streamHTTPData2(redirect_serverIn, clientOut,host,url, true,toVSN,VSNurldigest,VSNobjectdigest); 
    483503                                                } 
    484504                                                redirect_socket.close(); 
    485505                                        } 
    486506                                        if(responseLength==-3){ 
     507                                                System.out.println("Hash did not match"); 
    487508                                                Socket third_socket = null; 
    488509                                                try {            
     
    497518                                                        BufferedOutputStream third_serverOut = new BufferedOutputStream(third_socket.getOutputStream()); 
    498519                                                         
    499                                                         String temp_request = request.toString(); 
     520                                                        String temp_request = new String(request); 
    500521                                                        vsnrequest.setLength(0); 
    501522                                                        while(temp_request.indexOf("\r\n")>=0){ 
     
    515536                                                        third_serverOut.flush(); 
    516537                                                         
    517                                                         responseLength = streamHTTPData2(serverIn, clientOut,host,url, true,toVSN,VSNurldigest,VSNobjectdigest); 
     538                                                        responseLength = streamHTTPData2(third_serverIn, clientOut,host,url, true,toVSN,VSNurldigest,VSNobjectdigest); 
    518539                                                } 
    519540                                                third_socket.close(); 
     
    857878                                                                 
    858879                                                                if(toVSN){ 
     880                                                                        if(!wroteheader){ 
     881                                                                                // convert the header to a byte array, and write it to our stream 
     882                                                                                out.write(header.toString().getBytes(), 0, header.length()); 
     883                                                                                wroteheader = true; 
     884                                                                        } 
    859885                                                                        out.write(buf, 0, bytesIn); 
    860886                                                                        out.flush(); 
     
    862888                                                                 
    863889                                                                if(byteCount>=contentLength){ 
     890                                                                        System.out.println("computing and checking response hash"); 
    864891                                                                        byte [] response = bs.toByteArray(); 
    865892                                                                         
     
    868895                                                                        //sha1.update(response, 0, response.length); 
    869896                                                                        byte [] obdigest = sha1.digest(response); 
    870                                                                         System.out.println("digest size = "+sha1.getDigestLength()+" ondigest size = "+obdigest.length); 
    871897                                                                        sha1.reset(); 
    872898                                                                        //sha1.update(url_string.getBytes(), 0, 
     
    896922                                                                                                        + " ObjectHash:" + rs.getString(2) + " Time:" 
    897923                                                                                                        + rs.getString(3)); 
     924                                                                                        System.out.println("stored hash"+rs.getString(2)+" computed hash"+objectdigest.toString()); 
    898925                                                                                        if(toVSN){ 
    899926                                                                                                PreparedStatement psUpdate = conn.prepareStatement("UPDATE ClientHashlist SET ObjectHash=?, hashTime=? WHERE UrlHash=?"); 
     
    946973                                                                out.write(header.toString().getBytes(), 0, header.length()); 
    947974                                                                wroteheader = true; 
     975                                                                out.flush(); 
    948976                                                        } 
     977                                                         
    949978                                                        //bs.write(buf, 0, bytesIn); 
    950979                                                        out.write(buf, 0, bytesIn); 
Note: See TracChangeset for help on using the changeset viewer.