Changeset 68


Ignore:
Timestamp:
Dec 26, 2011, 12:07:37 PM (13 years ago)
Author:
chronos
Message:
  • Upraveno: Testování varianty HTTP serveru jako přímé obsluhy přes TCP. Momentálně není odděleno generování stránek pro použití z více vláken.
  • Upraveno: Třída uchování jména počítač nyní pro převod do IPv4 používá ověření správnosti namísto přímého převodu a zahlášení výjimky.
Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Components/Common/UResetableThread.pas

    r64 r68  
    5353    FOnException: TExceptionEvent;
    5454    procedure MethodFinish(Sender: TObject);
     55  protected
    5556    procedure ThreadException(Sender: TObject; E: Exception);
    56   protected
    5757    function NewItemObject: TObject; override;
    5858  public
  • trunk/Components/CoolWeb/Common/UHtmlClasses.pas

    r67 r68  
    99
    1010type
     11
     12  { TDomainAddress }
     13
    1114  TDomainAddress = class(TPersistent)
    1215  private
     
    1417    procedure SetAsString(const Value: string);
    1518  public
    16     Levels: array of string;
     19    Levels: TListString;
     20    constructor Create;
     21    destructor Destroy; override;
    1722    property AsString: string read GetAsString write SetAsString;
    1823  end;
    1924
    2025  TAddrClass = (acA, acB, acC, acD, acE);
     26
     27  { TIpAddress }
    2128
    2229  TIpAddress = class(TPersistent)
     
    3239    Octets: array[0..3] of Byte;
    3340    procedure Assign(Source: TPersistent); override;
     41    function IsAddressString(Value: string): Boolean;
    3442    property AsCardinal: Cardinal read GetAsCardinal write SetAsCardinal;
    3543    property AsString: string read GetAsString write SetAsString;
     
    589597end;
    590598
     599function TIpAddress.IsAddressString(Value: string): Boolean;
     600var
     601  Parts: TListString;
     602begin
     603  Result := True;
     604  try
     605    Parts := TListString.Create;
     606    Parts.Explode(Value, '.', StrToStr);
     607    if Parts.Count = 4 then begin
     608      if (StrToInt(Parts[3]) < 0) or (StrToInt(Parts[3]) > 255) then Result := False;
     609      if (StrToInt(Parts[2]) < 0) or (StrToInt(Parts[2]) > 255) then Result := False;
     610      if (StrToInt(Parts[1]) < 0) or (StrToInt(Parts[1]) > 255) then Result := False;
     611      if (StrToInt(Parts[0]) < 0) or (StrToInt(Parts[0]) > 255) then Result := False;
     612    end else Result := False;
     613  finally
     614    Parts.Free;
     615  end;
     616end;
     617
    591618function TIpAddress.GetAddrClass: TAddrClass;
    592619begin
     
    704731
    705732function TDomainAddress.GetAsString: string;
    706 var
    707   I: Integer;
    708 begin
    709   Result := '';
    710   for I := High(Levels) downto 0 do Result := Result + '.' + Levels[I];
    711   Delete(Result, 1, 1);
     733begin
     734  try
     735    Levels.Reverse;
     736    Result := Levels.Implode('.', StrToStr);
     737  finally
     738    Levels.Reverse;
     739  end;
    712740end;
    713741
    714742procedure TDomainAddress.SetAsString(const Value: string);
    715 var
    716   StrArray: TListString;
    717   I: Integer;
    718 begin
    719   try
    720     StrArray := TListString.Create;
    721     StrArray.Explode(Value, '.', StrToStr);
    722     SetLength(Levels, StrArray.Count);
    723     for I := 0 to StrArray.Count - 1 do
    724       Levels[StrArray.Count - 1 - I] := StrArray[I];
    725   finally
    726     StrArray.Free;
    727   end;
     743begin
     744  Levels.Explode(Value, '.', StrToStr);
     745  Levels.Reverse;
     746end;
     747
     748constructor TDomainAddress.Create;
     749begin
     750  Levels := TListString.Create;
     751end;
     752
     753destructor TDomainAddress.Destroy;
     754begin
     755  Levels.Free;
     756  inherited Destroy;
    728757end;
    729758
     
    792821procedure THostAddress.SetAsString(const Value: string);
    793822begin
    794   State := asIpAddress;
    795   try
     823  if IpAddress.IsAddressString(Value) then begin
     824    State := asIpAddress;
    796825    IpAddress.AsString := Value;
    797   except
    798     on EConvertError do State := asDomainName;
    799   end;
    800   if State = asDomainName then DomainName.AsString := Value;
     826  end else begin
     827    State := asDomainName;
     828    DomainName.AsString := Value;
     829  end;
    801830end;
    802831
  • trunk/Components/CoolWeb/Network/UTCPServer.pas

    r61 r68  
    3131
    3232  TClientThreadedPool = class(TThreadPool)
     33  protected
     34    function NewItemObject: TObject; override;
    3335  private
    3436    FActive: Boolean;
     
    164166{ TClientThreadedPool }
    165167
     168function TClientThreadedPool.NewItemObject: TObject;
     169begin
     170  Result := TTCPClientThread.Create;
     171  TResetableThread(Result).OnException := ThreadException;
     172end;
     173
    166174procedure TClientThreadedPool.SetActive(const AValue: Boolean);
    167175begin
  • trunk/Components/CoolWeb/WebServer/UHTTPServer.pas

    r67 r68  
    3737    Cookies: TCookieList;
    3838    Post: TQueryParameterList;
     39    procedure Clear;
    3940    constructor Create;
    4041    destructor Destroy; override;
     
    4849    Headers: TStringList;
    4950    Cookies: TCookieList;
     51    procedure Clear;
    5052    constructor Create;
    5153    destructor Destroy; override;
     
    232234{ THTTPResponse }
    233235
     236procedure THTTPResponse.Clear;
     237begin
     238  Content.Clear;
     239  Cookies.Clear;
     240  Headers.Clear;
     241end;
     242
    234243constructor THTTPResponse.Create;
    235244begin
     
    267276
    268277{ THTTPRequest }
     278
     279procedure THTTPRequest.Clear;
     280begin
     281  Post.Clear;
     282  Content.Clear;
     283  QueryParts.Clear;
     284  Cookies.Clear;
     285  Headers.Clear;
     286  Query.Clear;
     287end;
    269288
    270289constructor THTTPRequest.Create;
  • trunk/Components/CoolWeb/WebServer/UHTTPServerCGI.pas

    r67 r68  
    6666      repeat
    6767        Count := InputStream.Read(Buffer[1], Length(Buffer));
    68         Request.Content.Write(Buffer[1], Count);
     68        if Count > 0 then Request.Content.Write(Buffer[1], Count);
    6969      until Count = 0;
    7070    finally
     
    7777
    7878    // Load data
    79     if Request.Headers.IndexOfName('Content-length') <> -1 then
     79    (*if Request.Headers.IndexOfName('Content-length') <> -1 then
    8080    try
    8181      InputStream := TIOStream.Create(iosInput);
     
    8383    finally
    8484      InputStream.Free;
    85     end;
     85    end;  *)
    8686
    8787    // Load environment variables
  • trunk/Components/CoolWeb/WebServer/UHTTPServerTCP.pas

    r67 r68  
    2121    constructor Create(AOwner: TComponent); override;
    2222    destructor Destroy; override;
     23    procedure Run; override;
    2324  published
    2425    property MaxConnection: Integer read FMaxConnection write FMaxConnection;
     
    143144end;
    144145
     146procedure THTTPServerTCP.Run;
     147begin
     148  inherited Run;
     149  WriteLn('HTTP Server started in TCP mode.');
     150  WriteLn('Listen on ' + Socket.Address + ':' + IntToStr(Socket.Port));
     151  WriteLn('Press any key to terminate...');
     152  Socket.ThreadPool.TotalCount := MaxConnection;
     153  Socket.Active := True;
     154  ReadLn;
     155  WriteLn('Exiting');
     156end;
     157
    145158end.
    146159
  • trunk/Components/CoolWeb/WebServer/UWebApp.pas

    r67 r68  
    77uses
    88  Classes, SysUtils, CustApp, SpecializedList, UWebPage, UHTTPSessionFile,
    9   UHTTPServer, UHTTPServerCGI;
     9  UHTTPServer;
    1010
    1111type
     12  THTTPServerType = (stCGI, stTCP);
     13
    1214  TRegistredPage = class
    1315    Name: string;
     
    2628  private
    2729    FOnInitialize: TNotifyEvent;
     30    FServerType: THTTPServerType;
    2831    procedure DoRun; override;
    2932    function DumpExceptionCallStack(E: Exception): string;
    3033    procedure HTTPServerRequest(HandlerData: THTTPHandlerData);
     34    procedure SetServerType(AValue: THTTPServerType);
    3135  public
    3236    Pages: TRegistredPageList;
     
    3943    destructor Destroy; override;
    4044    property OnInitialize: TNotifyEvent read FOnInitialize write FOnInitialize;
     45    property ServerType: THTTPServerType read FServerType write SetServerType;
    4146  end;
    4247
     
    4954
    5055implementation
     56
     57uses
     58  UHTTPServerCGI, UHTTPServerTCP;
    5159
    5260resourcestring
     
    133141    end else Response.Content.WriteString(SPageNotFound);
    134142  end;
     143end;
     144
     145procedure TWebApp.SetServerType(AValue: THTTPServerType);
     146begin
     147  if FServerType = AValue then Exit;
     148  FServerType := AValue;
     149  HTTPServer.Free;
     150  case FServerType of
     151    stCGI: HTTPServer := THTTPServerCGI.Create(nil);
     152    stTCP: HTTPServer := THTTPServerTCP.Create(nil);
     153  end;
     154  HTTPServer.OnRequest := HTTPServerRequest;
    135155end;
    136156
  • trunk/Modules/UMainModule.pas

    r67 r68  
    4141    UserOnline: TWebOnlineUser;
    4242    FormatHTML: Boolean;
     43    NetworkAddress: string;
     44    NetworkPort: Integer;
     45    MaxConnections: Integer;
    4346    procedure LoadFromRegistry;
    4447    procedure SaveToRegistry;
     
    236239  SectionGeneral = 'General';
    237240  SectionDatabase = 'Database';
     241  SectionHTTPServer = 'HTTPServer';
    238242begin
    239243  with TIniFile.Create(ConfigFile) do
     
    249253    FormatHTML := ReadBool(SectionGeneral, 'FormatHTML', False);
    250254    Application.LogException := not ReadBool(SectionGeneral, 'ShowException', False);
     255    NetworkAddress := ReadString(SectionHTTPServer, 'NetworkAddress', 'localhost');
     256    NetworkPort := ReadInteger(SectionHTTPServer, 'NetworkPort', 80);
     257    MaxConnections := ReadInteger(SectionHTTPServer, 'MaxConnections', 10);
    251258  finally
    252259    Free;
     
    258265  SectionGeneral = 'General';
    259266  SectionDatabase = 'Database';
     267  SectionHTTPServer = 'HTTPServer';
    260268begin
    261269  with TIniFile.Create(ConfigFile) do
     
    271279    WriteBool(SectionGeneral, 'FormatHTML', FormatHTML);
    272280    WriteBool(SectionGeneral, 'ShowException', not Application.LogException);
     281    WriteString(SectionHTTPServer, 'NetworkAddress', NetworkAddress);
     282    WriteInteger(SectionHTTPServer, 'NetworkPort', NetworkPort);
     283    WriteInteger(SectionHTTPServer, 'MaxConnections', MaxConnections);
    273284  finally
    274285    Free;
  • trunk/Pages/UUserControlPage.pas

    r67 r68  
    1616    procedure DataModuleProduce(HandlerData: THTTPHandlerData);
    1717  private
    18     { private declarations }
     18    procedure HandleLogin(HandlerData: THTTPHandlerData);
     19    procedure HandleRegistration(HandlerData: THTTPHandlerData);
    1920  public
    2021    { public declarations }
     
    4546    if PageName = '' then PageName := 'prihlaseni';
    4647    if PageName = 'prihlaseni' then begin
    47       with TQueryForm(SubItems.AddNew(TQueryForm.Create)) do begin
    48         Title := 'Přihlášení';
    49         ClassId := 'WideTable';
    50         //Action.AsString := '/dev/zdechovnet/trunk/serverinfoo';
    51         with AddNewGroup do begin
    52           Title := '';
    53           with AddNewItem do begin
    54             Caption := 'Jméno';
    55             Name := 'Name';
    56             Hint := 'Zadejte vaše přihlašovací jméno';
    57             Required := True;
    58           end;
    59           with AddNewItem do begin
    60             Caption := 'Heslo';
    61             Name := 'Password';
    62             Hint := 'Zadejte vaše heslo';
    63             Required := True;
    64             ItemType := fitPassword;
    65           end;
    66         end;
    67         with AddNewAction do begin
    68           Caption := 'Přihlásit';
    69           Action := 'Login';
    70         end;
    71       end;
     48      HandleLogin(HandlerData);
    7249    end else
    7350    if PageName = 'registrace' then begin
    74       with TQueryForm(SubItems.AddNew(TQueryForm.Create)) do begin
    75         Title := 'Registrace nového účtu';
    76         ClassId := 'WideTable';
    77         with AddNewGroup do begin
    78           Title := '';
    79           with AddNewItem do begin
    80             Caption := 'Jméno';
    81             Name := 'Name';
    82             Hint := 'Zadejte vaše přihlašovací jméno';
    83             Required := True;
    84           end;
    85           with AddNewItem do begin
    86             Caption := 'Email';
    87             Name := 'Email';
    88             Hint := 'Zadejte vaši elektronickou poštovní schránku';
    89             Required := True;
    90           end;
    91           with AddNewItem do begin
    92             Caption := 'Heslo';
    93             Name := 'Password';
    94             Hint := 'Zadejte vaše heslo';
    95             Required := True;
    96             ItemType := fitPassword;
    97           end;
    98           with AddNewItem do begin
    99             Caption := 'Ověření hesla';
    100             Name := 'PasswordConfirm';
    101             Hint := 'Zadejte znovu vaše heslo pro ověření';
    102             Required := True;
    103             ItemType := fitPassword;
    104           end;
    105         end;
    106         with AddNewAction do begin
    107           Caption := 'Registrovat';
    108           Action := 'Register';
    109         end;
    110       end;
     51      HandleRegistration(HandlerData);
    11152    end;
    11253  end;
     
    11455end;
    11556
     57procedure TUserControlPage.HandleLogin(HandlerData: THTTPHandlerData);
     58var
     59  Form: TQueryForm;
     60begin
     61  with MainModule, HtmlDocument.Body do begin
     62    Form := TQueryForm.Create;
     63    with Form do begin
     64      Title := 'Přihlášení';
     65      ClassId := 'WideTable';
     66      //Action.AsString := '/dev/zdechovnet/trunk/serverinfoo';
     67      with AddNewGroup do begin
     68        Title := '';
     69        with AddNewItem do begin
     70          Caption := 'Jméno';
     71          Name := 'Name';
     72          Hint := 'Zadejte vaše přihlašovací jméno';
     73          Required := True;
     74        end;
     75        with AddNewItem do begin
     76          Caption := 'Heslo';
     77          Name := 'Password';
     78          Hint := 'Zadejte vaše heslo';
     79          Required := True;
     80          ItemType := fitPassword;
     81        end;
     82      end;
     83      with AddNewAction do begin
     84        Caption := 'Přihlásit';
     85        Action := 'Login';
     86      end;
     87    end;
     88    if HandlerData.Request.Post.IndexOfName('Login') <> -1 then begin
     89      Form.Load(HandlerData.Request.Post);
     90      with THtmlString(SubItems.AddNew(THtmlString.Create)) do
     91        Text := 'Přihlášení user: ' + TQueryFormItem(TQueryFormGroup(Form.Groups[0]).Rows[0]).Value.Value;
     92      Form.Free;
     93    end else
     94      SubItems.AddNew(Form);
     95  end;
     96end;
     97
     98procedure TUserControlPage.HandleRegistration(HandlerData: THTTPHandlerData);
     99begin
     100  with MainModule, HtmlDocument.Body do begin
     101    with TQueryForm(SubItems.AddNew(TQueryForm.Create)) do begin
     102      Title := 'Registrace nového účtu';
     103      ClassId := 'WideTable';
     104      with AddNewGroup do begin
     105        Title := '';
     106        with AddNewItem do begin
     107          Caption := 'Jméno';
     108          Name := 'Name';
     109          Hint := 'Zadejte vaše přihlašovací jméno';
     110          Required := True;
     111        end;
     112        with AddNewItem do begin
     113          Caption := 'Email';
     114          Name := 'Email';
     115          Hint := 'Zadejte vaši elektronickou poštovní schránku';
     116          Required := True;
     117        end;
     118        with AddNewItem do begin
     119          Caption := 'Heslo';
     120          Name := 'Password';
     121          Hint := 'Zadejte vaše heslo';
     122          Required := True;
     123          ItemType := fitPassword;
     124        end;
     125        with AddNewItem do begin
     126          Caption := 'Ověření hesla';
     127          Name := 'PasswordConfirm';
     128          Hint := 'Zadejte znovu vaše heslo pro ověření';
     129          Required := True;
     130          ItemType := fitPassword;
     131        end;
     132      end;
     133      with AddNewAction do begin
     134        Caption := 'Registrovat';
     135        Action := 'Register';
     136      end;
     137    end;
     138  end;
     139end;
     140
    116141end.
    117142
  • trunk/ZdechovNET.lpi

    r67 r68  
    6060      </Item5>
    6161    </RequiredPackages>
    62     <Units Count="144">
     62    <Units Count="148">
    6363      <Unit0>
    6464        <Filename Value="ZdechovNET.lpr"/>
     
    6767        <EditorIndex Value="0"/>
    6868        <WindowIndex Value="0"/>
    69         <TopLine Value="3"/>
    70         <CursorPos X="53" Y="10"/>
     69        <TopLine Value="12"/>
     70        <CursorPos X="35" Y="20"/>
    7171        <UsageCount Value="203"/>
    7272        <Loaded Value="True"/>
     
    100100        <IsPartOfProject Value="True"/>
    101101        <UnitName Value="UCore"/>
    102         <EditorIndex Value="3"/>
    103         <WindowIndex Value="0"/>
    104         <TopLine Value="1"/>
    105         <CursorPos X="68" Y="10"/>
     102        <WindowIndex Value="0"/>
     103        <TopLine Value="1"/>
     104        <CursorPos X="55" Y="9"/>
    106105        <UsageCount Value="203"/>
    107         <Loaded Value="True"/>
    108106        <DefaultSyntaxHighlighter Value="Delphi"/>
    109107      </Unit4>
     
    534532        <TopLine Value="1"/>
    535533        <CursorPos X="60" Y="11"/>
    536         <UsageCount Value="0"/>
     534        <UsageCount Value="10"/>
    537535        <DefaultSyntaxHighlighter Value="Delphi"/>
    538536      </Unit53>
     
    559557        <IsPartOfProject Value="True"/>
    560558        <UnitName Value="UWebObjects"/>
    561         <EditorIndex Value="11"/>
    562         <WindowIndex Value="0"/>
    563         <TopLine Value="180"/>
    564         <CursorPos X="78" Y="201"/>
    565         <UsageCount Value="156"/>
     559        <EditorIndex Value="14"/>
     560        <WindowIndex Value="0"/>
     561        <TopLine Value="175"/>
     562        <CursorPos X="1" Y="193"/>
     563        <UsageCount Value="162"/>
    566564        <Loaded Value="True"/>
    567565        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    634632        <TopLine Value="1"/>
    635633        <CursorPos X="1" Y="1"/>
    636         <UsageCount Value="0"/>
     634        <UsageCount Value="10"/>
    637635        <DefaultSyntaxHighlighter Value="Delphi"/>
    638636      </Unit64>
     
    679677        <ResourceBaseClass Value="DataModule"/>
    680678        <UnitName Value="UMainModule"/>
     679        <IsVisibleTab Value="True"/>
    681680        <EditorIndex Value="1"/>
    682681        <WindowIndex Value="0"/>
    683         <TopLine Value="62"/>
    684         <CursorPos X="34" Y="87"/>
    685         <UsageCount Value="138"/>
    686         <Loaded Value="True"/>
     682        <TopLine Value="65"/>
     683        <CursorPos X="1" Y="74"/>
     684        <UsageCount Value="144"/>
     685        <Loaded Value="True"/>
     686        <LoadedDesigner Value="True"/>
    687687        <DefaultSyntaxHighlighter Value="Delphi"/>
    688688      </Unit69>
     
    719719        <TopLine Value="10"/>
    720720        <CursorPos X="1" Y="35"/>
    721         <UsageCount Value="0"/>
     721        <UsageCount Value="10"/>
    722722        <DefaultSyntaxHighlighter Value="Delphi"/>
    723723      </Unit73>
     
    737737        <TopLine Value="2"/>
    738738        <CursorPos X="14" Y="19"/>
    739         <UsageCount Value="0"/>
     739        <UsageCount Value="10"/>
    740740        <DefaultSyntaxHighlighter Value="Delphi"/>
    741741      </Unit75>
     
    814814        <TopLine Value="1289"/>
    815815        <CursorPos X="36" Y="1307"/>
    816         <UsageCount Value="0"/>
     816        <UsageCount Value="10"/>
    817817        <DefaultSyntaxHighlighter Value="Delphi"/>
    818818      </Unit83>
     
    832832        <TopLine Value="174"/>
    833833        <CursorPos X="14" Y="191"/>
    834         <UsageCount Value="0"/>
     834        <UsageCount Value="10"/>
    835835        <DefaultSyntaxHighlighter Value="Delphi"/>
    836836      </Unit85>
     
    840840        <TopLine Value="538"/>
    841841        <CursorPos X="24" Y="555"/>
    842         <UsageCount Value="0"/>
     842        <UsageCount Value="10"/>
    843843        <DefaultSyntaxHighlighter Value="Delphi"/>
    844844      </Unit86>
     
    866866        <TopLine Value="2101"/>
    867867        <CursorPos X="3" Y="2108"/>
    868         <UsageCount Value="0"/>
     868        <UsageCount Value="10"/>
    869869        <DefaultSyntaxHighlighter Value="Delphi"/>
    870870      </Unit89>
     
    874874        <TopLine Value="180"/>
    875875        <CursorPos X="26" Y="197"/>
    876         <UsageCount Value="0"/>
     876        <UsageCount Value="10"/>
    877877        <DefaultSyntaxHighlighter Value="Delphi"/>
    878878      </Unit90>
     
    895895        <TopLine Value="17"/>
    896896        <CursorPos X="1" Y="47"/>
    897         <UsageCount Value="129"/>
     897        <UsageCount Value="135"/>
    898898        <DefaultSyntaxHighlighter Value="Delphi"/>
    899899      </Unit92>
     
    907907        <TopLine Value="26"/>
    908908        <CursorPos X="84" Y="45"/>
    909         <UsageCount Value="126"/>
     909        <UsageCount Value="132"/>
    910910        <DefaultSyntaxHighlighter Value="Delphi"/>
    911911      </Unit93>
     
    919919        <TopLine Value="66"/>
    920920        <CursorPos X="1" Y="97"/>
    921         <UsageCount Value="126"/>
     921        <UsageCount Value="132"/>
    922922        <DefaultSyntaxHighlighter Value="Delphi"/>
    923923      </Unit94>
     
    931931        <TopLine Value="26"/>
    932932        <CursorPos X="40" Y="44"/>
    933         <UsageCount Value="125"/>
     933        <UsageCount Value="131"/>
    934934        <DefaultSyntaxHighlighter Value="Delphi"/>
    935935      </Unit95>
     
    943943        <TopLine Value="24"/>
    944944        <CursorPos X="1" Y="55"/>
    945         <UsageCount Value="125"/>
     945        <UsageCount Value="131"/>
    946946        <DefaultSyntaxHighlighter Value="Delphi"/>
    947947      </Unit96>
     
    955955        <TopLine Value="24"/>
    956956        <CursorPos X="51" Y="42"/>
    957         <UsageCount Value="125"/>
     957        <UsageCount Value="131"/>
    958958        <DefaultSyntaxHighlighter Value="Delphi"/>
    959959      </Unit97>
     
    967967        <TopLine Value="28"/>
    968968        <CursorPos X="23" Y="40"/>
    969         <UsageCount Value="125"/>
     969        <UsageCount Value="131"/>
    970970        <DefaultSyntaxHighlighter Value="Delphi"/>
    971971      </Unit98>
     
    976976        <ResourceBaseClass Value="DataModule"/>
    977977        <UnitName Value="ULinksPage"/>
    978         <EditorIndex Value="8"/>
     978        <EditorIndex Value="10"/>
    979979        <WindowIndex Value="0"/>
    980980        <TopLine Value="32"/>
    981981        <CursorPos X="38" Y="51"/>
    982         <UsageCount Value="125"/>
     982        <UsageCount Value="131"/>
    983983        <Loaded Value="True"/>
    984984        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    993993        <TopLine Value="8"/>
    994994        <CursorPos X="1" Y="39"/>
    995         <UsageCount Value="125"/>
     995        <UsageCount Value="131"/>
    996996        <DefaultSyntaxHighlighter Value="Delphi"/>
    997997      </Unit100>
     
    10051005        <TopLine Value="26"/>
    10061006        <CursorPos X="1" Y="47"/>
    1007         <UsageCount Value="125"/>
     1007        <UsageCount Value="131"/>
    10081008        <DefaultSyntaxHighlighter Value="Delphi"/>
    10091009      </Unit101>
     
    10141014        <ResourceBaseClass Value="DataModule"/>
    10151015        <UnitName Value="UUserControlPage"/>
    1016         <EditorIndex Value="9"/>
    1017         <WindowIndex Value="0"/>
    1018         <TopLine Value="35"/>
    1019         <CursorPos X="11" Y="50"/>
    1020         <UsageCount Value="125"/>
     1016        <EditorIndex Value="11"/>
     1017        <WindowIndex Value="0"/>
     1018        <TopLine Value="55"/>
     1019        <CursorPos X="1" Y="62"/>
     1020        <UsageCount Value="131"/>
    10211021        <Loaded Value="True"/>
    10221022        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    10311031        <TopLine Value="15"/>
    10321032        <CursorPos X="1" Y="46"/>
    1033         <UsageCount Value="125"/>
     1033        <UsageCount Value="131"/>
    10341034        <DefaultSyntaxHighlighter Value="Delphi"/>
    10351035      </Unit103>
     
    10411041        <UnitName Value="UAboutPage"/>
    10421042        <WindowIndex Value="0"/>
    1043         <TopLine Value="55"/>
    1044         <CursorPos X="22" Y="60"/>
    1045         <UsageCount Value="125"/>
     1043        <TopLine Value="52"/>
     1044        <CursorPos X="59" Y="62"/>
     1045        <UsageCount Value="131"/>
    10461046        <DefaultSyntaxHighlighter Value="Delphi"/>
    10471047      </Unit104>
     
    11271127        <TopLine Value="1"/>
    11281128        <CursorPos X="3" Y="1"/>
    1129         <UsageCount Value="0"/>
     1129        <UsageCount Value="10"/>
    11301130        <DefaultSyntaxHighlighter Value="Delphi"/>
    11311131      </Unit113>
     
    11601160        <TopLine Value="10"/>
    11611161        <CursorPos X="4" Y="26"/>
    1162         <UsageCount Value="102"/>
     1162        <UsageCount Value="108"/>
    11631163        <DefaultSyntaxHighlighter Value="None"/>
    11641164      </Unit117>
     
    11721172      <Unit119>
    11731173        <Filename Value="Components/TemplateGenerics/Generic/GenericList.inc"/>
    1174         <EditorIndex Value="16"/>
     1174        <EditorIndex Value="18"/>
    11751175        <WindowIndex Value="0"/>
    11761176        <TopLine Value="133"/>
    1177         <CursorPos X="1" Y="149"/>
    1178         <UsageCount Value="32"/>
     1177        <CursorPos X="1" Y="147"/>
     1178        <UsageCount Value="35"/>
    11791179        <Loaded Value="True"/>
    11801180      </Unit119>
     
    11831183        <IsPartOfProject Value="True"/>
    11841184        <UnitName Value="UApplicationInfo"/>
    1185         <IsVisibleTab Value="True"/>
    1186         <EditorIndex Value="12"/>
    11871185        <WindowIndex Value="0"/>
    11881186        <TopLine Value="32"/>
    1189         <CursorPos X="41" Y="55"/>
    1190         <UsageCount Value="70"/>
    1191         <Loaded Value="True"/>
     1187        <CursorPos X="37" Y="54"/>
     1188        <UsageCount Value="76"/>
    11921189        <DefaultSyntaxHighlighter Value="Delphi"/>
    11931190      </Unit120>
     
    11951192        <Filename Value="Components/CoolWeb/Persistence/USqlDatabase.pas"/>
    11961193        <UnitName Value="USqlDatabase"/>
    1197         <WindowIndex Value="0"/>
    1198         <TopLine Value="1"/>
    1199         <CursorPos X="14" Y="1"/>
    1200         <UsageCount Value="5"/>
     1194        <EditorIndex Value="13"/>
     1195        <WindowIndex Value="0"/>
     1196        <TopLine Value="228"/>
     1197        <CursorPos X="39" Y="250"/>
     1198        <UsageCount Value="10"/>
     1199        <Loaded Value="True"/>
    12011200      </Unit121>
    12021201      <Unit122>
    12031202        <Filename Value="Components/CoolWeb/WebServer/UWebApp.pas"/>
    12041203        <UnitName Value="UWebApp"/>
    1205         <EditorIndex Value="4"/>
    1206         <WindowIndex Value="0"/>
    1207         <TopLine Value="9"/>
    1208         <CursorPos X="11" Y="134"/>
    1209         <UsageCount Value="35"/>
     1204        <EditorIndex Value="3"/>
     1205        <WindowIndex Value="0"/>
     1206        <TopLine Value="22"/>
     1207        <CursorPos X="15" Y="40"/>
     1208        <UsageCount Value="38"/>
    12101209        <Loaded Value="True"/>
    12111210      </Unit122>
     
    12161215        <TopLine Value="1"/>
    12171216        <CursorPos X="17" Y="12"/>
    1218         <UsageCount Value="34"/>
     1217        <UsageCount Value="33"/>
    12191218      </Unit123>
    12201219      <Unit124>
     
    12341233        <TopLine Value="1"/>
    12351234        <CursorPos X="1" Y="1"/>
    1236         <UsageCount Value="32"/>
     1235        <UsageCount Value="35"/>
    12371236        <Loaded Value="True"/>
    12381237      </Unit125>
     
    12481247        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
    12491248        <UnitName Value="UHtmlClasses"/>
    1250         <EditorIndex Value="14"/>
    1251         <WindowIndex Value="0"/>
    1252         <TopLine Value="133"/>
    1253         <CursorPos X="3" Y="151"/>
    1254         <UsageCount Value="32"/>
     1249        <EditorIndex Value="16"/>
     1250        <WindowIndex Value="0"/>
     1251        <TopLine Value="172"/>
     1252        <CursorPos X="5" Y="192"/>
     1253        <UsageCount Value="35"/>
    12551254        <Loaded Value="True"/>
    12561255      </Unit127>
     
    12581257        <Filename Value="Components/CoolWeb/Common/UMemoryStreamEx.pas"/>
    12591258        <UnitName Value="UMemoryStreamEx"/>
    1260         <EditorIndex Value="15"/>
    1261         <WindowIndex Value="0"/>
    1262         <TopLine Value="22"/>
    1263         <CursorPos X="23" Y="31"/>
    1264         <UsageCount Value="32"/>
     1259        <EditorIndex Value="17"/>
     1260        <WindowIndex Value="0"/>
     1261        <TopLine Value="248"/>
     1262        <CursorPos X="3" Y="250"/>
     1263        <UsageCount Value="35"/>
    12651264        <Loaded Value="True"/>
    12661265      </Unit128>
     
    12711270        <TopLine Value="1"/>
    12721271        <CursorPos X="1" Y="1"/>
    1273         <UsageCount Value="31"/>
     1272        <UsageCount Value="30"/>
    12741273      </Unit129>
    12751274      <Unit130>
     
    12791278        <TopLine Value="28"/>
    12801279        <CursorPos X="1" Y="1"/>
    1281         <UsageCount Value="31"/>
     1280        <UsageCount Value="30"/>
    12821281      </Unit130>
    12831282      <Unit131>
    12841283        <Filename Value="Components/CoolWeb/Common/UXmlClasses.pas"/>
    12851284        <UnitName Value="UXmlClasses"/>
    1286         <EditorIndex Value="13"/>
     1285        <EditorIndex Value="15"/>
    12871286        <WindowIndex Value="0"/>
    12881287        <TopLine Value="12"/>
    12891288        <CursorPos X="11" Y="31"/>
    1290         <UsageCount Value="32"/>
     1289        <UsageCount Value="35"/>
    12911290        <Loaded Value="True"/>
    12921291      </Unit131>
     
    13011300        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
    13021301        <UnitName Value="UHTTPServer"/>
    1303         <EditorIndex Value="10"/>
    1304         <WindowIndex Value="0"/>
    1305         <TopLine Value="111"/>
    1306         <CursorPos X="25" Y="166"/>
    1307         <UsageCount Value="13"/>
     1302        <EditorIndex Value="12"/>
     1303        <WindowIndex Value="0"/>
     1304        <TopLine Value="267"/>
     1305        <CursorPos X="46" Y="290"/>
     1306        <UsageCount Value="16"/>
    13081307        <Loaded Value="True"/>
    13091308      </Unit133>
     
    13191318        <Filename Value="Components/CoolWeb/Network/UTCPServer.pas"/>
    13201319        <UnitName Value="UTCPServer"/>
    1321         <EditorIndex Value="5"/>
    1322         <WindowIndex Value="0"/>
    1323         <TopLine Value="112"/>
    1324         <CursorPos X="1" Y="1"/>
    1325         <UsageCount Value="12"/>
     1320        <EditorIndex Value="7"/>
     1321        <WindowIndex Value="0"/>
     1322        <TopLine Value="145"/>
     1323        <CursorPos X="58" Y="171"/>
     1324        <UsageCount Value="15"/>
    13261325        <Loaded Value="True"/>
    13271326      </Unit135>
     
    13291328        <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    13301329        <UnitName Value="UHTTPServerCGI"/>
    1331         <EditorIndex Value="6"/>
    1332         <WindowIndex Value="0"/>
    1333         <TopLine Value="88"/>
    1334         <CursorPos X="34" Y="116"/>
    1335         <UsageCount Value="12"/>
     1330        <EditorIndex Value="4"/>
     1331        <WindowIndex Value="0"/>
     1332        <TopLine Value="1"/>
     1333        <CursorPos X="1" Y="18"/>
     1334        <UsageCount Value="15"/>
    13361335        <Loaded Value="True"/>
    13371336      </Unit136>
     
    13471346        <UnitName Value="iostream"/>
    13481347        <WindowIndex Value="0"/>
    1349         <TopLine Value="61"/>
    1350         <CursorPos X="6" Y="95"/>
    1351         <UsageCount Value="11"/>
     1348        <TopLine Value="70"/>
     1349        <CursorPos X="3" Y="91"/>
     1350        <UsageCount Value="10"/>
    13521351      </Unit138>
    13531352      <Unit139>
    13541353        <Filename Value="/usr/share/fpcsrc/2.4.4/rtl/objpas/classes/classesh.inc"/>
    13551354        <WindowIndex Value="0"/>
    1356         <TopLine Value="766"/>
    1357         <CursorPos X="15" Y="784"/>
    1358         <UsageCount Value="11"/>
     1355        <TopLine Value="825"/>
     1356        <CursorPos X="3" Y="843"/>
     1357        <UsageCount Value="12"/>
    13591358      </Unit139>
    13601359      <Unit140>
     
    13631362        <TopLine Value="59"/>
    13641363        <CursorPos X="8" Y="65"/>
    1365         <UsageCount Value="11"/>
     1364        <UsageCount Value="12"/>
    13661365      </Unit140>
    13671366      <Unit141>
     
    13831382        <Filename Value="Components/CoolWeb/WebServer/UHTTPServerTCP.pas"/>
    13841383        <UnitName Value="UHTTPServerTCP"/>
    1385         <EditorIndex Value="7"/>
    1386         <WindowIndex Value="0"/>
    1387         <TopLine Value="42"/>
    1388         <CursorPos X="11" Y="58"/>
     1384        <EditorIndex Value="5"/>
     1385        <WindowIndex Value="0"/>
     1386        <TopLine Value="70"/>
     1387        <CursorPos X="27" Y="102"/>
     1388        <UsageCount Value="14"/>
     1389        <Loaded Value="True"/>
     1390      </Unit143>
     1391      <Unit144>
     1392        <Filename Value="Pages/UUserControlPage.lfm"/>
     1393        <WindowIndex Value="0"/>
     1394        <TopLine Value="1"/>
     1395        <CursorPos X="1" Y="1"/>
     1396        <UsageCount Value="10"/>
     1397        <DefaultSyntaxHighlighter Value="LFM"/>
     1398      </Unit144>
     1399      <Unit145>
     1400        <Filename Value="Components/Common/UPool.pas"/>
     1401        <UnitName Value="UPool"/>
     1402        <EditorIndex Value="8"/>
     1403        <WindowIndex Value="0"/>
     1404        <TopLine Value="123"/>
     1405        <CursorPos X="3" Y="125"/>
    13891406        <UsageCount Value="11"/>
    13901407        <Loaded Value="True"/>
    1391       </Unit143>
     1408      </Unit145>
     1409      <Unit146>
     1410        <Filename Value="Components/Common/UResetableThread.pas"/>
     1411        <UnitName Value="UResetableThread"/>
     1412        <EditorIndex Value="9"/>
     1413        <WindowIndex Value="0"/>
     1414        <TopLine Value="38"/>
     1415        <CursorPos X="48" Y="65"/>
     1416        <UsageCount Value="11"/>
     1417        <Loaded Value="True"/>
     1418      </Unit146>
     1419      <Unit147>
     1420        <Filename Value="Components/synapse/blcksock.pas"/>
     1421        <UnitName Value="blcksock"/>
     1422        <EditorIndex Value="6"/>
     1423        <WindowIndex Value="0"/>
     1424        <TopLine Value="379"/>
     1425        <CursorPos X="15" Y="397"/>
     1426        <UsageCount Value="10"/>
     1427        <Loaded Value="True"/>
     1428      </Unit147>
    13921429    </Units>
    1393     <JumpHistory Count="30" HistoryIndex="27">
     1430    <JumpHistory Count="29" HistoryIndex="28">
    13941431      <Position1>
    1395         <Filename Value="Pages/ULinksPage.pas"/>
    1396         <Caret Line="67" Column="1" TopLine="25"/>
     1432        <Filename Value="Components/Common/UResetableThread.pas"/>
     1433        <Caret Line="57" Column="26" TopLine="38"/>
    13971434      </Position1>
    13981435      <Position2>
    1399         <Filename Value="Pages/ULinksPage.pas"/>
    1400         <Caret Line="51" Column="38" TopLine="32"/>
     1436        <Filename Value="Components/Common/UResetableThread.pas"/>
     1437        <Caret Line="65" Column="48" TopLine="38"/>
    14011438      </Position2>
    14021439      <Position3>
    1403         <Filename Value="Modules/UMainModule.pas"/>
    1404         <Caret Line="87" Column="34" TopLine="62"/>
     1440        <Filename Value="Components/TemplateGenerics/Generic/GenericList.inc"/>
     1441        <Caret Line="147" Column="1" TopLine="133"/>
    14051442      </Position3>
    14061443      <Position4>
    1407         <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
    1408         <Caret Line="47" Column="11" TopLine="29"/>
     1444        <Filename Value="Pages/UUserControlPage.pas"/>
     1445        <Caret Line="62" Column="1" TopLine="55"/>
    14091446      </Position4>
    14101447      <Position5>
    1411         <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
    1412         <Caret Line="31" Column="20" TopLine="13"/>
     1448        <Filename Value="Application/UWebObjects.pas"/>
     1449        <Caret Line="193" Column="1" TopLine="175"/>
    14131450      </Position5>
    14141451      <Position6>
    1415         <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
    1416         <Caret Line="131" Column="30" TopLine="120"/>
     1452        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1453        <Caret Line="698" Column="1" TopLine="680"/>
    14171454      </Position6>
    14181455      <Position7>
    1419         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1420         <Caret Line="126" Column="30" TopLine="91"/>
     1456        <Filename Value="Application/UWebObjects.pas"/>
     1457        <Caret Line="193" Column="1" TopLine="175"/>
    14211458      </Position7>
    14221459      <Position8>
    1423         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1424         <Caret Line="94" Column="24" TopLine="76"/>
     1460        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1461        <Caret Line="639" Column="1" TopLine="621"/>
    14251462      </Position8>
    14261463      <Position9>
    1427         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1428         <Caret Line="95" Column="43" TopLine="77"/>
     1464        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1465        <Caret Line="785" Column="40" TopLine="778"/>
    14291466      </Position9>
    14301467      <Position10>
    1431         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1432         <Caret Line="62" Column="19" TopLine="47"/>
     1468        <Filename Value="Components/TemplateGenerics/Generic/GenericList.inc"/>
     1469        <Caret Line="147" Column="1" TopLine="133"/>
    14331470      </Position10>
    14341471      <Position11>
    1435         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1436         <Caret Line="97" Column="35" TopLine="78"/>
     1472        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1473        <Caret Line="698" Column="1" TopLine="680"/>
    14371474      </Position11>
    14381475      <Position12>
    1439         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerTCP.pas"/>
    1440         <Caret Line="1" Column="1" TopLine="1"/>
     1476        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1477        <Caret Line="796" Column="1" TopLine="778"/>
    14411478      </Position12>
    14421479      <Position13>
    1443         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerTCP.pas"/>
    1444         <Caret Line="90" Column="21" TopLine="72"/>
     1480        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1481        <Caret Line="800" Column="1" TopLine="778"/>
    14451482      </Position13>
    14461483      <Position14>
    1447         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerTCP.pas"/>
    1448         <Caret Line="102" Column="59" TopLine="84"/>
     1484        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1485        <Caret Line="801" Column="1" TopLine="778"/>
    14491486      </Position14>
    14501487      <Position15>
    1451         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerTCP.pas"/>
    1452         <Caret Line="117" Column="41" TopLine="99"/>
     1488        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1489        <Caret Line="794" Column="3" TopLine="792"/>
    14531490      </Position15>
    14541491      <Position16>
    1455         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1456         <Caret Line="64" Column="69" TopLine="54"/>
     1492        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1493        <Caret Line="35" Column="14" TopLine="17"/>
    14571494      </Position16>
    14581495      <Position17>
    1459         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1460         <Caret Line="59" Column="29" TopLine="44"/>
     1496        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1497        <Caret Line="21" Column="34" TopLine="1"/>
    14611498      </Position17>
    14621499      <Position18>
    1463         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1464         <Caret Line="144" Column="32" TopLine="118"/>
     1500        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1501        <Caret Line="41" Column="14" TopLine="17"/>
    14651502      </Position18>
    14661503      <Position19>
    1467         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1468         <Caret Line="67" Column="24" TopLine="46"/>
     1504        <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
     1505        <Caret Line="725" Column="3" TopLine="711"/>
    14691506      </Position19>
    14701507      <Position20>
    1471         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1472         <Caret Line="69" Column="33" TopLine="46"/>
     1508        <Filename Value="Components/CoolWeb/WebServer/UHTTPServerTCP.pas"/>
     1509        <Caret Line="102" Column="13" TopLine="82"/>
    14731510      </Position20>
    14741511      <Position21>
    1475         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1476         <Caret Line="64" Column="1" TopLine="46"/>
     1512        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1513        <Caret Line="62" Column="21" TopLine="41"/>
    14771514      </Position21>
    14781515      <Position22>
    1479         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1480         <Caret Line="68" Column="44" TopLine="50"/>
     1516        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1517        <Caret Line="387" Column="11" TopLine="385"/>
    14811518      </Position22>
    14821519      <Position23>
    1483         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1484         <Caret Line="55" Column="1" TopLine="50"/>
     1520        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1521        <Caret Line="50" Column="1" TopLine="45"/>
    14851522      </Position23>
    14861523      <Position24>
    1487         <Filename Value="Components/CoolWeb/WebServer/UHTTPServerCGI.pas"/>
    1488         <Caret Line="116" Column="34" TopLine="88"/>
     1524        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1525        <Caret Line="39" Column="1" TopLine="32"/>
    14891526      </Position24>
    14901527      <Position25>
    1491         <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
    1492         <Caret Line="161" Column="17" TopLine="146"/>
     1528        <Filename Value="Modules/UMainModule.pas"/>
     1529        <Caret Line="70" Column="3" TopLine="65"/>
    14931530      </Position25>
    14941531      <Position26>
    1495         <Filename Value="Application/UWebObjects.pas"/>
    1496         <Caret Line="183" Column="10" TopLine="178"/>
     1532        <Filename Value="Modules/UMainModule.pas"/>
     1533        <Caret Line="74" Column="22" TopLine="65"/>
    14971534      </Position26>
    14981535      <Position27>
    1499         <Filename Value="Application/UWebObjects.pas"/>
    1500         <Caret Line="43" Column="1" TopLine="22"/>
     1536        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1537        <Caret Line="117" Column="15" TopLine="93"/>
    15011538      </Position27>
    15021539      <Position28>
    1503         <Filename Value="Application/UWebObjects.pas"/>
    1504         <Caret Line="212" Column="45" TopLine="192"/>
     1540        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1541        <Caret Line="285" Column="20" TopLine="267"/>
    15051542      </Position28>
    15061543      <Position29>
    1507         <Filename Value="Application/UWebObjects.pas"/>
    1508         <Caret Line="43" Column="15" TopLine="19"/>
     1544        <Filename Value="Components/CoolWeb/WebServer/UHTTPServer.pas"/>
     1545        <Caret Line="290" Column="46" TopLine="267"/>
    15091546      </Position29>
    1510       <Position30>
    1511         <Filename Value="Components/CoolWeb/Common/UHtmlClasses.pas"/>
    1512         <Caret Line="151" Column="3" TopLine="133"/>
    1513       </Position30>
    15141547    </JumpHistory>
    15151548  </ProjectOptions>
     
    15381571        <StackChecks Value="True"/>
    15391572      </Checks>
    1540       <VerifyObjMethodCallValidity Value="True"/>
    15411573    </CodeGeneration>
    15421574    <Other>
  • trunk/ZdechovNET.lpr

    r66 r68  
    44
    55uses
     6  {$IFDEF UNIX}
     7  cthreads,
     8  {$ENDIF}
    69  UCore, USqlDatabase, SysUtils, Contnrs,
    710  UContactPage, UUser, UHTTPSessionMySQL, UHTTPSessionFile,
     
    3235    //RegisterPage(TAboutPage, AboutPage, '');
    3336    RegisterPage(TUserControlPage, UserControlPage, '');
     37    ServerType := stCGI;
     38    if ServerType = stTCP then begin
     39      THTTPServerTCP(HTTPServer).Socket.Address := MainModule.NetworkAddress;
     40      THTTPServerTCP(HTTPServer).Socket.Port := MainModule.NetworkPort;
     41      THTTPServerTCP(HTTPServer).MaxConnection := MainModule.MaxConnections;
     42    end;
    3443    Run;
    3544  finally
Note: See TracChangeset for help on using the changeset viewer.