All Activity
This stream auto-updates
- Past hour
-
I cannot fathom why you would want to do that. Regardless of why it's not working (your original question), calling an HTTP Get to the server from which you're running in seems like such a waste of execution time: it has to package a request string, call out to the internet, figure out the address is local, look for a server listening at that address, then send the request to the server. The server, then, has to parse the request, figure out which action will handle the request, and call the appropriate procedure which then packages a response string, sends it back to the caller which finally returns to your calling procedure. Why not just call the procedure you need directly?? You already know what is supposed to happen, which method you want to handle it and what parameters it needs. Maybe I'm missing something but the more I think about it, the more puzzled I am. That's probably for the best. That may be true--IIS may be just as confused about getting a request from itself as I am about the concept! Me too, but I don't think this one needs to be understood--just avoided!
- Today
-
Regression - Delphi 12 - Unable to debug dynamically loaded packages
Anders Melander replied to @AT's topic in Delphi IDE and APIs
They are probably too busy Getting Real Help For Free With Code Reviews, Pull Requests, And Git Commits. đ€Ą -
AI and an HTTP caching bridge
Anders Melander replied to Yaron's topic in Algorithms, Data Structures and Class Design
No. You are wasting your time. -
Regression - Delphi 12 - Unable to debug dynamically loaded packages
Vandrovnik replied to @AT's topic in Delphi IDE and APIs
-
TSslCertTools for generate CSR
Eric Winfly replied to Eric Winfly's topic in ICS - Internet Component Suite
Only use by her to validate the user who try to connect the server, before her return the real Certificat. -
TSslCertTools for generate CSR
Angus Robertson replied to Eric Winfly's topic in ICS - Internet Component Suite
Do those new names end up in the certificate itself, or are they only used for validation? If in the certificate, could you please email a PEM, so I can check we report it correctly. Angus -
TSslCertTools for generate CSR
Eric Winfly replied to Eric Winfly's topic in ICS - Internet Component Suite
Hi added to the source and build package, its work fine now thanks ! For the use of names (GN, SN) i work on project for gouv of Quebec and he ask to put some parameter in this before signing my Cert, i dont think its a standars đ -
I have a need for a very specific feature I'd like to add to Zoom Player, an HTTP caching bridge. The purpose of an HTTP caching bridge is to cache repeated HTTP "GET" queries generated by DirectShow media streaming filters (components) such as LAV Filters when streaming mp4/mkv files from media servers such as PLEX, Emby or Jellyfin. Caching is required as these components treat streaming files the same as local files with repeated seeking to read headers and frame indexes, degrading performance (very slow seeking, long pauses when switching subtitle tracks, etc) and unnecessarily overloading the media server. Since the HTTP caching bridge is a 100% self-contained feature, I thought AI would be well suited to the task. I wrote a very detailed design document and fed it into every AI system I had access to and asked the AI to implement the project goal (a section in the design document). I wrote about my experiences trying to get various AI models to do the job and included the design document at the end of the post: https://www.reddit.com/r/ZoomPlayer/comments/1m0fy46/ai_and_an_http_caching_bridge/ Has anyone managed to get AI to code anything like this level of complexity?
-
It is multi-threaded, All Urls are localhost/127.0.0.1. I use the IDHttp to do a get of the action from within another action. Si I have a header and footer action. Based on the values go in, they are created slightly different based on the root action they are called from. I have turned a lot of it into procedural at this point. I think it actually is an IIS issue at this point, but since I can't debug in IIS, and I don't have time to learn a 3rd party Web server, it was just easier to proceduralize (is that even a word) the calls. I just prefer trying to understand reasons, especially from way smarter people, like most of those here.
-
FMX-Android-D12 Scroll TListbox selected item into view What I've tried (where lb is a TListbox and newindex is the new itemindex): 1. newindex := lb.selected.index; lb.scrollby(0.0,lb.itemheight*newindex) 2. oldindex := lb.ItemIndex; rowheight := lb.Selected.Height; lb.ViewportPosition := PointF(0,rowheight*oldindex) ; 3. lb.ScrollToItem(lb.Selected); Neither of these work. Please advise. Much thanks.
-
shali012 joined the community
-
TSslCertTools for generate CSR
Angus Robertson replied to Eric Winfly's topic in ICS - Internet Component Suite
The PemTool sample does not have edit boxes for surname oi given name, because you are the first to request them. Most personal certificates are issued for email address, not people. I'l like to see an example with names. You should be able to add a couple of lines in TSslCertTools.DoCertReqProps, plus the properties to add them: AddNameEntryByTxt(SubjName, 'GN', MyGN); AddNameEntryByTxt(SubjName, 'SN', MySN); I will do this in the next week or so. Angus -
Try after the add BudSys_DB.FieldDefs[4].CreateField(BudSys_DB); or Private: AmountField : TFloatField; Implementation: AmountField := TFloatField.Create(BudSys_DB); AmountField .FieldName := 'Amount'; AmountField .Calculated := True; AmountField .DataSet := BudSys_DB; AmountField .Name := BudSys_DB.Name + AmountField .FieldName; BudSys_DBï»ż.FieldDefs.Add('Amountï»ż',ftFloat, 0); Destroy: AmountField.Free;
-
TSslCertTools for generate CSR
Kas Ob. replied to Eric Winfly's topic in ICS - Internet Component Suite
I highly recommend using OID instead of NID, they are documented, there is so many internet resources and DB populate them, and most important you can find the needed entry by its OID from any certificate or CSR. In this page there is few lines on how to convert OID in its text formatted syntax into OBJ https://docs.openssl.org/1.0.2/man3/OBJ_nid2obj/#examples then use OBJ instead of NID, as there is the same equivalent APIs for each of them Also important note here, "Set" might not be acting as "Add" and i can't find details about this, but if there is Add then it should be used, and not depending on Set From translated code from C++, this code might work, i say might as i didn't test it, just translated it // Create ASN1_OBJECT for givenName OID 2.5.4.42 objGivenName := OBJ_txt2obj(PAnsiChar(AnsiString('2.5.4.42')), 1); if objGivenName = nil then raise Exception.Create('Failed to create ASN1_OBJECT for givenName(2.5.4.42)'); X509_NAME_add_entry_by_OBJ(name, objGivenName, MBSTRING_ASC, PBYTE(AnsiString('John')), -1, -1, 0); ASN1_OBJECT_free(objGivenName); Now as suggestions for Angus, it might be useful to add generic functions to this, this will be future proof, allowing any non essential entries or exotic objects to be added or enumerated, in other words allow customization in its purest way. It could use NID, Text and OID, implement once and can be used whenever request like this pop then the solution is easy, find the OID (or text) for the entry then add it or read it using the custom entry access givenName = 2.5.4.42 surname = 2.5.4.4 https://oid-base.com/cgi-bin/display?oid=2.5.4.4&submit=Display&action=display https://oid-base.com/cgi-bin/display?oid=2.5.4.42&submit=Display&action=display Using NID is also nice but only if it is already Known and declared in OpenSSL Pascal headers, so it will be limited. -
I'm trying to add a field to an existing file with four fields. BudSys_DB.Active := true; BudSys_DB.FieldDefs.Add('Amount',ftFloat, 0); BudSys_DB.FieldDefs.Count goes up but BudSys_DB.Fields.Count stays at four BudSys_DB.Fields[3+1].AsFloat := amount; Gives: Project BudGen6.exe raised exception class EDatabaseError with message 'List index out of bounds (6). TFields range is 0..3'.
-
TSslCertTools for generate CSR
Eric Winfly replied to Eric Winfly's topic in ICS - Internet Component Suite
I see the only the GetNameEntryByNid(TRUE, NID_givenName) in ListCertDetail but i see nothing about the opposite SetNameEntryByNid(TRUE, NID_givenName, String) example ? I found no Edit box or other related component in the PemTool sample ? Can you copy some code for setting the givenName ï»żand surName this is the only thinks i need for my Cert Req, and yes the calling server return me the Signed Certificate but it ask for these 2 subject items ? Thanks Eric -
TSslCertTools for generate CSR
Angus Robertson replied to Eric Winfly's topic in ICS - Internet Component Suite
You should look at the OverbyteIcsPemtool sample, the 'New Certificate Properties' tab has settings for all the subject items, basic and extended usage, key usage, etc. However, these settings are primarily for server and computer certificates, if you need givenName and surName, I assume you are getting personal certificates from somewhere? Angus -
In the early 2000s, we used MIDAS aka DataSnap to communicate from a Delphi client application with a Delphi server over the Internet. It used TClientDataSet in the client and TDataSetProvider on the server side. The server used the SocketServer DCOM bridge. It worked well, with clients around the globe, connected to a single server. The client application used all kinds of DB-aware controls, e.g. the ExpressQuantumGrid. Client and Server exchanged data packets in a proprietary format, using a "briefcase" model, but from the developer point of view there was just a Datamodule with Datasets.
-
Many VCL applications have been developed over the years with direct database access, which has become increasingly problematic in modern software environments. As a result, developers often feel forced to transition to web-based solutions, such as sending JSON over the internet to abstract away direct database access (e.g., for login functionality). However, this shift presents significant challenges. One major hurdle is the need to create endpoints for the countless SQL queries accumulated over time, while also transforming the rich and responsive VCL GUI into web pages. Although modern frameworks offer solutions for this transition, the process of converting database-driven VCL applications remains highly resource-intensive. These frameworks are particularly effective when building applications from scratch. But for developers who prefer to maintain their existing VCL applications and avoid going fully web-based, the question arises: is there a way to address the database access issue without a complete overhaul? Could a solution exist at the database driver levelâa kind of bridge between the database server and the client driver (e.g., FireDAC)âthat eliminates the need to convert data into formats like JSON and then back into VCL controls or custom DataObjects?
-
Connection Pooling
Stuart Clennett replied to Stuart Clennett's topic in MARS-Curiosity REST Library
I have attached an image which may explain better. This is from the latest MARS Template; there is a ServerConnectionPool (TDataModule) that has a TFDConnection and is auto-created. There is a ServerMainDB TDataModule that contains an FDQuery; this datamodule is created once per request by each endpoint that needs it. I have just noticed that the FDQuery is attached to the TFDConnection at designtime, so maybe that is sufficient? Maybe I have overlooked the obvious. -
You (as far as i know), need always to create (request for) a new FDConnection with each request, each request runs as it's own thread. At what "ServerConnectionPool ï»żdata module" you are referring to ? (can not see somehting like this in the template folder? I have examples of how to use the FDConnection in a normal request/resource if you need that. uses MARS.Core.RequestAndResponse.Interfaces, MARS.Data.FireDAC, ..... TMyResource = class strict private protected // connection can be left away, when referring to MAIN_DB in the .ini [Context, Connection('MyDB', False)] FD: TMARSFireDAC; [Context] FRequest : IMARSRequest; public [Produces(TMediaType.APPLICATION_JSON)] function GetInfo([QueryParam('par1')] const APar1: string; const [QueryParam('par2')] APar2 : integer) : TMyInfo; end; function TMyResource.GetInfo(const APar1: string; const APar2: integer): TMyInfo; var fqry : TFDQuery; begin if not FD.Connection.NewQuery(fqry) then raise Exception.Create('Error bij aanmaken van query'); try fqry.sql.text := 'select * from ...........'; fqry.Open(); while not fqry.Eof do begin fqry.Next; ..... end; finally fqry.Free; end; end;
-
Remy, thanks for your detailed reply. For your first question about rename/move instead of copying: The destination file can be elsewhere and is usually on another drive or even on another computer (network share). Unfortunately, the handling is fixed from the client side, so there's no option to implement an API or REST for copying the file. To understand it better, I placed some debug logging into my (non-production) code. So I can trace what's happening if a client's sending a file: CreatePostStream, CreateSession, SessionStart, CommandOther (once!), DoneWithPostStream, SessionEnd. I see that CommandOther is called once, regardless of the file size, and that's why I placed the copy operation there. Or is it possible to put that into DoneWithPostStream? However, I'll try to review the CopyFrom (as you suggested) and I'll try to use a TBufferedFileStream for those file operations. Maybe there's a way to improve handling by optimizing components and transfer, so I'm able to transfer larger files (even if not ANY size). I'll be back with results soon. TIA Michael
-
Used it between 2005 and around 2010 with Delphi 7 (and maybe 2009). If I remember correctly, it worked well.
-
Hshsh joined the community
-
Set font size automatically depending on display size
Stewag replied to stewag64's topic in Cross-platform
"Maxwidth" will take of course a variable, such as button1.width, not a number. -
D2Bridge delivers a true âclick-to-webâ experience for Delphi: just recompile, run, and open the browserâno need to change language, switch IDE, or refactor your business layers. For teams that need to put a VCL system online quickly (whether intranet or SaaS), it shrinks months of migration work down to a few days of fine-tuning. If your goal is a smooth transition, minimal rework, and full continuity of Delphi expertise, D2Bridge is currently one of the most straightforward solutions available.
- Yesterday
-
The documentation claim that the new API (since Delphi 11) allows access to the compiler messages. I am working on this... but slowly as the weekend is gone... đ > well, tested on few old IDEs, up to XE8, if that will help then i can search for that fun project and try to adjust it for you. That would be interesting to see since I will have to make it work also for users that do not have the new OTA API (Delphi 11) Thanks đ