-
Content Count
2010 -
Joined
-
Last visited
-
Days Won
36
Everything posted by Angus Robertson
-
[patch] Samples: change unsafe Integer(Pointer) typecasts to W/LPARAM
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Your Win64 fixes are now in SVN thanks, with a couple more that you missed because they were LongInt. Fortunately most PostMessages already casted pointers correctly, just these older samples. Angus -
ICS V8.66 announced
Angus Robertson replied to Angus Robertson's topic in ICS - Internet Component Suite
Sorry, your redirection problem needs actual testing and not had time in the last two weeks for anything new. Angus -
Twsocket udp how to get the exact buffersize that received ? ?
Angus Robertson replied to Skullcode's topic in VCL
I agree that UDP should send whole packets, but when they arrive two or more may be buffered before they are read in the DataAvailable event. Also, they may not be sent as complete packets, for instance a record may be sent in one send/packet then a CRLF as the next send/packet, so if the application is waiting for that CRLF as a record separator, it needs two packets. So best to treat UDP as a stream. Angus -
Twsocket udp how to get the exact buffersize that received ? ?
Angus Robertson replied to Skullcode's topic in VCL
The most important issue about the DataAvailable event is not the size of your Receive/ReceiveFrom buffer, but that you should loop within the event continually reading all waiting data into a larger public receive buffer or stream until Receive/ReceiveFrom returns 0 or less. If you don't do that, the event will be called again immediately you exit it to empty the internal receive buffers. There is no guarantee about the length of data any call to Receive/ReceiveFrom will return even for UDP, it might take several events for a full packet to be assembled, rarely, but it can happen. As I said before, all this is done for you in the OverbyteIcsIpStreamLog component . Angus -
[patch] Samples: change unsafe Integer(Pointer) typecasts to W/LPARAM
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Your patches don't work on my working copy, I look for changes manually. The samples were never designed or tested to build on Win64, only the components, although we do test the actively supported samples periodically. Angus -
Twsocket udp how to get the exact buffersize that received ? ?
Angus Robertson replied to Skullcode's topic in VCL
You can use the OverbyteIcsUdpLstn sample to see how to receive UDP data. Your won't have megabytes of data waiting when that event is called, in fact you will never know how much UDP data is being sent since it only arrives one packet at a time. So typically you use ReceiveFrom to receive a maximum of say 4K, and then add that to a large receive buffer. Much easier to use the new OverbyteIcsIpStreamLog component which does all this for you, look at the OverbyteIcsIpStmLogTst sample. Angus -
Bug in OverbyteIcsHttpAsy1
Angus Robertson replied to Kyle_Katarn31's topic in ICS - Internet Component Suite
Some of these old samples do illustrate programming techniques or features that the SSL samples don't, and it takes effort to remove old things... Angus -
Bug in OverbyteIcsHttpAsy1
Angus Robertson replied to Kyle_Katarn31's topic in ICS - Internet Component Suite
That is a very old sample that does not support SSL/TLS. The current active HTTPS client samples are OverbyteIcsHttpsTst.dpr and OverbyteIcsHttpRestTst.dpr in the sslinternet directory. Angus -
SetURL & SetProxyURL helper methods for TWSocket
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
The proxy setters changes are now in SVN, with an updated OverbyteIcsSocksTst sample that now also tests HTTP Tunnelling, which we did not seem to do. Will be zipped overnight. I tested the HTTP Tunnelling changes against the ICS proxy server, which currently deliberately only tunnels HTTP, need to fix that, but have not tested socks since 7Proxy failed my 10 minutes to find out how to configure it limit, sure it works fine once you find some non-empty help files. Angus -
OverbyteIcsTicks64 missing include file
Angus Robertson replied to EugeneK's topic in ICS - Internet Component Suite
I added OverbyteIcsDefs.inc last week, not in SVN yet, other stuff pending. But OverbyteIcsTicks64 has always compiled okay, it is in the IcsCommonDxx package which is built weekly, so your problem must be something else. Angus -
SetURL & SetProxyURL helper methods for TWSocket
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
I've added SetSocks and SetHTTPTunnel to TCustomSocksWSocket, with a new ProxyURL property. Not in SVN yet. I can test HTTP Tunnelling through the ICS Proxy Server I have running on my public servers, but can not find any samples that use it. We do have OverbyteIcsSocksTst, but I don't currently have a SOCKS server running. Less sure about SetURL() which only sets the wsocket host and port, is that really worthwhile? Angus -
GetAsync in other Thread
Angus Robertson replied to y2nd66's topic in ICS - Internet Component Suite
You need a message handler in the thread execute loop, to handle all the events, these lines are from TMailQuThread.Execute; in OverbyteIcsMailQueue.pas. FIcsWndControl.ProcessMessages ; if FIcsWndControl.Terminated then break ; if NOT FActive then break ; // component if Terminated then break ; // thread if (errorcounter > 10000) then break ; // sanity check Angus -
8.66 installation for D2007 problems
Angus Robertson replied to Nigel Thomas's topic in ICS - Internet Component Suite
Thanks, seems my local version of the D2007 package with VCLZip has slipped into SVN, will fix that shortly. Always hate updating ICS packages, over 100 units to modify. Angus -
[patch] Add TCustomHttpTunnelWSocket.HttpTunnelState - RO property for accessing by descendants
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Next week... Angus -
SetURL & SetProxyURL helper methods for TWSocket
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Url is not a large unit and probably linked into most applications anyway, except the simplest, so it can happen. I've also just saved a lot of space by removing a lot of legacy OpenSSL support code. Angus -
SetURL & SetProxyURL helper methods for TWSocket
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Thanks, will have a look next week. BTW, your last proxy fix is in SVN now, seems I broke it adding international domain name support. Angus -
8.66 installation for D2007 problems
Angus Robertson replied to Nigel Thomas's topic in ICS - Internet Component Suite
ICS is maintained using Delphi 2007, so is the best tested platform, provided I put the correct files in SVN. VCLZlip is controlled by OverbyteVclZip.inc, and the version in my SVN has {.DEFINE Zipping}. TIcsTwitter, etc were added six months ago to OverbyteIcsSslHttpRest.pas, so you probably have an old version somewhere. Angus -
OverbyteIcsTicks64 missing include file
Angus Robertson replied to EugeneK's topic in ICS - Internet Component Suite
That unit does not have the definitions include, but does not use any of them either, and seems to compile fine in all the packages Angus -
Fixes to allow HTTP & socks proxy servers to have non-IP address
Angus Robertson replied to Fr0sT.Brutal's topic in ICS - Internet Component Suite
Thanks, will apply shortly. Don't often look at socks or tunnels. Angus -
Read out signed executable certificate possible?
Angus Robertson replied to KodeZwerg's topic in Windows API
I have a component that checks signing certificates: https://www.magsys.co.uk/delphi/magtrustchk.asp Angus -
ICS 8.65 design installation failed
Angus Robertson replied to Development's topic in ICS - Internet Component Suite
Also ensure the ICS source directory is in the path, and the path is set for the correct language and target. Angus -
ICS 8.65 design installation failed
Angus Robertson replied to Development's topic in ICS - Internet Component Suite
Don't read French, so no idea what error. But quite common to get a false error saying can not install, but they are installed okay next time you start RAD Studio. Angus -
Max string literal length = 255
Angus Robertson replied to Lars Fosdal's topic in RTL and Delphi Object Pascal
Agreed. annoying when creating SSL certificates as literals to embed in an application. Angus -
Cannot Transfer Higher values like Chr(65470)
Angus Robertson replied to AllanF's topic in ICS - Internet Component Suite
Sockets stream single bytes, so each end needs to agree on whether single or double byte characters are being sent, and handle them the same way. It is relatively unusual to send two byte characters over the internet, due to most western languages having a lot of one byte Unicode characters. So generally conversion to UTF-8 is more efficient. To avoid Delphi doing it's own code page conversions it is better to use TBytes to send and receive data, then functions IcsMoveStrinngToTbytes and IcsMoveTBytesToString with your desired CodePage. Angus -
Is TSslContext yet required with TSslWSocket (Client side)
Angus Robertson replied to AllanF's topic in ICS - Internet Component Suite
No, TSslWSocket still needs an TSslContext, although you don't usually need to change any defaults unless you want to restrict protocols. However, you can use the high level component TIcsIpStrmLog in client mode to send and receive simple data, and that does not need an TSslContext. It's sample OverbyteIcsIpStmLogTst.dpr can be set to client or server mode, or local when it does both and send lines of data to itself. In server mode it is configured using IcsHosts so it might be a quick swap. Angus