hedgewars/uIO.pas
changeset 6982 8d41d22a291d
parent 6903 5f66f3d3e131
child 7026 8d1724e1337e
equal deleted inserted replaced
6981:045e8162c9cd 6982:8d41d22a291d
   141      AddFileLog('[IPC in] '+s[1]+' ticks '+IntToStr(lastcmd^.loTime));
   141      AddFileLog('[IPC in] '+s[1]+' ticks '+IntToStr(lastcmd^.loTime));
   142      end
   142      end
   143 end;
   143 end;
   144 
   144 
   145 procedure IPCCheckSock;
   145 procedure IPCCheckSock;
   146 const ss: shortstring = '';
       
   147 var i: LongInt;
   146 var i: LongInt;
   148     s: shortstring;
   147     s: shortstring;
   149 begin
   148 begin
   150 if IPCSock = nil then
   149     if IPCSock = nil then
   151     exit;
   150         exit;
   152 
   151 
   153 fds^.numsockets:= 0;
   152     fds^.numsockets:= 0;
   154 SDLNet_AddSocket(fds, IPCSock);
   153     SDLNet_AddSocket(fds, IPCSock);
   155 
   154 
   156 while SDLNet_CheckSockets(fds, 0) > 0 do
   155     while SDLNet_CheckSockets(fds, 0) > 0 do
   157     begin
   156     begin
   158     i:= SDLNet_TCP_Recv(IPCSock, @s[1], 255 - Length(ss));
   157         i:= SDLNet_TCP_Recv(IPCSock, @s[1], 255 - Length(SocketString));
   159     if i > 0 then
   158         if i > 0 then
   160         begin
   159         begin
   161         s[0]:= char(i);
   160             s[0]:= char(i);
   162         ss:= ss + s;
   161             SocketString:= SocketString + s;
   163         while (Length(ss) > 1) and (Length(ss) > byte(ss[1])) do
   162             while (Length(SocketString) > 1) and (Length(SocketString) > byte(SocketString[1])) do
   164             begin
   163             begin
   165             ParseIPCCommand(copy(ss, 2, byte(ss[1])));
   164                 ParseIPCCommand(copy(SocketString, 2, byte(SocketString[1])));
   166             Delete(ss, 1, Succ(byte(ss[1])))
   165                 Delete(SocketString, 1, Succ(byte(SocketString[1])))
   167             end
   166             end
   168         end
   167         end
   169     else
   168     else
   170         OutError('IPC connection lost', true)
   169         OutError('IPC connection lost', true)
   171     end;
   170     end;
   433 
   432 
   434     IPCSock:= nil;
   433     IPCSock:= nil;
   435 
   434 
   436     headcmd:= nil;
   435     headcmd:= nil;
   437     lastcmd:= nil;
   436     lastcmd:= nil;
   438     isPonged:= false;   // was const
   437     isPonged:= false;
   439 
   438     SocketString:= '';
       
   439     
   440     hiTicks:= 0;
   440     hiTicks:= 0;
   441     SendEmptyPacketTicks:= 0;
   441     SendEmptyPacketTicks:= 0;
   442 end;
   442 end;
   443 
   443 
   444 procedure freeModule;
   444 procedure freeModule;