Commit Graph

115 Commits

Author SHA1 Message Date
eichhornchen c4e03ed427 Implemented the fourth phase of neighbour management (the type of addresses sometimes changes in the cide, this should be addressed, there also remains a lot of debugging printing) 2020-12-28 11:48:44 +01:00
eichhornchen b7a495eb11 Implemented the first three phases of neighbour management (warning: for testing purposes, the delays before any action have been reduced) 2020-12-27 21:31:34 +01:00
eichhornchen 806287f834 Added construct functions to all TLVs that did not have one. 2020-12-25 21:22:52 +01:00
eichhornchen e4797b745a Completed the handle function for the Hello, Neighbour and GoAway 2020-12-24 13:07:24 +01:00
Yohann D'ANELLO 61ab96abdc
Don't duplicate messages when sending multiple TLVs 2020-12-23 23:59:09 +01:00
Yohann D'ANELLO 597dd658f4
Lock during refresh in order to manage concurrency, fixes #5 2020-12-23 23:51:16 +01:00
Yohann D'ANELLO 39b4157836
Fix acknowledge 2020-12-23 23:10:57 +01:00
Yohann D'ANELLO 901d4aad05
Acknowledge Data TLVs
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:04 +01:00
Yohann D'ANELLO e1f0d54ac8
Use a random squirrel id and an incremental nonce
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:04 +01:00
Yohann D'ANELLO ebd6c18032
Ignore duplicate messages
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:04 +01:00
Yohann D'ANELLO 17ca4d105f
Use screen.get_wch() rather than screen.getkey() to have better support of UTF-8
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:03 +01:00
Yohann D'ANELLO e44998028d
Don't add stars to mark a text as bold or italic if non-markdown mode
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:03 +01:00
Yohann D'ANELLO 9f070f594b
Better nickname parsing, warn other clients when they does not provide a parsable nickname
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:02 +01:00
Yohann D'ANELLO e37c43b78d
Scroll horizontally on the input line for long messages
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:02 +01:00
Yohann D'ANELLO dd4f839fad
Long messages are wrapped in the history to avoid crashes
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:02 +01:00
Yohann D'ANELLO 7a25d24ba3
Ensure that a DataTLV is not too long
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:01 +01:00
Yohann D'ANELLO b96ff488e7
If the total packet size is larger than 1024, then it is splitted into subpackets
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:01 +01:00
Yohann D'ANELLO bda4860aca
Convert host to network byte order if necessary
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:01 +01:00
Yohann D'ANELLO 833c56755a
Some imports were missing
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:36:00 +01:00
eichhornchen 0c4ef9da5a
Split the file into more readable-sized files 2020-12-21 16:36:00 +01:00
Yohann D'ANELLO 63407461fe
Python 3.7 does not support continue in a finally block
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:59 +01:00
Yohann D'ANELLO 38cea234bb
Make the emoji lib optional
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:59 +01:00
Yohann D'ANELLO 3d444f57f0
Adapt the byte order to the system configuration
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:59 +01:00
Yohann D'ANELLO 00e24d74ee
Cut the main loop into smaller functions to have more modularity
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:58 +01:00
Yohann D'ANELLO e8fa0ece22
More abstraction on packet building
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:58 +01:00
Yohann D'ANELLO 592cbc3792
Add basic implementations for all TLVs
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:57 +01:00
Yohann D'ANELLO 8a066bb340
Handle warnings (receive only)
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:57 +01:00
Yohann D'ANELLO f1e04b1dc8
Properly handle TLVs
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:57 +01:00
Yohann D'ANELLO eeff80a85f
Add add_system_message function
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:56 +01:00
Yohann D'ANELLO 2630137019
In no-emoji mode, don't display the emoji menu
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:56 +01:00
Yohann D'ANELLO 9fcc0c30a7
The emoji selection is working
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:55 +01:00
Yohann D'ANELLO 5a212750e6
Don't display too complex emojis
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:55 +01:00
Yohann D'ANELLO 90918ddd71
Add emoji selector
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:54 +01:00
Yohann D'ANELLO 2f752592a1
Scroll in the history with up/down arrows and page up/page down
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:54 +01:00
Yohann D'ANELLO f5baea585e
We can navigate in order to edit our message
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:54 +01:00
Yohann D'ANELLO a21b0aa652
Manage backspace key
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:53 +01:00
Yohann D'ANELLO 639ad2b3bd
Argument parsing test got broken
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:53 +01:00
Yohann D'ANELLO 504811a32c
Don't send an empty message
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:52 +01:00
Yohann D'ANELLO 39016f6980
Screen is resizable
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:52 +01:00
Yohann D'ANELLO ce61532f35
Markdown-formatting and emojis can be disabled with a CLI
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:51 +01:00
Yohann D'ANELLO 9835fff1f9
Emojize texts
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:51 +01:00
Yohann D'ANELLO b007f4fce5
Text can be striked
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:50 +01:00
Yohann D'ANELLO fce8e01a5b
Format bold, italic, underline text
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:50 +01:00
Yohann D'ANELLO a1b93e851e
The nickname of the current user is colored
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:50 +01:00
Yohann D'ANELLO dfd2d319a8
Add text colors
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:49 +01:00
Yohann D'ANELLO 04f31a1159
Better terminal refresh
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:49 +01:00
Yohann D'ANELLO c609ca998a
Uses curses to have a proper terminal UI
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:48 +01:00
Yohann D'ANELLO a28975c895
Clients can communicate together (without any innondation)
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:48 +01:00
Yohann D'ANELLO 9561912ac6
A packet can have multiple TLVs
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:47 +01:00
Yohann D'ANELLO a796bed259
Receive packets in a dedicated thread, that is called "worm"
Signed-off-by: Yohann D'ANELLO <ynerant@crans.org>
2020-12-21 16:35:47 +01:00