catalinux / Conn (public) (License: LGPLv2) (since 2016-03-01) (hash sha1)
Net library for easy building ipv4/ipv6 network daemons/clients

/TODO (08635341ecd426e7fb1cfb0e83c72c1e00dec586) (1399 bytes) (mode 100644) (type blob)

== SHOWSTOPPER ==

== LOW PRIORITY ==

[ ] A la redir stuff

[ ] Bridge 2 connections together for proxy stuff.
[ ] Check PACKET: can we send with "send" without knowing the MAC?
[ ] UDP
[ ] Ce se intimpla daca se ajunge la ~ sfirsitul buffer-ului si nu pot inca sa
	procesez datele?
[ ] Queue for delete/trytoconnect/etc.

Performance:
[ ]	Take care for /proc/net/netstat
[ ]	/proc/sys/net/ipv4/tcp_mem
	Now (512M): 49152 65536 98304
	Now (256M): 24576 32768 49152 - 55 conns/sec

	Test with: 80000 120000 240000 - 92 conns/sec
	Test with 160000 240000 480000 - 96 conns/sec

	After:
		echo "16000 64000 512000" > tcp_[rw]mem - 96

	After echo 1 > /proc/sys/net/ipv4/tcp_low_latency - 156 conns/sec

Pentru a reduce numarul de conexiuni in TIME-WAIT:
	echo 200 > /proc/sys/net/ipv4/tcp_max_tw_buckets

[ ] Add loadbalancing and failover in the base code.
[ ] Automaticaly put \0 at the end of receive data.
[ ] Add the possibility to wait for an char/string before calling recv callback
[ ] Change socket buffer accordingly with user settings to minimize
	needed memory.

[ ] Dump how many memory is in use vor various parts of the internal data.
[ ] Switch to enum for easy debugging.
[ ] Do not mix slot and id and fd in examples.
[ ] Test suite
[ ] Free memory when the number of connections is going down.
[ ] Bandwidth part should have a separate pointer, to not load too much Conn structure.


Mode Type Size Ref File
100644 blob 65 762bb463799a6ea2b172e34fda93fc0b74abc3e2 .gitignore
100644 blob 1945 fecf0e7a7e8580485101a179685aedc7e00affbb Changelog.pre109
100644 blob 25232 05261cdc081cd53385ade6426c059fe8055177cc Conn.c
100644 blob 710 677f5d80411be8b49a15047207f7581c1f25dc6c Conn.h
100644 blob 726 64b1bad93a84f87c3e93fc24ac5341db691ea578 Conn.spec.in
100644 blob 66 68138d781ca754b15e14c687da91ee261b2c41f3 Conn_config.h.in
100644 blob 18726 a3891b4633ffa07602f6d40f29dc53ed36b113be Conn_engine_core.c
100644 blob 7810 6923c7805b7e7d6786201219d89be08126b91bdc Conn_engine_core.h
100644 blob 3379 0bf0866c967ee9a20dc0150a20d59a43a3cb8017 Conn_engine_epoll.c
100644 blob 602 b648aaf1ad3c79ac5b6f425989aa5fee9a0d9f30 Conn_engine_epoll.h
100644 blob 2589 264b9b69fcb9dbda1c562316594208c753e4bacd Conn_engine_poll.c
100644 blob 589 f897f7d70dd5b17256cb51dce4637f0a8cf6291d Conn_engine_poll.h
100644 blob 30 d987fa5df957830331139935d517009e2911b0cf INSTALL
100644 blob 25275 92b8903ff3fea7f49ef5c041b67a087bca21c5ec LICENSE
100644 blob 1255 976d5d795aae2df1b265bb7bb19f9c1761db98e3 Makefile.in
100644 blob 192 5b11bdfb23857d8588845465aef993b320596b44 README
100644 blob 1399 08635341ecd426e7fb1cfb0e83c72c1e00dec586 TODO
100755 blob 23 d33bb6c4ecdce1390ce1db3c79ea3b93e22ea755 configure
040000 tree - d4c9c4a69c5cfa2a84316967185f1661b6817779 docs
100755 blob 9919 c725a3c2d63619ef838cad8255b99935bbc81871 duilder
100644 blob 276 658123039aec67bc2d07105ad1a7ecd1ebd261fe duilder.conf
040000 tree - aacc31d4a94c805c1444dabe0d103b6008a7659f examples
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/catalinux/Conn

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/Conn

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/Conn

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main