-
Content Count
2047 -
Joined
-
Last visited
-
Days Won
38
Everything posted by Angus Robertson
-
TSslHttpRest - 429 (Too Many Requests) - resend request
Angus Robertson replied to Anxich's topic in ICS - Internet Component Suite
Not looked closely at your code, only got as far as sleep in an event handler which is very bad design. You are also recursively starting a new request from the event, which calls the event again... To use async functionality properly, you should use a timer and triggers. ICS provides such functions in OverbyteIcsUtils, ie IcsGetTrgSecs, IcsGetTrgMins, IcsTestTrgTick which are used in OverbyteIcsSslMultiWebServ1.pas as an example. You set a trigger in the event to how every many seconds you want to wait, then test it in a timer triggering once a second or slower, then start the next request. Angus -
Filling and submitting a form programmatically with ICS
Angus Robertson replied to Carlos Tré's topic in ICS - Internet Component Suite
Also use TSslHttpRest instead of TSslHttpCli since this avoids you needing to use an SslContext in your application, look at the OverbyteIcsHttpRest sample. Angus -
From that extra information, I assume the first POST attempt succeeded, you then had a time out due to a bad connection and it died., This goes back to what I said yesterday, Windows keeps trying to open a TCP connection and you can not stop it early with a timeout, only by freeing the socket and starting again with a new socket. This is nothing to do with threads, just standard TCP connections. And why we recommend using a array of several hundred dynamically created THttpCli components all using async methods running in parallel sharing the same events for testing lots of remote sites. No threads necessary. Angus
-
Sorry, no idea. When used correctly, THttpCli just works. You ned to add some logging to see what you are not sending for what responses you are receiving. Angus
-
TIdThread is not an ICS component, probably Indy, which may mean you have mixed two libraries. May or may not be relevant to your problem. The only benefit of using threads with ICS to download multiple URLs is where the host is unavailable and Windows waits up to 30 seconds attempting to connect, blocking other actions. Apart from that, ICS will do several hundreds downloads in parallel. The most important issue if you really need to use threads is to make sure the ICS message pump is called in a solid loop if using async methods. Angus
-
And Microsoft says Windows will ship with MsQuic in the kernel, https://techcommunity.microsoft.com/t5/networking-blog/msquic-is-open-source/ba-p/1345441 Angus
-
Clouldfare supports QUIC/HTTP/3 now, so it's not just Google and has published speed comparisons. https://blog.cloudflare.com/http-3-vs-http-2/ We don;t expect any problem updating ICS to support OpenSSL 3.0, but won't do it until the API is stable with the first beta release in a month or two. OpenSSL plans QUIC/HTTP/3 for the release after 3.0, six to 12 months away. Hard to know how hard it will be to implement in ICS, but we'll certainly have a go. Supporting LibreSSL in ICS is possible, the API interface library is designed to support different OpenSSL versions dynamically, the main issue is LibreSSL has 'improved' some of the OpenSSL APIs, many macros are now function calls instead (good thing), So quite a lot of effort required to support LibreSSL with no obvious improvements to end user applications,
-
OpenSSL plans to add QUIC but not until stardardisation is closer, Google has been pushing this for 10 years or so and no standard yet. https://www.openssl.org/blog/blog/2020/02/17/QUIC-and-OpenSSL/ Angus
-
Links to OpenSSL 1.0.2u Windows binaries are broken
Angus Robertson replied to Silmor Senedlen's topic in ICS - Internet Component Suite
Sorry about that, must have forgotten to upload the 1.0.2u files to the wiki server, done now. However both 1.0.2t files come up as downloadable, not tried doing so. Angus -
Delphi 10.3 Rio on Windows Server 2008 R2
Angus Robertson replied to Tallys's topic in Delphi IDE and APIs
Windows Server 2008 R2 (aka Windows 7) support ceased earlier this year. Windows Servers usually install very basic display drivers which is probably your problem. Angus -
OverbyteIcsWSocket.SslWSocketCopyRight does not exist
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
Those old files have gone from my local SVN and the zip list, easy to find errors when building project groups, but not things never in the group. But not in/out of the public SVN yet, lot of interconnected units still being tested. Angus- 3 replies
-
- bug
- non existing reference
-
(and 1 more)
Tagged with:
-
Memory leak in OverbyteIcsWSocket.pas
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
Thanks, I did see an exception recently rebuilding stacks of root certificates to check chains, the quick solution was to avoid rebuilding stacks (which was also more efficient), but this is probably the root cause, will fix it. Angus- 1 reply
-
- ics
- memory leak
-
(and 1 more)
Tagged with:
-
OverbyteIcsLIBEAY.pas f_X509_check_ip_asc() declaration mismatch
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
Thanks, will fix. Angus- 1 reply
-
- overbyteicslibeay.pas
- bug
-
(and 1 more)
Tagged with:
-
OverbyteIcsWSocket.SslWSocketCopyRight does not exist
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
That is an obsolete sample never updated for modern compilers and not in the project group, but the files are still there for some reason, but not for much longer. The current sample is OverbyteIcsSslWebServ,dpr. Angus- 3 replies
-
- bug
- non existing reference
-
(and 1 more)
Tagged with:
-
OverbyteIcsSSLEAY.pas f_SSL_set_msg_callback() declaration mismatch
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
Technically it's wrong, but the actual callback does not attempt to return anything, it's really just for logging. Angus -
OverbyteIcsSSLEAY.pas f_SSL_clear() declaration mismatch
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
Thanks, will fix but that function is never used by ICS. Angus -
OverbyteIcsSSLEAY.pas f_SSL_bytes_to_cipher_list() declaration mismatch
Angus Robertson replied to Ralf Junker's topic in ICS - Internet Component Suite
Thanks, that was added recently to SVN and is not yet used due to the warning 'not working yet ' will fix it. Angus -
Floating Point Overflow when retrieving a file using the ICS FTP Client
Angus Robertson replied to M-Brig's topic in VCL
Which specific FTP command causes the floating point error? Are you using a version of ICS from the last year? There have been issues in the distant past calculating the speed of downloads when they take zero seconds, but that is the only calculation that takes place. Angus -
Google Chrome is blocking the download of my application — HELP!!!
Angus Robertson replied to Steve Maughan's topic in General Help
As well as protecting the files from Google, it is good to see who is interested in my various components, mostly old since many are now incorporated into ICS. Always nice for open source authors to know people are interested in our components, usually people only email when something does not work, far fewer thank us for our work. People say Delphi is dying, but the number of people looking for (free) components suggests otherwise. Angus -
Google Chrome is blocking the download of my application — HELP!!!
Angus Robertson replied to Steve Maughan's topic in General Help
There are various protection alternatives, with varying annoyance levels, important issue is that Google can not scan the files. I support the concept of scanning, but not the blundering way Google does it without any human intervention possible for false positives, although it may have got better since I was targetted. Angus -
Google Chrome is blocking the download of my application — HELP!!!
Angus Robertson replied to Steve Maughan's topic in General Help
18 months ago Google decided a zip on my web site contained a nasty and placed the page on it's blacklist used by other browsers as well to stop the page being displayed, not quite the same blocking as you, but probably the same false detection. That page had about 30 zips, OpenSSL binaries, lots of Delphi source and a couple of EXE samples, Google never told me which file. The answer is to stop Google scanning your files so they can not find false nasties. robots.txt might work, but they can ignore that, my solution was to move all the files onto a password protected web page that Google can not access, and that has worked. It's a pain for users to request the password, but over 1,000 Delphi developers have done so already, hopefully not including anyone from Google. Angus -
Curl and ICS - reporting different Last-Modified date in header?
Angus Robertson replied to Colek's topic in ICS - Internet Component Suite
Both those screen shots are raw headers from the server, with no processing by ICS, so you have to believe what the server says. The difference might be caused by the two minute gap between the two requests or responses from different caching servers. Angus -
OpenSSL 1.1.1e Windows binaries available
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Updated OpenSSL Windows binaries to 1.1.1g, this fixes a severe security vulnerability (denial of service) checking certificates with TLS/1.3, however the API that does this is not used by ICS so our applications are not effected. https://www.openssl.org/news/secadv/20200421.txt Angus -
Attempting to implement DTLS with PSK
Angus Robertson replied to Martin Searancke's topic in ICS - Internet Component Suite
Your would simply add an extra line and condition in InitializeCtx after Meth := f_TLS_method; with Meth := f_DTLS_method; and set the versions later where TLS versions are set. But there are probably other changes needed, our code was never tested with DTLS, it is also asyc (no blocking) in operation whereas most other SSL implementations are blocking. Angus -
I integrated SuperObject into the ICS library two years ago since we support D7 to 10.3 with mostly the same code, I used v1.2 from https://github.com/hgourvest/superobject which is not the latest, later versions added time zone stuff which made it harder to stabilise and duplicated stuff we had already. With a few tweaks and new compiler version checks, it works fine on all those versions of Delphi. https://svn.overbyte.be/svn/ics/trunk/Source/OverbyteIcsSuperObject.pas Angus