Changeset 32


Ignore:
Timestamp:
Aug 24, 2012 4:15:06 PM (5 years ago)
Author:
psaiteja
Message:

Corrected an error when specifying column names while updating Serverhashlist table.
Also made changes to the client database table to support only IP as the key and ensure checking only IP value to test if a particular client is in the database. Added a code block in UDP thread to update the port number for an existing user, if the server UDP thread receives a new "Hello" message from a client on a new port number.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • VSNServer/src/ServerProxy.java

    r31 r32  
    226226                                        System.out.println("Client database Table does not exist"); 
    227227                                        Statement stmt = conn.createStatement(); 
    228                                         stmt.executeUpdate("CREATE TABLE ClientDatabase (IP VARCHAR(15) NOT NULL, Port INT DEFAULT "+(DEFAULT_UDP_PORT-1)+", Added TIMESTAMP NOT NULL, PRIMARY KEY (IP, Port))"); 
     228                                        stmt.executeUpdate("CREATE TABLE ClientDatabase (IP VARCHAR(15) NOT NULL, Port INT DEFAULT "+(DEFAULT_UDP_PORT-1)+", Added TIMESTAMP NOT NULL, PRIMARY KEY (IP))"); 
    229229                                        Statement stmt2 = conn.createStatement(); 
    230                                         stmt2.executeUpdate("CREATE INDEX IPIndex on ClientDatabase(IP ASC, Port ASC)"); 
     230                                        stmt2.executeUpdate("CREATE INDEX IPIndex on ClientDatabase(IP ASC)"); 
    231231                                } 
    232232                        } catch (SQLException e) { 
     
    235235                                        conn = DriverManager.getConnection("jdbc:derby:serverdatabase;create=true"); 
    236236                                        Statement stmt = conn.createStatement(); 
    237                                         stmt.executeUpdate("CREATE TABLE ClientDatabase (IP VARCHAR(15) NOT NULL, Port INT DEFAULT "+(DEFAULT_UDP_PORT-1)+", Added TIMESTAMP NOT NULL, PRIMARY KEY (IP, Port))"); 
     237                                        stmt.executeUpdate("CREATE TABLE ClientDatabase (IP VARCHAR(15) NOT NULL, Port INT DEFAULT "+(DEFAULT_UDP_PORT-1)+", Added TIMESTAMP NOT NULL, PRIMARY KEY (IP))"); 
    238238                                        Statement stmt2 = conn.createStatement(); 
    239                                         stmt2.executeUpdate("CREATE INDEX IPIndex on ClientDatabase(IP ASC, Port ASC)"); 
     239                                        stmt2.executeUpdate("CREATE INDEX IPIndex on ClientDatabase(IP ASC)"); 
    240240                                } else 
    241241                                        e.printStackTrace(); 
     
    285285                                        rs.close(); 
    286286                                } catch (Exception e) { 
     287                                        System.out.println("clientip="+clientip); 
    287288                                        e.printStackTrace(); 
    288289                                } 
     
    347348                                try {            
    348349                                        Statement stmt = database_conn.createStatement(); 
    349                                         ResultSet rs = stmt.executeQuery("select * from ClientDatabase where IP='"+IPAddress+"' AND Port="+port); 
     350                                        ResultSet rs = stmt.executeQuery("select * from ClientDatabase where IP='"+IPAddress+"'"); 
    350351                                        if (! rs.next()) { 
    351352                                                PreparedStatement psInsert = database_conn.prepareStatement("insert into ClientDatabase values (?,?,?)"); 
     
    359360                                                System.out.println("Inserted into ClientDatabase IP:"+IPAddress+" Port:"+port); 
    360361                                                sendoldhashes(IPAddress, port); 
     362                                        } 
     363                                        else{ 
     364                                                PreparedStatement psUpdate = database_conn.prepareStatement("UPDATE ClientDatabase SET Port=?, Added=? WHERE IP=?"); 
     365                                                psUpdate.setInt(1,port); 
     366                                                java.sql.Timestamp currentTimestamp = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime()); 
     367                                                psUpdate.setTimestamp(2, currentTimestamp); 
     368                                                psUpdate.setString(1, IPAddress); 
     369                                                psUpdate.executeUpdate(); 
    361370                                        } 
    362371                                        rs.close(); 
     
    569578                                                        if(!Arrays.asList(ip).contains(clientip)){ 
    570579                                                                Statement stmt3 = conn.createStatement(); 
    571                                                                 int updatecount = stmt3.executeUpdate("UPDATE ServerHashlist SET Occurrence="+(m+1)+", IP"+(4+m+1)+"='"+clientip+"' WHERE UrlHash='"+urldigest+"'"); 
     580                                                                int updatecount = stmt3.executeUpdate("UPDATE ServerHashlist SET Occurrence="+(m+1)+", IP"+(m+1)+"='"+clientip+"' WHERE UrlHash='"+urldigest+"'"); 
    572581                                                                if(m+1==m_threshold){ 
    573582                                                                        String objectdigest = rs.getString(2); 
     
    939948                                                                                                 
    940949                                                                                                if(!Arrays.asList(ip).contains(clientip)){ 
    941                                                                                                         PreparedStatement psUpdate = conn.prepareStatement("UPDATE ServerHashlist SET ObjectHash=?,hashTime=?, Occurrence=?, IP"+(4+m+1)+"=? WHERE UrlHash=?"); 
     950                                                                                                        PreparedStatement psUpdate = conn.prepareStatement("UPDATE ServerHashlist SET ObjectHash=?,hashTime=?, Occurrence=?, IP"+(m+1)+"=? WHERE UrlHash=?"); 
    942951                                                                                                        psUpdate.setString(1, objectdigest.toString()); 
    943952                                                                                                        java.sql.Timestamp currentTimestamp = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime()); 
Note: See TracChangeset for help on using the changeset viewer.