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)
Splited reporting of error types. 2d28a3be0ebb1f5e3f548d2523ac591af7dee3b9 Catalin(ux) M. BOIE 2009-08-31 20:08:54
Conn_commit will return error, so, do not call error callback. c97f8be6cfd55c32d78e62a30375d7c014dc0e0a Catalin(ux) M. BOIE 2009-08-31 20:08:17
Cosmetic changes. 54a9e723c3a958e69f491b55df83f96b6814af44 Catalin(ux) M. BOIE 2009-08-31 20:07:51
Raised default listen para to 4096 from 128. somaxconn still has prio. af39935492f39786879ea6ced9f7dfe929c4879d Catalin(ux) M. BOIE 2009-08-31 19:56:36
Store in time_open the accept timestamp so Conn_lifetime will work on srv side. 0522d638872644d7bd6490027a7ae99b1fb4b16f Catalin(ux) M. BOIE 2009-08-31 19:55:44
Improved blackhole examples. 128f393aba2b07c4aa0e41d962a8239dffc3cc10 Catalin(ux) M. BOIE 2009-08-31 17:41:30
More entries to .gitignore. e1d71bcf46a9b61a4aa4e17b857ff9035d7fb6c7 Catalin(ux) M. BOIE 2009-08-31 17:39:45
Tweaked a little the debug level for some messages. 1a27a1acf2ede62fb02b074f232badeb847bfcb8 Catalin(ux) M. BOIE 2009-08-31 17:39:21
Added Conn_lifetime (returns the time in ms between connected state and now). 4e3f1aaabc21d4cbdac26e42612ebd0298c8d86e Catalin(ux) M. BOIE 2009-08-31 17:22:37
Added Conn_sys that logs some system variables related to network perf. af960f317b8ca9a8f78fe44e80ddbdb6a9483e6f Catalin(ux) M. BOIE 2009-08-31 16:36:00
Better output flags. d57a98c2b158aeb30530c2e5188977a40336a360 Catalin(ux) M. BOIE 2009-08-25 20:37:55
Improved examples. 75439293c1d067327e606d72ec6290b43110bf24 Catalin(ux) M. BOIE 2009-08-25 20:37:29
Removed line1.c because duplicates code. 1119059afacde8d0b7b7dab77850dd6b71684190 Catalin(ux) M. BOIE 2009-08-25 20:11:52
Removed *.run becasue we have a generic run script. 007083cd9d1abefe4dd73e65c9026a2607fbcd4e Catalin(ux) M. BOIE 2009-08-25 20:09:00
Removed bind_s example because blackhole_s will take place. b9b06d98f00413b5a5df9d7bc9b3bd05b5536f28 Catalin(ux) M. BOIE 2009-08-25 20:07:38
Added Conn_set_address helper. 1b6e7e8a294ac88aa966e4e43bb77a4fdff0ca5a Catalin(ux) M. BOIE 2009-08-25 19:21:00
Fixed storing of local address (do not overwrite remote address). d431edba6699d1363e4d616aa6f96588272188b0 Catalin(ux) M. BOIE 2009-08-25 18:37:55
Added Conn_stop to eleganly stop Conn system. 4ca191771c5c119e9755a5af3158fabe43ddf5f2 Catalin(ux) M. BOIE 2009-08-25 18:30:32
Replaced Conn_protocol with Conn_get_socket_protocol. a1cbc5c612d82e6d1341524c67fe249648c81806 Catalin(ux) M. BOIE 2009-08-25 18:16:45
Compressed a little the POLL flags. 47b5dce395694c18c973e3ce6ba9a71c690a41bc Catalin(ux) M. BOIE 2009-08-25 18:16:16
Commit 2d28a3be0ebb1f5e3f548d2523ac591af7dee3b9 - Splited reporting of error types.
Signed-off-by: Catalin(ux) M. BOIE <catab@embedromix.ro>
Author: Catalin(ux) M. BOIE
Author date (UTC): 2009-08-31 20:08
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2009-09-02 15:42
Parent(s): c97f8be6cfd55c32d78e62a30375d7c014dc0e0a
Signing key:
Tree: 0a8cb69f1873ac59c9e6502ef4fd2957de6a27f8
File Lines added Lines deleted
examples/blackhole_c.c 22 16
File examples/blackhole_c.c changed (mode: 100644) (index 5263dea..306c0b4)
7 7 #include <Conn.h> #include <Conn.h>
8 8
9 9 /* Global variables */ /* Global variables */
10 static unsigned short debug = 9;
11 static unsigned int ipv4conns = 1000, ipv6conns = 0;
10 static unsigned short debug = 11;
11 static unsigned int ipv4conns = 0, ipv6conns = 2;
12 12 static int port = 9000; static int port = 9000;
13 static unsigned int buf_size = 4096 * 10;
13 static unsigned int buf_size = 4096 * 1;
14 14
15 15 static unsigned int ends = 0; static unsigned int ends = 0;
16 16 static unsigned char *buf; static unsigned char *buf;
17 static unsigned long long errors = 0;
17 static unsigned long long alloc_errors = 0;
18 static unsigned long long commit_errors = 0;
19 static unsigned long long enqueue_errors = 0;
20 static unsigned long long conn_errors = 0;
18 21 static unsigned long long bytes = 0; static unsigned long long bytes = 0;
19 22 static unsigned long long latency = 0; static unsigned long long latency = 0;
20 23
 
... ... static void c_connected(struct Conn *C)
27 30 if (amount == -1) { if (amount == -1) {
28 31 printf("Cannot enqueue whole buffer (%d/%d)!\n", printf("Cannot enqueue whole buffer (%d/%d)!\n",
29 32 amount, buf_size); amount, buf_size);
30 errors++;
33 enqueue_errors++;
31 34 } else { } else {
32 35 bytes += amount; bytes += amount;
33 36 } }
 
... ... static void c_error(struct Conn *C)
38 41 { {
39 42 printf("%s id=%llu [%s]\n", printf("%s id=%llu [%s]\n",
40 43 __FUNCTION__, Conn_getid(C), Conn_strerror()); __FUNCTION__, Conn_getid(C), Conn_strerror());
41 errors++;
44 conn_errors++;
42 45 } }
43 46
44 47 static void c_close(struct Conn *C) static void c_close(struct Conn *C)
 
... ... int main(void)
92 95 if (!C) { if (!C) {
93 96 printf("Error alloc Conn struct [%s]!\n", printf("Error alloc Conn struct [%s]!\n",
94 97 Conn_strerror()); Conn_strerror());
95 errors++;
98 alloc_errors++;
96 99 } else { } else {
97 100 Conn_set_socket_domain(C, PF_INET); Conn_set_socket_domain(C, PF_INET);
98 101 Conn_set_socket_type(C, SOCK_STREAM); Conn_set_socket_type(C, SOCK_STREAM);
 
... ... int main(void)
102 105 if (ret != 0) { if (ret != 0) {
103 106 printf("Error commiting [%s]!\n", printf("Error commiting [%s]!\n",
104 107 Conn_strerror()); Conn_strerror());
105 errors++;
108 commit_errors++;
106 109 } }
107 110 } }
108 111 } }
 
... ... int main(void)
113 116 if (!C) { if (!C) {
114 117 printf("Error alloc Conn struct [%s]!\n", printf("Error alloc Conn struct [%s]!\n",
115 118 Conn_strerror()); Conn_strerror());
116 errors++;
119 alloc_errors++;
117 120 } else { } else {
118 121 Conn_set_socket_domain(C, PF_INET6); Conn_set_socket_domain(C, PF_INET6);
119 122 Conn_set_socket_type(C, SOCK_STREAM); Conn_set_socket_type(C, SOCK_STREAM);
 
... ... int main(void)
123 126 if (ret != 0) { if (ret != 0) {
124 127 printf("Error commiting [%s]!\n", printf("Error commiting [%s]!\n",
125 128 Conn_strerror()); Conn_strerror());
126 errors++;
129 commit_errors++;
127 130 } }
128 131 } }
129 132 } }
 
... ... int main(void)
136 139 break; break;
137 140 } else if (ret == 0) } else if (ret == 0)
138 141 break; break;
139 printf("%d event(s), %llu error(s).\n",
140 ret, errors);
142 printf("%d event(s), Conn_no=%u.\n",
143 ret, Conn_no);
141 144 } }
142 145
143 146 free(buf); free(buf);
 
... ... int main(void)
147 150 printf("\n"); printf("\n");
148 151
149 152 elap = 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec; elap = 1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec;
150 printf("Finish in %d.%06d. ipv4conns=%d. ipv6conns=%d. Total=%d. ends=%d"
151 " Conns per sec = %d, errors = %llu, bytes=%llu"
152 " latency=%llums"
153 printf("Finish in %d.%06d ipv4conns=%d ipv6conns=%d total=%d ends=%d"
154 " Conns per sec=%d\n"
155 "alloc_errors=%llu commit_errors=%llu"
156 " conn_errors=%llu enqueue_errors=%llu\n"
157 "bytes=%llu latency=%llums"
153 158 "\n", "\n",
154 159 elap / 1000000, elap % 1000000, elap / 1000000, elap % 1000000,
155 160 ipv4conns, ipv6conns, ipv4conns + ipv6conns, ipv4conns, ipv6conns, ipv4conns + ipv6conns,
156 161 ends, (ipv4conns + ipv6conns) / (elap / 1000000 + 1), ends, (ipv4conns + ipv6conns) / (elap / 1000000 + 1),
157 errors, bytes, latency);
162 alloc_errors, commit_errors, conn_errors, enqueue_errors,
163 bytes, latency);
158 164
159 165 Conn_shutdown(); Conn_shutdown();
160 166
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