Jump to content

WillH

Members
  • Content Count

    27
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by WillH


  1. I've just tried your code with Indy version: 10.6.2.0. The SSL part works. I made a change for logging but that's it.

    Check that the dlls you have match the bitness of your compiled application. A 64bit application needs 64bit openSSL dlls.

    Otherwise use the latest Indy version or alternate HTTP code such as the ones included in mORMot based on the WinHTTP drivers. At some point tls1.3 will become the minimum and as far as I know Indy does not support it yet.

     

     

    add IdSSLOpenSSLHeaders to your uses clause.

     

    Add this ->

      Memo1.Lines.Add('Indy version: ' + IdHTTP.Version);
      ssl.OnStatusInfoEx := IdSSLIOHandlerSocketOpenSSL1StatusInfoEx ;

    Change this ->

      ssl.SSLOptions.Mode := TidSSLMode.sslmUnassigned;

     

     

    Add this handler ->

     

    procedure TForm2.IdSSLIOHandlerSocketOpenSSL1StatusInfoEx(ASender: TObject;
        const AsslSocket: PSSL; const AWhere, Aret: Integer; const AType, AMsg:
        string);
    begin
      memo1.Lines.Add(Amsg) ;
    end;

    The output I get is

     


    Indy version: 10.6.2.0
    Authorization: Bearer muj_token
    Dropbox-API-Arg: { "autorename": false,"mode": "add","mute": false,"path": "/test.txt","strict_conflict": false}
    Content-Type: application/octet-stream

    before/connect initialization
    before/connect initialization
    SSLv3 write client hello A
    SSLv3 read server hello A
    SSLv3 read server certificate A
    SSLv3 read server key exchange A
    SSLv3 read server done A
    SSLv3 write client key exchange A
    SSLv3 write change cipher spec A
    SSLv3 write finished A
    SSLv3 flush data
    SSLv3 read server session ticket A
    SSLv3 read finished A
    SSL negotiation finished successfully
    SSL negotiation finished successfully
    close notify

     

    Followed by Error HTTP/400 Bad Request.

     

     

     


  2. There was a big discussion about this a while ago.

     

    After a lot of messing about it seems that registration bumps are now done by sales. The rather unclear message seemed to be that sales would try to sell you something but you would get your bump for free if you choose not to buy anything.

     

    Although, despite multiple people asking Atanas Popov for clarification, there wasn't anything clear forthcoming.

     

    Another major mis-step by Emba.

     

    Let us know how you get on with sales.

     

    • Sad 1

  3. 12 hours ago, Darian Miller said:

    Sometimes you have to tell the money people NO.  You always need someone on staff that has the cojonnes or influence to do the right thing versus the least expensive thing.

    I always felt that Nick Hodges had the cojonnes but sadly did not manage to influence the bean counters. It seems that the bean counters find it difficult to place a value on Quality, credibility and trust.

    • Like 1

  4. This looks like a threading issue in FireDAC. When you add a new event listener the event listener unregisters all the events it has and then registers everything again. I've traced it back to uADPhysManager (Yes I have the older source code, but I imagine things are pretty similar in your source)

     

    I think that stopping the listener thread is failing because there is an inbound event.

     

    procedure TADPhysEventAlerter.AbortJob;
    begin
      try
        InternalAbortJob;
        FMsgThread.Active := False;    // Locks here
      except
        // not visible
      end;
    end;

    Just changing your code to use unregister will also trigger the problem.

     

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      FConn.ExecSQL('EXECUTE BLOCK AS BEGIN POST_EVENT ''EVENT_1''; END');
    
      FEvents.Unregister;
    end;

     

    Maybe, if you don't have many events you could try one event alerter instance per event.

     

    I don't get the same error with IBX TIBEvents so maybe you could use that for the event alerts instead.

     

     


  5. 14 hours ago, Bill Meyer said:

    there are many things we can do which undercut the performance of the IDE

    Hi Bill,

      Of course you are correct that the way the product is used will affect performance. However, I think that it's a fair test to use the same project and associated third party components to form an opinion on relative performance between the IDE's.

     

      After turning off live bindings, the 10.2.3 IDE is running better although still very noticeably slower than XE. Mostly, the slowness is in the form designer when looking at relatively complex screens. This appears to be a fairly common complaint about the IDE's since livebindings were introduced. Maybe it is time for me to break up and simplify the affected screens to work with the IDE a bit more.

     

     

     

     

     


  6. I found a similar bug where the Firebird client will lock up if you try to create two connections at the same time in different threads. In my case I could only reproduce it when a local connection was used. I had to change the API call in IBX so that it was wrapped in a critical section.

     

    IBIntf.pas
    
    //Create and destroy the critical section in the initialization and finalization sections.
    ConnLock : TCriticalSection ;
    
    function TDynamicLibrary.isc_attach_database(status_vector: PISC_STATUS;
      db_name_length: Short; db_name: PAnsiChar; db_handle: PISC_DB_HANDLE;
      parm_buffer_length: Short; parm_buffer: PByte): ISC_STATUS;
    begin
      ConnLock.Acquire ;
      try
        Result := Fisc_attach_database(status_vector, db_name_length, db_name,
                    db_handle, parm_buffer_length, parm_buffer);
      finally
        ConnLock.Release ;
      end;
    end;

     

    So, have a look at the API call that is being made to make sure it is thread safe. Wrap your calls in a critical section.

     

    On a similar note. The events may be getting raised in the context of a background thread, So updating the form caption from that event may be the cause of your lock up. Try using PostMessage to pass the event to the main form in a thread safe way. Or use OutputDebugString for the purposes of your test.

     

     


  7. Hi All,

       Thanks for the replies. I'm currently using Delphi XE. It's worked well for me, fairly quick, mostly stable, gets the job done.  Now I have third party component vendors providing features I need but only for newer Delphi versions. XE2 is supported at the moment but I imagine it will be next for the chop. I've tried 10.2.3 which seems OK but it is so slow, especially in the forms designer.

      I'll try the others mentioned in this thread to see if they are any better. At least I won't need to install and try every single version since XE.

     

      It's interesting that most people seem to prefer the very old versions of Delphi and *almost* universally dislike 10.3.1. That is surely something that Embarcadero need to focus on. If their focus is on extracting as much money as possible from existing customers, I would imagine that no new feature (or skin) would beat a stable and responsive IDE.

    • Like 2

  8. Hi Everyone,

      Just wondering which has been the best release of Delphi so far in terms of IDE stability and 32-bit VCL development? (and possibly 64-Bit windows)

     

      Have any been particularly good/bad for you?

     

     

     

     


  9. 16 hours ago, Joseph MItzen said:

    where Embarcadero tried to convince everyone that they never actually made any change. In this case, his clarification is actually a policy reversal and now he's going to tell sales to stop refusing to do the bumps. Then we'll all be told it was never the policy and we just misunderstood.

    Joseph,

       I think you're absolutely right about this. The language used in the replies from support have subtly but significantly changed their tune.

     

    From

    Quote

    Your renewals representative will be able to provide you with the options to renew your support and maintenance. Once your licenses are current on maintenance, we will be happy to help with this registration limit increase.

     

    To

    Quote

    Your renewals representative will be able to assist you with options to renew your support and maintenance, as well as facilitate the necessary registration increases.

     

    I assume that the new version means that customers without an active subscription will have to endure a sales pitch before getting their registration bump. (Although Atanas still won't explicitly say that)

     

    I have no idea why they can't just admit the error, put in place the self service for bumps, and get on with trying to fix bugs and provide new features which actually work. Who knows, people may actually willingly stump up some cash for renewals rather than have to be held to ransom.


  10. Just now, cupwalker said:

    Tried to activate the software one day ago - nothing

    Interesting seeing as Atanas has stated that everyone has received an automatic bump. Seems that may not be accurate after all.

     

    I too wish that DevExpress would support either Lazarus and/or Remobjects Island. It would make a switch from Delphi to one of those a lot easier.

     

    Currently looking at using RemObjects Oxygene, Hydra and Island as a route off of Delphi. The idea being that we can re-do the UI in DevExpress for .Net or Web technologies.

     

     


  11. 6 hours ago, OzTrev said:

    UNTIL I received this

    Hi OzTrev

      When did you receive that? There was a reply on the Embarcadero blog site that indicated that this may have been overturned. However the language used was very tricky and may not mean that at all.

     

      If you got that more than a week or so ago, Please try them again and let us know how it goes.

     

    Blog post here :

      https://community.idera.com/developer-tools/b/blog/posts/from-the-gm-new-updates-and-changes-to-the-registration-bumps-policy


  12. Mike, I completely agree with you. I also have a subscription but the risk that this kind of behaviour adds to my business is not something I'm prepared to just accept.

     

    Given the very poor response by Atanas in his blog post, I'll be looking elsewhere. I wonder how many others will do the same.

     

    https://community.idera.com/developer-tools/b/blog/posts/from-the-gm-new-updates-and-changes-to-the-registration-bumps-policy

     

    It's a shame really because it could so easily have been resolved. Ignoring the fact that it shouldn't have happened in the first place.

     

    • Like 1

  13. 5 minutes ago, FredS said:

     

    No argument there, but at least you can 'unregister' and move without problems, if you crash you can get it up for a fixed fee.


    Checking this ability in the Delphi License Manager this morning showed the mess that is, plus I didn't see a place where it shows how many activations you have left either which means that the only time you find that out is after digging yourself out of a crash situation.


     

      That is true, you can see the remaining activations on the IBExpert site which already makes it much better than Embas offering. However, the unregister process is a manual one involving email. So I have in the past had to wait a day or two over a public holiday for that to come through. I've also been in a situation where machines have taken multiple registrations. Getting that sorted out took a couple of attempts (mainly around convincing the support staff there was a problem.). I didn't know about the fixed fee to get the activation going again, good to know. IBExpert is now being sold as subscription only software so at least we know where we stand with it.

     

      Delphi has always had a terrible solution where it comes to activation. Their web site is a mess and as you say does not give any information as to how many activations you have left. It's like Russian roulette every time you need to re-install for whatever reason.

     

     

    • Like 1

  14. 34 minutes ago, FredS said:

     

    Got that confused with IBExpert which has that feature and a fixed price for reactivation after your subscription elapses..

    IBExpert is another company with a registration procedure that is excessively restrictive to use. It is also inaccurate and takes some time to get the problems sorted out.

     

    That said IBExpert is a superb product that I use every day. So I'll put up with their registration procedure. I always wish they would change it though.

     

    Another excellent product I use a lot is Beyond compare by Scooter Software. They have product quality and their licensing/registration sorted. Just shows that it can be done.


  15. As an aside to this. What happens if Emba goes bust? are we all just locked out of the software?

     

    I have an active subscription but I'm of the opinion that this change makes using Delphi a very risky choice as Emba seem prepared to cut us off from using the software we own.

     

    Why can't we just move an activation from one machine to another without needing to go through the process of phoning in to ask permission?

    • Like 8
×