Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Feb 19 23:54
    rlebeau edited #287
  • Feb 19 23:53
    rlebeau edited #287
  • Feb 19 23:39
    rlebeau labeled #287
  • Feb 19 23:39
    rlebeau labeled #287
  • Feb 19 23:39
    rlebeau assigned #287
  • Feb 19 23:39
    rlebeau opened #287
  • Feb 19 18:01

    rlebeau on master

    some duplicates remove AND some… (compare)

  • Feb 19 18:01
    rlebeau closed #286
  • Feb 19 02:13
    nanashisutesoute opened #286
  • Feb 17 08:25
    Athris closed #285
  • Feb 15 01:00

    rlebeau on master

    Fixing a typo in IdCTypes.pas (compare)

  • Feb 15 00:46

    rlebeau on master

    Move tweaks for IdCTypes.pas (compare)

  • Feb 14 23:58

    rlebeau on master

    Adding {$WARN SYMBOL_PLATFORM O… (compare)

  • Feb 14 23:51
    rlebeau commented #285
  • Feb 14 23:50

    rlebeau on master

    Adding .dproj files for Delphi … (compare)

  • Feb 14 20:27

    rlebeau on master

    Fix for compiler error in TIdSt… (compare)

  • Feb 14 19:03

    rlebeau on master

    Minor formatting tweaks to IdCT… (compare)

  • Feb 14 18:50

    rlebeau on master

    Add alias for C size_t type and… (compare)

  • Feb 14 18:50
    rlebeau closed #282
  • Feb 14 18:44
    rlebeau labeled #285
Remy Lebeau
@rlebeau
my OSX VMs are too old. Creating an IPv6 network was added in El Capitan, but my VMs are Mountain Lion and Mavericks, which don't have the option.
davidpn
@davidpn
fair enough.. like I say, I'll look into it; more than likely before the end of the weekend. It has risen high on my to-do list
Wil32
@Wil32
i have a el capitan vm. you a wireless adapter to make the whole thing work. just follow apple's doc.
davidpn
@davidpn
I know how to make a IPv6 only network.. it's making TIdHTTP work with it that is the problem
I didn't get far over the weekend with diagnosing the problem, however my initial guess is that it simply doesn't switch to IPv6 if IPv4 doesn't work (or cannot detect IPv6 only)
Remy Lebeau
@rlebeau
Indy does not switch automatically, you have to tell it which IP version to use ahead of time. By default, everything it does uses IPv4 unless told otherwise. In IdCompilerDefines.inc, you can set the default to IPv6 instead (that is what Embarcadero did for their iOS bundled version of Indy). Alternatively, you would have to manually detect the network IP version and then configure Indy accordingly at runtime when making connections.
Since you mention TIdHTTP, I suspect it is treating your URLs as IPv4 unconditionally. For IPv6, you have to wrap hostnames in brackets, eg: http://[hostname]:port/resource. If you get an HTTP redirect to a different hostname, that might switch back to IPv4. I will have to check that.
davidpn
@davidpn
we also don't want to have to wrap all URLs
"Alternatively, you would have to manually detect the network IP version and then configure Indy accordingly at runtime when making connections" I had been attempting to work out how to do that..
I tested on the weekend with the Indy that is bundled with Delphi.. it doesn't default to IPv6
i.e. Delphi 10.1 Berlin
Remy Lebeau
@rlebeau
I know for a fact that Embarcadero's bundled version of Indy defaults to IPv6 on iOS, because I remember finding that Embarcadero had made that change without telling me when they shipped it. But either way, TIdHTTP is a special case because of the way it handles URLs internally, so it is probably ignoring any preexisting IP settings. I will have to double check that when I have some time. Other Indy components don't suffer from the issue since they don't handle URLs directly
davidpn
@davidpn
ok.. it makes sense if TIdHTTP behaves differently
I'll be looking further into it tonight (melbourne time)
davidpn
@davidpn
Look at lines 15 and 16 of IdCompilerDefines.inc in Delphi 10.1 Berlin Update 1, Indy10 source
Remy Lebeau
@rlebeau
I don't have Berlin installed yet. Been trying to, keep running into problems with it.
davidpn
@davidpn
can you then explain: "I remember finding that Embarcadero had made that change without telling me when they shipped it"?
Remy Lebeau
@rlebeau
Exactly what I said. They made changes to Indy (in this case, enabling IPv6 by default on iOS), shipped the change in a new IDE release (causing some DFM breakages in the process), and didn't tell me they had made the change, I found out later when problem reports started coming in. It is not the first time Embarcadero made changes to Indy and didn't tell me, though they are usually pretty good about sending patches to me instead so I can review them first. Looking back over my discussions with them, the IPv6 change was made during the 10.1 Berlin beta testing, so it might have been pulled out before the final release. They might be using the IPVersion property in their own code instead.
davidpn
@davidpn
ah, ok..
delphiunderground
@delphiunderground
Hi Remy, I need some BIO functions for this code : https://github.com/delphiunderground/eid-mw-sdk-delphi/blob/master/utils.pas
thank in advance
Remy Lebeau
@rlebeau
@delphiunderground committed
Ludwig Behm
@lbehm
Can someone explain me why TIdHTTPWebBrokerBridge wants to create a WebModul instance for each WebRequest? (or why Embarcadero wants multiple instances - I know WebReq can reuse them)
Are they not threadsafe or does Embarcadero just expects from the normal dev, that they implement them in an not-threadsafe manner?
From a performace point of view: Would you recommend to skip TIdHTTPWebBrokerBridge and handle Requests from OnCommandGet to a simplified TCustomWebDispatcher instance? In the end I want to serve multiple WebDispatcher. (REST, FileDispatcher)
Maicon Martins
@MRMartins666_twitter
good personal day, someone help me with a question about an SFTP connection using Indy 10?
good morning*
Maicon Martins
@MRMartins666_twitter
the connection is completed, however I can not access the folders
Failed to change directory.
Maicon Martins
@MRMartins666_twitter
using Delphi 2010
Walter Prins
@ByteJuggler
Hellooo!!!! Anybody home? :)
Walter Prins
@ByteJuggler
We've finally got around to upgrading from Seattle to Berlin 10.1 Update 1, however I'm getting strange problems with TIdHTTP on 10.1 against a particular web service. Code which worked fine on Seattle (and for many versions prior) is getting HTTP 403 rejections from a Squid NTLMSSPI proxy server. The same code and proxy server works with Seattle and succeeds with HTTP 200. Any suggestions? Unfortunately putting together a SSCCE for this may be challenging due to the involvement of the proxy server which may or may not be contributing in some way to the issue, as well as the particular web service being called. But again: The exact same code works fine via the same proxy server when compiled with Seattle, which suggests something has changed in 10.1 Berlin to cause this...
Remy Lebeau
@rlebeau
@devimplode I have no idea how WebBroker works or why it manages its objects the way it does.
@MRMartins666_twitter Indy does not support SFTP (FTP over SSH), but it does support FTPS (FTP over SSL). If you are sucessfully connected to an FTP(S) server and simply getting an error with the TIdFTP.ChangeDir() method, chances are your logged in user account does not have access to the folder you are trying to change to.
@ByteJuggler I am not aware of any changes in TIdHTTP between Seattle and Berlin that would account for what you are seeing. You are going to have to debug your code to see what is actually happening. For starters, I would suggest using a packet sniffer like Wireshark, or at least attach a TIdLog... component to TIdHTTP, to see if there are any differences between the HTTP requests that Seattle sends vs the HTTP requests that Berlin sends.
Walter Prins
@ByteJuggler
@rlebeau OK thanks I'll try TIdLog and perhaps try wireshark if need be... thanks for the response.
Ludwig Behm
@lbehm
thanks @rlebeau, I will just test it further... it's funny how the "performance" related blog posts I found yet, completely ignore how Indy and the WebBroker internals work...
Walter Prins
@ByteJuggler
@rlebeau It seems it's HTTPS related. I installed wireshark and changed the protocol to http to enable easy capture. Surprisingly the Berlin build then worked, and I confirmed that the underlying requests made by Berlin and Seattle were byte identical (over http, sans the obvious things like cookie values and datetimes and whatnot) by capturing the conversation and comparing/diffing. I've never stripped SSL with wireshark so now it's going to be trying to figure out why using https with Seattle works but using https with Berlin Indy does not. (Was there any SSL related changes between Seattle and Berlin?)
Walter Prins
@ByteJuggler
Actually, scratch that byte identical comment (i.r.o HTTP), not quite accurate. There are 1 difference perhaps worth noting -- The Seattle request has "Accept-Encoding: identity" which the Berlin is lacking... not sure what that does/means or whether it's relevant, but it's a difference.
Walter Prins
@ByteJuggler
@rlebeau Ok, I've dove into the source code to track down where the (lack of) Accept-Encoding: identity difference comes from. -- Change by yourself on 1/1/2015 ;) I then patched the code and put it back to test -- this (perhaps as expected) did not make any difference. The wireshark traces now are pretty much identical in respect of the underlying requests... :( Moving on...
Walter Prins
@ByteJuggler
@rlebeau For reference, here's log output (TIdLogFile assigned as Interceptor) for Seattle and Berlin The error message is basically: "HTTP hostname and TLS SNI hostname mismatch" with description: "The request's Host header does not match the request's TLS SNI Host header." Any ideas why this might be different between Seattle and Berlin?
Alain Abrahan
@clust3rsekt0r
Hi
Alain Abrahan
@clust3rsekt0r
I'm having a big problem with indy delphi library and windows 10 latest release
I can not have a succesful tls or ssl connection
Alain Abrahan
@clust3rsekt0r
The exception that I always get is Connection Closed Gratefully
Kudzu
@czhower
Read the FAQ.
Alain Abrahan
@clust3rsekt0r
can you provide me a link I read a lot of forums but I can not find anything relate it
all I know is the reason of the exception
Kudzu
@czhower
If you even simplyi google it, the answer will literlaly smack you in the head.
Or if you simply look at the comment immediatelyi above where teh exception is raised in the code. The one with the dozens of !!!!
Remy Lebeau
@rlebeau
@ByteJuggler If you use TIdLog instead of Wireshark, you can log HTTPS requests before they are encrypted and HTTPS responses after they are decrypted.