<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel>
  <title>mORMot2 Daily</title>
  <link>https://mormot2daily.fsb.dev</link>
  <description>Daily read of upstream commits</description>
  <language>en</language>
  <lastBuildDate>Tue, 13 Oct 2026 20:21:36 +0000</lastBuildDate>
  <item>
    <title>2026-10-13 — RSA adopte les témoins FIPS tandis que des défauts AES-GCM et SQL sont corrigés</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-13.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-13</guid>
    <pubDate>Tue, 13 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition est dominée par une vaste série RSA de conformité, de correction et de performances : l&amp;#x27;encodage à largeur fixe et des contrôles PKCS#1/PSS renforcés précèdent l&amp;#x27;emploi d&amp;#x27;un DRBG NIST et la sélection FIPS 186-5 des témoins Miller-Rabin. Elle corrige aussi les blocs partiels AES-GCM, la propagation de retenue x86, la validation des clés ECC, l&amp;#x27;attente des timers et plusieurs cas limites PostgreSQL/SQLite. Les utilisateurs de l&amp;#x27;API publique TBigInt doivent adapter une signature IsPrime et peuvent utiliser plusieurs nouvelles méthodes.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Adoptez le build 2.4.17586 pour bénéficier de toute la série de conformité et d&amp;#x27;optimisation RSA.&lt;/li&gt;&lt;li&gt;TBigInt.IsPrime accepte désormais TAesPrngAbstract au lieu de PLecuyer ; les appels directs doivent migrer.&lt;/li&gt;&lt;li&gt;Les sorties RSA ont une largeur fixe et PKCS#1/PSS rejette les encodages non canoniques ou invalides.&lt;/li&gt;&lt;li&gt;AES-GCM gère correctement les blocs AVX partiels ainsi que les états clonés ou réinitialisés.&lt;/li&gt;&lt;li&gt;Les chaînes vides PostgreSQL, les lectures BOOLINT et la destruction des connexions thread-safe sont corrigées.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-12 — TTunnelLocal adopte AES-GCM authentifié avec des clés par direction</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-12.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-12</guid>
    <pubDate>Mon, 12 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;TTunnelLocal reçoit une réécriture de sécurité : AES-CTR est remplacé par des trames AES-GCM authentifiées, les clés d&amp;#x27;envoi et de réception sont séparées, la session est authentifiée et les handshakes malformés sont rejetés plus tôt. La série corrige aussi les données associées GCM avec OpenSSL, une fuite des cookies binaires et l&amp;#x27;analyse des cookies __Secure- précédés d&amp;#x27;un espace. Delphi 2010 est protégé contre des inlinings non sûrs.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Utilisez le build 2.4.17551 ; la réécriture de sécurité TTunnelLocal reçoit trois durcissements immédiats.&lt;/li&gt;&lt;li&gt;Le trafic chiffré TTunnelLocal utilise AES-GCM avec des trames authentifiées et des clés d&amp;#x27;envoi/réception séparées.&lt;/li&gt;&lt;li&gt;Le code utilisant tlmVersion1 doit migrer vers tlmVersion1_aesctr ou le nouvel identifiant tlmVersion2.&lt;/li&gt;&lt;li&gt;TAesGcmOsl authentifie désormais correctement les données associées AEAD.&lt;/li&gt;&lt;li&gt;La destruction de TBinaryCookieGenerator ne fuit plus l&amp;#x27;état géré après invalidation.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-11 — Les limites de redirection s&#x27;uniformisent et l&#x27;attente POSIX revient sans délai</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-11.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-11</guid>
    <pubDate>Sun, 11 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les clients HTTP appliquent désormais RedirectMax de façon cohérente dans WinHTTP et libcurl, avec une politique WinHTTP plus stricte contre les rétrogradations et TLS 1.3 activé sur les versions Windows compatibles. RunRedirect sous POSIX n&amp;#x27;attend plus tout son délai de sondage après la fermeture de stdout par l&amp;#x27;enfant. Les utilisateurs ARM doivent aussi prendre le correctif de normalisation de DoubleToAscii.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Utilisez le build 2.4.17538 pour inclure tous les correctifs de redirection, TLS et DoubleToAscii.&lt;/li&gt;&lt;li&gt;TWinHttp et TCurlHttp appliquent désormais RedirectMax au lieu de l&amp;#x27;utiliser comme simple interrupteur.&lt;/li&gt;&lt;li&gt;RunRedirect sous POSIX revient à la fin du processus enfant sans attendre le délai de lecture configuré.&lt;/li&gt;&lt;li&gt;WinHTTP propose TLS 1.3 sous Windows 11 et Windows Server 2022 ou ultérieur.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-10 — Les clients HTTP et WebSockets se stabilisent après une large optimisation ECC</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-10.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-10</guid>
    <pubDate>Sat, 10 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition corrige plusieurs lacunes du cycle de vie des WebSockets HTTP.sys et le traitement des en-têtes de réponse pour WinINet, WinHTTP, le client HTTP de Delphi et libcurl. Le même lot réécrit de nombreux chemins arithmétiques ECC P-256 pour ARM, i386 et x86-64, tout en rétablissant la compilation avec Delphi 7/2007 et Delphi POSIX. Les utilisateurs Kerberos POSIX doivent aussi prendre en compte deux changements de signature publics liés aux keytabs.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Utilisez le build 2.4.17531 : il contient la série complète des en-têtes des clients HTTP et tous les correctifs de compatibilité.&lt;/li&gt;&lt;li&gt;Les builds 2.4.17513 à 2.4.17515 contiennent un token fixme isolé dans mormot.core.base et ne doivent pas être utilisés.&lt;/li&gt;&lt;li&gt;TServerSspiKeyTab.PrepareKeyTab renvoie désormais boolean et ServerForceKeytab accepte RawUtf8 au lieu de TFileName.&lt;/li&gt;&lt;li&gt;Le nettoyage, les callbacks idle, le suivi des ping et les échecs d&amp;#x27;envoi des WebSockets HTTP.sys ont été revus sur sept commits.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-09 — Les atomiques FPC ARM retrouvent leur ordre pendant la refonte des WebSockets HTTP.sys</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-09.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-09</guid>
    <pubDate>Fri, 09 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition répare les barrières mémoire absentes des verrous mORMot sous FPC ARM et AArch64, où les données protégées pouvaient encore subir des courses malgré le mot de verrouillage. Sous Windows, la gestion des requêtes et WebSockets HTTP.sys est largement refondue puis stabilisée sur le cycle de vie, les E/S overlapped, l’envoi, l’arrêt et le ping. Les utilisateurs directs des wrappers HTTP.sys bas niveau et des index de connexion THttpApiWebSocketServerProtocol doivent migrer leur code.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Les verrous FPC ARM et AArch64 appliquent désormais des barrières mémoire complètes ; l’ancien code pouvait perdre des mises à jour ou corrompre l’état partagé.&lt;/li&gt;&lt;li&gt;Le moteur HTTP.sys traite les corps chunked sans limite, déconnecte les échecs laissant un corps non lu et isole l’état par requête.&lt;/li&gt;&lt;li&gt;Les connexions WebSocket HTTP.sys utilisent maintenant des ID TLockedList, des structures overlapped séparées pour lecture/réveil et un arrêt protégé.&lt;/li&gt;&lt;li&gt;THttpServerRequest.FullUrl devient RawUtf8, HttpApiRequest est supprimé et plusieurs signatures HTTP.sys bas niveau changent.&lt;/li&gt;&lt;li&gt;optCleanMagicJson peut retirer JSON_BASE64_MAGIC des réponses SOA ; SetErrorText, HtmlEscapeShortVar et TLockedList.Find sont nouveaux.&lt;/li&gt;&lt;li&gt;Adoptez le build 2.4.17497 ; ne restez pas sur les builds de transition HTTP.sys 2.4.17464 à 2.4.17496.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-08 — Le routage proxy mûrit et un piège de sous-classe WebSocket est corrigé</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-08.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-08</guid>
    <pubDate>Thu, 08 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition étend la détection et le contournement des proxy aux clients socket et REST, puis corrige le routage des redirections, les identifiants proxy, les couches socket et la validation des URI. Elle ajoute aussi des fabriques WebSocket sensibles aux options, le build final réparant une régression de sous-classe dans leurs anciennes surcharges. Les appels directs à GetProxyForUri doivent désormais fournir un TUri au lieu d’un RawUtf8.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;GetProxyForUri accepte désormais TUri au lieu de RawUtf8 ; ses appels directs nécessitent une migration du code source.&lt;/li&gt;&lt;li&gt;HTTP_PROXY, HTTPS_PROXY, NO_PROXY, les listes de contournement Windows et REST ProxyName alimentent désormais le routage du client socket.&lt;/li&gt;&lt;li&gt;Les redirections cross-origin, changements d’identifiants proxy et reconnexions non-TCP choisissent maintenant le bon routage et la bonne couche socket.&lt;/li&gt;&lt;li&gt;Les nouvelles surcharges THttpClientWebSockets.WebSocketsConnect acceptent TUri et THttpRequestExtendedOptions ; le build 2.4.17462 corrige le dispatch des sous-classes via les anciennes surcharges.&lt;/li&gt;&lt;li&gt;RemoveMagicFromJson retire JSON_BASE64_MAGIC au début des chaînes JSON sans modifier les chaînes ordinaires.&lt;/li&gt;&lt;li&gt;Adoptez le build 2.4.17462 et évitez de rester sur les builds 2.4.17450 à 2.4.17461.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-07 — Les états HTTP se stabilisent et la fermeture Unix cesse de supprimer les sockets serveur</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-07.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-07</guid>
    <pubDate>Wed, 07 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition très orientée réseau achève une vaste réécriture des clients HTTP et des délais, puis corrige les régressions de constructeurs, proxy, WebSocket et backends natifs apparues en chemin. Le framing HTTP distingue désormais la sémantique des réponses HEAD des corps de requête, HTTP.sys sous Windows accepte les uploads chunked et les en-têtes répétés d’authentification ou de cookie, et les clients POSIX ne suppriment plus le socket Unix du serveur à leur fermeture.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;POSIX Unix-domain clients no longer unlink the server socket path when they close.&lt;/li&gt;&lt;li&gt;HTTP.sys now accepts chunked request bodies and preserves repeated Set-Cookie and authentication headers.&lt;/li&gt;&lt;li&gt;HEAD and OPTIONS handling now follows message framing; redirected 301 POST and 303 requests also discard their old bodies.&lt;/li&gt;&lt;li&gt;THttpRequestExtendedOptions.GetTimeouts is replaced by ComputeTimeouts, THttpRequest.InternalConnect loses its parameters, and TCrtSocket.ReOpen no longer accepts a timeout.&lt;/li&gt;&lt;li&gt;TRestHttpClientGeneric connection-definition parsing no longer risks an infinite loop.&lt;/li&gt;&lt;li&gt;Land on final build 2.4.17433 rather than an intermediate build from this refactor sequence.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-06 — L’arrêt asynchrone ferme les fuites et les délais HTTP se séparent par phase</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-06.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-06</guid>
    <pubDate>Tue, 06 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition réseau a un impact élevé. Les serveurs asynchrones, les tunnels et RTSP-over-HTTP reçoivent une correction coordonnée de la propriété et de l’arrêt, tandis que TSynThreadPool ferme une course pouvant laisser du travail en file d’attente endormi. Les clients HTTP gagnent des délais distincts pour la connexion, l’envoi et la réception, et l’authentification Kerberos côté serveur est regroupée derrière un wrapper multiplateforme avec la suppression d’une méthode publique.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;TSynThreadPool now clears a worker&amp;#x27;s processing state under the pending-queue lock, preventing a queued task from being stranded by a wake-up race.&lt;/li&gt;&lt;li&gt;Async socket, tunnel and RTSP-over-HTTP cleanup now closes file descriptors and transferred connections on failure and shutdown paths.&lt;/li&gt;&lt;li&gt;TCrtSocket and HTTP clients now expose separate connect, send and receive timeouts; use 0, not a negative value, when requesting legacy fallback on a live TCrtSocket.&lt;/li&gt;&lt;li&gt;TServerSspiKeyTab.ComputeServerHeader is removed; migrate direct callers to KerberosServerAuthHeader and prepare a POSIX keytab explicitly when required.&lt;/li&gt;&lt;li&gt;Delphi users should land on build 2.4.17398, which repairs compilation after the timeout constructor refactor.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-05 — Les tests RTSP-over-HTTP ne partagent plus leurs ports d’écoute</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-05.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-05</guid>
    <pubDate>Mon, 05 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition est calme et limitée aux tests. Les deux variantes de régression RTSP-over-HTTP reçoivent désormais des paires de ports RTSP et HTTP distinctes, sans changement des unités de production ni des API publiques.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;RTSPOverHTTP utilise les ports 3997/3996, tandis que RTSPOverHTTPBufferedWrite conserve 3999/3998.&lt;/li&gt;&lt;li&gt;Le changement reste limité à test.net.proto et ne demande aucune modification des applications Delphi ou FPC.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-04 — Le binding des tableaux PostgreSQL et les attentes concurrentes sont réparés</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-04.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-04</guid>
    <pubDate>Sun, 04 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les batches PostgreSQL ne sérialisent plus la capacité inutilisée des tableaux et ne perdent plus les quotes finales, ce qui ferme un échec explicite et une altération silencieuse des valeurs. TPipeStream renvoie maintenant EOF à sa taille déclarée, tandis que le chemin POSIX poll final conserve les timeouts malgré les signaux et l’épuisement temporaire des ressources. Le comptage du thread pool devient atomique ; le reste du lot construit des helpers de task pool partagé et renforce les tests de concurrence.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17369 au commit 913a072a26c0305bc468a79b658137de5f7d124b.&lt;/li&gt;&lt;li&gt;Les tableaux liés PostgreSQL respectent maintenant ValuesCount et conservent les valeurs finissant par une ou plusieurs quotes.&lt;/li&gt;&lt;li&gt;TPipeStream.Read n’attend plus indéfiniment quand le dernier bloc finit exactement à la taille déclarée du stream.&lt;/li&gt;&lt;li&gt;Les retries POSIX poll conservent le timeout réel et traitent EINTR, EAGAIN et POLLNVAL de façon cohérente.&lt;/li&gt;&lt;li&gt;Le comptage des tâches pending de TSynThreadPool devient atomique, y compris après un échec IOCP et pour le wake-up des waiters.&lt;/li&gt;&lt;li&gt;De nouveaux helpers TSynThreadTasks et TSynTestCase simplifient les workers de test partagés et persistants.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-03 — L’authentification AES-GCM revient, Tunnel et les files sont reconstruits</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-03.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-03</guid>
    <pubDate>Sat, 03 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Le correctif le plus urgent restaure la vérification GMAC dans le chemin AVX de déchiffrement AES-GCM, qui pouvait accepter un ciphertext, un tag ou des associated data falsifiés sur les systèmes x86-64 éligibles. Le cycle de vie, le handshake et l’arrêt de Tunnel sont reconstruits pour sortir les appels externes des verrous et donner au propriétaire un contrôle déterministe du thread. Les attentes des files et thread pools gagnent les futex OS et de nouvelles API, puis les correctifs requis pour Delphi, Win8+ et Linux.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17356 au commit 1f7febd219f9cb54175a1f87620e6862e4e670b8.&lt;/li&gt;&lt;li&gt;TAesGcmEngine.Decrypt vérifie désormais GMAC après le chemin AVX single-pass ; les tests rejettent ciphertext, tags et AAD falsifiés.&lt;/li&gt;&lt;li&gt;TTunnelLocal possède et joint son worker, transfère explicitement les sockets et exécute les callbacks de relay hors du state lock.&lt;/li&gt;&lt;li&gt;TSynQueue utilise les futex OS disponibles et ajoute WaitPopReset et Waiters ; les attentes comparées gardent leur polling.&lt;/li&gt;&lt;li&gt;TSynThreadTasks, PendingTasks et WaitFor ajoutent l’exécution gérée et l’attente de fin ; les correctifs finaux couvrent Delphi, Win8+ et Linux.&lt;/li&gt;&lt;li&gt;Les data descriptors ZIP en mémoire, la finalisation des callbacks REST WebSocket et le démarrage THttpApiServer sont réparés.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-02 — Les deadlocks WebSocket sont éliminés, TLS et les logs d’exception se stabilisent</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-02.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-02</guid>
    <pubDate>Fri, 02 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Le broadcast WebSocket async et le forwarding RTSP n’envoient plus sous un read lock de connexion, supprimant un deadlock lorsqu’un échec d’écriture retire le peer. SChannel traite désormais une fermeture ordonnée pendant l’envoi comme une connexion close et complète la couverture de renégociation TLS 1.3. L’interception des exceptions est aussi corrigée entre threads, sous Delphi Win32 et Delphi POSIX, tandis que la détection AVX-512 vérifie que l’OS sauvegarde réellement l’état ZMM.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17324 au commit 05e40cd692d391efb62ed97f78f264867477e8e5.&lt;/li&gt;&lt;li&gt;TWebSocketAsyncServer.WebSocketBroadcast et TPostConnection.OnRead ne deadlockent plus lorsqu’un send défaillant supprime une connexion.&lt;/li&gt;&lt;li&gt;Les envois SChannel renvoient nrClosed lors d’une fermeture normale et la réception gère SEC_I_RENEGOTIATE sous TLS 1.3.&lt;/li&gt;&lt;li&gt;Les exceptions concurrentes ne disparaissent plus, les doublons Delphi Win32 sont supprimés et Delphi POSIX gagne l’interception.&lt;/li&gt;&lt;li&gt;IntelAvx512 devient une variable calculée au démarrage et filtrée par XCR0 ; cpuAVX512 identifie le support x86-64-v4 activé par l’OS.&lt;/li&gt;&lt;li&gt;Le test WebSocket http.sys Windows de l’issue #418 est désactivé car il reste instable sous Windows 11.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-10-01 — SChannel gagne le mTLS natif et les courses au démarrage serveur sont éliminées</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-10-01.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-10-01</guid>
    <pubDate>Thu, 01 Oct 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les serveurs Windows peuvent désormais exiger et valider les certificats clients avec SChannel, via les stores de confiance et callbacks existants de TNetTlsContext. Une seconde série corrige la construction des serveurs HTTP et async afin que leurs threads principaux ne démarrent pas avant les sockets, workers et références croisées. Les équipes utilisant le mTLS Windows ou créant des serveurs sous charge doivent viser la build finale.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17294 au commit de8d47ea7122b30aa81296a1e5e899a3909e34b1.&lt;/li&gt;&lt;li&gt;Les serveurs SChannel implémentent le mTLS via ClientCertificateAuthentication, CACertificatesFile, CASystemStores, CACertificatesRaw, OnEachPeerVerify et OnAfterPeerValidate.&lt;/li&gt;&lt;li&gt;Les threads des serveurs HTTP et async restent suspendus jusqu’à l’initialisation des sockets, workers et liens d’ownership.&lt;/li&gt;&lt;li&gt;Mettez à niveau pour le chargement de CACertificatesRaw, les erreurs explicites de certificat client absent et les corrections finales SChannel.&lt;/li&gt;&lt;li&gt;Les ajouts publics comprennent acoCreateSuspended, ConsoleLock/ConsoleUnLock et WinCryptTextToBinary.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-30 — Windows CNG et PKCS#11 progressent tandis que des défauts JSON et socket sont corrigés</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-30.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-30</guid>
    <pubDate>Wed, 30 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition largement consacrée à la cryptographie introduit un backend de certificats Windows CNG, complète le déchiffrement d’enveloppes RSA via CNG et PKCS#11 et répare une longue séquence d’import/signature PKCS#11. Elle corrige aussi une lecture JSON hors limites dans les logs, borne une boucle socket, fiabilise le cookie de session derrière proxy et sépare les timeouts HTTP de connexion, d’envoi et de réception.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17268 au commit 80bc2689df777dadbe1f8af745096eeb13205ef7.&lt;/li&gt;&lt;li&gt;Ajoutez mormot.crypt.win aux uses si le code référence TAesAbstractApi ou ses descendants CryptoAPI AES, déplacés depuis mormot.crypt.core.&lt;/li&gt;&lt;li&gt;Windows reçoit TCryptCertAlgoCng, ICryptCertCng et TCryptCertCng.LoadPkcs12 pour les stores, cartes/KSP et identités PFX transitoires.&lt;/li&gt;&lt;li&gt;PKCS#11 reçoit le déchiffrement RSA envelope et davantage de signatures, mais TPkcs11 n’est plus thread-safe ; protégez le catalogue avec TCryptCertAlgoPkcs11.Lock/UnLock.&lt;/li&gt;&lt;li&gt;Mettez à niveau pour la lecture hors limites de TJsonWriter.AddEscapeBuffer, la boucle infinie de TCrtSocket.TrySockRecv, les GPF CNG/PKCS#11 et les corrections ABI OpenSSL.&lt;/li&gt;&lt;li&gt;THttpClientSocket.SetTimeouts sépare les budgets connect, send et receive ; TRestHttpClientSocket applique les trois.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-29 — SChannel active TLS 1.3 tandis que le support Windows CNG se consolide</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-29.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-29</guid>
    <pubDate>Tue, 29 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette série centrée sur Windows modifie la politique protocolaire SChannel par défaut, partage les credentials serveur entre connexions HTTPS acceptées et ajoute un support important de CNG, des certificate stores et de msLAPS. Les derniers commits corrigent aussi les compilations Delphi 7 et Delphi 13, évitent les stubs CNG de Wine et réparent l’ownership des clés privées.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17208 au commit 18e7d88c0083b279402c59019c030abdfe39e3e1.&lt;/li&gt;&lt;li&gt;SChannelEnableTls13 vaut désormais true par défaut sur Windows 11 et Windows Server 2022 ou plus récent ; passez-le à false avant l’initialisation si ce déploiement n’est pas voulu.&lt;/li&gt;&lt;li&gt;Les serveurs HTTPS SChannel acquièrent un credential serveur partagé, conservé jusqu’à la libération du dernier contexte TLS accepté.&lt;/li&gt;&lt;li&gt;TNetTlsContext peut fournir à SChannel un PCCERT_CONTEXT ou un PFX protégé, et ReleaseBuffers libère maintenant les buffers SChannel inactifs.&lt;/li&gt;&lt;li&gt;Les wrappers TNCrypt, TWinCertStore et TWinCertCngKey exposent clés CNG, certificate stores, signature, unprotection de secrets et déchiffrement msLAPS.&lt;/li&gt;&lt;li&gt;Wine évite sa couche CNG incomplète, tandis que Delphi 7 et Delphi 13 reçoivent des correctifs de compilation explicites.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-28 — L’expiration des moteurs de script conserve toute sa plage</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-28.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-28</guid>
    <pubDate>Mon, 28 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Un correctif arithmétique d’une ligne empêche les grandes valeurs de TThreadSafeManager.EngineExpireTimeOutMinutes de déborder lors de leur conversion en millisecondes. Les serveurs Windows SChannel incluent aussi l’erreur système dans l’exception levée lorsqu’aucun certificat ne peut être sélectionné dans le store. Les pools de moteurs configurés avec une longue durée de vie devraient prendre le premier correctif ; le changement TLS est seulement diagnostique.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez le head 5a1509b805bcdc7f239c683bd0e68ab9700c1247, build 2.4.17189.&lt;/li&gt;&lt;li&gt;EngineExpireTimeOutMinutes multiplie désormais les minutes en millisecondes avec Int64, sans débordement 32-bit pour les grandes valeurs.&lt;/li&gt;&lt;li&gt;Un échec de recherche de certificat SChannel lève désormais ESChannel avec le texte et le code Windows au lieu d’un message générique.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-26 — Les redirects URI se stabilisent, heartbeat et sessions se rétablissent</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-26.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-26</guid>
    <pubDate>Sat, 26 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;La pile URI est réécrite selon RFC 3986 avec résolution des Location relatives, puis stabilisée jusqu’à la build 2.4.17187 avant son adoption par les redirects HTTP. Les utilisateurs en production reçoivent aussi le correctif successeur des heartbeats WebSocket async désactivés, des timeouts Signed URI et REST corrigés, un proxy cache plus sûr au démarrage et à l’arrêt, et les écritures IOCP directes optionnelles sous Windows. Les appels externes à ESynSspi.RaiseLastOSError doivent migrer.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez le head 215c7bbd240419735ad7e89f5d35ddc9cfeb8b4d, build 2.4.17187, pour la séquence URI et redirect complète.&lt;/li&gt;&lt;li&gt;La build 2.4.17171 rétablit les callbacks heartbeat WebSocket async désactivés par la comparaison idle précédente.&lt;/li&gt;&lt;li&gt;L’ordre des timestamps Signed URI et le calcul du timeout REST sont corrigés pour les services longs et le rollover 32-bit.&lt;/li&gt;&lt;li&gt;Les proxy caches Windows peuvent écrire directement via IOCP et évitent des races de démarrage et suppression.&lt;/li&gt;&lt;li&gt;Remplacez les appels externes ESynSspi.RaiseLastOSError par ESynSspi.RaiseSspiError.&lt;/li&gt;&lt;li&gt;Évitez 2.4.17162–2.4.17170 pour heartbeat et 2.4.17176–2.4.17186 pour la séquence URI incomplète.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-25 — SChannel et les caches HTTP se stabilisent, mais les heartbeats régressent</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-25.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-25</guid>
    <pubDate>Fri, 25 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Windows SChannel reçoit des corrections de concurrence, handshake, renégociation et mémoire, tandis que les clients HTTP gagnent des restrictions de redirection optionnelles et que les deux proxy caches corrigent les statuts. Le timing heartbeat WebSocket async passe à HeartbeatDelay, mais deux retouches laissent une comparaison finale qui désactive ces callbacks après le seuil mémoire par défaut. Les implémentations INetTls externes et le code utilisant LastOperationIdleSeconds doivent aussi migrer.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez le head c94dba6c18f6a0c5b225734af210da678cc59167, build 2.4.17161, pour les correctifs SChannel, redirect et cache terminés.&lt;/li&gt;&lt;li&gt;Les callbacks heartbeat WebSocket async sont désactivés après le seuil mémoire par défaut ; mettez LastOperationReleaseMemorySeconds à 0 en attendant la correction.&lt;/li&gt;&lt;li&gt;Les implémentations INetTls externes doivent ajouter ReleaseBuffers et LastOperationIdleSeconds doit migrer vers GetLastOperationIdleSeconds.&lt;/li&gt;&lt;li&gt;THttpRequestExtendedOptions.RedirectOptions ajoute purge cross-origin et rejet de redirects en gardant le comportement libre par défaut.&lt;/li&gt;&lt;li&gt;Le proxy cache refuse les statuts GET invalides, interrompt les lecteurs progressifs en erreur et vérifie la taille finale.&lt;/li&gt;&lt;li&gt;Évitez 2.4.17143 et les builds redirect incomplètes 2.4.17159–2.4.17160.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-24 — Les backends TLS se stabilisent après une réparation complète</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-24.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-24</guid>
    <pubDate>Thu, 24 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;OpenSSL et Windows SChannel reçoivent une large série de corrections pour les callbacks, la policy certificat, les I/O asynchrones, le shutdown et les erreurs. Les insertions ORM externes s’arrêtent si SELECT max(ID) échoue au lieu de reprendre les ID à un, et l’allocateur SQLite restaure l’alignement requis sur Android ARM64. Ce lot touche la production : prenez le head final, pas une build TLS intermédiaire.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez le head 34c5672df4ab31378524d2868b8482b408eafbdd, build 2.4.17135.&lt;/li&gt;&lt;li&gt;Un échec max-ID ORM retourne 0 et bloque l’insertion au lieu d’essayer des ID dupliqués depuis un.&lt;/li&gt;&lt;li&gt;OpenSSL reçoit des correctifs liés pour callbacks, autorités mTLS, retries async, passwords, SNI et shutdown.&lt;/li&gt;&lt;li&gt;SChannel est réécrit pour les I/O async bufferisées puis corrigé pour handshake, TLS 1.3, shutdown, ClientHello et erreurs finales.&lt;/li&gt;&lt;li&gt;L’allocateur SQLite de secours utilise un header de 16 octets pour aligner Android ARM64.&lt;/li&gt;&lt;li&gt;Évitez 2.4.17117 et les séquences OpenSSL 2.4.17083–2.4.17113 et SChannel 2.4.17119–2.4.17134.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-23 — L’historique des exceptions est reconstruit et OpenSSL reçoit un nouveau correctif I/O</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-23.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-23</guid>
    <pubDate>Wed, 23 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Le chemin d’interception des exceptions est largement reconstruit après l’identification d’un GPF aléatoire et d’un modèle mémoire/threading non sûr dans l’ancien stockage des dernières exceptions. La séquence se termine par une récupération newest-first correcte et une stack bornée par exception. Les retries Send/Receive et le reporting des erreurs de configuration OpenSSL reçoivent deux correctifs finaux, tandis que FPC gagne une meilleure capture de stack et une réparation du seed déterministe ARM32.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17082 au commit 03ab5c85c4b2982c96b7f38d683dbff85e016f77.&lt;/li&gt;&lt;li&gt;GetLastException et GetLastExceptions utilisent un ring verrouillé de 16 entrées avec une copie privée de stack par exception.&lt;/li&gt;&lt;li&gt;OpenSSL ne retente que WANT_READ/WANT_WRITE, impose cinq secondes et rapporte les erreurs de setup sans détourner SSL_get_error.&lt;/li&gt;&lt;li&gt;La méthode de classe publique TDebugFile.AddLog est supprimée ; les appelants doivent migrer vers les API de location ou StackTrace restantes.&lt;/li&gt;&lt;li&gt;KEEP_STACKFRAMES conserve les réglages de stack frames du projet, surtout pour le debug FPC POSIX, avec un coût de performance documenté.&lt;/li&gt;&lt;li&gt;FPC Windows consomme la stack capturée par le RTL et FPC ARM32 stabilise le QWord de TLecuyer.SeedGenerator.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-22 — Vérification TLS, formatage sûr et réseau mobile Delphi arrivent ensemble</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-22.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-22</guid>
    <pubDate>Tue, 22 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les utilisateurs OpenSSL doivent prendre toute la séquence transport : retries socket croisés, vérification hostname par défaut et purge de la file d’erreurs sous OpenSSL 1.x/3.x. Une régression d’une build dans FormatAdder pouvait écrire via une destination invalide pour une sortie vide. Delphi Android/iOS gagnent des backends HTTP System.Net, Delphi ARMv7 devient utilisable et TXmlParser accepte les DOCTYPE simples sans charger les entités DTD.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17065 au commit 743a53fd4cb3af700463b0d143581ce17c6c8b31.&lt;/li&gt;&lt;li&gt;Les clients OpenSSL vérifient ServerAddress quand HostNamesCsv est vide ; OpenSSL 1.x/3.x purge les erreurs avant connect, accept, read et write.&lt;/li&gt;&lt;li&gt;Évitez 2.4.17025–2.4.17063 pour la séquence OpenSSL incomplète et 2.4.17047 pour le chemin d’overflow de FormatAdder avec sortie vide.&lt;/li&gt;&lt;li&gt;Delphi Android et iOS peuvent utiliser TDelphiNetHttp, TRestHttpClientDelphiNet et TSqlDBDelphiNetConnectionProperties via le TLS de l’OS.&lt;/li&gt;&lt;li&gt;Delphi Android ARMv7 reçoit les stubs ABI, le JSON aligné pour les packed fields et le support des appels variadiques.&lt;/li&gt;&lt;li&gt;TXmlParser ignore les DOCTYPE externes simples par défaut ; utilisez xpoRejectDocType pour les rejeter, les subsets internes restant non pris en charge.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-21 — OpenSSL async réessaie correctement et TSynLog réduit son verrou d’écriture</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-21.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-21</guid>
    <pubDate>Mon, 21 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les clients et serveurs non bloquants utilisant OpenSSL réessaient maintenant SSL_connect et SSL_accept après WANT_READ ou WANT_WRITE au lieu de les traiter comme fatals. Le commit final conserve le premier résultat SSL_get_error afin de signaler la vraie cause d’un échec. TSynLog déplace aussi la collecte de stack trace et d’informations système hors de son verrou writer, avec moins de contention mais un état par thread plus grand et des suffixes bornés.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17024 au commit 13c7b4dd94b23c25d51e5b0ab9b6e207cb039207.&lt;/li&gt;&lt;li&gt;Les handshakes TLS OpenSSL sur sockets async réessaient WANT_READ et WANT_WRITE pendant cinq secondes au maximum.&lt;/li&gt;&lt;li&gt;Évitez les builds 2.4.17020 à 2.4.17023 : la nouvelle boucle relit SSL_get_error lors d’un échec final ; 2.4.17024 transmet le code déjà capturé.&lt;/li&gt;&lt;li&gt;TSynLog pré-rend les stack traces et informations système configurées avant de prendre son verrou par writer.&lt;/li&gt;&lt;li&gt;Le record thread TSynLog grandit de 320 octets ; les suffixes stack trace sont limités à 255 octets et les informations système à 63.&lt;/li&gt;&lt;li&gt;AppendSysInfo est un nouveau helper public qui ajoute les informations système sans vider la ShortString existante.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-20 — L’inspection des logs préserve les fichiers MAB et gagne le traçage des appelants</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-20.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-20</guid>
    <pubDate>Sun, 20 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition renforce surtout les outils autour de TSynLog sans modifier les protocoles backend. Les lecteurs de logs ne plantent plus sur des données de profiler vides ou des sélections de texte brut, et TDebugFile ne supprime plus un fichier .mab externe illisible. FreeBSD, FPC et Android reçoivent des corrections socket et POSIX, tandis que la découverte du symbole appelant passe désormais par TDebugFile sur tous les compilateurs pris en charge.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17019 au commit fc996116ae8a2534c5e763ac180649cdb78013ab.&lt;/li&gt;&lt;li&gt;TDebugFile.Create ne supprime plus un fichier .mab externe illisible fourni via aExeName.&lt;/li&gt;&lt;li&gt;TSynLogFile et TSynLogFileView gèrent sans plantage les logs sans sllEnter, les lignes texte brut copiées et un filtre de niveaux vide.&lt;/li&gt;&lt;li&gt;Le dimensionnement des sockets UNIX FreeBSD et les corrections de compilation FPC, BSD et Android sont complets dans la build finale.&lt;/li&gt;&lt;li&gt;TDebugFile.AppendCallerShort est nouveau ; TSynLog.Enter ou Log sans texte résout aussi l’appelant sous FPC, comme sous Delphi.&lt;/li&gt;&lt;li&gt;Le package Lazarus conserve maintenant mormot.crypt.pkcs11 lorsqu’il régénère mormot2.pas.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-19 — Les sockets POSIX survivent aux signaux tandis que TSynLog change son ABI de format</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-19.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-19</guid>
    <pubDate>Sat, 19 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette série cross-platform est volumineuse. Les attentes, accept et I/O socket POSIX reprennent après EINTR sans allonger les deadlines, tandis que Delphi AArch64 gagne le dispatch d’interfaces, les variants late-bound et un cache temporel bien aligné. TSynLog remplace volontairement PUtf8Char par RawUtf8 dans ses API formatées et pré-rend hors verrou ; prenez les correctifs finaux car la build 2.4.16999 peut dépasser son buffer stack de 4 Ko.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.17002 au commit 4ef9dc663bbf00ad1920c83a7274e3676610b37f.&lt;/li&gt;&lt;li&gt;Ne déployez pas la build 2.4.16999 : un log formaté proche de 4 Ko avec instance peut dépasser le buffer stack TSynLog.&lt;/li&gt;&lt;li&gt;Migrez les paramètres de format TSynLogProc, Log, DoLog, Enter, EnterLocal et ManualEnter de PUtf8Char vers const RawUtf8.&lt;/li&gt;&lt;li&gt;Les I/O socket POSIX, poll, epoll et accept reprennent après EINTR en conservant les deadlines ; prenez la séquence complète plutôt que les builds 2.4.16947 à 2.4.16964.&lt;/li&gt;&lt;li&gt;Delphi AArch64 gagne DispInvoke et les appels d’interface sur Android/iOS, avec correction de l’alignement du verrou GlobalTime.&lt;/li&gt;&lt;li&gt;Delphi POSIX corrige le blocage des ressources ordinales au démarrage et le décodage inversé des resourcestring courtes/longues.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-18 — Les verrous par writer arrivent avec des réparations de fallback indispensables</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-18.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-18</guid>
    <pubDate>Fri, 18 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;TSynLog remplace son verrou d’écriture global au processus par un verrou par writer, réduisant la contention mais révélant aussi des chemins d’échec réparés plus tard dans la même série. Les utilisateurs directs de TX64CpuFeatures doivent supprimer les références à cpuSSSE3, tandis que les cibles x86-64 compatibles sélectionnent désormais automatiquement le parser SSSE3 des nombres JSON. Les viewers de logs, les outils de diagnostic et les appelants de AppendShortByteHex reçoivent aussi des améliorations concrètes de correction et d’API.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.16943 au commit 0b26918230d72e33b79365a79c1bc444ec3029b1 ; évitez la séquence TSynLog incomplète des builds 2.4.16937 à 2.4.16941.&lt;/li&gt;&lt;li&gt;TSynLog sérialise maintenant les écritures par logger plutôt qu’avec un verrou d’écriture global, réduisant la contention entre logs indépendants.&lt;/li&gt;&lt;li&gt;La build 2.4.16942 répare les chemins d’échec de Enter, EnterLocal et ManualEnter introduits par le refactoring des verrous.&lt;/li&gt;&lt;li&gt;TX64CpuFeatures.cpuSSSE3 est supprimé ; utilisez cfSSSE3 dans CpuFeatures pour détecter cette capacité.&lt;/li&gt;&lt;li&gt;Les cibles Delphi et FPC x86-64 non-PIC compatibles sélectionnent désormais automatiquement GetNumericVariantSsse3 pour les nombres JSON.&lt;/li&gt;&lt;li&gt;La recherche dans les fichiers TSynLogFile en texte brut fonctionne à nouveau, et AppendShortByteHex accepte sans débordement les PtrUInt supérieurs à 255.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-17 — Le deadlock au démarrage des logs est corrigé, avec TLS 1.3 et POSIX stabilisés</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-17.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-17</guid>
    <pubDate>Thu, 17 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;L’échec de création d’un fichier de log pouvait relancer la journalisation via un writer non initialisé et laisser SynLogGlobalLock verrouillé, bloquant ensuite tous les threads de log. Cette édition complète aussi la configuration des suites TLS 1.3, corrige les retours Currency via la répartition d’interfaces sous FPC POSIX et supprime une boucle active avec /dev/null sous systemd. Les appelants POSIX qui utilisent directement WaitReadPending doivent s’adapter à son nouveau résultat entier, et les appelants bas niveau du parser numérique x86-64 doivent vérifier les points d’entrée SSSE3 renommés.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Visez la build 2.4.16922 au commit cdb7dad52a6989d41ce8405a15d26928e0829ca2 ; elle inclut les corrections finales des logs et de l’arrêt Linux.&lt;/li&gt;&lt;li&gt;TSynLog ne bloque plus tous les threads de log quand la création du fichier échoue avec la journalisation des exceptions activée.&lt;/li&gt;&lt;li&gt;Les backends OpenSSL configurent maintenant TLS 1.3 via TNetTlsContext.CipherSuites et SSL_CTX_set_ciphersuites.&lt;/li&gt;&lt;li&gt;La répartition d’interfaces FPC POSIX renvoie maintenant Currency via le chemin x87 FP0 au lieu de le traiter comme un résultat binary64.&lt;/li&gt;&lt;li&gt;WaitReadPending renvoie désormais -1, 0 ou 1 sous POSIX ; les appelants directs doivent remplacer l’usage booléen par une comparaison explicite.&lt;/li&gt;&lt;li&gt;Les instances THttpRequestContext réutilisées effacent maintenant AcceptEncoding, évitant de transmettre les préférences de compression à la requête suivante.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-16 — Le parsing numérique SSSE3 arrive sous Delphi et FPC, avec des corrections de limites</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-16.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-16</guid>
    <pubDate>Wed, 16 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Le changement principal est un chemin assembleur x86-64 partagé pour GetExtended et GetNumericVariantFromJson sur les cibles Delphi et FPC compatibles SSSE3, avec des fallbacks scalaires et une matrice de régression élargie. Des corrections ultérieures réparent le parsing de MIN_INT64 avec fraction et la cohérence FP80. Le reporting de version macOS prend aussi en charge Golden Gate, mais sa première correspondance de kernel est corrigée plus tard dans cette même édition ; les utilisateurs en production doivent donc viser la build 2.4.16897 plutôt qu’une build intermédiaire.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Passez à la build 2.4.16897 ; la série assembleur numérique reçoit des corrections MIN_INT64 et FP80 avant le head final.&lt;/li&gt;&lt;li&gt;GetExtended et GetNumericVariantFromJson utilisent désormais l’assembleur SSSE3 sur les cibles Delphi Win64 et FPC Win64/Linux x86-64 compatibles.&lt;/li&gt;&lt;li&gt;La build 2.4.16888 corrige le parsing de -9223372036854775808.0 dans les chemins Pascal et assembleur x86-64.&lt;/li&gt;&lt;li&gt;Le chemin FP80 dédié conserve la précision de mantisse 64 bits et la build 2.4.16891 harmonise les résultats signés hors plage.&lt;/li&gt;&lt;li&gt;MacKernel et les métadonnées Golden Gate sont des ajouts publics ; les builds 2.4.16892–2.4.16895 utilisent une correspondance Darwin incorrecte corrigée en 16896.&lt;/li&gt;&lt;li&gt;GetInteger et GetCardinal consomment maintenant deux chiffres par boucle sans changer leurs signatures publiques.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-15 — Les parseurs numériques Pascal sont réécrits autour de chemins entiers plus rapides</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-15.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-15</guid>
    <pubDate>Tue, 15 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les implémentations Pascal derrière GetExtended et GetNumericVariantFromJson maintiennent désormais les entiers courants et les décimaux courts dans des boucles plus resserrées, tout en conservant des contrôles pour les longues mantisses, les exposants et les limites Int64. Les tests GetExtended rendent aussi explicites la normalisation du signe de zéro et plusieurs fractions de 18 à 20 chiffres. Aucune migration de signature n’est requise, mais les applications dépendant du type numérique exact des variants ou de cas limites flottants doivent valider la build 2.4.16865.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Passez à la build 2.4.16865 et retestez les conversions numériques qui dépendent du type variant exact ou de l’arrondi aux limites.&lt;/li&gt;&lt;li&gt;Le chemin Pascal hors Win32 de GetExtended a été simplifié deux fois, avec des boucles distinctes pour les 18 premiers chiffres, la suite contrôlée contre les débordements, les fractions et les exposants.&lt;/li&gt;&lt;li&gt;GetExtended normalise maintenant volontairement -0 et -0e400 en zéro numérique sur son chemin Pascal, conformément au comportement fixé par les nouveaux tests.&lt;/li&gt;&lt;li&gt;GetNumericVariantFromJson déroule ses premiers chiffres et réécrit la sélection Int64, Currency et Double sans modifier sa signature publique.&lt;/li&gt;&lt;li&gt;mormot.core.base ajoute la constante publique MIN_INT64 et le membre overlay TSynVarData.VPtrInt.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-14 — La propriété des requêtes DHCP et le parsing numérique court sont corrigés</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-14.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-14</guid>
    <pubDate>Mon, 14 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Les serveurs DHCP suivent maintenant plus fidèlement l’état du client et les règles de sélection du serveur : les trames NAK sont nettoyées, les requêtes désignant un autre serveur sont ignorées et les anciennes adresses statiques sont rejetées. Une correction ultérieure empêche les options d’adresse mal formées d’être prises pour de vraies valeurs IPv4. Par ailleurs, GetExtended ne lit plus quatre octets depuis une entrée invalide d’un ou deux caractères ; les services qui analysent du texte numérique non fiable doivent donc prendre cette édition.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Passez à la build 2.4.16861 ; les builds 2.4.16857 à 2.4.16859 peuvent interpréter à tort les options DHCP 50 ou 54 mal formées comme de vraies adresses.&lt;/li&gt;&lt;li&gt;GetExtended rejette maintenant les tokens invalides courts avant son contrôle NAN/INF sur quatre octets, évitant une lecture potentielle au-delà du texte fourni.&lt;/li&gt;&lt;li&gt;Une requête DHCP dont server-identifier désigne un autre serveur est ignorée et comptée par la nouvelle métrique dsmDroppedOtherServer.&lt;/li&gt;&lt;li&gt;Un client qui demande explicitement une adresse ne correspondant plus à sa réservation statique reçoit maintenant un NAK au lieu d’un ACK de renouvellement.&lt;/li&gt;&lt;li&gt;Les trames DHCPNAK omettent les options de bail, réseau, boot et rule, conservent le chaddr du paquet et sont diffusées en broadcast en l’absence de relais.&lt;/li&gt;&lt;li&gt;DhcpIP4 renvoie maintenant zéro pour les options de quatre octets absentes ou mal formées, achevant les nouveaux contrôles REQUEST sans faux NAK ni abandon.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
  <item>
    <title>2026-09-13 — Le parsing décimal atteint l’arrondi IEEE exact après une régression sur zéro</title>
    <link>https://mormot2daily.fsb.dev/edition/2026-09-13.html</link>
    <guid isPermaLink="false">mormot2-daily-2026-09-13</guid>
    <pubDate>Sun, 13 Sep 2026 07:00:00 +0000</pubDate>
    <description>&lt;p&gt;Cette édition poursuit la stabilisation des conversions numériques avec des corrections de précision visibles en production dans les deux sens. DoubleToAscii gère maintenant correctement la notation scientifique et l’arrondi du sticky bit sur 64 bits, tandis que GetExtended accepte les exposants limites et arrondit les fractions décimales courantes vers le double IEEE le plus proche. GetNumericVariantFromJson rétablit aussi le traitement numérique de 0.0 ; les backends qui échangent des nombres JSON ou persistent des flottants en texte doivent donc prendre la série complète.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Passez au commit c9eff241 de la build 2.4.16851 ; il inclut le merge final sur l’arrondi décimal après la dernière incrémentation de version.&lt;/li&gt;&lt;li&gt;GetNumericVariantFromJson analyse de nouveau 0.0 et les formes fractionnaires entièrement nulles comme un zéro numérique au lieu d’échouer la conversion.&lt;/li&gt;&lt;li&gt;GetExtended et GetNumericVariantFromJson renvoient maintenant le double IEEE le plus proche pour des fractions courantes comme 1.2, au lieu d’une valeur supérieure d’un ULP.&lt;/li&gt;&lt;li&gt;DoubleToAscii corrige la ponctuation de la notation scientifique et applique l’arrondi sticky bit sur CPU64, améliorant les allers-retours exacts entre flottants et texte.&lt;/li&gt;&lt;li&gt;Le chemin GetExtended hors WIN32DELPHI traite maintenant les limites du plus petit subnormal et du plus grand double fini sans échec prématuré.&lt;/li&gt;&lt;/ul&gt;</description>
  </item>
</channel></rss>
