Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Ok, managed the SVN. Now what should I do for an IPv4 ICS client/server to upgrade to IPv6? I saw almost no documentation in the source. Can applications support both protocols with no modification or must one make a separate listening/target IP per v4 and v6? Regards, SZ On Wed, Nov 24, 2010 at 2:59 PM, Fastream Technologies ga...@fastream.comwrote: Arno, Thanks for the detailed explanation. SZ On Wed, Nov 24, 2010 at 2:03 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Hi Arno, On Tue, Nov 23, 2010 at 7:33 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Ok, somehow the packages got mixed and the defines were wrong. Anyway, can you try to compile the latest IPv6 package with NO_ADV_MT defined? It bombs in web server component! Thanks, it's fixed now and checked in. I have made a comparison in Tortoise SVN by selecting the download folder and right clicking but it did not show any changes for the Httpsrv.pas! I don't know what you are comparing. After an Update your local work copy already contains the change. Note that Update does not silently overwrite your own local changes, if there where conflicts TortoiseSVN prompts you to resolve them. If there are no conflicts changes are merged with your local copy, so you do not have to do a full checkout to get latest changes. The TortoiseSVN log view is the best place to compare versions. Right click the root checkout directory and select TortoisSVN | Show Log in order to see the history of everything. The last change is on top of the list. The bottom listview lists files changed with a single check-in, just double click a file entry there and TortouseSVN will download previous version or both and start your favorite differ. That also works with single files of your work copy, just right click a single file in Windows Explorer and select TortoisSVN | Show Log or simply TortoisSVN | Diff with previous version. If you made local changes just select TortoisSVN | Check for Modifications to get a list of all locally changed files or TortoisSVN | Diff for a single file. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: Ok, managed the SVN. Now what should I do for an IPv4 ICS client/server to upgrade to IPv6? I saw almost no documentation in the source. Can applications support both protocols with no modification or must one make a separate listening/target IP per v4 and v6? I added some experimental multi-listen stuff. See OverbyteIcsTcpSrv1IPv6 demo, especially TTcpSrvForm.WMAppStartup and TTcpSrvForm.WSocketServer1BeforeClientCreate. It works fine, however its design is not the best so will most likely change. For instance, a listening socket cannot be closed separately without closing all other listening sockets as well, or if one socket fails to listen in new method TcpMultiListen the already listening sockets are closed (and an exception is raised). -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Hello, On Thu, Nov 25, 2010 at 5:04 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Ok, managed the SVN. Now what should I do for an IPv4 ICS client/server to upgrade to IPv6? I saw almost no documentation in the source. Can applications support both protocols with no modification or must one make a separate listening/target IP per v4 and v6? I added some experimental multi-listen stuff. See OverbyteIcsTcpSrv1IPv6 demo, especially TTcpSrvForm.WMAppStartup and TTcpSrvForm.WSocketServer1BeforeClientCreate. It works fine, however its design is not the best so will most likely change. For instance, a listening socket cannot be closed separately without closing all other listening sockets as well, or if one socket fails to listen in new method TcpMultiListen the already listening sockets are closed (and an exception is raised). -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be As you said the below function and the design that is forcing it is not good. Perhaps we should have Addrv6 property which will be null if Addr (v4) is filled and vice versa. procedure TTcpSrvForm.WSocketServer1BeforeClientCreate(Sender: TObject; AListenSocketInfo: TListenSocketInfo; var AClientClass: TWSocketClientClass); begin { Use this event to get info about the listening socket accepted } { a connection. Optionally change the client class that will be } { created. } if AListenSocketInfo nil then begin { When listening with method TcpMultiListen AListenSocketInfo } { is assigned.} Display('BeforeClientCreate: Listening socket ' + AListenSocketInfo.FAddrStr + '/' + IntToStr(AListenSocketInfo.FPortNum)); end else begin { If method Listen was called AListenSocketInfo is unassigned } Display('BeforeClientCreate: Listening socket ' + TWSocketServer(Sender).Addr + '/' + IntToStr(TWSocketServer(Sender).PortNum)); end; end; SZ -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Hi Arno, On Tue, Nov 23, 2010 at 7:33 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Ok, somehow the packages got mixed and the defines were wrong. Anyway, can you try to compile the latest IPv6 package with NO_ADV_MT defined? It bombs in web server component! Thanks, it's fixed now and checked in. I have made a comparison in Tortoise SVN by selecting the download folder and right clicking but it did not show any changes for the Httpsrv.pas! Regards, SZ -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: Hi Arno, On Tue, Nov 23, 2010 at 7:33 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Ok, somehow the packages got mixed and the defines were wrong. Anyway, can you try to compile the latest IPv6 package with NO_ADV_MT defined? It bombs in web server component! Thanks, it's fixed now and checked in. I have made a comparison in Tortoise SVN by selecting the download folder and right clicking but it did not show any changes for the Httpsrv.pas! I don't know what you are comparing. After an Update your local work copy already contains the change. Note that Update does not silently overwrite your own local changes, if there where conflicts TortoiseSVN prompts you to resolve them. If there are no conflicts changes are merged with your local copy, so you do not have to do a full checkout to get latest changes. The TortoiseSVN log view is the best place to compare versions. Right click the root checkout directory and select TortoisSVN | Show Log in order to see the history of everything. The last change is on top of the list. The bottom listview lists files changed with a single check-in, just double click a file entry there and TortouseSVN will download previous version or both and start your favorite differ. That also works with single files of your work copy, just right click a single file in Windows Explorer and select TortoisSVN | Show Log or simply TortoisSVN | Diff with previous version. If you made local changes just select TortoisSVN | Check for Modifications to get a list of all locally changed files or TortoisSVN | Diff for a single file. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Arno, Thanks for the detailed explanation. SZ On Wed, Nov 24, 2010 at 2:03 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Hi Arno, On Tue, Nov 23, 2010 at 7:33 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Ok, somehow the packages got mixed and the defines were wrong. Anyway, can you try to compile the latest IPv6 package with NO_ADV_MT defined? It bombs in web server component! Thanks, it's fixed now and checked in. I have made a comparison in Tortoise SVN by selecting the download folder and right clicking but it did not show any changes for the Httpsrv.pas! I don't know what you are comparing. After an Update your local work copy already contains the change. Note that Update does not silently overwrite your own local changes, if there where conflicts TortoiseSVN prompts you to resolve them. If there are no conflicts changes are merged with your local copy, so you do not have to do a full checkout to get latest changes. The TortoiseSVN log view is the best place to compare versions. Right click the root checkout directory and select TortoisSVN | Show Log in order to see the history of everything. The last change is on top of the list. The bottom listview lists files changed with a single check-in, just double click a file entry there and TortouseSVN will download previous version or both and start your favorite differ. That also works with single files of your work copy, just right click a single file in Windows Explorer and select TortoisSVN | Show Log or simply TortoisSVN | Diff with previous version. If you made local changes just select TortoisSVN | Check for Modifications to get a list of all locally changed files or TortoisSVN | Diff for a single file. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: Ok, somehow the packages got mixed and the defines were wrong. Anyway, can you try to compile the latest IPv6 package with NO_ADV_MT defined? It bombs in web server component! Thanks, it's fixed now and checked in. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Dear Arno, Here is the first impression with the new IPv6 code. Package compile with our defines went well. However in the project, it gave the following error on Winsock2.hpp: http://www.fastream.com/ics/icsipv6error.png Hope you can help. Our unit httpmtsrv inherits from Overbyteicshttpsrv.pas. I do not think it includes the winsock2.pas directly. Regards, SZ On Mon, Nov 22, 2010 at 11:35 AM, Arno Garrels arno.garr...@gmx.de wrote: See subject. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Also, as I have asked before, can you make: procedure CheckDelaySetReady; { 09/26/08 ML } in httpprot.pas as virtual? Regards, SZ On Mon, Nov 22, 2010 at 1:20 PM, Fastream Technologies ga...@fastream.comwrote: Dear Arno, Here is the first impression with the new IPv6 code. Package compile with our defines went well. However in the project, it gave the following error on Winsock2.hpp: http://www.fastream.com/ics/icsipv6error.png Hope you can help. Our unit httpmtsrv inherits from Overbyteicshttpsrv.pas. I do not think it includes the winsock2.pas directly. Regards, SZ On Mon, Nov 22, 2010 at 11:35 AM, Arno Garrels arno.garr...@gmx.dewrote: See subject. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: Also, as I have asked before, can you make: procedure CheckDelaySetReady; { 09/26/08 ML } in httpprot.pas as virtual? Done in both trunk and IPv6. with our defines went well. However in the project, it gave the following error on Winsock2.hpp: http://www.fastream.com/ics/icsipv6error.png Is Winsock in uses clause of HttpMTSrv.pas? If yes, change it to OverbyteIcsWinsock. Do not include Winsock.h, Winsock.hpp but OverbyteIcsWinsock.hpp. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Ok that's passed now with what you suggested. I now get the below AV: http://www.fastream.com/ics/icsipv6error2.png This is the first listening web server socket, for the admin interface... Regards, SZ On Mon, Nov 22, 2010 at 2:40 PM, Arno Garrels arno.garr...@gmx.de wrote: Arno Garrels wrote: Fastream Technologies wrote: Also, as I have asked before, can you make: procedure CheckDelaySetReady; { 09/26/08 ML } in httpprot.pas as virtual? Done in both trunk and IPv6. with our defines went well. However in the project, it gave the following error on Winsock2.hpp: http://www.fastream.com/ics/icsipv6error.png Is Winsock in uses clause of HttpMTSrv.pas? If yes, change it to OverbyteIcsWinsock. Do not include Winsock.h, Winsock.hpp but OverbyteIcsWinsock.hpp. Or Winsock2.h -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: Ok that's passed now with what you suggested. I now get the below AV: http://www.fastream.com/ics/icsipv6error2.png This is the first listening web server socket, for the admin interface... This call stack makes no sense IMO. TCustomSocksWSocket.Create calls inherited Create{$IFDEF VCL}(AOwner){$ENDIF}; which is TCustomWSocket::Create And there is nothing in TCustomSocksWSocket's constructor that touched Classes::TList. New ICS, old question: Are you sure that no old stuff is linked? Check your paths again. The C++ Builder webserv demo, for example, builds and runs just fine. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Hi again Arno, Here is what I did: - renamed the old ICS folder to something like ICS IPv4 backup - checked out the code to a new folder with the old folder's name - copied the old BCB2010 package's project files over so that I would not have to re-enter all the defines - cleared the project files of both the package and the application project Still no joy! Any other ideas? Regards, SZ On Mon, Nov 22, 2010 at 4:52 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Ok that's passed now with what you suggested. I now get the below AV: http://www.fastream.com/ics/icsipv6error2.png This is the first listening web server socket, for the admin interface... This call stack makes no sense IMO. TCustomSocksWSocket.Create calls inherited Create{$IFDEF VCL}(AOwner){$ENDIF}; which is TCustomWSocket::Create And there is nothing in TCustomSocksWSocket's constructor that touched Classes::TList. New ICS, old question: Are you sure that no old stuff is linked? Check your paths again. The C++ Builder webserv demo, for example, builds and runs just fine. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: Hi again Arno, Here is what I did: - renamed the old ICS folder to something like ICS IPv4 backup - checked out the code to a new folder with the old folder's name - copied the old BCB2010 package's project files over so that I would not have to re-enter all the defines - cleared the project files of both the package and the application project Still no joy! Any other ideas? No, I still think it's a bad build. Rebuild the packages. Add the ics\delphi\vc32\ directory to project option's debug path, set a break point where you create the THttpServer object and step into the various calls to inherited create, there's obviously something wrong on your side. Also try to build the C++ Builder demo group project, all demos should build. Run the webserver and HttpTst demo both should run just fine. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Hello, On Mon, Nov 22, 2010 at 8:02 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: Hi again Arno, Here is what I did: - renamed the old ICS folder to something like ICS IPv4 backup - checked out the code to a new folder with the old folder's name - copied the old BCB2010 package's project files over so that I would not have to re-enter all the defines - cleared the project files of both the package and the application project Still no joy! Any other ideas? No, I still think it's a bad build. Rebuild the packages. Add the ics\delphi\vc32\ directory to project option's debug path, set a break point where you create the THttpServer object and step into the various calls to inherited create, there's obviously something wrong on your side. Also try to build the C++ Builder demo group project, all demos should build. Run the webserver and HttpTst demo both should run just fine. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be I have tried what you said but it still gives read of address . This is the problematic line: adminHTTPServer = new THttpServer(NULL); Maybe you call it with a non-null parameter in your tests? But this should also work because I need full control over when the instance is destructed! Regards, SZ -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Fastream Technologies wrote: I have tried what you said but it still gives read of address . This is the problematic line: adminHTTPServer = new THttpServer(NULL); I know :) Maybe you call it with a non-null parameter in your tests? But this should also work because I need full control over when the instance is destructed! It has nothing to do with that. Create a new VCL Forms application, drop a button on the form and try this (proper includes and defines provided): void __fastcall TForm1::Button1Click(TObject *Sender) { THttpServer * httpsrv; breakpoint here == httpsrv = new THttpServer(NULL); delete httpsrv; } (works for me) Start stepping into (F7) and I bet you'll notice some crazy jump somewhere :) -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] IPv6 branch updated with latest changes from trunk Rev. #631
Ok, somehow the packages got mixed and the defines were wrong. Anyway, can you try to compile the latest IPv6 package with NO_ADV_MT defined? It bombs in web server component! Regards, SZ On Mon, Nov 22, 2010 at 8:36 PM, Arno Garrels arno.garr...@gmx.de wrote: Fastream Technologies wrote: I have tried what you said but it still gives read of address . This is the problematic line: adminHTTPServer = new THttpServer(NULL); I know :) Maybe you call it with a non-null parameter in your tests? But this should also work because I need full control over when the instance is destructed! It has nothing to do with that. Create a new VCL Forms application, drop a button on the form and try this (proper includes and defines provided): void __fastcall TForm1::Button1Click(TObject *Sender) { THttpServer * httpsrv; breakpoint here == httpsrv = new THttpServer(NULL); delete httpsrv; } (works for me) Start stepping into (F7) and I bet you'll notice some crazy jump somewhere :) -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be