mORMot2 DailyLecture quotidienne des commits upstream

Les états HTTP se stabilisent et la fermeture Unix cesse de supprimer les sockets serveur

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.

En bref

  • POSIX Unix-domain clients no longer unlink the server socket path when they close.
  • HTTP.sys now accepts chunked request bodies and preserves repeated Set-Cookie and authentication headers.
  • HEAD and OPTIONS handling now follows message framing; redirected 301 POST and 303 requests also discard their old bodies.
  • THttpRequestExtendedOptions.GetTimeouts is replaced by ComputeTimeouts, THttpRequest.InternalConnect loses its parameters, and TCrtSocket.ReOpen no longer accepts a timeout.
  • TRestHttpClientGeneric connection-definition parsing no longer risks an infinite loop.
  • Land on final build 2.4.17433 rather than an intermediate build from this refactor sequence.

Conseil de mise à jour

Adoptez le build final 2.4.17433 plutôt qu’un build intermédiaire de cette édition : les derniers commits réparent les constructeurs, setters de délai, choix du proxy, parsing des définitions REST, corps de redirection et états serveur HTTP. Les déploiements POSIX avec sockets Unix et les serveurs HTTP.sys Windows doivent prioriser la mise à jour. Avant compilation, recherchez THttpRequestExtendedOptions.GetTimeouts, les surcharges paramétrées de THttpRequest.InternalConnect et TCrtSocket.ReOpen(timeout).

Build2.4.17398 → 2.4.17433
Commits37
Lignes+693 -650
Lecture9 min

36 sur 36 entrées · 37 commits upstream

Sujets
# Entrée Catégorie Unités
1 Critique La réutilisation d’options HTTP ne lit plus hors du record d’authentification THttpClientSocket.SameOpenOptions passe @aOptions à THttpRequestExtendedOptions.SameAuth au lieu de @aOptions.Auth, fournissant le pointeur de base attendu et supprimant le mauvais accès mémoire. Correctifs mormot.net.client b466ee53+3-3

net: fixed wrong memory access in THttpClientSocket.SameOpenOptions

Impact

Les vérifications de réutilisation HTTP Delphi/FPC ne lisent plus de mémoire étrangère, évitant des comparaisons d’authentification erronées et une possible violation d’accès.

Arnaud Bouchez · 13:20 UTC · voir le commit sur GitHub →

2 Élevée Le stockage des délais socket est simplifié et ReOpen perd son paramètre TCrtSocket remplace les champs de fallback par des valeurs concrètes de connexion, envoi et réception, suit les valeurs SO_*TIMEO appliquées, copie les réglages avec SetTimeoutsFrom et transforme ReOpen(aTimeout) en ReOpen sans paramètre utilisant les valeurs stockées. Ruptures mormot.net.sock 7f8a625b+114-155

net: rewritten TCrtSocket timeouts implementation

Impact

Les appels passant un délai à ReOpen ne compilent plus. Les applications Delphi et FPC doivent régler ConnectTimeout, SendTimeout et ReceiveTimeout avant ReOpen ; écrire TimeOut règle désormais les trois.

Migration nécessaire

Remplacez ReOpen(timeout) par l’affectation des propriétés de délai suivie de ReOpen, puis retestez les sockets acceptés et reconnexions proxy/TLS.

API publique

  • TCrtSocket.ReOpensignature-changed — Le paramètre de délai est supprimé ; les délais de phase stockés sont utilisés.
  • TCrtSocket.SetTimeoutsFromadded
  • TCrtSocket.TimeOutbehaviour-changed — L’écrire règle désormais les trois délais de phase.

Arnaud Bouchez · 10:32 UTC · voir le commit sur GitHub →

3 Élevée Les options HTTP étendues calculent désormais des délais concrets THttpRequestExtendedOptions.GetTimeouts est supprimé et ComputeTimeouts remplit les valeurs de phase manquantes avec les constantes HTTP ou CreateTimeoutMS. THttpClientSocket les copie dans TCrtSocket et la réutilisation de connexion ne compare plus les délais. Ruptures mormot.net.client 3d81851d+42-45

net: fixed THttpClientSocket timeouts usage

Impact

Les appels directs à GetTimeouts ne compilent plus sous Delphi ou FPC et doivent passer à la méthode mutante ComputeTimeouts. Modifier seulement les délais ne force plus une reconnexion HTTP.

Migration nécessaire

Remplacez les appels GetTimeouts par ComputeTimeouts, puis lisez ConnectTimeoutMS, SendTimeoutMS et ReceiveTimeoutMS dans le record.

API publique

  • THttpRequestExtendedOptions.GetTimeoutsremoved
  • THttpRequestExtendedOptions.ComputeTimeoutsadded

Arnaud Bouchez · 10:28 UTC · voir le commit sur GitHub →

4 Élevée Les backends HTTP lisent désormais les options depuis l’instance THttpRequest.InternalConnect perd ses trois paramètres de délai ; les overrides WinHTTP, WinINet, Curl et Delphi NetHTTP lisent fExtendedOptions. La construction initialise URI et options avant d’appeler la méthode virtuelle sans paramètre. Ruptures mormot.net.client edbd697a+39-43

net: rewritten THttpRequest.InternalConnect method

Impact

Les descendants personnalisés de THttpRequest qui surchargent InternalConnect ne compileront plus sous Delphi ou FPC avant mise à jour de la signature et de la lecture des délais.

Migration nécessaire

Passez les overrides à procedure InternalConnect; et lisez fExtendedOptions.ConnectTimeoutMS, SendTimeoutMS et ReceiveTimeoutMS.

API publique

  • THttpRequest.InternalConnectsignature-changed

Arnaud Bouchez · 11:03 UTC · voir le commit sur GitHub →

5 Élevée Les redirections et 100-Continue gèrent désormais le bon corps THttpClientSocket efface Data, DataMimeType et InStream lorsqu’un POST 301 ou un 303 éligible devient GET, émet les headers pour un stream fourni, et les serveurs envoient 100 Continue seulement si Content-Length ou le framing chunked déclare un corps. Correctifs mormot.net.async+2 bdb952f3+27-23

net: some client/server HTTP state machine fixes

Impact

Les requêtes Delphi/FPC redirigées n’envoient plus d’anciennes données avec un GET réécrit, et les clients ne sont plus invités à transmettre un corps sans framing côté serveur.

Arnaud Bouchez · 19:41 UTC · voir le commit sur GitHub →

6 Élevée Le parsing des définitions REST ne peut plus boucler indéfiniment TRestHttpClientGeneric.RegisteredClassCreateFrom remplace une chaîne d’appels UrlDecode par UrlDecodeNextNameValue, qui avance une fois pour chaque paire nom/valeur avant de traiter les options connues. Correctifs mormot.crypt.secure+1 9292c506+27-20

rest: fixed TRestHttpClientGeneric.RegisteredClassCreateFrom

Impact

Les clients Delphi et FPC créés depuis TSynConnectionDefinition ne risquent plus de rester bloqués quand DatabaseName contient des options que l’ancienne chaîne ne faisait pas avancer.

Arnaud Bouchez · 12:52 UTC · voir le commit sur GitHub →

7 Élevée OPTIONS peut porter du contenu ; seul HEAD supprime le corps de réponse Le code client et serveur remplace HttpMethodWithNoBody par IsHead pour les corps de réponse et par le framing pour les corps de requête. Curl n’active plus CURLOPT_NOBODY pour OPTIONS. Correctifs mormot.net.acme+3 f119fd8c+18-19

net: only HEAD has no body - OPTIONS could

Impact

Les serveurs Delphi et FPC lisent désormais les corps OPTIONS encadrés et les clients peuvent recevoir leur contenu de réponse. Les applications supposant OPTIONS sans corps peuvent voir de nouvelles données.

Arnaud Bouchez · 15:11 UTC · voir le commit sur GitHub →

8 Élevée Les options Curl se réinitialisent proprement et restaurent la vérification TLS TCurlHttp règle toujours coFollowLocation depuis RedirectMax et restaure explicitement coSSLVerifyPeer et coSSLVerifyHost lorsque les erreurs de certificat ne sont pas ignorées, puis applique certificat client ou CA personnalisée. Correctifs mormot.net.client cf40c09d+19-15

net: several fixes to TCurlHttp options usage

Impact

Les handles Curl réutilisés ne conservent plus l’état de redirection ou TLS relâché d’une requête précédente. Les clients Curl POSIX Delphi/FPC retrouvent la vérification configurée.

Arnaud Bouchez · 14:14 UTC · voir le commit sur GitHub →

9 Élevée Les mises à jour groupées appellent désormais les setters des sous-classes TCrtSocket.SetTimeouts revient comme helper public : il affecte ConnectTimeout et appelle les méthodes virtuelles SetSendTimeout et SetReceiveTimeout. SetTimeoutsFrom et DoCreate suivent ce chemin afin d’exécuter les overrides WebSocket. Correctifs mormot.net.client+1 93002192+18-16

net: fixed TCrtSocket virtual timeout setters call

Impact

THttpClientWebSockets garde maintenant CallbackAnswerTimeOutMS synchronisé quand les délais passent par les helpers de base. Les hooks des sous-classes Delphi/FPC sont de nouveau appelés.

Arnaud Bouchez · 13:36 UTC · voir le commit sur GitHub →

10 Élevée Les serveurs HTTP lisent tout corps encadré, même avec HEAD Les chemins serveur synchrones et asynchrones déclenchent le streaming et DownloadBody selon Content-Length ou Transfer-Encoding au lieu d’exclure HEAD. Le traitement async de 100-Continue est limité aux états attendant un corps. Correctifs mormot.net.async+1 0e0af8c7+14-19

net: fixed body retrieval on HTTP servers logic

Impact

Les octets d’une requête encadrée sont consommés de façon cohérente, évitant la désynchronisation du protocole sur les connexions keep-alive même pour HEAD. Les backends Delphi et FPC en bénéficient.

Arnaud Bouchez · 19:24 UTC · voir le commit sur GitHub →

11 Élevée Fermer un client Unix ne supprime plus le socket serveur TCrtSocket.Close n’appelle désormais fpunlink pour nlUnix que lorsque fWasBind est présent. Le test ouvre un client sur un chemin bindé et vérifie que seul le serveur supprime le fichier. Correctifs mormot.net.sock+1 5b58dd54+19-2

net: TCrtSocket.Close only deletes a unix socket file it bound itself

Impact

Sous Delphi et FPC POSIX, la déconnexion d’un client ne rend plus le serveur Unix actif inaccessible aux nouveaux clients en supprimant son entrée filesystem.

API publique

  • TCrtSocket.Closebehaviour-changed

Antoine Gaudreau Simard · 18:32 UTC · voir le commit sur GitHub →

12 Élevée WinINet applique les délais au handle de session TWinINet.InternalConnect appelle InternetSetOption sur fSession plutôt que sur fConnection pas encore créé et lève une erreur explicite si le réglage d’un délai échoue. Correctifs mormot.net.client 94043c0a+11-8

net: fixed TWinINet.InternalConnect timeouts setting

Impact

Les clients Windows WinINet reçoivent réellement les délais configurés au lieu d’appeler silencieusement l’API avec un handle nil. Les échecs sont visibles pour Delphi.

Arnaud Bouchez · 13:40 UTC · voir le commit sur GitHub →

13 Élevée La construction HTTP appelle le backend après initialisation complète THttpRequest.DoInternalConnect affecte fHttps avant de choisir le port par défaut et restaure l’appel InternalConnect manquant après calcul des options. Correctifs mormot.net.client 9482ca12+4-3

net: fixed previous THttpRequest commit

Impact

HTTPS utilise de nouveau le port 443 par défaut et les backends HTTP natifs ouvrent réellement leurs sessions. Cela répare le refactoring précédent pour Delphi et FPC.

Arnaud Bouchez · 13:14 UTC · voir le commit sur GitHub →

14 Élevée Les serveurs HTTP.sys reçoivent désormais les corps chunked THttpApiServer.DoExecute distingue maintenant Content-Length connu des entrées transfer-encoded, boucle HttpReceiveRequestEntityBody dans un buffer réutilisable de 128 Ko pour le chunked, applique MaximumAllowedContentLength et rapporte les octets réellement reçus. Nouveautés mormot.lib.winhttp+1 7baf2887+77-54

net: let http.sys server support chunked input body

Impact

Les backends Windows HTTP.sys peuvent accepter les uploads HTTP/1.1 chunked au lieu de les rejeter ou tronquer. Les corps de longueur inconnue trop grands reçoivent 413 et les erreurs de réception 406.

Arnaud Bouchez · 17:38 UTC · voir le commit sur GitHub →

15 Élevée Les constructeurs HTTP partagent un chemin d’initialisation entre backends THttpRequest ajoute DoInternalConnect pour initialiser URI, user-agent et délais avant l’appel virtuel backend ; Curl utilise la plus grande valeur envoi/réception pour son délai global et Delphi NetHTTP lit l’option proxy consolidée. Sous le capot mormot.net.client 70951dd7+28-29

net: several fixes to THttpRequest.Create

Impact

Tous les backends natifs suivent une séquence commune, mais ce refactoring intermédiaire a nécessité le commit suivant pour restaurer l’appel backend et corriger le port HTTPS.

À regarder

Arnaud Bouchez · 13:10 UTC · voir le commit sur GitHub →

16 Moyenne Les réceptions socket appliquent le délai à chaque tentative TCrtSocket.TrySockRecv calcule une échéance pour chaque appel Recv, force une attente nulle pendant SockInPending et borne la valeur restante avant select ou poll. Correctifs mormot.net.sock 0f8d2fcd+15-13

net: rewritten TCrtSocket.TrySockRecv timeout logic

Impact

Les attentes de réception Delphi/FPC suivent ReceiveTimeout par tentative bas niveau, tandis que les sondes de buffer en attente restent non bloquantes.

À regarder

Arnaud Bouchez · 10:34 UTC · voir le commit sur GitHub →

17 Moyenne Les redirections HTTP préservent les méthodes hors conversions GET définies TAcmeLetsEncryptServer utilise 301 pour GET et HEAD et 308 sinon. THttpClientSocket ne convertit que POST sur 301 et toutes les méthodes sauf HEAD sur 303, tandis que la construction n’écarte plus un corps HEAD explicite. Correctifs mormot.net.acme+2 8a6da8b7+14-12

net: other HTTP HEAD support related fixes

Impact

Les clients Delphi et FPC conservent PUT, DELETE et les autres méthodes sur 301 tout en suivant 303 ; les redirections ACME vers HTTPS préservent les méthodes non-GET avec 308.

À regarder

Arnaud Bouchez · 19:30 UTC · voir le commit sur GitHub →

18 Moyenne Les envois socket utilisent une échéance monotone par tentative TCrtSocket.TrySndLow calcule une échéance GetTickCount64 pour chaque tentative Send et passe le reste de fSendTimeout à WaitFor au lieu du TimeOut global historique. Correctifs mormot.net.sock b05f8522+12-8

net: rewritten TCrtSocket.TrySndLow timeout/wait logic

Impact

Les envois bloqués Delphi/FPC respectent plus précisément le délai d’envoi et ne réinitialisent pas l’attente complète après le temps déjà passé dans Send.

À regarder

Arnaud Bouchez · 10:34 UTC · voir le commit sur GitHub →

19 Moyenne Les lectures en attente évitent l’attente sans modifier les délais socket TCrtSocket ajoute le flag interne fSockInPending autour d’InputSock ; SockInRead et TrySockRecv l’utilisent pour éviter les retries sans toucher SO_RCVTIMEO ni fReceiveTimeout. Correctifs mormot.net.sock 057aff56+7-9

net: fixed TCrtSocket.SockInPending from InputSock()

Impact

SockInPending reste non bloquant sans altérer temporairement le délai logique de réception, améliorant la cohérence des sockets bufferisés Delphi/FPC.

À regarder

Arnaud Bouchez · 10:33 UTC · voir le commit sur GitHub →

20 Moyenne L’initialisation WebSocket passe par le hook socket partagé THttpClientWebSockets remplace son override de constructeur par DoCreate, appelle inherited DoCreate, initialise les réglages et tire CallbackAnswerTimeOutMS de fReceiveTimeout. Correctifs mormot.net.ws.client 7ceaa39c+6-8

net: fixed THttpClientWebSockets constructor

Impact

Chaque constructeur hérité initialise désormais une seule fois les réglages WebSocket via le hook virtuel sous Delphi et FPC, évitant une initialisation manquée ou doublée.

À regarder

Arnaud Bouchez · 12:56 UTC · voir le commit sur GitHub →

21 Moyenne Curl peut désactiver explicitement les réglages proxy hérités Quand THttpRequestExtendedOptions.Proxy vaut 'none', TCurlHttp passe une chaîne vide non nil à CURLOPT_PROXY ; une option vide laisse les defaults d’environnement Curl et une vraie valeur choisit ce proxy. Correctifs mormot.net.client 68b62f05+8-5

net: fixed TCurlHttp proper 'none' proxy support

Impact

Les requêtes Curl POSIX peuvent ignorer de façon fiable HTTP_PROXY et les variables associées. Les appelants Delphi/FPC continuent d’utiliser la valeur documentée 'none'.

À regarder

Arnaud Bouchez · 13:54 UTC · voir le commit sur GitHub →

22 Moyenne WinINet ouvre les valeurs user-agent et proxy en Unicode TWinINet.InternalConnect convertit user-agent, proxy et liste bypass de RawUtf8 vers SynUnicode et appelle InternetOpenW au lieu de InternetOpenA. Correctifs mormot.net.client 3851e090+8-5

net: fixed TWinINet Unicode options support

Impact

Les clients Delphi Windows préservent les configurations user-agent et proxy non ASCII au lieu de les encoder via la page ANSI active. Les chemins FPC non Windows ne changent pas.

À regarder

Arnaud Bouchez · 10:35 UTC · voir le commit sur GitHub →

23 Moyenne L’authentification Kerberos basic Windows utilise le contexte serveur complet TBasicAuthServerKerberos limite le raccourci onlypass en un passage à GSSAPI POSIX ; Windows suit désormais le chemin ServerSspiAuth requis par SSPI et les contrôles optionnels de SID de groupe. Correctifs mormot.net.ldap+1 8fc28980+7-6

net: fixed TBasicAuthServerKerberos on Windows

Impact

Les serveurs Delphi Windows n’empruntent plus un raccourci réservé à GSSAPI lors de la validation basic Kerberos. Le comportement POSIX FPC est conservé.

Arnaud Bouchez · 10:25 UTC · voir le commit sur GitHub →

24 Moyenne La sélection du proxy système vérifie désormais l’hôte destination GetSystemProxyUri utilise TUri.Server au lieu de Address pour exclure du proxy les destinations vides, loopback ou IPv4 directes. Correctifs mormot.net.client+1 d8e97dc6+5-6

net: fixed GetSystemProxyUri()

Impact

Les clients HTTP ne décident plus du proxy à partir du chemin URL. Le trafic localhost et IPv4 direct doit contourner le proxy comme prévu sous Delphi et FPC.

Arnaud Bouchez · 13:47 UTC · voir le commit sur GitHub →

25 Moyenne Les redirections GET ACME utilisent 301 au lieu de 308 TAcmeLetsEncryptServer.Redirect place GET avec HEAD dans la branche 301 Moved Permanently et conserve 308, qui préserve la méthode, pour les autres méthodes. Correctifs mormot.net.acme 9cd6ccba+5-4

net: fixed GET redirection on TAcmeLetsEncryptServer

Impact

Le trafic GET des navigateurs et ACME reçoit la redirection permanente conventionnelle. Le code applicatif Delphi/FPC ne change pas.

Arnaud Bouchez · 19:17 UTC · voir le commit sur GitHub →

26 Moyenne HTTP.sys conserve séparément les challenges d’authentification répétés HTTP_RESPONSE.AddCustomHeader traite WWW-Authenticate et Proxy-Authenticate comme Set-Cookie et Connection, en envoyant chaque occurrence via les unknown headers au lieu d’un unique slot connu. Correctifs mormot.lib.winhttp 37898a45+6-3

net: http.sys respWwwAuthenticate + respProxyAuthenticate multiple headers

Impact

Les réponses Windows HTTP.sys peuvent annoncer plusieurs schémas d’authentification sans perdre les valeurs suivantes. Aucun changement Delphi/FPC n’est requis.

À regarder

Arnaud Bouchez · 15:18 UTC · voir le commit sur GitHub →

27 Moyenne HTTP.sys préserve chaque en-tête Set-Cookie HTTP_RESPONSE.AddCustomHeader envoie respSetCookie dans le tableau des unknown headers afin de conserver les lignes Set-Cookie répétées au lieu de les écraser dans le champ connu unique. Correctifs mormot.lib.winhttp ed828cab+5-4

net: fixed several respSetCookie / Set-Cookie: values in http.sys

Impact

Les applications Windows HTTP.sys qui définissent plusieurs cookies dans une réponse les livrent désormais tous. Les autres backends serveur Delphi/FPC ne sont pas affectés.

Arnaud Bouchez · 14:38 UTC · voir le commit sur GitHub →

28 Moyenne Les attentes callback WebSocket suivent le délai de réception effectif THttpClientWebSockets s’initialise via DoCreate et SetReceiveTimeout affecte CallbackAnswerTimeOutMS depuis fReceiveTimeout après le setter inherited. Correctifs mormot.net.ws.client 881d1c4e+4-4

net: fixed THttpClientWebSockets with new timeouts

Impact

Les attentes callback WebSocket correspondent désormais au délai effectif après normalisation sur les clients Delphi et FPC.

À regarder

Arnaud Bouchez · 10:32 UTC · voir le commit sur GitHub →

29 Moyenne Les listes d’exclusion proxy survivent à la sérialisation THttpRequestExtendedOptions.Save ajoute ProxyByPass sous la clé pb et Load le restaure avec les champs proxy, authentification, TLS et délais existants. Correctifs mormot.net.client ac6bc5d6+5-2

net: fixed THttpRequestExtendedOptions.ProxyByPass serialization

Impact

Le code Delphi et FPC qui persiste les options HTTP ne perd plus sa liste bypass après rechargement. Les anciennes données restent lisibles sans la nouvelle clé.

À regarder

Arnaud Bouchez · 13:43 UTC · voir le commit sur GitHub →

30 Moyenne Les options HTTP étendues gagnent une liste d’exclusion proxy THttpRequestExtendedOptions ajoute ProxyByPass public et THttpRequest supprime le stockage dupliqué ; WinHTTP, WinINet et Curl lisent le proxy via le record d’options. Nouveautés mormot.net.client 2febb8e3+19-19

net: introducing THttpRequestExtendedOptions.ProxyBypass field

Impact

Les appelants Delphi/FPC utilisant le constructeur avec options peuvent fournir directement une liste native d’exclusion proxy. Les paramètres existants restent disponibles.

À regarder

API publique

  • THttpRequestExtendedOptions.ProxyByPassadded

Arnaud Bouchez · 11:02 UTC · voir le commit sur GitHub →

31 Moyenne Les uploads chunked HTTP.sys font croître leur buffer géométriquement Le chemin chunked stocke directement le premier bloc et agrandit InContent avec NextGrow avant de copier les blocs suivants, au lieu de réallouer la chaîne à chaque réception. Performance mormot.net.server c8d7648a+11-5

net: optimized memory allocation for http.sys #637 chunked input body

Impact

Les uploads chunked grands ou fragmentés sous Windows HTTP.sys allouent et copient moins de mémoire. Les interfaces applicatives Delphi et FPC ne changent pas.

Arnaud Bouchez · 17:54 UTC · PR #637 · voir le commit sur GitHub →

32 Moyenne Le helper ambigu des méthodes sans corps est déprécié HttpMethodWithNoBody est marqué deprecated ; sa documentation renvoie les décisions de réponse vers IsHead et impose le framing pour déterminer la présence d’un corps de requête. Obsolescences mormot.net.http a65a05fa+6-8

net: marked HttpMethodWithNoBody() as deprecated

Impact

Les appelants Delphi et FPC reçoivent un avertissement de dépréciation. Garder ce helper peut conserver l’hypothèse erronée qu’OPTIONS n’a pas de corps.

À regarder

API publique

  • HttpMethodWithNoBodydeprecated

Arnaud Bouchez · 15:10 UTC · voir le commit sur GitHub →

33 Moyenne Les clients REST HTTP adoptent le record de délais consolidé TRestHttpClientGeneric affecte les délais à fExtendedOptions et appelle ComputeTimeouts dans les constructeurs et le chargement des définitions ; les chaînes proxy restent RawUtf8 sans conversion ANSI. Sous le capot mormot.rest.http.client f54c3e10+17-37

rest: rewritten TRestHttpClient with latest changes

Impact

Les clients REST HTTP partagent les mêmes délais par défaut que les clients natifs et préservent le texte proxy non ASCII. La syntaxe publique Delphi/FPC ne change pas.

À regarder

Arnaud Bouchez · 10:35 UTC · voir le commit sur GitHub →

34 Moyenne Les clients REST HTTP stockent le proxy uniquement dans les options étendues TRestHttpClientRequest supprime les champs fProxyName et fProxyByPass dupliqués, sérialise les valeurs de fExtendedOptions et construit THttpRequest via la surcharge TUri plus options. Sous le capot mormot.rest.http.client bdfe38d5+16-14

rest: removed TRestHttpClientRequest fProxyName/fProxyPass fields

Impact

Les réglages proxy ont désormais une source unique dans les clients REST Delphi/FPC. Les constructeurs publics et définitions de connexion gardent leur surface.

À regarder

Arnaud Bouchez · 12:34 UTC · voir le commit sur GitHub →

35 Faible Les connexions async respectent la politique d’adresse loopback TAsyncConnection.Create et Recycle passent RemoteIPLocalHostAsVoidInServers à TNetAddr.IP au lieu de convertir systématiquement loopback en RemoteIP vide. Correctifs mormot.net.async+1 16543664+7-7

net: TAsynConnection follow RemoteIPLocalHostAsVoidInServers

Impact

Les serveurs async Delphi/FPC peuvent désormais rapporter 127.0.0.1 lorsque la politique globale vaut false, comme les serveurs synchrones. Aucune migration n’est requise.

Arnaud Bouchez · 14:11 UTC · voir le commit sur GitHub →

36 Faible Les tests couvrent désormais les prédicats concrets utilisés par HTTP test.core.base retire les assertions HttpMethodWithNoBody et ajoute des cas positifs et négatifs explicites pour IsGet, IsPost, IsPut, IsDelete, IsHead et IsOptions. Tests test.core.base a166d116+31-15

tests: remove HttpMethodWithNoBody() but use really used methods

Impact

Il s’agit uniquement de couverture de test pour le changement de sémantique ; ce commit seul ne modifie pas le code applicatif Delphi ou FPC.

Arnaud Bouchez · 15:12 UTC · voir le commit sur GitHub →

Activité upstream commits par jour · 60 derniers jours
Commits977
Jours actifs44/60
Plus chargé2026-09-30
Pic60
2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 26 commits2026-08-28: 11 commits2026-08-29: 10 commits2026-08-30: 1 commit2026-08-31: 23 commits2026-09-01: 0 commits2026-09-02: 20 commits2026-09-03: 29 commits2026-09-04: 35 commits2026-09-05: 13 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 23 commits2026-09-09: 10 commits2026-09-10: 17 commits2026-09-11: 23 commits2026-09-12: 14 commits2026-09-13: 9 commits2026-09-14: 7 commits2026-09-15: 4 commits2026-09-16: 24 commits2026-09-17: 26 commits2026-09-18: 21 commits2026-09-19: 59 commits2026-09-20: 13 commits2026-09-21: 5 commits2026-09-22: 34 commits2026-09-23: 17 commits2026-09-24: 57 commits2026-09-25: 22 commits2026-09-26: 26 commits2026-09-27: 0 commits2026-09-28: 2 commits2026-09-29: 19 commits2026-09-30: 60 commits2026-10-01: 26 commits2026-10-02: 30 commits2026-10-03: 32 commits2026-10-04: 15 commits2026-10-05: 1 commit2026-10-06: 26 commits2026-10-07: 37 commits2026-10-08: 27 commits2026-10-09: 35 commits2026-10-10: 33 commits2026-10-11: 9 commits2026-10-12: 11 commits2026-10-13: 35 commits
2026-08-152026-10-13