MCPcopy Create free account
hub / github.com/BombusMod/BombusMod / askInetSrv

Method askInetSrv

src/main/java/io/DnsSrvResolver.java:104–159  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

102 }
103
104 private boolean askInetSrv() {
105 cf=Config.getInstance();
106
107 MessageDigest shaVer = null;
108 try {
109 shaVer = MessageDigest.getInstance("SHA-1");
110 } catch (Exception e) {
111 e.printStackTrace();
112 }
113 String version = StaticData.getInstance().getVersionInfo().getVersionNumber() + server;
114 shaVer.update(version.getBytes(), 0, version.length());
115 byte[] shaVerBits = new byte[20];
116 try {
117 shaVer.digest(shaVerBits, 0, shaVerBits.length);
118 } catch (Exception e) {
119 e.printStackTrace();
120 }
121
122 /* if (cf.verHash.equals(shaVer.getDigestHex())) {
123 resolvedHost=cf.resolvedHost;
124 resolvedPort=cf.resolvedPort;
125 //System.out.println(resolvedHost+":"+resolvedPort);
126 return true;
127 }*/
128 try {
129 Socket sc = new Socket("8.8.8.8", 53);
130 DataInputStream is = new DataInputStream(sc.getInputStream());
131 DataOutputStream os = new DataOutputStream(sc.getOutputStream());
132 byte [] message = encode(server);
133 byte [] data = new byte[2 + message.length];
134 System.arraycopy(message, 0, data, 2, message.length);
135 StringUtils.putWordBE(data, 0, message.length);
136 os.write(data);
137 os.flush();
138 byte[] responseHeader = new byte[2];
139 is.readFully(responseHeader);
140 byte[] response = new byte[StringUtils.getWordBE(responseHeader, 0)];
141 is.readFully(response);
142 Vector res = decode(response);
143 if (res.isEmpty() || res.elementAt(0) == null) // Uncorrect response
144 return false;
145 resolvedHost = ((SrvRdata) res.elementAt(0)).host;
146 resolvedPort = ((SrvRdata) res.elementAt(0)).port;
147 ttl = ((SrvRdata) res.elementAt(0)).ttl + Time.utcTimeMillis();
148
149 cf.verHash = StringUtils.getDigestHex(shaVerBits);
150 cf.resolvedHost = resolvedHost;
151 cf.resolvedPort = resolvedPort;
152 cf.saveToStorage();
153 return true;
154
155 } catch (IOException ex) {
156 }
157
158 return false;
159 }
160
161 public boolean getSrv(String server){

Callers 1

getSrvMethod · 0.95

Calls 15

getInstanceMethod · 0.95
getInstanceMethod · 0.95
encodeMethod · 0.95
putWordBEMethod · 0.95
getWordBEMethod · 0.95
decodeMethod · 0.95
utcTimeMillisMethod · 0.95
getDigestHexMethod · 0.95
getVersionInfoMethod · 0.80
writeMethod · 0.80
flushMethod · 0.80
getVersionNumberMethod · 0.65

Tested by

no test coverage detected