Commit Graph

13 Commits

Author SHA1 Message Date
Ludovic Chenut 26cad2a383
fix: stun and dtls close (#22)
* fix: stun & dtls close

* chore: change the test names & variable names

* fix: add isClosed to DtlsConn

* feat: remove `closeEvent`/`join`/`cleanup` and replace those by `onClose` sequence of proc to be executed on close
2024-08-30 12:19:09 +02:00
Ludovic Chenut d75e328e77
feat: dtls connection using mbedtls (#10)
* feat: dtls connection using mbedtls

* refactor: change according to the stun protocol rework

* chore: rename init proc into new

* docs: adds object field comments

* chore: split dtls.nim into two files & renaming

* chore: remove useless code

* chore: remove TODOs as they were addressed with a Stun refactorization

* fix: oversight on dtls.new

* feat: add dtls test

* chore: added license & used pragma on testdtls

* fix: remove usage of deprecated TrackerCounter

* fix: trackers counter

* fix:
- add windows linking library
- make stun stop asynchronous (causing issue on macos)
- store private key and certificate

* chore: renaming test

* docs: update DtlsConn comment

* fix: remove code duplicate

* chore: update comment

* chore: remove duplication mbedtls initialization code in accept/connect and un-expose mbedtls context

* feat: add exception management to dtls_transport

* fix: check address family before handshake

* fix: exhaustive case

* fix: do not create dtlsConn if the address family is not IP

* chore: remove entropy from MbedTLSCtx

* chore: remove asyncspawn of cleanupdtlsconn

* chore: ctx is no longer public

* test: add a test with more than 2 nodes

* chore: started is now useful

* chore: update Dtls.stop

* chore: removed unecessary todos

* docs: add comments on DtlsConn.read and getters

* feat: add tracker for dtls connection and transport

* chore: privatize local and remote certificate

* style: use nph

* fix: remove laddr from dtls_conn (not used)

* style: sort imports

* chore: clean Dtls.stop

* fix: remote address is no longer exposed

* fix: raddr change oversight

* chore: change `verify` name

* chore: changed `sendFuture: Future[void]` into `dataToSend: seq[byte]`

* chore: avoid sequence copy

* chore: change assert message

---------

Co-authored-by: diegomrsantos <diegomrsantos@gmail.com>
2024-08-13 15:54:03 +02:00
Ludovic Chenut 81b91e32a9
feat: add a proper tracker management (#17)
* feat: add a proper tracker management

* chore: remove newline

* fix: use closeWait instead of close

* chore: replace custom made checkTrackers by chronos checkLeaks

* chore: renamed UdpTransport.stop into close

* chore: remove flakyAsyncTest
2024-07-05 11:55:36 +00:00
Ludovic Chenut 11111e6fc7
chore: rename different object and procedure to be more accurate (#13)
* chore: rename UdpConn into UdpTransport

* chore: stun_attributes.nim comments improvement
2024-06-12 12:19:27 +02:00
Ludovic Chenut 6cda0c8d68
feat: stun protocol & stun connection (#9)
* feat: stun protocol & stun connection

* rename getResponse into getPong and test it

* add Username attribute

* genUfrag procedure

* Add generateRandomSeq to generate a transaction id

* First draft of getPing

* Use UdpPacketInfo tuple

* Change closing debug message

* Add proper exception tracking

* Change StunConn init behavior

* Add a last UdpPacketInfo

* Add comments

* refactor: change connection management

* Add a lot of comments/Finish refactor

* Add copyright headers on test files

* simplify newRng proc for testing

* add exception tracking for stun transport asynchronous proc

* remove ping/pong example building in the ci

* rename getPong test

* remove maximum connections

* Add ICE stun attributes

* Stun rework

* feat: getBindingRequest

* fix oversight & add comments

* Test rework

* Adds continue in stunMessageHandler loop

* remove `doAssert(false)` from Stun.connect()

* Update TODO

* fix comment typo

* fix: test lacking precision

* docs: add StunConn.init() comments

* chore: make teststun more readable

* feat: use withValue instead of getOrDefault in Stun.connect()

* feat: add check if Fingerprint is valid

* refactor: getAttribute and username/password provider

* chore: removes genUfrag, should be in libp2p instead

* chore: remove redundant test

* chore: change warn log to debug

* docs: update getBindingResponse/Request comments

* chore: renames init into new

* fix: compilation warnings

* chore: change closed line to be at the end of the close procedure

* feat: limit queues size
2024-05-24 14:14:30 +02:00
Ludovic Chenut a0f6c777d8
Resetting master 2024-03-08 13:50:59 +01:00
Ludovic Chenut f445c5c47d
add tests/asyncunit & helpers 2024-03-07 17:23:21 +01:00
Ludovic Chenut 7859daac3e
change comments/message test 2024-03-07 16:06:47 +01:00
Ludovic Chenut c677b9e4fa
Fix teststun & add runalltest.nim 2024-03-07 13:25:57 +01:00
Ludovic Chenut fc0267de46
Add nimble test 2024-03-07 12:16:48 +01:00
Tanguy a1aeafc3a3
DataChannel: decoding / encoding 2023-10-05 13:44:10 +02:00
Ludovic Chenut 2521ed9f84
Stun attributes 2023-04-20 16:58:52 +02:00
Ludovic Chenut 2e26deb377
Stun protocol encoding / decoding 2023-04-11 14:31:30 +02:00