X-Git-Url: http://www.lcore.org/git/lcore.git/blobdiff_plain/d53fe26eaac895d1e7a0ba2b2b8965cf77932de8..68ac8381cae336dda0cd718dd6fa43b677f5ef8d:/lcoretest.dpr?ds=sidebyside

diff --git a/lcoretest.dpr b/lcoretest.dpr
index 3770b19..3c4277d 100755
--- a/lcoretest.dpr
+++ b/lcoretest.dpr
@@ -11,7 +11,15 @@ uses
   dnsasync,
   binipstuff,
   sysutils,
-  dnssync;
+  dnssync
+  //we don't actually make any use of the units below in this app, we just
+  //include it to check if it compiles ok ;)
+  {$ifndef win32}
+    ,
+    lmessages,
+    unitfork
+  {$endif}
+  ;
 {$ifdef win32}
   {$R *.RES}
 {$endif}
@@ -32,6 +40,7 @@ var
   clientsocket : tlsocket;
   sc : tsc;
   task : tltask;
+  firststage : boolean;
 procedure tsc.sessionavailable(sender: tobject;error : word);
 begin
   writeln('received connection');
@@ -82,11 +91,11 @@ end;
 
 procedure tsc.sessionconnected(sender: tobject;error : word);
 begin
-  
+
   if error=0 then begin
     writeln('session is connected, local address is'+clientsocket.getxaddr);
 
-    if (clientsocket.addr = '127.0.0.1') or (clientsocket.addr = '::1') then begin
+    if firststage then begin
       clientsocket.sendstr('hello world');
     end else begin
       clientsocket.sendstr('nick test'#13#10'user x x x x'#13#10);
@@ -108,12 +117,12 @@ begin
   writeln('closing client socket');
   clientsocket.close;
 
-  writeln('looking up irc.ipv6.p10link.net using dnsasync');
+  writeln('looking up irc.p10link.net using dnsasync');
   das := tdnsasync.Create(nil);
   das.onrequestdone := sc.dnsrequestdone;
   //das.forwardfamily := af_inet6;
-  das.forwardlookup('irc.ipv6.p10link.net');
-  
+  das.forwardlookup('irc.p10link.net');
+
 end;
 
 procedure tsc.dnsrequestdone(sender:tobject;error : word);
@@ -121,12 +130,13 @@ var
   tempbinip : tbinip;
   tempbiniplist : tbiniplist;
 begin
-  writeln('irc.ipv6.p10link.net resolved to '+das.dnsresult+' connecting client socket there');
+  writeln('irc.p10link.net resolved to '+das.dnsresult+' connecting client socket there');
   das.dnsresultbin(tempbinip);
   tempbiniplist := biniplist_new;
   biniplist_add(tempbiniplist,tempbinip);
   clientsocket.addr := tempbiniplist;
   clientsocket.port := '6667';
+  firststage := false;
   clientsocket.connect;
   //writeln(clientsocket.getxaddr);
   das.free;
@@ -144,7 +154,9 @@ var
   timer : tltimer;
   ipbin : tbinip;
   dummy : integer;
+  iplist : tbiniplist;
 begin
+  lcoreinit;
   ipbin := forwardlookup('invalid.domain',5);
   writeln(ipbintostr(ipbin));
 
@@ -158,7 +170,7 @@ begin
   writeln('2001:200::8002:203:47ff:fea5:3085 reverses to '+reverselookup(ipbin,5));
   writeln('creating and setting up listen socket');
   listensocket := tlsocket.create(nil);
-  listensocket.addr := '::';
+  listensocket.addr := '';
   listensocket.port := '12345';
   listensocket.onsessionavailable := sc.sessionavailable;
   writeln('listening');
@@ -170,12 +182,19 @@ begin
   serversocket.ondataavailable := sc.dataavailable;
   writeln('creating and setting up client socket');
   clientsocket := tlsocket.create(nil);
-  clientsocket.addr := '::1';{'127.0.0.1';}
+  //try connecting to ::1 first and if that fails try 127.0.0.1
+  iplist := biniplist_new;
+  ipstrtobin('::1',ipbin);
+  biniplist_add(iplist,ipbin);
+  ipstrtobin('127.0.0.1',ipbin);
+  biniplist_add(iplist,ipbin);
+  clientsocket.addr := iplist;
   clientsocket.port := '12345';
   clientsocket.onsessionconnected := sc.sessionconnected;
   clientsocket.ondataAvailable := sc.dataavailable;
   clientsocket.onsessionclosed := sc.sessionclosed;
   writeln('connecting');
+  firststage := true;
   clientsocket.connect;
   writeln('client socket is number ',clientsocket.fdhandlein);
   writeln('creating and setting up timer');