package org.shadowsocks.db;
import com.j256.ormlite.field.DataType;
import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;
@DatabaseTable(tableName = "dnsresponse")
public class DNSResponse {
// id is generated by the database and set on the object automagically
@DatabaseField(id = true)
private String request;
@DatabaseField(columnName = "timestamp")
private long timestamp = System.currentTimeMillis();
@DatabaseField(columnName = "reqtimes")
private int reqTimes = 0;
@DatabaseField(columnName = "address")
private String address;
public DNSResponse() {
this.request = String.valueOf(System.currentTimeMillis());
}
public DNSResponse(String request) {
this.request = request;
}
/**
* @return IP string
*/
public static String getIPString(byte[] answer) {
String ip = null;
int i;
if (answer == null) {
return null;
}
i = answer.length - 4;
if (i < 0) {
return null;
}
ip = "" + (answer[i] & 0xFF); /* Unsigned byte to int */
for (i++; i < answer.length; i++) {
ip += "." + (answer[i] & 0xFF);
}
return ip;
}
/**
* @return the reqTimes
*/
public int getReqTimes() {
return reqTimes;
}
public String getRequest() {
return this.request;
}
/**
* @return the timestamp
*/
public long getTimestamp() {
return timestamp;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("request=").append(request);
sb.append(", ").append("timestamp=").append(timestamp);
sb.append(", ").append("reqTimes=").append(reqTimes);
return sb.toString();
}
public String getAddress() {
this.reqTimes++;
return address;
}
public void setAddress(String address) {
this.address = address;
}
}