CodeConnect is a means of providing access to user-restricted or public \\\\\\\"vaults\\\\\\\" under which snippets of code may be stored and organized into directory-system-like structure. CodeConnect is a server, client, and protocol for
Be the first to post a text review of CodeConnect. Rate and review a project by clicking thumbs up or thumbs down in the right column.
CodeConnect2 Server -------------------------------------------------------------------------------- Aaron Bockover [aaronbockover at users dot sourceforge dot net] 20030726 -------------------------------------------------------------------------------- WARNING! This release of CodeConnect2 is pre-alpha! As of this build, there is only a multi-client server implementation and configuration/cache system. There is no real functionality (no protocol implementation yet). As with any alpha software, extreme caution should be used when running the software. I am not responsible for anything that my happen as a result of running CodeConnect2. CodeConnect2 is released under the terms of the GNU GPL (version 2). See LICENSE for details. You are given absolutely NO WARANTY with this software. -------------------------------------------------------------------------------- As of 20030726, I started implementing GLib features. I expect to use the GList and GString implementations in CodeConnect, but I started the project without GLib, so I'll be developing forward with the server, but back-tracking to implement GLib. -------------------------------------------------------------------------------- Pre - ~ Implemented TCP/IP server code 20030726 ~ Servlet Threading ~ Basic protocol connector interface in servlet code; very basic, only there for testing of the servlet/TCP/IP code ~ XML parser (using libxml2) ~ Configuration Builder (using libxml2) 20030726 - Implemented GList for the Vault Owners list. The XML vault owners configuration is loaded into a struct which is added to GList. Remove system.h and began implementing a cache object (cache.h, cache.c). cache.h defines all internal structures and functions used for handling of server memory (vault owners list, vault structures, run-time server configuration, etc.). --debug-dump implemented. If passed, CC2 dumps its internals. So far, this means the server config and the VO_LIST. 20030727 - The cache system is expanding; separating into 20030728 specific modules. Starting with the vault owner code, and the server configuration. The new cache system is working. From main(), the system is initialized, which does all error checking in the cache and starts up the induvidual cache areas. cache.h contains all global cache definitions for use within the server. Typically, eache cache module has four functions: - Initialize (Allocate Memory) - Deinitialize (Free) - Load (Fill Memory) - Dump (Debug Output of Memory) In the process of revamping the cache system, I am slowly moving towards the GLib log/message system for tracking server progress. 20030729 - Added two more socket options and a new XML 20030730 configuration node for the <core> node in the main server config file to parent these two new options, SO_KEEPALIVE and SO_REUSEADDR. They should either be 0 or 1. Default is 1. As a result, the server core has been updated to take advantage of these two new socket options, and the internal server configuration structure was expanded. I will be expanding the socket code for the core server before continuing to protocol implementation. XML core was updated to use xmlStrcasecmp vs. xmlStrcmp for node name comparisons, meaning that node names in the XML files CC2 uses aren't case sensitive anymore, however, attributes and values may be (lowercase to be safe). Added "official" GPL headers to all code, and added LICENSE, a copy of the GPLv2 to the project. 20030803 - Finally added better (not by much) command line argument processing. 20030806 - Implemented CONNECTED_CLIENTS, a GList which holds a new structure, _client_session. _client_session holds file stream descriptors (rx/tx) and the client ID assigned by accept() in the server loop. Communication is now performed using two streams (rx/tx). New configuration option: max_clients. If a client connects and there are max_client entries in CONNECTED_CLIENTS, the servlet will alert the new client that the server is full, and terminate the connection with the new client. Implemented server_shutdown(). This is called when SIGINT is caught. server_shutdown() disconnects all connected clients. and frees client session memory. Once clients are disconnected, server_shutdown() calls shutdown_cache() to release all cache memory in use by the server. Once all memory is freed, the server exit(0)s. Added defaults.h for setting default vaules for the server configuration to be overwritten by the values pulled from the XML config file. New configuration option: log_file. log_file can either be: - stdout - stderr - any valid file path (to which CC2 can create/write) All server output now goes through cc_message. cc_message will write the message to LOG_FP, which is FILE* and pointing to and open file (log_file), stdout, or stderr. log_file should be set to stdout or stderr for debugging reasons, but for production purposes, it is probably best to have all CC2 output directed to a log file. Though still supported, the <port> configuration option is now deprecated (that didn't take long :-). the <bind_address> option is now preferred. It takes the form of host:port. Host may be any valid host name or IP address, including localhost. Host may also be * (bind to any available host). Port may be an valid numeric port, *, or a valid inetd service port (such as telnet or ftp). The new bind_address address is translated into sockaddr_in using mkaddr (mkaddr.c, non original, see "Linux Socket Programming, By Example, ISBN 0-7897-2241-0). 20030810 - Vaults (under Vault Owners) are now loaded in full (through loadvault.c) and attached to the VO_VAULTS GList under a VOENTRY structure, thus supporting the "unlimited vault owners, administering unlimited vaults" idea. Vault user loading will be the next task, and then protocol development should begin. Removed some of the hard-coded meta entries which were parsed in the <profile> XML tag for vault-access data files. Removed were: - description - disp_name Replaced them with a generic approach, using GData to hold keyed entries. This allows any XML node which is a child of <profile> to be loaded into the root-vault cache. I didn't want the server to deal specifically with data to be handled only by a client. I will be replacing non-curcial meta nodes in the vault owner structure with the same arbitrary GData approach as used above later.
CodeConnect2 Server -------------------------------------------------------------------------------- Aaron Bockover [aaronbockover at users dot sourceforge dot net] 20030726 -------------------------------------------------------------------------------- WARNING! This release of CodeConnect2 is pre-alpha! As of this build, there is only a multi-client server implementation and configuration/cache system. There is no real functionality (no protocol implementation yet). As with any alpha software, extreme caution should be used when running the software. I am not responsible for anything that my happen as a result of running CodeConnect2. CodeConnect2 is released under the terms of the GNU GPL (version 2). See LICENSE for details. You are given absolutely NO WARANTY with this software. -------------------------------------------------------------------------------- As of 20030726, I started implementing GLib features. I expect to use the GList and GString implementations in CodeConnect, but I started the project without GLib, so I'll be developing forward with the server, but back-tracking to implement GLib. -------------------------------------------------------------------------------- Pre - ~ Implemented TCP/IP server code 20030726 ~ Servlet Threading ~ Basic protocol connector interface in servlet code; very basic, only there for testing of the servlet/TCP/IP code ~ XML parser (using libxml2) ~ Configuration Builder (using libxml2) 20030726 - Implemented GList for the Vault Owners list. The XML vault owners configuration is loaded into a struct which is added to GList. Remove system.h and began implementing a cache object (cache.h, cache.c). cache.h defines all internal structures and functions used for handling of server memory (vault owners list, vault structures, run-time server configuration, etc.). --debug-dump implemented. If passed, CC2 dumps its internals. So far, this means the server config and the VO_LIST. 20030727 - The cache system is expanding; separating into 20030728 specific modules. Starting with the vault owner code, and the server configuration. The new cache system is working. From main(), the system is initialized, which does all error checking in the cache and starts up the induvidual cache areas. cache.h contains all global cache definitions for use within the server. Typically, eache cache module has four functions: - Initialize (Allocate Memory) - Deinitialize (Free) - Load (Fill Memory) - Dump (Debug Output of Memory) In the process of revamping the cache system, I am slowly moving towards the GLib log/message system for tracking server progress. 20030729 - Added two more socket options and a new XML 20030730 configuration node for the <core> node in the main server config file to parent these two new options, SO_KEEPALIVE and SO_REUSEADDR. They should either be 0 or 1. Default is 1. As a result, the server core has been updated to take advantage of these two new socket options, and the internal server configuration structure was expanded. I will be expanding the socket code for the core server before continuing to protocol implementation. XML core was updated to use xmlStrcasecmp vs. xmlStrcmp for node name comparisons, meaning that node names in the XML files CC2 uses aren't case sensitive anymore, however, attributes and values may be (lowercase to be safe). Added "official" GPL headers to all code, and added LICENSE, a copy of the GPLv2 to the project. 20030803 - Finally added better (not by much) command line argument processing. 20030806 - Implemented CONNECTED_CLIENTS, a GList which holds a new structure, _client_session. _client_session holds file stream descriptors (rx/tx) and the client ID assigned by accept() in the server loop. Communication is now performed using two streams (rx/tx). New configuration option: max_clients. If a client connects and there are max_client entries in CONNECTED_CLIENTS, the servlet will alert the new client that the server is full, and terminate the connection with the new client. Implemented server_shutdown(). This is called when SIGINT is caught. server_shutdown() disconnects all connected clients. and frees client session memory. Once clients are disconnected, server_shutdown() calls shutdown_cache() to release all cache memory in use by the server. Once all memory is freed, the server exit(0)s. Added defaults.h for setting default vaules for the server configuration to be overwritten by the values pulled from the XML config file. New configuration option: log_file. log_file can either be: - stdout - stderr - any valid file path (to which CC2 can create/write) All server output now goes through cc_message. cc_message will write the message to LOG_FP, which is FILE* and pointing to and open file (log_file), stdout, or stderr. log_file should be set to stdout or stderr for debugging reasons, but for production purposes, it is probably best to have all CC2 output directed to a log file. Though still supported, the <port> configuration option is now deprecated (that didn't take long :-). the <bind_address> option is now preferred. It takes the form of host:port. Host may be any valid host name or IP address, including localhost. Host may also be * (bind to any available host). Port may be an valid numeric port, *, or a valid inetd service port (such as telnet or ftp). The new bind_address address is translated into sockaddr_in using mkaddr (mkaddr.c, non original, see "Linux Socket Programming, By Example, ISBN 0-7897-2241-0).
Be the first person to add a text review.
Copyright © 2009 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?