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)
Improved status output. 1ff597059bbb208b56ad18bf8324fae5b63950a2 Catalin(ux) M. BOIE 2009-08-25 17:53:44
Conn_type_* becomes CONN_TYPE_*. b284a20cc5430042cc662edc4d121c7f18cb3569 Catalin(ux) M. BOIE 2009-08-25 17:52:51
Improved status logging. 54fea00d8f16127244fd15b209c24f606adb20b3 Catalin(ux) M. BOIE 2009-08-25 17:33:14
Added Conn_strcasestr for case insensitive search in buffer. ca14b37b2a1f23887ad12fed729a3dd0ff253443 Catalin(ux) M. BOIE 2009-08-24 17:18:24
Improved ntime example. b63de9b82ffab1c0d759571a40f1d72f9b8df927 Catalin(ux) M. BOIE 2009-08-24 17:09:21
Removed unused includes. 8af81a4c311caa7d738000a5208d01d7620d1040 Catalin(ux) M. BOIE 2009-08-21 18:57:33
Improved blackhole example. 2fd7ff181a412f4ba060b0e89b97acdf89a8fb88 Catalin(ux) M. BOIE 2009-08-21 18:03:22
Fixed connections to outside. Still, it is a little mess there. 417ccd4a48508a810377676658d51c5103168472 Catalin(ux) M. BOIE 2009-08-21 17:42:37
addr and bind_addr are not pointers! Corrected them. e1deeb765500ee079802c2cd6543f9c9496d8f9b Catalin(ux) M. BOIE 2009-08-21 16:49:24
Exported _alloc and _commit functions. 9a3159e89eff020cfb75b9eec49a45a637a6da57 Catalin(ux) M. BOIE 2009-08-21 16:39:27
Added blackhole example. 8a7ac49b018ad65ba386f8a50725745127b4cbd2 Catalin(ux) M. BOIE 2009-08-21 15:54:55
TODO in/out. fdcfbf9e18ed5fbe0135b9aa702e09432fa71e93 Catalin(ux) M. BOIE 2009-08-21 15:53:05
First chunk of generic socket handling. b9a488ba615c4322b5d116a29919f11fd476b200 Catalin(ux) M. BOIE 2009-08-21 15:50:45
Added ntime example (returns CLOCK_REALTIME as fast as it can). e2fa318caf3e9aea09a853ab2b4af4b5a2cc8261 Catalin(ux) M. BOIE 2009-08-20 15:41:20
TODO ins and outs. 66a987be5d8e08ef6fe1ce0c056b8c3acd65bdb7 Catalin(ux) M. BOIE 2009-08-20 15:36:14
Cosmetic change. 5dab6539af2ca97f3f3f9b55e20be7d6f423829e Catalin(ux) M. BOIE 2009-08-20 15:34:01
Abort if current slot is in state FREE. It must not happen. 14dc9f444309cddd46996a47277cefe4eec77db5 Catalin(ux) M. BOIE 2009-08-20 15:33:31
Clean a slot only after we move it in the end. This fixes an infinite loop if last and first slots were both in state FREE. eecc6decaea6801235aa7a02d193782e1accc58f Catalin(ux) M. BOIE 2009-08-20 15:32:38
Cosmetic changes. c147533732f8b7b4bbe2725f04bcce0df0271c70 Catalin(ux) M. BOIE 2009-08-20 15:31:12
Call del_obj only if we have a valid file descriptor. 95c90269de0fa59a6ea69c2067827bbf57db16d5 Catalin(ux) M. BOIE 2009-08-20 15:29:42
Commit 1ff597059bbb208b56ad18bf8324fae5b63950a2 - Improved status output.
Signed-off-by: Catalin(ux) M. BOIE <catab@embedromix.ro>
Author: Catalin(ux) M. BOIE
Author date (UTC): 2009-08-25 17:53
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2009-09-02 15:42
Parent(s): b284a20cc5430042cc662edc4d121c7f18cb3569
Signing key:
Tree: 2c12a3ba70cdbc70ca52b58b57dfebfccebe2bc2
File Lines added Lines deleted
Conn_engine_core.c 19 3
Conn_engine_core.h 1 1
File Conn_engine_core.c changed (mode: 100644) (index c6b82f9..77ef865)
... ... void Conn_speed(char *dst, const unsigned int dst_len, const unsigned int speed)
399 399 snprintf(dst, dst_len, "%.2fMBps", sp / 1000 / 1000); snprintf(dst, dst_len, "%.2fMBps", sp / 1000 / 1000);
400 400 } }
401 401
402 char *Conn_status_slot(const struct Conn *C)
402 char *Conn_status_slot(struct Conn *C)
403 403 { {
404 404 static char tmp[1024]; static char tmp[1024];
405 405 char polle[16], pollr[16]; char polle[16], pollr[16];
406 406 char speedi[32], speedo[32]; char speedi[32], speedo[32];
407 407 unsigned int dT, si, so; unsigned int dT, si, so;
408 408 char flags[128], flags_add[2]; char flags[128], flags_add[2];
409 char *local_addr, *remote_addr;
410 int local_port, remote_port;
409 411 char flags_tmp[64]; char flags_tmp[64];
410 412
411 413 /* flags */ /* flags */
 
... ... char *Conn_status_slot(const struct Conn *C)
438 440 Conn_speed(speedi, sizeof(speedi), si); Conn_speed(speedi, sizeof(speedi), si);
439 441 Conn_speed(speedo, sizeof(speedo), so); Conn_speed(speedo, sizeof(speedo), so);
440 442
443 local_addr = "-";
444 local_port = 0;
445 remote_addr = "-";
446 remote_port = 0;
447 if (C->type == CONN_TYPE_MASTER) {
448 local_addr = C->bind_addr;
449 local_port = C->bind_port;
450 } else if (C->type == CONN_TYPE_P2P) {
451 local_addr = C->bind_addr;
452 local_port = C->bind_port;
453 remote_addr = C->addr;
454 remote_port = C->port;
455 }
456
441 457 snprintf(tmp, sizeof(tmp), "id=%llu slot=%d fd=%d" snprintf(tmp, sizeof(tmp), "id=%llu slot=%d fd=%d"
442 458 " %s/%s/%s" " %s/%s/%s"
443 459 " %s %s" " %s %s"
444 460 " %s/%d <-> %s/%d" " %s/%d <-> %s/%d"
445 "via=%llu [%s][%s] IO=%llu/%llu"
461 " via=%llu [%s][%s] IO=%llu/%llu"
446 462 " BS=%u/%u S=%s/%s" " BS=%u/%u S=%s/%s"
447 463 " T=%ld bw=%u f=%u tk=%u [%s]\n", " T=%ld bw=%u f=%u tk=%u [%s]\n",
448 464 C->id, C->slot, C->fd, C->id, C->slot, C->fd,
449 465 Conn_domain(C), Conn_type(C), Conn_protocol(C), Conn_domain(C), Conn_type(C), Conn_protocol(C),
450 466 Conn_socktype(C), Conn_state(C), Conn_socktype(C), Conn_state(C),
451 C->bind_addr, C->bind_port, C->addr, C->port,
467 local_addr, local_port, remote_addr, remote_port,
452 468 C->via, polle, pollr, C->bi, C->bo, C->via, polle, pollr, C->bi, C->bo,
453 469 C->ibuf_size, C->obuf_size, speedi, speedo, C->ibuf_size, C->obuf_size, speedi, speedo,
454 470 Conn_now.tv_sec - C->start, Conn_now.tv_sec - C->start,
File Conn_engine_core.h changed (mode: 100644) (index a4a673c..4d3b95e)
... ... extern struct Conn_queue Conn_queue_free;
260 260 extern char *Conn_strerror(void); extern char *Conn_strerror(void);
261 261 extern void Log(const unsigned short level, char *format, ...); extern void Log(const unsigned short level, char *format, ...);
262 262 extern char *Conn_errno(const struct Conn *C); extern char *Conn_errno(const struct Conn *C);
263 extern char *Conn_status_slot(const struct Conn *C);
263 extern char *Conn_status_slot(struct Conn *C);
264 264 extern char *Conn_status(const unsigned int flags); extern char *Conn_status(const unsigned int flags);
265 265 extern int Conn_try_expand_buf(struct Conn *C, const int what, extern int Conn_try_expand_buf(struct Conn *C, const int what,
266 266 const int needed); const int needed);
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