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 |
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); |