Changeset 11


Ignore:
Timestamp:
Jul 27, 2012 9:49:14 PM (7 years ago)
Author:
psaiteja
Message:

For some websites, the GET request URLs should not contain the host information preceded by http://. They should just be the relative location information of the requested object. (eg: / instead of http://www.google.com/). Found this error, when visiting specific forums like andhrawatch.com.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • VSNPullServer/src/PullServer.java

    r7 r11  
    379379                        requestLength = Array.getLength(request); 
    380380                         
    381                          
    382381                        // separate the host name from the host port, if necessary 
    383382                        // (like if it's "servername:8000") 
     
    391390                                hostName = hostName.substring(0, pos); 
    392391                        } 
    393                          
     392                        System.out.println("url:"+url+"\nhost:"+hostName+"\nhostport:"+hostPort); 
    394393                        // either forward this request to another proxy server or 
    395394                        // send it straight to the Host 
     
    528527                // the designated OutputStream 
    529528                StringBuffer header = new StringBuffer(""); 
     529                StringBuffer temp_header = new StringBuffer(""); 
    530530                String data = ""; 
     531                StringBuffer pre_url= new StringBuffer(""); 
     532                StringBuffer post_url = new StringBuffer(""); 
    531533                int responseCode = 200; 
    532534                int contentLength = 0; 
     
    538540                        data = readLine(in); 
    539541                        if (data != null) { 
    540                                 header.append(data + "\r\n"); 
     542                                //temp_header.append(data + "\r\n"); 
    541543                                pos = data.indexOf(" "); 
    542544                                if ((data.toLowerCase().startsWith("http")) && (pos >= 0) 
     
    553555                                } else { 
    554556                                        if ((pos >= 0) && (data.indexOf(" ", pos + 1) >= 0)) { 
    555                                                 String suffix = data.substring(pos + 1, 
    556                                                                 data.indexOf(" ", pos + 1)); 
     557                                                pre_url.setLength(0); 
     558                                                pre_url.append(data.substring(0,pos)); 
     559                                                String suffix = data.substring(pos + 1,data.indexOf(" ", pos + 1)); 
    557560                                                url.setLength(0); 
    558561                                                url.append(suffix.trim()); 
     562                                                post_url.setLength(0); 
     563                                                post_url.append(data.substring(data.indexOf(" ", pos + 1)+1)); 
    559564                                        } 
    560565                                } 
     
    566571                                if (data.length() == 0) 
    567572                                        break; 
    568                                 header.append(data + "\r\n"); 
     573                                temp_header.append(data + "\r\n"); 
    569574 
    570575                                // check for the Host header 
     
    582587                        } 
    583588 
     589                        String newurl = url.substring(url.indexOf(host.toString())+host.length()); 
     590                        url.setLength(0); 
     591                        url.append(newurl); 
    584592                        // add a blank line to terminate the header info 
    585                         header.append("\r\n"); 
     593                        header.append(pre_url+" "+url+" "+post_url+"\r\n"+temp_header+"\r\n"); 
    586594 
    587595                        // convert the header to a byte array, and write it to our stream 
    588596                        out.write(header.toString().getBytes(), 0, header.length()); 
    589  
    590597                        // if the header indicated that this was not a 200 response, 
    591598                        // just return what we've got if there is no Content-Length, 
     
    729736                        if ((contentLength > 0) || (waitForDisconnect)) 
    730737                        { 
     738                                System.out.println("Trying to get content body"); 
    731739                                try { 
    732740                                        byte[] buf = new byte[4096]; 
     
    755763                                                                        //sha1.update(url_string.getBytes(), 0, 
    756764                                                                        //              url_string.length()); 
    757                                                                         byte [] udigest = sha1.digest(url.toString().getBytes()); 
     765                                                                        byte [] udigest = sha1.digest((host.toString()+url.toString()).getBytes()); 
    758766                                                                         
    759767                                                                        //convert the byte to hex format method 2 
Note: See TracChangeset for help on using the changeset viewer.