Supported protocols:
API documentation generated by Doxygen contains all necessary information for the external APIs.
API documentation generated by Doxygen contains information about the internal organization of the module.
The URL manager maintains the following
Contains the credentials for FTP and normal unprotected HTTP credentials (known as Basic Authentication)
Contains the state of the credentials for HTTP authentication using Digest Authentication
The module is moderately.
Various features can be enabled or disabled, either thorugh feature defines or specific defines, one example is the Diegest Authentication functionality.
Due to the requirements from various modules (including the url module) and platforms it is very difficult to reduce the footprint
Most of internal module functions handles OOM locally, and signals an OOM by raising the OOM signal in the memory manager, and aborts the current action. If appropriate a message is posted to the document.
However, much of the public API is now LEAVE based, and in those cases the caller must TRAP errors and handle them. Some internal functions will also LEAVE, but these are TRAPed internally
Much of the module is message callback based, and these functions are not able to report OOM situations directly to the documents or UI. In these cases the current operation will be terminated, and errormessages sent.
Much of the external API is based on direct calls, but some classes do use virtual fucntions. In many cases these are LEAVE bases, and callers must TRAP them and handle them appropriately.
Memory is allocated for each authentication credential stored. This usually amounts to a few hundred bytes per credentials, although Digest may require more.
Usually large objects are allocated. In some cases sizeable objects are placed on the stack but only for shorter periods.
In most cases stack consumption should be less than 300 bytes.
Some const arrays are maintained, and some persistent data is kept in the URL Manager.
Credentials are cached in the ServerName object, and can be deleted by deleting sensitive data through the URL_API
Memory is freed by the URL Manager shutdown.
The module uses the memory Manager's shared temporary buffers for internal operations. As these functions are always called under controlled conditions there is no danger of collision.
At present there are no opportunities to tune memory use.
Selftests, but they do not check memory usage.
Selftests, ordinary surfing, reading email.
Each specific method is implemented as a separate class
Currently there are no plans for improvement