Skip to content

Commit

Permalink
@bonmario commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Al-Muhandis committed Aug 9, 2019
1 parent 1e786fd commit fafbe6d
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 3 deletions.
5 changes: 5 additions & 0 deletions contributors.txt
@@ -0,0 +1,5 @@
The following people contributed to this lib:

Renat Suleymanov (Al-muhandis)
Bonmario
Ilya Bukhonin (MstrVLT)
2 changes: 1 addition & 1 deletion fptelegram.lpk
Expand Up @@ -23,7 +23,7 @@
</Linking>
</CompilerOptions>
<Description Value="Telegram API library"/>
<Version Build="13"/>
<Version Build="14"/>
<Files Count="4">
<Item1>
<Filename Value="tgsendertypes.pas"/>
Expand Down
20 changes: 18 additions & 2 deletions tgsendertypes.pas
Expand Up @@ -5,7 +5,9 @@
interface

uses
Classes, SysUtils, fphttpclient, fpjson, tgtypes, ghashmap, ghashset, tgstatlog, eventlog;
Classes, SysUtils, fphttpclient, fpjson, tgtypes, ghashmap, ghashset, tgstatlog, eventlog,
ssockets
;

type
TParseMode = (pmDefault, pmMarkdown, pmHTML);
Expand Down Expand Up @@ -414,6 +416,8 @@ TTelegramSender = class
procedure SetChannelCommandHandlers(const Command: String;
AValue: TCommandEvent);
procedure SetCommandHandlers(const Command: String; AValue: TCommandEvent);
procedure HttpClientGetSocketHandler(Sender: TObject; const UseSSL: Boolean;
out AHandler: TSocketHandler);
function HTTPPostFile(const Method, FileField, FileName: String; AFormData: TStrings): Boolean;
function HTTPPostJSON(const Method: String): Boolean;
function HTTPPostStream(const Method, FileField, FileName: String;
Expand Down Expand Up @@ -620,7 +624,7 @@ function TgBotSendMessage(const AToken: String; chat_id: Int64; const AMessage:
implementation

uses
jsonparser, jsonscanner;
jsonparser, jsonscanner, sslsockets, fpopenssl;
const
// API names constants

Expand Down Expand Up @@ -1735,6 +1739,17 @@ procedure TTelegramSender.SetCommandHandlers(const Command: String;
FCommandHandlers.Items[Command]:=AValue;
end;

procedure TTelegramSender.HttpClientGetSocketHandler(Sender: TObject;
const UseSSL: Boolean; out AHandler: TSocketHandler);
begin
{$IFDEF LINUX}
if UseSSL then begin
AHandler:=TSSLSocketHandler.Create;
TSSLSocketHandler(AHandler).SSLType:=stTLSv1_1; // <--
end;
{$ENDIF}
end;

procedure TTelegramSender.DoReceiveMessageUpdate(AMessage: TTelegramMessageObj);
begin
FCurrentMessage:=AMessage;
Expand Down Expand Up @@ -2068,6 +2083,7 @@ function TTelegramSender.HTTPPostJSON(const Method: String): Boolean;
HTTP.RequestBody:=TStringStream.Create(FRequestBody);
try
HTTP.AddHeader('Content-Type','application/json');
HTTP.OnGetSocketHandler:=@HttpClientGetSocketHandler;
FResponse:=HTTP.Post(FAPIEndPoint+FToken+'/'+Method);
finally
HTTP.RequestBody.Free;
Expand Down

0 comments on commit fafbe6d

Please sign in to comment.