()
| 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){ |
no test coverage detected