diff --git a/build.xml b/build.xml index 8eddf3e7..4629bb71 100644 --- a/build.xml +++ b/build.xml @@ -169,6 +169,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/qz/common/AboutInfo.java b/src/qz/common/AboutInfo.java index f369c29e..87d06c41 100644 --- a/src/qz/common/AboutInfo.java +++ b/src/qz/common/AboutInfo.java @@ -25,6 +25,7 @@ import java.io.InputStreamReader; import java.lang.management.ManagementFactory; import java.net.URL; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.GeneralSecurityException; import java.security.cert.CertificateEncodingException; @@ -46,6 +47,7 @@ public static JSONObject gatherAbout(String domain, CertificateManager certifica about.put("environment", environment()); about.put("ssl", ssl(certificateManager)); about.put("libraries", libraries()); + about.put("charsets", charsets()); } catch(JSONException | GeneralSecurityException e) { log.error("Failed to write JSON data", e); @@ -153,6 +155,19 @@ private static JSONObject libraries() throws JSONException { return libraries; } + private static JSONObject charsets() throws JSONException { + JSONObject charsets = new JSONObject(); + + SortedMap avail = Charset.availableCharsets(); + ArrayList names = new ArrayList<>(); + for(Map.Entry entry : avail.entrySet()) { + names.add(entry.getValue().name()); + } + + charsets.put("charsets", Arrays.toString(names.toArray())); + return charsets; + } + public static String getPreferredHostname() { return preferredHostname; }