Jump to content

Angus Robertson

Members
  • Content Count

    1881
  • Joined

  • Last visited

  • Days Won

    33

Everything posted by Angus Robertson

  1. Angus Robertson

    TNetHttpCLient trusted CA

    Using YuOpenSSL with ICS is easy, just uncomment {$DEFINE YuOpenSSL} in the OverbyteDefs.inc unit, add the path of the correct YuOpenSSL.dcu (single file) and rebuild the packages. I've done it several times this week testing new versions of our OpenSSL DLLs and the DCUs. You don't need any other YuOpenSSL units. Angus
  2. So this is just a private protocol, not really REST. Commonly, textual responses are followed by CRLF, that may be what the client is expecting. Angus
  3. REST client requests are usually sent using HTTPS, this should be obvious where the data you receive from the client contains HTTP headers, so you have to reply using HTTP, your Hi response will simply be ignored by the client. Ideally, you would be using the web server component, but creating a simple HTTP header and response HTTP page is only a few lines of code. Angus
  4. Angus Robertson

    TNetHttpCLient trusted CA

    YuOpenSSL operates identically to the SSLs in ICS, I've been using it as both Win32 and Win64 in my server and client applications for two years. But then I did adapt ICS to use YuOpenSSL. ICS also has full X509 certificate validation against CA stores I update every few months, including an internal store to avoid needing CA files, and checks OCSP for withdrawn certificates. Angus
  5. Angus Robertson

    SmtpCli - wrong Encoding?!

    That particular code segment is only used if you send a blank message, there are lots of lines just above it relating to setting FTransferEncoding to that specified in DefaultEncoding based on checking the actual text. So it's more likely you are not setting DefaultEncoding to smtpEnc8bit and Allow8Bit to true before sending email. Angus
  6. Angus Robertson

    Delphi 11.3 - Indy - OpenSSL 3.1

    OpenSSL 3.0 and 3.1 are reasonably compatible with 1.1.1 for TLS, although a number of older algorithms have moved to legacy.dll which has to be loaded if you need MD5 and such stuff. SSL_get_peer_certificate is now SSL_get1_peer_certificate, and there are some other similar changes with 0 or 1 to make clear whether memory should be freed. 3.0 also added providers instead of engines and deprecated a large number of functions with better versions, but they still work for now. Angus
  7. Angus Robertson

    ICS 8.70 VCLCB110 64 bits compile error

    Looks like a compiler funny, when the same error occurs in different random units. There are a lot of Win64 fixes in V8.71, mostly stability, but no C++ packages yet, about two weeks away. Angus
  8. Angus Robertson

    ICS 8.70 VCLCB110 64 bits compile error

    OverbyteIcsAvlTrees is unchanged for 10 years, not aware any C++ users have previously reported a problem with it. It is only used in two places in ICS, for an SSL session cache in user applications, very rarely, and for the TThreadLocalStore class in WSocket which I don't believe is used by any ICS units and is undocumented and uncommented as to use. Angus
  9. Yes, this is normal behaviour, better to have DataAvailable trigger too often than miss potential data. Sorry, can not tell you why it was designed that way 25 years ago... Angus
  10. Angus Robertson

    ICS 8.70 VCLCB110 64 bits compile error

    Sorry, I don't do C++ so someone else will need to reproduce and fix the error, ideally within the next two weeks for the next release. Angus
  11. Angus Robertson

    D11.3 CE VCL & FMX installation error

    The OAuth units were last updated in January, and I've rebuilt the packages dozens of times since, including today. Have you got the ICS source directory in your path? Or perhaps there is something strange about the new community edition. Angus
  12. Angus Robertson

    D11.3 CE VCL & FMX installation error

    You need to build the IcsCommonD110Run package, which includes OverbyteIcsTicks64, before the VCL/FMX packages. The 64s refer to Int64, not Win64. Angus
  13. Angus Robertson

    ICS under Delphi7

    I do test that new releases of ICS still build on Delphi 7, and it did last time several months ago. Not aware it's been broken since, but I will test it again next week. Delphi 2007 gets tested a lot more often. Meanwhile, just comment out anything that does not work, unless you need that feature. Angus
  14. Angus Robertson

    TWSocketServer stop accepting connections

    How often are new connections being opened? There is a ListenBacklog property that is supposed to limit the pending queue of unaccepted new connections, before windows rejects new connections. It defaults to 15 in new versions of ICS. I'd also suggest using a thread for long actions, the ICS FTP server does so for certain commands that take a while on massive files. There is also a threaded server component that uses one thread per client, but it's not been tested in several years. I'm planning a new threaded server component to allow use of multiple CPUs,. Angus
  15. I've explained the latest version in SVN will not build on C++, the packages are not complete. You would be better with V8.70. For a web server application, the MsSslUtils and wincrypt units are only needed to support Let's Encrypt certificates, so undefining AUTO_X509_CERTS in OverbyteIcsDefs.inc will avoid all those problems. Angus
  16. There are several points here. The HTTP server does not support OAuth2. The THttpServer component does not even handle SSL. That is TSSslHttpServer. OAuth2 in V8.70 does not support any embedded browsers, and does not use Edge. I've just searched the 560 files in the ics\packages directory, vcl.edge does not appear anywhere, vcledge does appear in packages for the next release only. So I've no idea why your installation requires vcl.edge. Angus
  17. The poster has yet to say which version of ICS he is trying to install. The latest V8.70 release does not access Edge or Web Browser so won't need them. The unreleased SVN and overnight zip version does use Edge, but only has packages for Delphi 2007, 10.4 and 11, nothing for C++ which might explain all the errors. It should be released later this month when the hundreds of package files for dozens of compilers will be updated. Angus
  18. ReceiveTB was added in V8.70 but is used by (I believe) only one other component, not the HTTP applications. What were you building when you got those errors. Although the error message you posted about does not say ReceiveTB but has a strange unicode character embedded. Angus
  19. No quick answer, you are using 10 year old C++ samples with the latest Delphi components. Try undefining AUTO_X509_CERTS, build the library and see if that is any better. Angus
  20. If you only use VCL, you don't need to build or install the common, vcl or fmx libraries, or use any units with fmx in the name. Try CBD101Install.groupproj instead which builds OverbyteIcsCBD101Run and OverbyteIcsCBD101Desgn. Currently there are no CBD packages for later versions of C++ because they have not been contributed by C++ users, but hopefully that will get fixed in May. Angus
  21. The ICS web server supports client certificates, but this scenario seems to be using an old SOAP server that does not support SSL/TLS. Angus
  22. Think there are two issues here: You are probably using an older ICS version that I am, there are a lot of OAuth changes in V8.71 including an embedded window so no browser needed, it is available in the overnight zip and many others are using it but won't be released until late May (and the Delphi 2010 packages are not done yet). There is one bug fix that might be effecting you. V8.71 has been tested by Delphi 2007 so should be okay on 2010. Also I don't really know what errors you are getting since you have not posted any proper logs, you can email them to me, but I'm not going to look closely unless they are from V8.71 and I can reproduce the error. Angus
  23. These are the pertinent arguments from my successful login this morning: &redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fmicrosoft%2F&state=ICS-232524578&scope=offline_access%20https%3A%2F%2Foutlook.office.com%2FSMTP.Send%20https%3A%2F%2Foutlook.office.com%2FPOP.AccessAsUser.All&prompt=select_account&access_type=offline You could try removing the URL and just use SMTP.Send. Angus
  24. You got a scope error, so that is the parameter to adjust until it works. Try a single scope without any spaces. The scopes need to match the settings in the Azure account, but you only need those for the current task. Angus
  25. Just signed into my live.com account ok, try using the scope: offline_access https://outlook.office.com/SMTP.Send https://outlook.office.com/POP.AccessAsUser.All Note no escaped spaces, they probably got double encoded. Angus
×