Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
tg
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
tg
Commits
ce61adac
Commit
ce61adac
authored
Sep 12, 2014
by
vvaltman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed send_photo to encr chats
parent
302f2822
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
119 additions
and
33 deletions
+119
-33
binlog.c
binlog.c
+70
-0
binlog.h
binlog.h
+2
-0
binlog.tl
binlog.tl
+2
-0
interface.c
interface.c
+0
-5
mtproto-client.c
mtproto-client.c
+1
-0
mtproto-common.c
mtproto-common.c
+1
-1
queries.c
queries.c
+37
-26
structures.c
structures.c
+6
-1
No files found.
binlog.c
View file @
ce61adac
...
@@ -937,6 +937,46 @@ static int fetch_comb_binlog_create_message_media_encr (void *extra) {
...
@@ -937,6 +937,46 @@ static int fetch_comb_binlog_create_message_media_encr (void *extra) {
return
0
;
return
0
;
}
}
static
int
fetch_comb_binlog_create_message_media_encr_pending
(
void
*
extra
)
{
long
long
id
=
fetch_long
();
struct
tgl_message
*
M
=
tgl_message_get
(
id
);
if
(
!
M
)
{
M
=
tglm_message_alloc
(
id
);
}
else
{
assert
(
!
(
M
->
flags
&
FLAG_CREATED
));
}
M
->
flags
|=
FLAG_CREATED
|
FLAG_ENCRYPTED
;
M
->
from_id
=
TGL_MK_USER
(
fetch_int
());
int
t
=
fetch_int
();
M
->
to_id
=
tgl_set_peer_id
(
t
,
fetch_int
());
M
->
date
=
fetch_int
();
int
l
=
prefetch_strlen
();
M
->
message
=
talloc
(
l
+
1
);
memcpy
(
M
->
message
,
fetch_str
(
l
),
l
);
M
->
message
[
l
]
=
0
;
M
->
message_len
=
l
;
tglf_fetch_message_media_encrypted
(
&
M
->
media
);
M
->
unread
=
1
;
M
->
out
=
tgl_get_peer_id
(
M
->
from_id
)
==
tgl_state
.
our_id
;
tglm_message_insert
(
M
);
tglm_message_insert_unsent
(
M
);
M
->
flags
|=
FLAG_PENDING
;
return
0
;
}
static
int
fetch_comb_binlog_create_message_media_encr_sent
(
void
*
extra
)
{
long
long
id
=
fetch_long
();
struct
tgl_message
*
M
=
tgl_message_get
(
id
);
assert
(
M
&&
(
M
->
flags
&
FLAG_CREATED
));
tglf_fetch_encrypted_message_file
(
&
M
->
media
);
tglm_message_remove_unsent
(
M
);
M
->
flags
&=
~
FLAG_PENDING
;
return
0
;
}
static
int
fetch_comb_binlog_create_message_media_fwd
(
void
*
extra
)
{
static
int
fetch_comb_binlog_create_message_media_fwd
(
void
*
extra
)
{
int
id
=
fetch_int
();
int
id
=
fetch_int
();
struct
tgl_message
*
M
=
tgl_message_get
(
id
);
struct
tgl_message
*
M
=
tgl_message_get
(
id
);
...
@@ -1233,6 +1273,8 @@ static void replay_log_event (void) {
...
@@ -1233,6 +1273,8 @@ static void replay_log_event (void) {
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_text_fwd
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_text_fwd
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media_encr
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media_encr
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media_encr_pending
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media_encr_sent
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media_fwd
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_media_fwd
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_service
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_service
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_service_encr
)
FETCH_COMBINATOR_FUNCTION
(
binlog_create_message_service_encr
)
...
@@ -1319,6 +1361,8 @@ void tgl_replay_log (void) {
...
@@ -1319,6 +1361,8 @@ void tgl_replay_log (void) {
close
(
fd
);
close
(
fd
);
}
}
static
int
b_packet_buffer
[
PACKET_BUFFER_SIZE
];
void
tgl_reopen_binlog_for_writing
(
void
)
{
void
tgl_reopen_binlog_for_writing
(
void
)
{
binlog_fd
=
open
(
get_binlog_file_name
(),
O_WRONLY
);
binlog_fd
=
open
(
get_binlog_file_name
(),
O_WRONLY
);
if
(
binlog_fd
<
0
)
{
if
(
binlog_fd
<
0
)
{
...
@@ -1916,6 +1960,32 @@ void bl_do_create_message_media_encr (long long msg_id, int from_id, int to_type
...
@@ -1916,6 +1960,32 @@ void bl_do_create_message_media_encr (long long msg_id, int from_id, int to_type
add_log_event
(
packet_buffer
,
4
*
(
packet_ptr
-
packet_buffer
));
add_log_event
(
packet_buffer
,
4
*
(
packet_ptr
-
packet_buffer
));
}
}
void
bl_do_create_message_media_encr_pending
(
long
long
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
)
{
int
*
s_packet_buffer
=
packet_buffer
;
int
*
s_packet_ptr
=
packet_ptr
;
packet_buffer
=
b_packet_buffer
;
clear_packet
();
out_int
(
CODE_binlog_create_message_media_encr_pending
);
out_long
(
msg_id
);
out_int
(
from_id
);
out_int
(
to_type
);
out_int
(
to_id
);
out_int
(
date
);
out_cstring
(
s
,
l
);
out_ints
(
data
,
len
);
add_log_event
(
packet_buffer
,
4
*
(
packet_ptr
-
packet_buffer
));
packet_buffer
=
s_packet_buffer
;
packet_ptr
=
s_packet_ptr
;
}
void
bl_do_create_message_media_encr_sent
(
long
long
msg_id
,
const
int
*
data
,
int
len
)
{
clear_packet
();
out_int
(
CODE_binlog_create_message_media_encr_sent
);
out_long
(
msg_id
);
out_ints
(
data
,
len
);
add_log_event
(
packet_buffer
,
4
*
(
packet_ptr
-
packet_buffer
));
}
void
bl_do_create_message_media_fwd
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
fwd
,
int
fwd_date
,
int
unread
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
)
{
void
bl_do_create_message_media_fwd
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
fwd
,
int
fwd_date
,
int
unread
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
)
{
clear_packet
();
clear_packet
();
out_int
(
CODE_binlog_create_message_media_fwd
);
out_int
(
CODE_binlog_create_message_media_fwd
);
...
...
binlog.h
View file @
ce61adac
...
@@ -78,6 +78,8 @@ void bl_do_create_message_text_fwd (int msg_id, int from_id, int to_type, int to
...
@@ -78,6 +78,8 @@ void bl_do_create_message_text_fwd (int msg_id, int from_id, int to_type, int to
void
bl_do_create_message_service
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
unread
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_service
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
unread
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_service_fwd
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
fwd
,
int
fwd_date
,
int
unread
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_service_fwd
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
fwd
,
int
fwd_date
,
int
unread
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
unread
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
unread
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media_encr_pending
(
long
long
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media_encr_sent
(
long
long
msg_id
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media_fwd
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
fwd
,
int
fwd_date
,
int
unread
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media_fwd
(
int
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
fwd
,
int
fwd_date
,
int
unread
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_media_encr
(
long
long
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
,
const
int
*
data2
,
int
len2
);
void
bl_do_create_message_media_encr
(
long
long
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
int
l
,
const
char
*
s
,
const
int
*
data
,
int
len
,
const
int
*
data2
,
int
len2
);
void
bl_do_create_message_service_encr
(
long
long
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
const
int
*
data
,
int
len
);
void
bl_do_create_message_service_encr
(
long
long
msg_id
,
int
from_id
,
int
to_type
,
int
to_id
,
int
date
,
const
int
*
data
,
int
len
);
...
...
binlog.tl
View file @
ce61adac
...
@@ -59,6 +59,8 @@ binlog.sendMessageActionEncr id:long from_id:int to_type:int to_id:int date:int
...
@@ -59,6 +59,8 @@ binlog.sendMessageActionEncr id:long from_id:int to_type:int to_id:int date:int
binlog.createMessageTextFwd id:int from_id:int to_type:int to_id:int date:int fwd_from_id:int fwd_date:int unread:int text:string = binlog.Update;
binlog.createMessageTextFwd id:int from_id:int to_type:int to_id:int date:int fwd_from_id:int fwd_date:int unread:int text:string = binlog.Update;
binlog.createMessageMedia id:int from_id:int to_type:int to_id:int date:int unread:int text:string media:MessageMedia = binlog.Update;
binlog.createMessageMedia id:int from_id:int to_type:int to_id:int date:int unread:int text:string media:MessageMedia = binlog.Update;
binlog.createMessageMediaEncr id:long from_id:int to_type:int to_id:int date:int text:string media:DecryptedMessageMedia file:EncryptedFile = binlog.Update;
binlog.createMessageMediaEncr id:long from_id:int to_type:int to_id:int date:int text:string media:DecryptedMessageMedia file:EncryptedFile = binlog.Update;
binlog.createMessageMediaEncrPending id:long from_id:int to_type:int to_id:int date:int text:string media:DecryptedMessageMedia = binlog.Update;
binlog.createMessageMediaEncrSent id:long file:EncryptedFile = binlog.Update;
binlog.createMessageMediaFwd id:int from_id:int to_type:int to_id:int date:int fwd_from_id:int fwd_date:int unread:int text:string media:MessageMedia = binlog.Update;
binlog.createMessageMediaFwd id:int from_id:int to_type:int to_id:int date:int fwd_from_id:int fwd_date:int unread:int text:string media:MessageMedia = binlog.Update;
binlog.createMessageService id:int from_id:int to_type:int to_id:int date:int unread:int action:MessageAction = binlog.Update;
binlog.createMessageService id:int from_id:int to_type:int to_id:int date:int unread:int action:MessageAction = binlog.Update;
binlog.createMessageServiceEncr id:long from_id:int to_type:int to_id:int date:int action:DecryptedMessageAction = binlog.Update;
binlog.createMessageServiceEncr id:long from_id:int to_type:int to_id:int date:int action:DecryptedMessageAction = binlog.Update;
...
...
interface.c
View file @
ce61adac
...
@@ -1894,11 +1894,6 @@ void print_media (struct tgl_message_media *M) {
...
@@ -1894,11 +1894,6 @@ void print_media (struct tgl_message_media *M) {
return
;
return
;
case
tgl_message_media_photo_encr
:
case
tgl_message_media_photo_encr
:
printf
(
"[photo]"
);
printf
(
"[photo]"
);
if
(
M
->
photo
.
caption
&&
strlen
(
M
->
photo
.
caption
))
{
printf
(
"[photo %s]"
,
M
->
photo
.
caption
);
}
else
{
printf
(
"[photo]"
);
}
return
;
return
;
case
tgl_message_media_video_encr
:
case
tgl_message_media_video_encr
:
if
(
M
->
encr_video
.
mime_type
)
{
if
(
M
->
encr_video
.
mime_type
)
{
...
...
mtproto-client.c
View file @
ce61adac
...
@@ -457,6 +457,7 @@ static int check_prime (BIGNUM *p) {
...
@@ -457,6 +457,7 @@ static int check_prime (BIGNUM *p) {
int
tglmp_check_DH_params
(
BIGNUM
*
p
,
int
g
)
{
int
tglmp_check_DH_params
(
BIGNUM
*
p
,
int
g
)
{
if
(
g
<
2
||
g
>
7
)
{
return
-
1
;
}
if
(
g
<
2
||
g
>
7
)
{
return
-
1
;
}
if
(
BN_num_bits
(
p
)
!=
2048
)
{
return
-
1
;
}
BIGNUM
t
;
BIGNUM
t
;
BN_init
(
&
t
);
BN_init
(
&
t
);
...
...
mtproto-common.c
View file @
ce61adac
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
#endif
#endif
static
int
__packet_buffer
[
PACKET_BUFFER_SIZE
];
static
int
__packet_buffer
[
PACKET_BUFFER_SIZE
+
16
];
int
*
tgl_packet_ptr
;
int
*
tgl_packet_ptr
;
int
*
tgl_packet_buffer
=
__packet_buffer
+
16
;
int
*
tgl_packet_buffer
=
__packet_buffer
+
16
;
...
...
queries.c
View file @
ce61adac
...
@@ -1533,17 +1533,18 @@ static int send_file_on_answer (struct query *q UU) {
...
@@ -1533,17 +1533,18 @@ static int send_file_on_answer (struct query *q UU) {
static
int
send_encr_file_on_answer
(
struct
query
*
q
UU
)
{
static
int
send_encr_file_on_answer
(
struct
query
*
q
UU
)
{
assert
(
fetch_int
()
==
(
int
)
CODE_messages_sent_encrypted_file
);
assert
(
fetch_int
()
==
(
int
)
CODE_messages_sent_encrypted_file
);
struct
tgl_message
*
M
=
q
->
extra
;
struct
tgl_message
*
M
=
q
->
extra
;
M
->
date
=
fetch_int
();
//M->date = fetch_int ();
assert
(
fetch_int
()
==
CODE_encrypted_file
);
M
->
media
.
encr_photo
.
id
=
fetch_long
();
M
->
media
.
encr_photo
.
access_hash
=
fetch_long
();
//M->media.encr_photo.size = fetch_int ();
fetch_int
();
fetch_int
();
M
->
media
.
encr_photo
.
dc_id
=
fetch_int
();
int
*
save
=
in_ptr
;
assert
(
fetch_int
()
==
M
->
media
.
encr_photo
.
key_fingerprint
);
assert
(
skip_type_any
(
TYPE_TO_PARAM
(
encrypted_file
))
>=
0
);
//print_message (M);
//print_message (M);
tglm_message_insert
(
M
);
if
(
M
->
flags
&
FLAG_PENDING
)
{
bl_do_create_message_media_encr_sent
(
M
->
id
,
save
,
in_ptr
-
save
);
//bl_do_set_message_sent (M);
bl_do_msg_update
(
M
->
id
);
bl_do_msg_update
(
M
->
id
);
}
if
(
q
->
callback
)
{
if
(
q
->
callback
)
{
((
void
(
*
)(
void
*
,
int
,
struct
tgl_message
*
))
q
->
callback
)(
q
->
callback_extra
,
1
,
M
);
((
void
(
*
)(
void
*
,
int
,
struct
tgl_message
*
))
q
->
callback
)(
q
->
callback_extra
,
1
,
M
);
...
@@ -1715,7 +1716,7 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
...
@@ -1715,7 +1716,7 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
out_long
(
r
);
out_long
(
r
);
tglq_send_query
(
tgl_state
.
DC_working
,
packet_ptr
-
packet_buffer
,
packet_buffer
,
&
send_file_methods
,
0
,
callback
,
callback_extra
);
tglq_send_query
(
tgl_state
.
DC_working
,
packet_ptr
-
packet_buffer
,
packet_buffer
,
&
send_file_methods
,
0
,
callback
,
callback_extra
);
}
else
{
}
else
{
struct
tgl_message
*
M
=
talloc0
(
sizeof
(
*
M
));
//
struct tgl_message *M = talloc0 (sizeof (*M));
out_int
(
CODE_messages_send_encrypted_file
);
out_int
(
CODE_messages_send_encrypted_file
);
out_int
(
CODE_input_encrypted_chat
);
out_int
(
CODE_input_encrypted_chat
);
...
@@ -1731,18 +1732,19 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
...
@@ -1731,18 +1732,19 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
out_long
(
r
);
out_long
(
r
);
out_random
(
15
+
4
*
(
lrand48
()
%
3
));
out_random
(
15
+
4
*
(
lrand48
()
%
3
));
out_string
(
""
);
out_string
(
""
);
int
*
save_ptr
=
packet_ptr
;
if
(
f
->
media_type
==
CODE_input_media_uploaded_photo
)
{
if
(
f
->
media_type
==
CODE_input_media_uploaded_photo
)
{
out_int
(
CODE_decrypted_message_media_photo
);
out_int
(
CODE_decrypted_message_media_photo
);
M
->
media
.
type
=
CODE_decrypted_message_media_photo
;
//
M->media.type = CODE_decrypted_message_media_photo;
}
else
if
(
f
->
media_type
==
CODE_input_media_uploaded_video
)
{
}
else
if
(
f
->
media_type
==
CODE_input_media_uploaded_video
)
{
out_int
(
CODE_decrypted_message_media_video
);
out_int
(
CODE_decrypted_message_media_video
);
M
->
media
.
type
=
CODE_decrypted_message_media_video
;
//
M->media.type = CODE_decrypted_message_media_video;
}
else
if
(
f
->
media_type
==
CODE_input_media_uploaded_audio
)
{
}
else
if
(
f
->
media_type
==
CODE_input_media_uploaded_audio
)
{
out_int
(
CODE_decrypted_message_media_audio
);
out_int
(
CODE_decrypted_message_media_audio
);
M
->
media
.
type
=
CODE_decrypted_message_media_audio
;
//
M->media.type = CODE_decrypted_message_media_audio;
}
else
if
(
f
->
media_type
==
CODE_input_media_uploaded_document
)
{
}
else
if
(
f
->
media_type
==
CODE_input_media_uploaded_document
)
{
out_int
(
CODE_decrypted_message_media_document
);
out_int
(
CODE_decrypted_message_media_document
);
M
->
media
.
type
=
CODE_decrypted_message_media_document
;;
//
M->media.type = CODE_decrypted_message_media_document;;
}
else
{
}
else
{
assert
(
0
);
assert
(
0
);
}
}
...
@@ -1770,6 +1772,11 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
...
@@ -1770,6 +1772,11 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
out_int
(
f
->
size
);
out_int
(
f
->
size
);
out_cstring
((
void
*
)
f
->
key
,
32
);
out_cstring
((
void
*
)
f
->
key
,
32
);
out_cstring
((
void
*
)
f
->
init_iv
,
32
);
out_cstring
((
void
*
)
f
->
init_iv
,
32
);
long
long
msg_id
;
tglt_secure_random
(
&
msg_id
,
8
);
bl_do_create_message_media_encr_pending
(
msg_id
,
tgl_state
.
our_id
,
tgl_get_peer_type
(
f
->
to_id
),
tgl_get_peer_id
(
f
->
to_id
),
time
(
0
),
0
,
0
,
save_ptr
,
packet_ptr
-
save_ptr
);
encr_finish
(
&
P
->
encr_chat
);
encr_finish
(
&
P
->
encr_chat
);
if
(
f
->
size
<
(
16
<<
20
))
{
if
(
f
->
size
<
(
16
<<
20
))
{
out_int
(
CODE_input_encrypted_file_uploaded
);
out_int
(
CODE_input_encrypted_file_uploaded
);
...
@@ -1790,20 +1797,22 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
...
@@ -1790,20 +1797,22 @@ static void send_part (struct send_file *f, void *callback, void *callback_extra
out_int
((
*
(
int
*
)
md5
)
^
(
*
(
int
*
)(
md5
+
4
)));
out_int
((
*
(
int
*
)
md5
)
^
(
*
(
int
*
)(
md5
+
4
)));
tfree_secure
(
f
->
iv
,
32
);
tfree_secure
(
f
->
iv
,
32
);
struct
tgl_message
*
M
=
tgl_message_get
(
msg_id
);
assert
(
M
);
M
->
media
.
encr_photo
.
key
=
f
->
key
;
//
M->media.encr_photo.key = f->key;
M
->
media
.
encr_photo
.
iv
=
f
->
init_iv
;
//
M->media.encr_photo.iv = f->init_iv;
M
->
media
.
encr_photo
.
key_fingerprint
=
(
*
(
int
*
)
md5
)
^
(
*
(
int
*
)(
md5
+
4
));
//
M->media.encr_photo.key_fingerprint = (*(int *)md5) ^ (*(int *)(md5 + 4));
M
->
media
.
encr_photo
.
size
=
f
->
size
;
//
M->media.encr_photo.size = f->size;
M
->
flags
=
FLAG_ENCRYPTED
;
//
M->flags = FLAG_ENCRYPTED;
M
->
from_id
=
TGL_MK_USER
(
tgl_state
.
our_id
);
//
M->from_id = TGL_MK_USER (tgl_state.our_id);
M
->
to_id
=
f
->
to_id
;
//
M->to_id = f->to_id;
M
->
unread
=
1
;
//
M->unread = 1;
M
->
message
=
tstrdup
(
""
);
//
M->message = tstrdup ("");
M
->
out
=
1
;
//
M->out = 1;
M
->
id
=
r
;
//
M->id = r;
M
->
date
=
time
(
0
);
//
M->date = time (0);
tglq_send_query
(
tgl_state
.
DC_working
,
packet_ptr
-
packet_buffer
,
packet_buffer
,
&
send_encr_file_methods
,
M
,
callback
,
callback_extra
);
tglq_send_query
(
tgl_state
.
DC_working
,
packet_ptr
-
packet_buffer
,
packet_buffer
,
&
send_encr_file_methods
,
M
,
callback
,
callback_extra
);
}
}
...
@@ -3004,6 +3013,8 @@ static int get_dh_config_on_answer (struct query *q UU) {
...
@@ -3004,6 +3013,8 @@ static int get_dh_config_on_answer (struct query *q UU) {
ensure_ptr
(
p
);
ensure_ptr
(
p
);
assert
(
tglmp_check_DH_params
(
p
,
a
)
>=
0
);
assert
(
tglmp_check_DH_params
(
p
,
a
)
>=
0
);
BN_free
(
p
);
BN_free
(
p
);
}
else
{
assert
(
tgl_state
.
encr_param_version
);
}
}
int
l
=
prefetch_strlen
();
int
l
=
prefetch_strlen
();
assert
(
l
==
256
);
assert
(
l
==
256
);
...
...
structures.c
View file @
ce61adac
...
@@ -1708,7 +1708,12 @@ static void __send_msg (struct tgl_message *M) {
...
@@ -1708,7 +1708,12 @@ static void __send_msg (struct tgl_message *M) {
vlogprintf
(
E_NOTICE
,
"Resending message...
\n
"
);
vlogprintf
(
E_NOTICE
,
"Resending message...
\n
"
);
//print_message (M);
//print_message (M);
if
(
M
->
media
.
type
!=
tgl_message_media_none
)
{
assert
(
M
->
flags
&
FLAG_ENCRYPTED
);
bl_do_delete_msg
(
M
);
}
else
{
tgl_do_send_msg
(
M
,
0
,
0
);
tgl_do_send_msg
(
M
,
0
,
0
);
}
}
}
void
tglm_send_all_unsent
(
void
)
{
void
tglm_send_all_unsent
(
void
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment