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)
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
Conn_enqueue returns now the number of bytes queued or -1. You should really check the error code. ab88f823936ad67ba08aa5fd7984ea735c6c7dd7 Catalin(ux) M. BOIE 2009-08-20 15:28:42
Added CONN_STATE_ERROR. e20e518e10f686eb0b248ae23fe193ea7344594b Catalin(ux) M. BOIE 2009-08-20 15:27:50
Added ERROR_INTERNAL. 380a956dacfc05f0668e6a3fac941a464b5d7deb Catalin(ux) M. BOIE 2009-08-20 15:27:08
Commit ca14b37b2a1f23887ad12fed729a3dd0ff253443 - Added Conn_strcasestr for case insensitive search in buffer.
Signed-off-by: Catalin(ux) M. BOIE <catab@embedromix.ro>
Author: Catalin(ux) M. BOIE
Author date (UTC): 2009-08-24 17:18
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2009-09-02 15:42
Parent(s): b63de9b82ffab1c0d759571a40f1d72f9b8df927
Signing key:
Tree: bbad72fac16f7bdd5f78bf6789a3305afac7717f
File Lines added Lines deleted
Conn_engine_core.c 19 3
Conn_engine_core.h 4 0
File Conn_engine_core.c changed (mode: 100644) (index 3bd64da..0fb3764)
... ... void Conn_last_time(const struct Conn *C, struct timeval *tv)
734 734 /* /*
735 735 * Search for str in active buffer from a given offset * Search for str in active buffer from a given offset
736 736 * Returns pointer to string if match or NUll if doesn't. * Returns pointer to string if match or NUll if doesn't.
737 * @flags: bit 0 == 1 => case insensitive
737 738 */ */
738 char *Conn_ostrstr(struct Conn *C, const unsigned int off, const char *str)
739 char *Conn_ostrstr(struct Conn *C, const unsigned int off, const char *str,
740 const unsigned int flags)
739 741 { {
740 742 unsigned int len, str_len, i; unsigned int len, str_len, i;
741 743 char *buf, *ret = NULL; char *buf, *ret = NULL;
744 int err;
742 745
743 746 len = C->ibuf_tail - C->ibuf_head - off; len = C->ibuf_tail - C->ibuf_head - off;
744 747 buf = C->ibuf + C->ibuf_head + off; buf = C->ibuf + C->ibuf_head + off;
 
... ... char *Conn_ostrstr(struct Conn *C, const unsigned int off, const char *str)
749 752
750 753 i = 0; i = 0;
751 754 while (i <= len - str_len) { while (i <= len - str_len) {
752 if (strncmp(buf + i, str, str_len) == 0) {
755 if (flags & 1)
756 err = strncasecmp(buf + i, str, str_len);
757 else
758 err = strncmp(buf + i, str, str_len);
759 if (err == 0) {
753 760 ret = buf + i; ret = buf + i;
754 761 break; break;
755 762 } }
 
... ... char *Conn_ostrstr(struct Conn *C, const unsigned int off, const char *str)
766 773 */ */
767 774 char *Conn_strstr(struct Conn *C, const char *str) char *Conn_strstr(struct Conn *C, const char *str)
768 775 { {
769 return Conn_ostrstr(C, 0, str);
776 return Conn_ostrstr(C, 0, str, 0);
777 }
778
779 /*
780 * Search for str in active buffer (case insensitive)
781 * Returns pointer to string if match or NUll if doesn't.
782 */
783 char *Conn_strcasestr(struct Conn *C, const char *str)
784 {
785 return Conn_ostrstr(C, 0, str, 1);
770 786 } }
771 787
772 788 /* /*
File Conn_engine_core.h changed (mode: 100644) (index 00f8380..572e725)
... ... extern int Conn_queue_add(struct Conn_queue *q,
317 317 const unsigned int slot); const unsigned int slot);
318 318 extern void Conn_queue_destroy(struct Conn_queue *q); extern void Conn_queue_destroy(struct Conn_queue *q);
319 319
320 /* String stuff */
321 extern char *Conn_strstr(struct Conn *C, const char *str);
322 extern char *Conn_strcasestr(struct Conn *C, const char *str);
323
320 324 /* splitting stuff */ /* splitting stuff */
321 325 extern void Conn_rtrim(char *s, const char *chars); extern void Conn_rtrim(char *s, const char *chars);
322 326 extern struct Conn_split *Conn_split(const char *line); extern struct Conn_split *Conn_split(const char *line);
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