[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-myserver] MyServer 0.9.1-rc1

From: Giuseppe Scrivano
Subject: [bug-myserver] MyServer 0.9.1-rc1
Date: Wed, 11 Nov 2009 22:02:30 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)


there is much meat on fire (isn't your wine ready too for the
St. Martin's day?) and I think that it is time for a new release.

The changes from 0.9 includes (I appended a detailed changelog to this

1) A python GUI to easily manage the server, it was developed during an
   internship at FSF.
2) Migration to gnulib.
3) Gopher server implementation.
4) gettext l18n.
5) X-Sendfile directive for FastCGI.
6) Support for crypted passwords in the security files.

the sources tarball can be found here:


SHA1 and MD5 checksums:

c50fd385dff1d6dca30edc8580f1ea6b4c9f8ae0  myserver-0.9.1-rc1.tar.bz2
1f1d07055fa8c3e0be265253296ef1f8  myserver-0.9.1-rc1.tar.bz2

Happy Hacking!

Domenico Chierico (2):
      Add support for gopher protocol
      Add a test for the gopher protocol.

Giuseppe Scrivano (226):
      Code refactoring
      Removed MACRO defined constants.
      Limit usage of the same LogManager to only a thread at time.
      New LogManager method that allows to log according to a format string.
      Extract a method from LogManager::log (void*, string, string, 
LoggingLevel, bool, const char*, ...).
      LogManager uses arguments by reference and not by copy for logging.
      Log can add a timestamp before the message body
      The server class logs using a formatting string.
      Use the new Server logging functionality.
      Don't specify the log location when a format string is used.
      Log virtual hosts accesses and warnings using a formatting string.
      Check for the array dimension used by Process::generateEnvString before 
access it.
      Fix a race.
      Fix the `make check' command.  Now it executes the `tests_suite' program 
when it is available.
      Localize messages using the GNU gettext package
      Update plugins to use the simpler interface to `PluginsManager'
      Add notice that the localedir.h file is auto-generated.
      Removed global getOSVersion() function.
      The MimeManager can have external handlers now.
      HTTP uses the specified handler for MIME types.
      Fixed some error messages.
      Delegate the function using the desired handler, not NULL.
      New plugin MIME magic.
      Remove unused files added by the last commit.
      Use the ETag header with static files.
      Directories are not handled by the magic MIME plugin.
      Added missing files ABOUT-NLS and config.rpath
      Update build-system
      Remove files that are generated automatically.
      Code refactoring: fix indentation and formatting
      Specify the Emacs mode to use
      Documentation mentions how change the MIME types handler.
      Mass update: apply the emacs delete-trailing-whitespace function to every 
(.cpp|.h)$ file.
      Remove log verbosity as a global server variable.
      Refactoring: rename any `getHashedData' to `getData'.
      Refactoring: rename any `logWriteln' to `log'.
      Fix test failure.
      Plugins use the new logging facilities.
      Avoid to use non-existing files.
      Define a single macro when a regex library is present.
      Use position independent code (PIC) when it is possible.
      Mass update: corrected C preprocessor indentation using GNU cppi.
      Move the XmlValidator definition inside the Server class.
      Allow definition of NodeTree in the security and in the MIME 
configuration files
      Remove unused method from the Server class.
      Prevent a deadlock when logging to the main server log from the 
`LogManager' class.
      `Vhost::accessesLogWrite' appends a newline character.
      Remove some obsoleted macro definitions.
      Remove some members from the `HttpResponseHeader' struct, leaving their 
definitions in the hash map.
      Remove some members from the `HttpResponseHeader' struct.
      A new process creation supports a chroot now.
      Processes spawned by the ProcessServerManager and CGI ones can specify a 
different chroot
      Surround the error message with the _ macro
      Pass the right type to the log function.
      When `make check' is used in the root directory, run only the tests suite
      Close the pidfile file on error.
      Fix some possible memleaks
      By default use silent automake rules.
      Refactor the same repeated statements in a single function.
      Give a slightly saner --version message.
      Accept a --cfgdir option to specify a different path where look for 
configuration files.
      Raise an error if the specified protocol is not loaded.
      Default configuration files are not copied automatically when a valid 
configuration files set is not found.
      Use string's instead of pointers to string's to store configuration files 
      Make `make check' again recursive.
      Remove `if' statement having the same two source branches.
      Get the `server.max_files_cache' value by `Server::getData ()'.
      Access to the global configuration is done trough the `MainConfiguration' 
interface.  Realize this new interface in the `XmlMainConfiguration' class that 
accesses a XML stored configuration.
      Clear the buffer every time a command is sent.
      Data read from the XML file is not copied on an internal buffer before.
      Make the `MainConfiguration' class d'tor virtual.
      Declare c'tor and d'tor for the `XmlMainConfiguration' class.
      Remove unneeded cast.
      Fix indentation
      Mass update: leave an empty space between the function name and the open 
round brace.
      Lazy allocate the static PluginInfo::regex object on the first usage.
      Remove unused definition.
      Change return type from `char*' to `const char*'.
      Change macro quoting style.
      Simplify the configure.ac script.
      Configuration files location is not exposed by the Server.
      Refactor common code in a single function.
      The Server delegates configuration values loading to the 
`MainConfiguration' class.  Also, the Server now accepts a builder function to 
create a `MainConfiguration' instance.
      Remove cast to XmlMainConfiguration.
      Refactoring: rename `FindData' to `ReadDirectory'
      Add test case for the `ReadDirectory' class.
      Protect access to `opendir' and `readdir' using a mutex.
      Use the reentrant `readdir_r' function when it is available.
      The d'tor frees used resource, calling close.
      Spell `Content-Type' properly.
      Store the value of the `mime' attribute.
      The HttpFile handler avoids to reset the HttpResponseHeader.
      Now the `Server::addConnection' function doesn't free the socket argument 
on errors.
      Replace getNonBLocking with getNonBlocking.
      Remove the meaning-less `Socket::stopBlockingOperations' operation.
      The file handle is not set explicitely to 0.  It caused the file 
descriptor 0 to be close'd when it should not.
      Delegate `eventLoopHandler' to register a watch for events on the 
listener socket.
      Use a switch instead of several if's in the eventLoopHandler body.
      Various small fixes.
      Remove unused members from the `ClientsThread' class
      Use the current repository directory structure as the default path to 
look for header files.
      Be sure the release directory exists before use it, if it does not exist 
then create it.
      Emphasize the plugin name in output messages
      Fix some potential memory leaks.
      Refactor a new class `XmlMimeHandler' out of `MimeManager'.
      Refactor out XML code from `VhostManager' in the new `XmlVhostHandler' 
      Remove trailing whitespaces.
      Fix a broken test case.
      Raise an error if the same location is registered multiple times.
      The `VhostManager' and `MimeManager' classes allow to build instances of 
      Allow virtual hosts to use a different MIME type handler.
      Register a builder for the `mime_magic' plugin.
      Use gnulib to improve portability.
      Add Makefile rule to regenerate the POTFILES.in file.
      Use directly `num_processors' offered by gnulib.
      Add gettext to the gnulib modules to use.
      Revert "Use directly `num_processors' offered by gnulib."
      Skip gnulib po retrieving, temporarily.
      Gnulib ensures that regex is always present.
      Update POTFILES.in file.
      Fix some problems introduced by the migration to gnulib.
      Remove the unused macro REGLIB.
      Use the MD5 implementation offered by gnulib.
      Mass update: include the current year in the copyright years list.
      Remove unused member variable.
      Remove files imported by gnulib.
      Remove secondaryBufferSize declarations and any usage.
      Avoid unnecessary shifts while trasforming to the final MD5 hash.
      Add the `chdir-long' and `getcwd' modules from gnulib and use them to 
configure the current working directory.
      Copy build_aux/config.rpath from gnulib.
      Move {include,src}base/md5 to {include,src}base/crypt.
      Add two new classes: CryptAlgoManager'.
      Use the gnulib snprintf module.
      Add a new method `CryptAlgoManager::check' to quickly check if 
F(x)=result, using the specified crypt algorithm.
      Use two new gnulib modules: `pipe' and `gettimeofday'.
      Update POTFILES.in.
      Add a new class and the relative test wrapping the gnulib SHA1 
      Aesthetic changes.
      Check that configuration file exist before access them.
      Be sure the attrib element is zero'ed before use it.
      Specify bytes when the file length is zero.
      Fix broken test case.
      ReadDirectory::find{first,next} return different codes for errors and EOF.
      Fix typo introduced by the last commit
      Add support for the `X-Sendfile' directive from FastCGI scripts.
      By default do not use X-Sendfile.
      Content-type header value is replaced if it is already defined, not 
appended as it was before.
      Minor aesthetic changes.
      Allocate Server::xmlMimeHandler dinamically, it is freed by the 
      Now gzip compression is not handled as a special case for static files.
      Remove protocolData from filters.
      Simplify some functions.
      Use ClientsThread::busy as a bool not an int.
      Remove casts that are not needed.
      Fix build problems under Windows.
      Export the `program_name' symbol.
      Fix a conflict with gnulib renaming the Ftp::stat function name to 
      Ensure the final $ is considered in the regex.
      Ensure stdafx.h is included in any test source file.
      Link to the gnulib library and export program_name.
      Update AUTHORS.
      Some minor aesthetic changes
      MemBuf class refactoring: remove m_ prefix from class members and remove 
not used code.
      Mass update: include "stdafx.h" not <stdafx.h>.
      Refactor the Ftp class.
      Protocol::controlConnection uses u_long as buffer length, not int.
      Raise an error if Protocol::controlConnection is used.
      Fix indentation.
      Revert a change in MemBuf introduced recently and remove some casts.
      Move the reallocation logic from `MemBuf::setLength' to a new method 
      Update to the latest gnulib `nproc' module.
      Use AM_SILENT_RULES only when it is defined.
      The directory listing handler allows to specify an ignore pattern.
      Define the new helper function HttpHeaders::sendHeader and use it in the 
HTTP handlers.
      The HTTP response header is send once, not multiple times.
      Change Protocol interface: rename `registerName' to `getName', it does 
not accept additional parameters.
      Separe static components loading from plugins.
      Remove configuration files customized for Windows.
      Indent properly XML files
      Indent properly HTML files
      Remove unused files.
      Read from the main configuration the default MIME types and virtual hosts 
handlers to be used.
      Refactor common code in a single function.
      Document how use different configuration files handlers.
      Rename "server.{mime,vhost}_manager" to "server.{mime,vhost}_handler".
      Fix typo
      Remove the globals `argc' and `argv'.  use an enum instead of #define's 
for run modes.
      Code refactoring: rename a function and remove some unused macro's.
      Move protocol modes from globals #define's to an enum inside the Protocol 
class itself.
      Define and use HttpDataHandler::{RET_FAILURE, RET_OK}.
      Rename ConnectionsScheduler::getConnectionsNumber to 
      The Server class does not store any opaque static data anymore.
      Update plugins to recent interfaces changes
      Use what buildHTTPResponseHeader returns in place of strlen on the buffer.
      Ensure that stdafx.h is the first include in any .h or .cpp file.
      Use an enum to define the control protocol codes.
      Avoid several casts using directly an object of the desired type.
      Rename secondaryBuffer to auxiliaryBuffer plus minor style changes.
      Fix a problem in the texinfo documentation: use @code, not @value.
      Fix a compiling error on W32 introduced by recent changes.
      ClientsThread return codes start counting from 1.
      Drop connections limit check from the HTTP code.
      Rename getSecondaryBuffer to getAuxiliaryBuffer.
      Make the Protocol::controlConnection a pure virtual method.
      Remove any dependency to the Protocol class from FiltersChain.
      Remove some unneeded `friend' declarations.
      Security configuration file passwords can be specified using a hash 
      Http digest authorization can be used only with clear-text or digest a1 
      Fix copyright notice.
      Add a facility method to the CryptAlgo class.
      The AuthMethod::comparePassword method does not raise exceptions.
      Add two new wrapper methods to the CryptAlgoManager class. The 
CryptAlgoManager class can now be used both with C strings and with C++ stl 
      Remove a not used variable plus re-indentation.
      Handle correctly HTTP headers facilities return values in the Proxy 
      Add new class MemBufFile and relative tests.
      Refactoring: divide a big test case in smaller tests.
      Add test case for `File::fastCopyToSocket'.
      Add a comment.
      The ReadDirectory class does not expose the inner stat struct.
      Ensure the XML node child exists before try to read its value.
      Mass update: reindent .h files.
      Remove a not-used method.
      Specify which log use when the new-line is notified.
      Small optimization: pass the argument by reference, not by copy.
      Remove temporary files used by tests.
      Bump version to 0.9.1-rc1.

Ignacy Moryc (1):
      Corrected typo in git URL

Marek Aaron Sapota (150):
      Imported pycontrollib to main tree.
      Added files needed for installation on unix systems.
      Skeleton class for handling MIME types configuration.
      Rename test.py to include module name.
      Added Definition, DefinitionElement and DefinitionTree classes.
      Changed definitions, so only DefinitionElement accepts value attribute.
      Check if tag names are right when creating definitions.
      Fix equality of definitions an other types.
      Extended mime types classes and tests for them.
      Tests for log stream.
      Log Stream class added.
      Tests for Log class.
      Implemented Log class.
      Basic vhost tests.
      Extended tests for mimetypes.
      Fixed equality comparision between MIMETypes and other types.
      Updated tests for vhost.
      Makefile for running tests.
      Partial vhost implementation.
      Added clean action to Makefile.
      Moved pycontrol and pycontrollib to MyServer package.
      Move tests to their own directory.
      Removed old, unused code.
      Extended VHost class.
      Added factory methods for VHost.
      Changed Makefile rules to match test filenames.
      Added constructor tests for mimetypes.
      Added VHosts class.
      Added setup script for packaging and distribution of pycontrol.
      Added control to valid protocols.
      Updated method docstrings.
      Cleaned up log constructors.
      Cleaned up definition constructors.
      Cleaned mimetypes constructors.
      Added instructions how to install pycontrol libraries.
      Removed valid_* from pycontrollib for greater flexibility.
      Update and refactoring of definitions.
      Split log.py tests for easy testing.
      Split mimetypes to/from string/lxml tests.
      Made VHost class more flexible.
      Split vhost  to/from string/lxml tests.
      Implemented BasicController.
      Implemented get methods of Controller.
      Added DefinitionList class.
      Mimetypes use DefinitionList.
      Implemented MyServerConfig.
      Added SSL support in VHost class.
      Added definition.search_by_name
      Fixed errors whith getting configuration from server.
      Made docstrings from comments in pycontrol.
      Fixed method name to be private.
      User ssl.wrap_socket instead of depreciated socket.ssl
      PyControlLib can now put files to server.
      First GUI design.
      Changed GUI to dynamic one.
      List is fully functional.
      Added copyright header.
      Added about window.
      Implemented menu->new
      Accept lower case "yes".
      File opening in MyServercontrol.
      Removed combobox option.
      Implemented save and save as.
      Auto change port to int.
      Added methods to put configuration files back on server.
      Implemented getting/putting config on server.
      Perserve additional attributes of definitions.
      Unknown definitions are not lost in GUI.
      Unix installation fixed upstream.
      Partial transfer to treeview.
      Save attributes on tree selection change.
      TreeViews are put inside ScrolledWindows to get scrollbars.
      Working new file.
      Removed name field, added enabled field.
      Access definitions by name, not by TreeIter.
      Added get_attributes to Definition.
      Fixed opening flat files (no trees for now).
      Store options state in additional tree columns.
      One level open file working.
      Open handles multiple levels of definitions.
      Removed old GUI.
      Implemented save file.
      Unknown options are handled as they should be.
      Use gtk.HPaned instead of gtk.HBox.
      Added tooltips.
      Add/Remove definitions are handled now.
      Added value column to TreeView.
      Name editing.
      User can add unknown definitions.
      Value field is auto disabled for definition trees.
      Removed old code.
      GUI widgets for mime types.
      GUI shows all mime options.
      Editable MIME types.
      Split MyServerControl to several files.
      Refactoring of configuration saving.
      Refactored set_up.
      Added definitions to MIME types.
      New file menu.
      Renamed methods to match new names from glade.
      MIMEType doesn't need handler.
      MIMEType self_executed is string not (was bool).
      New/open/save for MIME types.
      Added VHosts.
      Full support for logs.
      Open, save of VHosts.
      Added gui edition of additional Log properties.
      Updated interface to get/put config from server.
      Config files can be put on/got from server using control protocol.
      Fixed test executing Makefile.
      DefinitionTree keeps unknown tags found in tree.
      MIME types remember unknown sub-nodes and attributes.
      Preserve unknown things in vhosts.
      Remember unhandled things in streams and logs.
      Working keeping unknown things in main config.
      Clean up redundant code.
      Working keeping unknown things in mimes and vhosts.
      Better GUI look.
      Moved GUI widgets to library.
      Updated setup script.
      Fix GUI segfault.
      Added GUI interface to remove mimes and vhosts.
      Added filesystem browser to GUI for security files.
      Added condition to control lib.
      Control lib implements security files.
      Pycontrollib Condition tests.
      Pycontrollib Permission tests.
      Pycontrollib User tests.
      Complete tests for pycontrollib security classes.
      Partial security file edition support.
      Security editor actually works.
      Implemented opening of security files.
      Full security file edition support in GUI.
      GUI can save security files.
      Security file elements can be removed from GUI.
      Don't throw unhandled exceptions when security.xml can't be read.
      Added drag and drop in security files editor.
      Fixed fcntl call.
      Updated GUI version string.
      GUI can be installed with ./configure --enable-gui
      GUI was moved to src.
      m4 macro for checking Python version.
      Autoconf checking for required python modules.
      Removed main window's dependency on Glade.
      Glade isn't used at all.
      Added back images to menu bar.
      About dialog in GUI uses COPYING and version files.
      Added statusbar messages in GUI after save, open and new.
      GUI respects input types in server configuration.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]