Download EMG 8.1.0

Changes

These are the changes in EMG 8.1.0 as compared to EMG 8.0.19.

  1. SATPOOL_CREATE now works correctly on outgoing HTTP connectors, even when using CSM. This will also be part of EMG 8.0.20.
  2. CSM is now set by default for the protocols CIMD2, SMPP, UCP, and HTTP. You can always set CSM=0 on connectors where this does not work properly. If so, please also report this, so we can fix it.
  3. We now build with OpenSSL version 3.5.4.
  4. We now support OAuth 2.0 both as a client, a resource server, and an authorization server.
  5. The pdu logs for SMTP now contain the TLS version and the selected ciphers after the “STARTTLS” command.
  6. For incoming messages using the GSM-7 character set, EMG now supports the national locking and single shift tables 1, 2, and 3, for Turkish, Spanish, and Portuguese, respectively. You most likely want to set the connector option ENABLE_UCS2_UPGRADE on connectors where this is used. The remaining tables can be supported as well, just contact us and we’ll add the ones you need in a future version of EMG.
  7. We have added the new connector option NLT_SUPPORT, a boolean. If this is set, the national language tables mentioned above are also used for outgoing messages. EMG still prefers to use the default character tables, but this way messages using the new sets of characters can be sent using GSM-7 instead of UCS-2, which may reduce the number of pdus, and thereby the sending cost. Before setting this option, please verify with the remote side that this feature is properly supported by them. For example, if they are also running EMG 8.1.0 or later.
  8. If the new global configuration option HIDE_PASSWORDS is set, passwords are not logged in the pdu log files, nor in the debug log, nor in the db.* log. This does not work for HTTP based connectors, however, as the pdu logs for such connectors contain the full request.
  9. The EMG server now also imports the configuration of connector groups from the database tables cfg_connectorgroups and cfg_connectorgroup_entries, and throttling rules from the cfg_throttles table. Their definitions are in the emg-schema-mysql.sql file in the full distribution. When these tables are added, and any previous schema updates are applied, the schema number is increased to 48. This is not supported by the EMG Portal, but you can of course build your own tools to populate these tables.
  10. We have updated the application source code to store short-lived data on the call stack instead of on the heap whenever possible. Together with various other techniques, the number of memory allocation calls has now decreased by about 3/4. Long-lived data such as message objects and the data stored in order to be able to route back delivery reports are the most obvious examples of when this is not possible. Memory allocation is a relatively slow operation, so we’ve seen a small performance improvement simply due to this modification. Memory that is not allocated cannot leak, so the risk for such issues has also decreased.
  11. We now provide a new binary, emgd-san. This is the usual emgd binary, but compiled by clang, with the -fsanitize=address flag. This flag enables runtime analysis of memory accesses, similar to what Valgrind does, but much faster. You can therefore use this binary in most production environments, which is not always possible when running within Valgrind. In the unlikely event that some particular combination of options and incoming data causes emgd to crash, you can temporarily use this binary. When an error is detected, a report is printed, and then the application immediately exits. Please send this report to us, along with your configuration files and other log files.

Files

The downloads are password-protected. To obtain the username and password required, please use our license request form. If you already have an existing installation, you should download just the new binaries. However, if you’re upgrading from EMG 7 or earlier, please also take a look at the full installation guide, as you may also need a new Perl installation.

Binaries and scriptsEMG 8.1.0-binaries
Full distributionEMG 8.1.0-full