/TODO (c1d87e72d02403b09acd37ccc74da2ae122f7dcd) (2101 bytes) (mode 100644) (type blob)
== SHOWSTOPPER ==
[ ] Check Conn_enqueue usage in examples/. Must check for -1!
== HIGH PRIORITY ==
[ ] Cache getaddrinfo responses
[ ] Replace Conn_X with Conn_get_socket_X!
== LOW PRIORITY ==
[ ] SCTP
[ ] .error_state -> error_type
[ ] if (.error_state...) -> if (.state == CONN_STATE_ERROR)
[ ] Audit CONN_STATE_EMPTY vs CONN_STATE_FREE
[ ] Add a function to set the maximum number of connections.
[ ] Fix the whole list scanning for expiration, band and closing.
[ ] Add access control
Conn_ac_set_default(C, CONN_AC_DENY) - default deny (or CONN_AC_ALLOW)
Conn_ac_add(C, CONN_AC_ALLOW, "2001::1/64"); - for ipv6
Conn_ac_add(C, CONN_AC_ALLOW, "192.168.0.0/25"); - for ipv4
[ ] 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.
[ ] 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.
=== When we switch to Conn version 2 library ===
[ ] Conn_socket will cann Conn_socket_proto
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
70 |
9964a59b5d89f394cc4250ed6d6ce67a5f0cd196 |
.gitignore |
100644 |
blob |
1945 |
fecf0e7a7e8580485101a179685aedc7e00affbb |
Changelog.pre109 |
100644 |
blob |
29893 |
5906f3415dd54672f79d0f718e9b38ef53dbae09 |
Conn.c |
100644 |
blob |
1414 |
3e0391df9af1d65fa010a31ad42452016d37e6ba |
Conn.h |
100644 |
blob |
726 |
64b1bad93a84f87c3e93fc24ac5341db691ea578 |
Conn.spec.in |
100644 |
blob |
66 |
68138d781ca754b15e14c687da91ee261b2c41f3 |
Conn_config.h.in |
100644 |
blob |
27950 |
c05d5a72906ec0e53a79f919725e5d7cca76e172 |
Conn_engine_core.c |
100644 |
blob |
9009 |
d5ee6e55abd68283f9a0f93b94583e85c5f4593c |
Conn_engine_core.h |
100644 |
blob |
3687 |
8ae607cf9e14a6f9f1d9f17f468294660986e845 |
Conn_engine_epoll.c |
100644 |
blob |
601 |
b7631d5fc5487b502f02679b0d679661f87b4da9 |
Conn_engine_epoll.h |
100644 |
blob |
2677 |
e885b694fc0f55200ee50936966a2e40744ebf9b |
Conn_engine_poll.c |
100644 |
blob |
588 |
b518b20ac383c00b72e96a77a882c6b7ee953f6f |
Conn_engine_poll.h |
100644 |
blob |
30 |
d987fa5df957830331139935d517009e2911b0cf |
INSTALL |
100644 |
blob |
25275 |
92b8903ff3fea7f49ef5c041b67a087bca21c5ec |
LICENSE |
100644 |
blob |
1311 |
3c820df3b36b4bc844c52bc8c7e86f7843b67bb6 |
Makefile.in |
100644 |
blob |
192 |
5b11bdfb23857d8588845465aef993b320596b44 |
README |
100644 |
blob |
2101 |
c1d87e72d02403b09acd37ccc74da2ae122f7dcd |
TODO |
100755 |
blob |
23 |
d33bb6c4ecdce1390ce1db3c79ea3b93e22ea755 |
configure |
040000 |
tree |
- |
d4c9c4a69c5cfa2a84316967185f1661b6817779 |
docs |
100755 |
blob |
10344 |
8acd6afdceefbb056b57e9d09a9943857800df8e |
duilder |
100644 |
blob |
276 |
4163f35b9322fbbf5e9cade154d251b39878c43f |
duilder.conf |
040000 |
tree |
- |
a3188de3517c8c06b8b4d5e64806b5943b9db213 |
examples |
040000 |
tree |
- |
751693d0803f700dd060788cc9383aa24b472267 |
tests |
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