diff --git a/common/src/main/java/com/zimbra/common/account/ZAttrProvisioning.java b/common/src/main/java/com/zimbra/common/account/ZAttrProvisioning.java index 4bf1a617f4e..f9170537516 100644 --- a/common/src/main/java/com/zimbra/common/account/ZAttrProvisioning.java +++ b/common/src/main/java/com/zimbra/common/account/ZAttrProvisioning.java @@ -2870,6 +2870,15 @@ public static TwoFactorAuthSecretEncoding fromString(String s) throws ServiceExc @ZAttr(id=3120) public static final String A_carbonioClamAVDatabaseCustomURL = "carbonioClamAVDatabaseCustomURL"; + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public static final String A_carbonioClamAVReadTimeout = "carbonioClamAVReadTimeout"; + /** * Whether the Chat App usages enabled for account or COS * diff --git a/store/conf/attrs/attrs.xml b/store/conf/attrs/attrs.xml index 485bcfa2f6d..a28f1b7a2cd 100755 --- a/store/conf/attrs/attrs.xml +++ b/store/conf/attrs/attrs.xml @@ -10118,4 +10118,9 @@ TODO: delete them permanently from here Logout URL for Carbonio Admin web client to send the user to upon explicit logging out + + + 900 + Waiting for data from a client socket connected to ClamAV will timeout after this time (seconds) + diff --git a/store/ldap/src/updates/attrs/1697206170.json b/store/ldap/src/updates/attrs/1697206170.json new file mode 100644 index 00000000000..100428f50dc --- /dev/null +++ b/store/ldap/src/updates/attrs/1697206170.json @@ -0,0 +1,5 @@ +{ + "zimbra_globalconfig": [ + "carbonioClamAVReadTimeout" + ] +} diff --git a/store/src/main/java/com/zimbra/cs/account/ZAttrConfig.java b/store/src/main/java/com/zimbra/cs/account/ZAttrConfig.java index 84ff536e5b1..f67678f235c 100644 --- a/store/src/main/java/com/zimbra/cs/account/ZAttrConfig.java +++ b/store/src/main/java/com/zimbra/cs/account/ZAttrConfig.java @@ -1374,6 +1374,83 @@ public Map unsetCarbonioClamAVDatabaseCustomURL(Map attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, Integer.toString(carbonioClamAVReadTimeout)); + getProvisioning().modifyAttrs(this, attrs); + } + + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @param carbonioClamAVReadTimeout new value + * @param attrs existing map to populate, or null to create a new map + * @return populated map to pass into Provisioning.modifyAttrs + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public Map setCarbonioClamAVReadTimeout(int carbonioClamAVReadTimeout, Map attrs) { + if (attrs == null) attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, Integer.toString(carbonioClamAVReadTimeout)); + return attrs; + } + + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @throws com.zimbra.common.service.ServiceException if error during update + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public void unsetCarbonioClamAVReadTimeout() throws com.zimbra.common.service.ServiceException { + HashMap attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, ""); + getProvisioning().modifyAttrs(this, attrs); + } + + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @param attrs existing map to populate, or null to create a new map + * @return populated map to pass into Provisioning.modifyAttrs + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public Map unsetCarbonioClamAVReadTimeout(Map attrs) { + if (attrs == null) attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, ""); + return attrs; + } + /** * Logo URL for domain * diff --git a/store/src/main/java/com/zimbra/cs/account/ZAttrServer.java b/store/src/main/java/com/zimbra/cs/account/ZAttrServer.java index 63920a30e6b..ca1d22ec9de 100644 --- a/store/src/main/java/com/zimbra/cs/account/ZAttrServer.java +++ b/store/src/main/java/com/zimbra/cs/account/ZAttrServer.java @@ -226,6 +226,83 @@ public Map unsetCarbonioAmavisDisableVirusCheck(Map attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, Integer.toString(carbonioClamAVReadTimeout)); + getProvisioning().modifyAttrs(this, attrs); + } + + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @param carbonioClamAVReadTimeout new value + * @param attrs existing map to populate, or null to create a new map + * @return populated map to pass into Provisioning.modifyAttrs + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public Map setCarbonioClamAVReadTimeout(int carbonioClamAVReadTimeout, Map attrs) { + if (attrs == null) attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, Integer.toString(carbonioClamAVReadTimeout)); + return attrs; + } + + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @throws com.zimbra.common.service.ServiceException if error during update + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public void unsetCarbonioClamAVReadTimeout() throws com.zimbra.common.service.ServiceException { + HashMap attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, ""); + getProvisioning().modifyAttrs(this, attrs); + } + + /** + * Waiting for data from a client socket connected to ClamAV will timeout + * after this time (seconds) + * + * @param attrs existing map to populate, or null to create a new map + * @return populated map to pass into Provisioning.modifyAttrs + * + * @since ZCS 23.11.0 + */ + @ZAttr(id=3140) + public Map unsetCarbonioClamAVReadTimeout(Map attrs) { + if (attrs == null) attrs = new HashMap<>(); + attrs.put(ZAttrProvisioning.A_carbonioClamAVReadTimeout, ""); + return attrs; + } + /** * RFC2256: common name(s) for which the entity is known by *