diff --git a/resources/languages/resources.properties b/resources/languages/resources.properties index 712a1708e..4a9db76ca 100644 --- a/resources/languages/resources.properties +++ b/resources/languages/resources.properties @@ -1117,6 +1117,7 @@ plugin.notificationconfig.event.OutgoingCall=Outgoing Call plugin.notificationconfig.event.BusyCall=Busy Call plugin.notificationconfig.event.CallSaved=Call Saved plugin.notificationconfig.event.HangUp=Hang Up +plugin.notificationconfig.event.DNSSEC_NOTIFICATION=DNSSEC warnings # ZRTP Securing impl.media.security.WARNING_NO_RS_MATCH=No retained shared secret available.
SAS verification is recommended @@ -1362,15 +1363,17 @@ plugin.dnsconfig.dnssec.lblNameservers=Custom name servers plugin.dnsconfig.dnssec.lblNameserversHint=Multiple servers can be delimited with a comma, e.g. 149.20.64.20, 149.20.64.21 (OARC's Open DNSSEC Validating Resolver) plugin.dnsconfig.dnssec.DOMAIN_NAME=Domain plugin.dnsconfig.dnssec.MODE=Behavior -plugin.dnsconfig.dnssec.ENABLE_FAILED=State changed failed +plugin.dnsconfig.dnssec.ENABLE_FAILED=State change failed plugin.dnsconfig.dnssec.ENABLE_FAILED_MSG=Change of the DNSSEC enabled state has failed. +plugin.dnsconfig.dnssec.RESTART_WARNING=Note that enabling or disabling DNSSEC disables the parallel resolver and will only take effect the next time you start {0}. net.java.sip.communicator.util.dns.SecureResolveMode.IgnoreDnssec=Ignore net.java.sip.communicator.util.dns.SecureResolveMode.SecureOnly=Required net.java.sip.communicator.util.dns.SecureResolveMode.SecureOrUnsigned=Required for signed zones net.java.sip.communicator.util.dns.SecureResolveMode.WarnIfBogus=Ask on bogus reply net.java.sip.communicator.util.dns.SecureResolveMode.WarnIfBogusOrUnsigned=Ask on unsigned or bogus reply util.dns.INSECURE_ANSWER_TITLE=DNSSEC failure -util.dns.INSECURE_ANSWER_MESSAGE=DNS answer for {0} is insecure. +util.dns.INSECURE_ANSWER_MESSAGE_NO_REASON=DNS answer for {0} is insecure. +util.dns.INSECURE_ANSWER_MESSAGE_REASON=DNS answer for {0} is insecure.\nReason: {1} util.dns.DNSSEC_ADVANCED_OPTIONS=Show advanced options util.dns.DNSSEC_ADVANCED_REASON_BOGUS=DNSSEC signed zone {0} returned invalid data.
{1} util.dns.DNSSEC_ADVANCED_REASON_UNSIGNED={0} query for {1} is unsigned. diff --git a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java b/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java index 09f2c965c..582a9eb1f 100644 --- a/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java +++ b/src/net/java/sip/communicator/plugin/dnsconfig/DnssecPanel.java @@ -88,6 +88,7 @@ private void initComponents() cl.gridy = cr.gridy = 0; cl.anchor = cr.anchor = GridBagConstraints.LINE_START; cl.gridx = 0; + cl.fill = GridBagConstraints.HORIZONTAL; cl.weightx = 0; cl.insets = new Insets(0, 0, 0, 10); cr.gridx = 1; @@ -112,23 +113,37 @@ private void initComponents() pnlCommon.add(chkEnabled, cl); cl.gridwidth = 1; + cl.gridy = ++cr.gridy; + JLabel lblRestart = new JLabel( + R.getI18NString("plugin.dnsconfig.dnssec.RESTART_WARNING", + new String[]{ + R.getSettingsString("service.gui.APPLICATION_NAME") + })); + lblRestart.setBorder(BorderFactory.createEmptyBorder(0, 22, 10, 0)); + cl.gridwidth = GridBagConstraints.REMAINDER; + pnlCommon.add(lblRestart, cl); + cl.gridwidth = 1; + //custom nameservers cl.gridy = ++cr.gridy; JLabel lblNameserver = new JLabel( R.getI18NString("plugin.dnsconfig.dnssec.lblNameservers")); + lblNameserver.setBorder(BorderFactory.createEmptyBorder(0, 22, 0, 0)); pnlCommon.add(lblNameserver, cl); txtNameservers = new JTextField(); pnlCommon.add(txtNameservers, cr); cl.gridy = ++cr.gridy; - JLabel lblNameserversHint = new JLabel( + JLabel lblNsHint = new JLabel( R.getI18NString("plugin.dnsconfig.dnssec.lblNameserversHint")); - pnlCommon.add(lblNameserversHint, cr); + lblNsHint.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); + pnlCommon.add(lblNsHint, cr); //default dnssec handling cl.gridy = ++cr.gridy; JLabel lblDefault = new JLabel( R.getI18NString("plugin.dnsconfig.dnssec.lblDefault")); + lblDefault.setBorder(BorderFactory.createEmptyBorder(0, 22, 0, 0)); pnlCommon.add(lblDefault, cl); cboDefault = new JComboBox(SecureResolveMode.values()); cboDefault.setRenderer(getResolveModeRenderer()); @@ -158,7 +173,10 @@ protected void setValue(Object value) cboTblModeEditor.setRenderer(getResolveModeRenderer()); tblDomains.getColumnModel().getColumn(1).setCellEditor( new DefaultCellEditor(cboTblModeEditor)); - add(new JScrollPane(tblDomains), BorderLayout.CENTER); + JScrollPane pnlScroller = new JScrollPane(tblDomains); + pnlScroller.setBorder(BorderFactory.createEmptyBorder(0, 22, 0, 0)); + pnlScroller.setOpaque(false); + add(pnlScroller, BorderLayout.CENTER); } /** @@ -304,6 +322,7 @@ public void focusLost(FocusEvent e) config.setProperty( DnsUtilActivator.PNAME_DNSSEC_NAMESERVERS, txtNameservers.getText()); + NetworkUtils.reloadDnsResolverConfig(); } } diff --git a/src/net/java/sip/communicator/util/dns/ConfigurableDnssecResolver.java b/src/net/java/sip/communicator/util/dns/ConfigurableDnssecResolver.java index 1d0d5f10f..4f0adeec3 100644 --- a/src/net/java/sip/communicator/util/dns/ConfigurableDnssecResolver.java +++ b/src/net/java/sip/communicator/util/dns/ConfigurableDnssecResolver.java @@ -329,13 +329,17 @@ public DnssecDialogResult getResult() private String getExceptionMessage(SecureMessage msg) { - //TODO parse bogus reason text and translate return msg.getBogusReason() == null ? R.getI18NString( - "util.dns.INSECURE_ANSWER_MESSAGE", + "util.dns.INSECURE_ANSWER_MESSAGE_NO_REASON", new String[]{msg.getQuestion().getName().toString()} ) - : msg.getBogusReason(); + : R.getI18NString( + "util.dns.INSECURE_ANSWER_MESSAGE_REASON", + new String[]{msg.getQuestion().getName().toString(), + //TODO parse bogus reason text and translate + msg.getBogusReason()} + ); } private String createPropNameUnsigned(String fqdn, String type)