Timeline



Apr 29, 2014:

11:36 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by diegomainster@…
I created a video to demonstrate it on my web server when the browser closes the connection, the connection is closed, don't "stays open forever": https://www.youtube.com/watch?v=_s0KJGPtXgw
4:56 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by FixTCPRecvForNewVersionsPLEASE
Ran tests on a different operating system and it confirmed that TCPRcv still can not detect a client side closed web browser socket as older versions did. I tried the @error > 0 solution and still was unable to detect the client side closed web browser socket via @error 10054. Socket stays open forever even when the browser is closed. Something is off there and it is killing autoit3's ability to function efficiently as a web server. Even worse try mixing the two together as a script that can do web serving and accept persistent autoit3 client connections. Can be done but 3.3.8.1. will out speed any newer version scripts at the same time be more reliable. If you wish to continue thinking there is nothing wrong with TCPRecv then fine i'm ok with that. Future autoit3 users should be aware that scripting a web server with the newer versions wont be as effective. 3.3.8.1 will dominate over newer scripts with speed and rely ability. You might as well retire any thought of having a descent web servers using autoit3 for here on out if the issue is not resolved. Good luck.
10:03 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by FixTCPRecvForNewVersions
Sorry for junking things up, just wanted to let it be known that the extra TCP connections were obviously something my browser was doing and was able to fix it by turning off a setting. (Just never seen that before and was confusing me)... That issue has nothing to do with autoit3 and i'm sorry for bringing that up. If you need more insight on the @error for new versions then i'd have to make a video of exactly what i'm experiencing over here to show you, if the new repro script does not help at all. Thanks for your time.
8:01 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by FixTCPRecvForNewVersions
Sorry I was afraid you were going to close the ticket before I could finsih... Here is the reproduction script. Well here it is, hope it helps. Remember the only way to reproduce the error that I know of is two use un-install and re-install between 3.3.8.1 and 3.3.10.2 This also creates a junk file to quickly simulate outgoing requests. Hope that is ok. […]
7:51 AM Ticket #2699 (_ArrayAdd $hDataType not documented) closed by J-Paul Mesnage
Fixed: Fixed by revision [10084] in version: 3.3.11.5
7:43 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
Would you like to see my repro script?
7:42 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
Sorry it is not working fine, I have tested all day and it is still not as good as old versions…
7:41 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
Replying to diegomainster@…: > Hello, I created this ticket, once I started ignoring @error = -1, my server is running fine, I'm using version 3.3.10.2, created these 2 scripts to demonstrate how do I detect when the client or server closes the connection, it works for me: > > Server: http://pastebin.com/JPf3A8KE > Client: http://pastebin.com/irVGLpde Thank you for the examples. I'm glad that is working for you. This does not work for what i'm doing. The only difference I can tell here is that i'm not using a Autoit3 client side version to connect to the server. (Don't know why that matters.) Same problem, Autoit3 server can't tell when client web browser closes the socket where older versions could. I'm trying to get an example script working that will show case exactly what is happening between version 3.3.8.1 and the newer version 3.3.10.2 that will hopefully not make things even more confusing. This is what i have learned so far. Autoit3 v3.3.8.1 installed by using the setup download. Works as expected... Autoit3 v3.3.10.2 installed by using the setup download. @error -1 is different, and causes problems when detecting a web browser closed socket. > 0 @error does not help here for whatever reason. Installing the beta version.exe did not seem to help. HOWEVER. When using the beta version on 3.3.8.1 there does not seem to be the problem that genuine 3.3.10.2 installs seem to have.(This was very confusing to me when making the trouble shooting script because I was assuming that it would not work.) So unless you know a better way then I would recommend using the setup installers for switching between autoit3 versions. Uninstall-reinstall between 3.3.8.1 and 3.3.10.2 and then run the bellow repro script. HOWEVER! This too cause me problems! But I do not want to get into detail about it other than to warn you that when I was installing between versions that version 3.3.8.1 was acting out of character and I had to download a fresh copy of the 3.3.8.1 to correct it. (Was getting extra TCP connections to the server that sent no data but would eventually close) Before I was just swapping out exe files between beta and 3.3.8.1 when making this script, but the problem does not seem to start until you install the genuine 3.3.10.2 and then try swapping out with the beta version.
7:40 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by J-Paul Mesnage
Many thanks, Now I understand better (I think ?) If the connection is closed by the other side you received in 3.3.8.1 -1 now with my TCPConnect implementation you received 10054 which means connection reset by peer which is better as the @error less than 0 can set in other situation I Think you can agree that my TCPConnect() timeout solution is working fine as 3.3.8.1 Cheers Jpm

Apr 28, 2014:

9:40 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by diegomainster@…
Hello, I created this ticket, once I started ignoring @error = -1, my server is running fine, I'm using version 3.3.10.2, created these 2 scripts to demonstrate how do I detect when the client or server closes the connection, it works for me: Server: http://pastebin.com/JPf3A8KE Client: http://pastebin.com/irVGLpde
8:57 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by J-Paul Mesnage
The repro script was the one posted in the forum, no change in the logic. THe intend version does not intend to change any of previous except implemenation of the TCPConnect timeout. I am not a specialist of this net function. so please an update of the last post repro script so I can understand what should help. Perhaps you need 2 script one for the server and the other for the client. Thanks for your cooperation
5:21 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by FixTCPRecvForNewVersions
First time running the script get @error 10060 then counts @error -1 forever. All attempts after that show no errors. Only errors right after I switch .exe files from older to newer. Looks like this script is emulating a browser request. You probably already know this but just for the sake of clarity, this problem is most dominant when the script acts like a server and is trying to satisfy the client browser's request. When the request is satisfied the client normally closes the socket. This is where @error -1 was super handy in older versions of TCPRecv, allowing the server to acknowledge the closed socket on it's own end. Newer versions of TCPRecv seem to be vastly compromised because of the new @error levels. Also TCPStartup() never ever shuts down unless the server is deactivated (in my script). It looked like the repo script was constantly starting and stopping. (Don't know if that matters)
4:13 PM Ticket #2699 (_ArrayAdd $hDataType not documented) created by anonymous
no documentation to 6 parametr ($hDataType)
4:07 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by J-Paul Mesnage
Sorry, I forget to upload your repro script a liitle bit modified #2596 TCPRecv @error.au3 try with this new upload and you will see I think the TCPConnect() error
3:32 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by FixTCPRecvForNewVersions
Not exactly sure what i'm suppose to do with that. But this is what I did. Installed the beta version you have there, then ran the repro script and this is what it came out with. getting info -> @error = -3 @extended = 3
11:04 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by J-Paul Mesnage
If you use the repro script I uploaded does the error occured on the TCPConnect() not on the TCPRecv()?
10:00 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
If I understand what I'm reading then this code should work to detect client side closed sockets but my tests say that the beta still can't detect client side closed sockets. Downloaded the beta .exe from the link and updated my old exe. Problem returns just as I remember it. Sorry... I can't think of any other solutions but to revert back to the older version. This is what i'm using. […] Thank you for your time.

Apr 27, 2014:

6:26 PM Ticket #2698 (_ArrayAdd return wrong index) updated by anonymous
Thanks - fixed. M23
6:26 PM Ticket #2698 (_ArrayAdd return wrong index) updated by anonymous
Thanks - fixed. M23
6:25 PM Ticket #2698 (_ArrayAdd return wrong index) closed by Melba23
Fixed: Fixed by revision [10082] in version: 3.3.11.5
3:07 PM Ticket #2698 (_ArrayAdd return wrong index) created by anonymous
I help file for this functions said that Success: the index of last …

Apr 26, 2014:

9:27 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by J-Paul Mesnage
When I try to add the TCPConnect timeout I found that the @error set -1 for different case. SO I modify the @error to identify uniquely the error. In your case I main error come frome the fact that TCPConnect return timeout When the error occurs You can find an updated version of Autoit3.exe at http://www.autoitscript.com/autoit3/devs/jpm/#2384_UDPTCP_@error/ The .txt describe the change in @error Just play with and report any comments Thanks for your cooperation Jpm

Apr 25, 2014:

9:36 AM Ticket #2696 (StringRegExp* return non-participating groups) updated by jchd18
As a clue to help locate the failling logic, here's the demonstration that non-participating groups placed after all capturing groups don't cause the ghost capture bug. Only those appearing before or in between capturing groups trigger the issue. […]

Apr 24, 2014:

6:38 PM Ticket #2612 (Au3Check bugs on function reference when function takes byref parameter) closed by J-Paul Mesnage
Fixed: Fixed by revision [10077] in version: 3.3.11.5
6:04 PM Ticket #2612 (Au3Check bugs on function reference when function takes byref parameter) updated by jchd18
I made a note of that in my first post. I look at that solution as a temporary workaround.
3:36 PM Ticket #2612 (Au3Check bugs on function reference when function takes byref parameter) updated by J-Paul Mesnage
If You declare the function before no error …
3:35 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
Ignoring @error -1 does not make TCPRecv mimic v3.3.8.1. It is still less effective than the genuine TCPRecv version 3.3.8.1. (Can't detect client side closed sockets is the nasty issue) I've tested ignoreing -1 @errors and whatever errors are left can't detect closed client side sockets. This is very bad for servers that respond to web browser requests.
9:17 AM Ticket #2697 ("$GW_ENABLEDPOPUP = 6" is missing in "WinAPIConstants.au3") closed by J-Paul Mesnage
Fixed: Fixed by revision [10075] in version: 3.3.11.5

Apr 23, 2014:

11:38 PM Ticket #2697 ("$GW_ENABLEDPOPUP = 6" is missing in "WinAPIConstants.au3") created by Exit
MSDN specifies: GW_ENABLEDPOPUP = 6 The retrieved handle identifies …
10:40 PM Ticket #2696 (StringRegExp* return non-participating groups) updated by jchd18
BTW the same effect occurs with groups having repetition count {0} for instance: Pattern: […] Subject: […] In this case RegexBuddy clearly shows the non-participating groups when using full detail mode: Result: […]
10:12 PM Ticket #2696 (StringRegExp* return non-participating groups) created by jchd18
Non-participating groups appear as part of the result of our PCRE …

Apr 22, 2014:

2:47 AM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
TCPRecv is horribly degraded by new update version. Setting @ERROR for blank returns has no practical use as far as I can tell, and only harms the process. TCPRecv needs to be able to detect client side closed sockets as older versions of TCPRecv were able to do. Don't know why @error -1 is set for blank returns and if it needs to be that way then fine, (have no idea why), but please let there be some kind of error setting that can detect client side closed sockets. @error -1 for detecting client side closed sockets was invaluable to TCPRecv heavy scripts and I can not use newer versions of Autoit3 in those scripts because the older TCPRecv is many times over more efficient than the newer versions.

Apr 21, 2014:

11:49 AM Ticket #2695 (For ... in ... next loop modifying items) created by Matt Diesel
Would be cool to be able to modify items in a for each loop. …
10:38 AM Ticket #2612 (Au3Check bugs on function reference when function takes byref parameter) updated by guinness
[…]

Apr 18, 2014:

11:24 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by anonymous
Is it possible to revert this behavior back to the v3.3.8.1 state? It was useful in detecting a closed socket on the other end. Thank you.

Apr 17, 2014:

5:00 PM Ticket #2692 (Clear up the AutoIt3Wrapper Directives's documentation) updated by TicketCleanup
Version changed
Automatic ticket cleanup.
4:23 PM Ticket #2692 (Clear up the AutoIt3Wrapper Directives's documentation) closed by BrewManNH
Rejected: The current version of the help file already has that text clarified. This is why we don't usually recommend putting in requests for versions prior to the current version or beta versions.
12:46 PM Ticket #2693 (_GUICtrlListView_GetItemTextArray - Return Value - proposal) closed by J-Paul Mesnage
Fixed: Fixed by revision [10063] in version: 3.3.11.5
2:02 AM Ticket #2694 (AutoitX3_x64.dll not working for ControlListView and ControlTreeView ...) created by lee.deboom@…
Have tried with both 3.3.8.1 and current version 3.3.10.2 Running …

Apr 16, 2014:

10:11 AM Ticket #2693 (_GUICtrlListView_GetItemTextArray - Return Value - proposal) created by anonymous
in Return Value section now there is: […] description is not …
7:40 AM Ticket #2692 (Clear up the AutoIt3Wrapper Directives's documentation) created by lwc
Run Before And After Directives The following directives can …

Apr 9, 2014:

12:40 AM Ticket #2580 (Aut2Exe failing to run multiple times on Windows XP prior to SP3) updated by anonymous
Delay 25"

Apr 8, 2014:

8:48 AM Ticket #2688 (StringToBinary + ConsoleWrite) updated by jchd18
> Consolewrite by itself does not convert any variable Yes it does! Or rather: there is no consistency at all in the way various variants "print" themselves thru the method invoked by ConsoleWrite: * all strings are "converted" (i.e. emasculated) to ANSI, which is terribly wrong for a program claiming to be Unicode-aware. UTF-8 should be the default here. * integers, doubles, some keywords (True, False, Default) and pointers are consolewritten as strings, * Null and functions consolewrite nothing at all, * Binary spills verbatim. […]

Apr 7, 2014:

2:21 PM Milestone 3.3.11.4 completed

Apr 1, 2014:

9:03 PM Ticket #2596 (TCPRecv not returning data, and setting @error to -1) updated by musiqueGraeme
I have found the same problem with UDPRecv returning the error -1 when empty. I have set the error handling to ignore error=-1.
8:33 AM Ticket #2690 (Win..... Return Value Proposal.) updated by J-Paul Mesnage
Summary changed

Mar 31, 2014:

8:36 AM Ticket #1935 (_IEBodyReadText with IE9 failed) updated by J-Paul Mesnage
Finally I found how to have it working disabling the Protected Mode on Internet security zone. Look a little strange that local file follow the same rule as the Internet ones but why not
8:35 AM Ticket #1938 (_IEQuit IE9) updated by J-Paul Mesnage
Finally I found how to have it working disabling the Protected Mode on Internet security zone. Look a little strange that local file follow the same rule as the Internet ones but why not

Mar 29, 2014:

4:11 AM Ticket #2691 (Bitshift is returning incorect results) updated by jchd18
Incorrect reading of the help file. "Bit operations are performed as 32-bit integers" 3442917988 is in fact the 32-bit integer -852049308.
Note: See TracTimeline for information about the timeline view.