public boolean refreshIPs()
	{
		//local variables
		boolean success=false;
		Connection conn = null;

		//get the DB connection
		conn = getPrimaryDBConnection();
		
		//if we can't get an db connection, drop the insert statement
		if (conn == null)
		{
				//later on, we should save these to a sqlite db
				logQueue.add("IP 0 Couldn't get a connection! DROPPING A QUERY!");
				return false;
		}

		ResultSet rs;
		Vector<String> updatedSiriIPs = new Vector<String>();
		Statement stmt=null;
		try {
			//query for IPs
			stmt = conn.createStatement();
			rs = stmt.executeQuery(IP_Query);
			stmt.setQueryTimeout(60);  // set timeout to 60 sec
			String IPs="";
			String IP;
			while ( rs.next() ) {
				IP=rs.getString(IPColumn);
                IPs += IP + "\n";
                updatedSiriIPs.add(IP);
            }
			System.out.println("Updated IP List:\n"+IPs);
			siriIPs.clear();
			for (int i=0;i<updatedSiriIPs.size();i++)
			{
				siriIPs.add(updatedSiriIPs.get(i));
			}
            conn.close();
			success=true;


		      
		} catch (SQLException e) {
			//if we have a problem, alert and forget the record
			logQueue.add("IP 0 ERROR: trying to update Siri PUSH IPs! -- " + e.getMessage().replaceAll("\\\\n", " -- ")  + " :: " + IP_Query );
			//logQueue.add("IP 0 FORGETTING: " + stmt);
		}
		finally
		{
			updatedSiriIPs.clear();
			updatedSiriIPs=null;
			
			try
			{
				//try to close the connection
				if (stmt !=null)
				{
					stmt.close();
				}
				if(conn != null)
				{
					conn.close();
				}

			}
			catch(SQLException e)
			{
				//alert if we can't close the connection. C3P0 may take care of this if we can't
				System.out.println("IP 0 ERROR: trying to close connection while updating Siri IPs! -- " + e.getMessage().replaceAll("\\\\n", " -- ") );
			}
			
		}
		
		return success;
	}