removed incorrect executable status from files
[lcore.git] / lcoretest.dpr
old mode 100755 (executable)
new mode 100644 (file)
index 9c4ec7c..bfba054
@@ -3,7 +3,7 @@ program lcoretest;
 uses\r
   lcore,\r
   lsocket,\r
-  {$ifdef win32}\r
+  {$ifdef mswindows}\r
     lcorewsaasyncselect in 'lcorewsaasyncselect.pas',\r
   {$else}\r
     lcoreselect,\r
@@ -11,8 +11,19 @@ uses
   dnsasync,\r
   binipstuff,\r
   sysutils,\r
-  dnssync;\r
-{$ifdef win32}\r
+  dnssync\r
+  //we don't actually make any use of the units below in this app, we just\r
+  //include it to check if it compiles ok ;)\r
+  {$ifndef mswindows}\r
+    ,\r
+    {$ifndef nomessages}\r
+      lmessages,\r
+      unitwindowobject,\r
+    {$endif}\r
+    unitfork\r
+  {$endif}\r
+  ;\r
+{$ifdef mswindows}\r
   {$R *.RES}\r
 {$endif}\r
 \r
@@ -26,12 +37,16 @@ type
     procedure dnsrequestdone(sender:tobject;error : word);\r
     procedure sessionclosed(sender:tobject;error : word);\r
   end;\r
+  treleasetest=class(tlcomponent)\r
+    destructor destroy; override;\r
+  end;\r
 var\r
   listensocket : tlsocket;\r
   serversocket : tlsocket;\r
   clientsocket : tlsocket;\r
   sc : tsc;\r
   task : tltask;\r
+  firststage : boolean;\r
 procedure tsc.sessionavailable(sender: tobject;error : word);\r
 begin\r
   writeln('received connection');\r
@@ -65,7 +80,7 @@ begin
   receivecount := receivecount +1;\r
   if receivecount >50 then begin\r
     writeln('received over 50 bits of data, pausing to let the operator take a look');\r
-    readln;\r
+    \r
     receivecount := 0;\r
   end;\r
   while pos(#10,receivebuf) > 0 do begin\r
@@ -82,10 +97,11 @@ end;
 \r
 procedure tsc.sessionconnected(sender: tobject;error : word);\r
 begin\r
+\r
   if error=0 then begin\r
     writeln('session is connected, local address is'+clientsocket.getxaddr);\r
 \r
-    if (clientsocket.addr = '127.0.0.1') or (clientsocket.addr = '::1') then begin\r
+    if firststage then begin\r
       clientsocket.sendstr('hello world');\r
     end else begin\r
       clientsocket.sendstr('nick test'#13#10'user x x x x'#13#10);\r
@@ -107,11 +123,12 @@ begin
   writeln('closing client socket');\r
   clientsocket.close;\r
 \r
-  writeln('looking up irc.ipv6.p10link.net using dnsasync');\r
+  writeln('looking up irc.p10link.net using dnsasync');\r
   das := tdnsasync.Create(nil);\r
   das.onrequestdone := sc.dnsrequestdone;\r
   //das.forwardfamily := af_inet6;\r
-  das.forwardlookup('irc.ipv6.p10link.net');\r
+  das.forwardlookup('irc.p10link.net');\r
+\r
 end;\r
 \r
 procedure tsc.dnsrequestdone(sender:tobject;error : word);\r
@@ -119,14 +136,15 @@ var
   tempbinip : tbinip;\r
   tempbiniplist : tbiniplist;\r
 begin\r
-  writeln('irc.ipv6.p10link.net resolved to '+das.dnsresult+' connecting client socket there');\r
+  writeln('irc.p10link.net resolved to '+das.dnsresult+' connecting client socket there');\r
   das.dnsresultbin(tempbinip);\r
   tempbiniplist := biniplist_new;\r
   biniplist_add(tempbiniplist,tempbinip);\r
   clientsocket.addr := tempbiniplist;\r
   clientsocket.port := '6667';\r
+  firststage := false;\r
   clientsocket.connect;\r
-  writeln(clientsocket.getxaddr);\r
+  //writeln(clientsocket.getxaddr);\r
   das.free;\r
 end;\r
 \r
@@ -134,6 +152,13 @@ procedure tsc.timehandler(sender:tobject);
 begin\r
   //writeln('got timer event');\r
 end;\r
+\r
+destructor treleasetest.destroy;\r
+begin\r
+  writeln('releasetest.destroy called');\r
+  inherited destroy;\r
+end;\r
+\r
 procedure tsc.sessionclosed(sender:tobject;error : word);\r
 begin\r
   Writeln('session closed with error ',error);\r
@@ -142,7 +167,13 @@ var
   timer : tltimer;\r
   ipbin : tbinip;\r
   dummy : integer;\r
+  iplist : tbiniplist;\r
+  releasetest : treleasetest;\r
 begin\r
+  lcoreinit;\r
+  releasetest := treleasetest.create(nil);\r
+  releasetest.release;\r
+  \r
   ipbin := forwardlookup('invalid.domain',5);\r
   writeln(ipbintostr(ipbin));\r
 \r
@@ -156,11 +187,12 @@ begin
   writeln('2001:200::8002:203:47ff:fea5:3085 reverses to '+reverselookup(ipbin,5));\r
   writeln('creating and setting up listen socket');\r
   listensocket := tlsocket.create(nil);\r
-  listensocket.addr := '::';\r
+  listensocket.addr := '';\r
   listensocket.port := '12345';\r
   listensocket.onsessionavailable := sc.sessionavailable;\r
   writeln('listening');\r
   listensocket.listen;\r
+  writeln('listen call returned');\r
   writeln(listensocket.getxport);\r
   writeln('listen socket is number ', listensocket.fdhandlein);\r
   writeln('creating and setting up server socket');\r
@@ -168,12 +200,19 @@ begin
   serversocket.ondataavailable := sc.dataavailable;\r
   writeln('creating and setting up client socket');\r
   clientsocket := tlsocket.create(nil);\r
-  clientsocket.addr := '::1';{'127.0.0.1';}\r
+  //try connecting to ::1 first and if that fails try 127.0.0.1\r
+  iplist := biniplist_new;\r
+  ipstrtobin('::1',ipbin);\r
+  biniplist_add(iplist,ipbin);\r
+  ipstrtobin('127.0.0.1',ipbin);\r
+  biniplist_add(iplist,ipbin);\r
+  clientsocket.addr := iplist;\r
   clientsocket.port := '12345';\r
   clientsocket.onsessionconnected := sc.sessionconnected;\r
   clientsocket.ondataAvailable := sc.dataavailable;\r
   clientsocket.onsessionclosed := sc.sessionclosed;\r
   writeln('connecting');\r
+  firststage := true;\r
   clientsocket.connect;\r
   writeln('client socket is number ',clientsocket.fdhandlein);\r
   writeln('creating and setting up timer');\r