catalinux / Conn (public) (License: LGPLv2) (since 2016-03-01) (hash sha1)
Net library for easy building ipv4/ipv6 network daemons/clients
List of commits:
Subject Hash Author Date (UTC)
Cosmetic logs. 937e40b54fabf19d7ed2102c104585bea0181634 Catalin(ux) M. BOIE 2010-06-07 17:22:25
Export Conn_poll_status. 8d6e2e96bd8e7a34a239533edb7484d78de69995 Catalin(ux) M. BOIE 2010-06-07 17:21:57
Bump up the version to 1.0.31. 4a307965c1f3b1449e98c7487a8e98538d237a23 Catalin(ux) M. BOIE 2010-05-30 19:22:27
On accept() set IN+OUT flags to speed up the sending (skip an epoll_wait). 843d55ea6c8360f4f435288cd68183029e4c06e4 Catalin(ux) M. BOIE 2010-05-06 17:10:14
Use accept4 to skip an extra fcntl call! 3eda4a8ac828035e4205dbe13e60fa39b6d8b2c6 Catalin(ux) M. BOIE 2010-05-06 17:09:54
If the socket is in closing phase, do not change events. 57e97028a524ab257bc8216c5a2da7381cc0d050 Catalin(ux) M. BOIE 2010-05-06 17:02:27
Avoid doing epoll_ctl using a cache. 9bc66cd209921998195b25c2f296fd0516a1ddbb Catalin(ux) M. BOIE 2010-05-06 16:53:13
Do not call gerpeername and getsockname at every accept/connect. Do it only when needed. d2505dbca77358b6ed67394e09904b525ea517e6 Catalin(ux) M. BOIE 2010-05-06 16:38:40
Simplified setting NONBLOCK in Conn_setnonblock. 18d93d4daf5182e2c2749be05f7bbd43bb18bb18 Catalin(ux) M. BOIE 2010-05-06 16:13:34
strstr should not use case sensitive when searching for \n. 50658544213ff74d0e03625c5e3fae0eadba73ad Catalin(ux) M. BOIE 2010-05-06 16:11:06
Grow receiving buffer with Conn_default_ibuf instead of 0! Stupid! f663a98fc5db5f64a4ed7bf9a37ae5a1a708ac3c Catalin(ux) M. BOIE 2010-05-06 16:10:13
Use fd -1 to signal that the socket is closed. 66c44cbeb5672fae1bea46260adbae06a3562d88 Catalin(ux) M. BOIE 2010-05-06 16:08:59
Better error logging in xbind example. dac03d74521e751de9d900ea115ad2fbd2deba6e Catalin(ux) M. BOIE 2010-02-16 20:22:05
Fixed some stupid choices regarding storage type for the output of snprintf. 3cddc7934c4fc2640e4a60d408e98c45acef48c9 Catalin(ux) M. BOIE 2010-02-05 00:12:13
First round of memory status. 9e267dc05ec2c0b1e50288a6d9a5db5d3677e82e Catalin(ux) M. BOIE 2010-02-04 23:46:48
Do not overwrite Conn_error in Conn_free_intern. 380c378dd92e7a797f0dfec99bed7ce77034933c Catalin(ux) M. BOIE 2010-02-04 23:31:50
No need to remove fd from epoll just before closing it. bf7e91a441314a37f5f8a2430645c913b953499f Catalin(ux) M. BOIE 2010-02-04 23:17:05
Log status at the end for xbind example. 2caa2d8a3dc509e91235fd23c396061931ae1ef8 Catalin(ux) M. BOIE 2010-02-04 23:11:39
Log also fd in Conn_free_intern. 2e12c2ed0b4c39341ec3da3c6fc52d32f4a351eb Catalin(ux) M. BOIE 2010-02-04 23:11:09
In shutdown, close the file descriptors. 8bf16a0b5413d8f99cb466b52efcbd12318e958d Catalin(ux) M. BOIE 2010-01-27 18:51:36
Commit 937e40b54fabf19d7ed2102c104585bea0181634 - Cosmetic logs.
Signed-off-by: Catalin(ux) M. BOIE <catab@embedromix.ro>
Author: Catalin(ux) M. BOIE
Author date (UTC): 2010-06-07 17:22
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2010-06-11 09:04
Parent(s): 8d6e2e96bd8e7a34a239533edb7484d78de69995
Signing key:
Tree: 605a8675590155bf960b341ab9d682f7bfdc443f
File Lines added Lines deleted
Conn.c 4 4
File Conn.c changed (mode: 100644) (index c99f30f..910db52)
... ... static void Conn_recv_cb_i(const unsigned int slot)
1148 1148 int r, xerrno; int r, xerrno;
1149 1149 char *dump; char *dump;
1150 1150
1151 Log(10, "Conn_recv_cb_i slot=%u, id=%llu, head=%u, tail=%u, size=%u...\n",
1151 Log(10, "Conn_recv_cb_i: slot=%u, id=%llu, head=%u, tail=%u, size=%u...\n",
1152 1152 slot, Conns[slot].id, Conns[slot].ibuf_head, Conns[slot].ibuf_tail, Conns[slot].ibuf_size); slot, Conns[slot].id, Conns[slot].ibuf_head, Conns[slot].ibuf_tail, Conns[slot].ibuf_size);
1153 1153
1154 1154 if (Conns[slot].ibuf_tail == Conns[slot].ibuf_size) { if (Conns[slot].ibuf_tail == Conns[slot].ibuf_size) {
1155 1155 r = Conn_try_expand_buf(slot, 1, Conn_default_ibuf); r = Conn_try_expand_buf(slot, 1, Conn_default_ibuf);
1156 1156 if (r != 0) { if (r != 0) {
1157 Log(1, "MEM: Cannot expand ibuf!\n");
1157 Log(1, "\tMEM: Cannot expand ibuf!\n");
1158 1158 return; return;
1159 1159 } }
1160 1160 } }
 
... ... static void Conn_recv_cb_i(const unsigned int slot)
1193 1193 else if (Conn_data_cb) else if (Conn_data_cb)
1194 1194 Conn_data_cb(&Conns[slot]); Conn_data_cb(&Conns[slot]);
1195 1195 } else if (n == 0) { } else if (n == 0) {
1196 Log(10, "Remote close sending side (slot=%u, id=%llu)\n",
1196 Log(10, "\tRemote closed sending side (slot=%u, id=%llu)\n",
1197 1197 slot, Conns[slot].id); slot, Conns[slot].id);
1198 1198 Conns[slot].error_state = CONN_ERROR_HANGUP; Conns[slot].error_state = CONN_ERROR_HANGUP;
1199 1199 } else { } else {
1200 Log(4, "Error in recv (slot=%u, id=%llu) [%s]\n",
1200 Log(4, "\tError in recv (slot=%u, id=%llu) [%s]\n",
1201 1201 slot, Conns[slot].id, strerror(errno)); slot, Conns[slot].id, strerror(errno));
1202 1202 Conns[slot].error_state = CONN_ERROR_RECV; Conns[slot].error_state = CONN_ERROR_RECV;
1203 1203 Conns[slot].xerrno = xerrno; Conns[slot].xerrno = xerrno;
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