[v1.0.31 -> v1.0.32] Catalin(ux) M. BOIE (19): Export Conn_poll_status. Cosmetic logs. In Conn_poll_cb, show human readable events. Export CONN_VERSION in Conn_config.h Use u32 field of epoll. ptr on 64bit gave an warning. Added Conn_[io]qlen and obsoleted Conn_qlen (ambiguous). More verbose logging and added some TODOs. If slot is in FREE state and we get events, do not abort, but log an error. Wrong cache consulted! Conn_{addr,port}_{local,remote} functions added. If we have POLLOUT set and the queue is empty, do not call recv function. Indented Conn_poll_cb to better watch logs. When generating one line of slot status, do not append n. Cosmetic logging. Supports kernels below 2.6.9 (epoll_ctl). Do not try to call getsockname if connection is not opened. After calling getsockname, set cache as clean. The cache for epoll_ctl, has to take also the slot in consideration. Bumped the version to 1.0.32. [v1.0.30 -> v1.0.31] Catalin(ux) M. BOIE (22): Improved Conn_split_* and removed a bad leak! Stop Conn if nothing to do. TODO in/out. Added xbind example. In shutdown, close the file descriptors. Log also fd in Conn_free_intern. Log status at the end for xbind example. No need to remove fd from epoll just before closing it. Do not overwrite Conn_error in Conn_free_intern. First round of memory status. Fixed some stupid choices regarding storage type for the output of snprintf. Better error logging in xbind example. Use fd -1 to signal that the socket is closed. Grow receiving buffer with Conn_default_ibuf instead of 0! Stupid! strstr should not use case sensitive when searching for n. Simplified setting NONBLOCK in Conn_setnonblock. Do not call gerpeername and getsockname at every accept/connect. Do it only when needed. Avoid doing epoll_ctl using a cache. If the socket is in closing phase, do not change events. Use accept4 to skip an extra fcntl call! On accept() set IN+OUT flags to speed up the sending (skip an epoll_wait). Bump up the version to 1.0.31. [v1.0.29 -> v1.0.30] Catalin(ux) M. BOIE (3): Exported Conn_engine_set function. Duilder updates. Bump up the version. [v1.0.28 -> v1.0.29] Catalin(ux) M. BOIE (2): Fix Conn_poll(-1)! Stupid me! Bumped up the version to 1.0.29. [v1.0.27 -> v1.0.28] Catalin(ux) M. BOIE (2): Do poll in 1000ms steps, even if Conn_poll is called with != 1 value. Else, triggers are not called! Bump up the version to 1.0.28. [v1.0.26 -> v1.0.27] Catalin(ux) M. BOIE (5): Log also how many pending connections are after trytoconnect call. Cosmetic changes. Compact totals. More clear what error message is. Bumbed up the version to 1.0.27. [v1.0.25 -> v1.0.26] Catalin(ux) M. BOIE (6): More logging in hang-up case. Conn_eat logs also the slot. Log also work_to_do. Log also commit function. Fixed a bug regarding work_to_do (decrementing on bind errors). Bumped up the version to 1.0.26. [v1.0.24 -> v1.0.25] Catalin(ux) M. BOIE (2): Lots of bulk changes to work-around C pointer change. Bumbed up the version to 1.0.25. [v1.0.23 -> v1.0.24] Catalin(ux) M. BOIE (4): Do not wrongly set connection type to P2P! Done some optimizations for buffer expanding. Allow chg function to fail. Problem needs more thinking. Bumped version to 1.0.24. [v1.0.22 -> v1.0.23] Catalin(ux) M. BOIE (3): Fixed triggers. Duilder updates. Bumped version to 1.0.23. [v1.0.21 -> v1.0.22] Catalin(ux) M. BOIE (61): Fixed the case when all connection are closed (app didn't exit). Let *_move_slot functions return an error code (useless right now). Converted #defines to enums. Correctly set error state and errno code. Added helper raise_error. Added ERROR_INTERNAL. Added CONN_STATE_ERROR. Conn_enqueue returns now the number of bytes queued or -1. You should really check the error code. Call del_obj only if we have a valid file descriptor. Cosmetic changes. 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. Abort if current slot is in state FREE. It must not happen. Cosmetic change. TODO ins and outs. Added ntime example (returns CLOCK_REALTIME as fast as it can). First chunk of generic socket handling. TODO in/out. Added blackhole example. Exported _alloc and _commit functions. addr and bind_addr are not pointers! Corrected them. Fixed connections to outside. Still, it is a little mess there. Improved blackhole example. Removed unused includes. Improved ntime example. Added Conn_strcasestr for case insensitive search in buffer. Improved status logging. Conn_type_* becomes CONN_TYPE_*. Improved status output. Cosmetic changes. Added possibility to shutdown blackhole_s server by typing 'quit'. Store also local address for incoming connections. Compressed a little the POLL flags. Replaced Conn_protocol with Conn_get_socket_protocol. Added Conn_stop to eleganly stop Conn system. Fixed storing of local address (do not overwrite remote address). Added Conn_set_address helper. Removed bind_s example because blackhole_s will take place. Removed *.run becasue we have a generic run script. Removed line1.c because duplicates code. Improved examples. Better output flags. Added Conn_sys that logs some system variables related to network perf. Added Conn_lifetime (returns the time in ms between connected state and now). Tweaked a little the debug level for some messages. More entries to .gitignore. Improved blackhole examples. Store in time_open the accept timestamp so Conn_lifetime will work on srv side. Raised default listen para to 4096 from 128. somaxconn still has prio. Cosmetic changes. Conn_commit will return error, so, do not call error callback. Splited reporting of error types. Added Conn_work_to_do to signal when we can exit. Call close callback, even if state is ERROR. Set start values for enums. Cosmetic changes. Increment Conn_pending only on success. Ignore EMPTY state. TODO in/out. Added latency reporting. Updated duilder. Bumped version to 1.0.22. [v1.0.20 -> v1.0.21] Catalin(ux) M. BOIE (2): Fixed a use of an uninit variable! Oops! Bump up the version to 1.0.21. [v1.0.19 -> v1.0.20] Catalin(ux) M. BOIE (4): Try harder to respect the trigger interval; in the start fire after interval. Missed a '('. Oops! Fixed an underflow in Conn_rtrim. Oops! Bump up the version to 1.0.20. [v1.0.18 -> v1.0.19] Catalin(ux) M. BOIE (11): Simplified expand_buf and also fixed an out-of-bounds wrinting. Removed an unsused variable. Improved Conn_split (and remove the limitation to 4096 'right' value. Changed split test to show that we can get past 4096 limit. Be more verbose and show also the flags. Reget the time, even if no events. Else, the expiration will not work. Show a nicer value if the reconnect feat was never used. Added a reconnect example. Made the server example (s.c) nicer and did more error checking. Added reconnect executable to .gitignore. Bump up the version. [v1.0.17 -> v1.0.18] Catalin(ux) M. BOIE (12): Re-export Conn_get lost somehow. Conn_get_line removes also 'r' now. Added Conn_split_get_ull (unsigned long long). Changed Conn_split to not modify original line. Revert "Conn_get_line removes also 'r' now." Added Conn_rtrim function. Before calling callback in Conn_for_every_line, just trim 'r'. Reverse the meaning of Conn_split_get_e and Conn_split_get. Added Conn_alphanum (test if a string is alpha numeric or not). Really fixed Conn_split_get. Fixed Conn_rtrim. Bump up the version. [v1.0.16 -> v1.0.17] Catalin(ux) M. BOIE (3): Do not build examples by default. Added splitting functions. It gets easier to write ascii line client/server app. Bump the version. [v1.0.15 -> v1.0.16] Catalin(ux) M. BOIE (2): Added Conn_addr_info - check what family an address is. Bump up the version. [v1.0.14 -> v1.0.15] Catalin(ux) M. BOIE (4): Raised debug level for compacting phase. TODO: More entries added (timer optimization). Do not try to close free state slots. Bump up the version. [v1.0.13 -> v1.0.14] Catalin(ux) M. BOIE (3): More clear logging. Moved free_intern in the periodic scanning to not miss connections in listen. Bump up the version. [v1.0.12 -> v1.0.13] Catalin(ux) M. BOIE (4): Extended timeout to 1000ms from 500ms. No need to wake up too frequent. Duilder updates. Fixed a bug preventing a socket in listen state to be closed. Bump up the version. [v1.0.11 -> v1.0.12] Catalin(ux) M. BOIE (17): Duilder updates. Added support for multiple polling engines and added epoll engine. Minor cosmetic changes. More TODO entries added/removed. Some cosmetic changes for examples. Use valgrind in examples to catch errors. Remove 'slot' concept from anywhere I could. It was confusing. Stuff in/out. Constify a lot of parameters and added more consistent logging. Added queue stuff - not used for now. Fixed exit from client example (c.c) to catch leaks. Added an accept_error callback to server example (s.c). Fixed the server example to output a n terminated line. Lot of small changes that were need to fix epoll integration. TODO: Added bind to ip and access control. Added suport to bind to a specific IP. Bump version in duilder. [v1.0.10 -> v1.0.11] Catalin(ux) M. BOIE (2): Added Conn_for_every_line. Bump up the version to 1.0.11. [v1.0.8 -> v1.0.10] Catalin(ux) M. BOIE (12): Changed changelog. Incremented revision. Replaced umbrella with embedromix. Populated .gitignore file. Prepared to use duilder (my custom builder). Added Conn_get_line. Added .gitignore for examples directory. Updated .gitignore. Changed my e-mail address and URL. Added SRPM_POST_RUN duilder config variable. Updated duilder. Bump version to 1.0.10.