aboutsummaryrefslogtreecommitdiff
path: root/lib/libmicrohttpd
diff options
context:
space:
mode:
authordavilla <davilla@svn>2010-02-15 06:11:47 +0000
committerdavilla <davilla@svn>2010-02-15 06:11:47 +0000
commitea90616880c90977cd90772c18296bea1d0f858c (patch)
tree675cbb2dd7a632fe156741b2bc62c4fc7973d4fd /lib/libmicrohttpd
parentbeeaf9323f176d335d5f45a1bed0a7b7dfebc735 (diff)
remove these from svn, configure will create them
git-svn-id: https://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk@27826 568bbfeb-2a22-0410-94d2-cc84cf5bfa90
Diffstat (limited to 'lib/libmicrohttpd')
-rw-r--r--lib/libmicrohttpd/doc/microhttpd.info2758
-rw-r--r--lib/libmicrohttpd/doc/stamp-vti4
-rw-r--r--lib/libmicrohttpd/doc/version.texi4
3 files changed, 0 insertions, 2766 deletions
diff --git a/lib/libmicrohttpd/doc/microhttpd.info b/lib/libmicrohttpd/doc/microhttpd.info
deleted file mode 100644
index 9b898c6966..0000000000
--- a/lib/libmicrohttpd/doc/microhttpd.info
+++ /dev/null
@@ -1,2758 +0,0 @@
-This is microhttpd.info, produced by makeinfo version 4.13 from
-microhttpd.texi.
-
-This manual documents GNU libmicrohttpd version 0.4.5, last updated
-4 December 2009. It is built upon the documentation in the header file
-`microhttpd.h'.
-
-Copyright (C) 2007, 2008, 2009 Christian Grothoff
-
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, no Front-Cover Texts, and
- no Back-Cover Texts. A copy of the license is included in the
- section entitled "GNU Free Documentation License".
-
-INFO-DIR-SECTION GNU Libraries
-START-INFO-DIR-ENTRY
-* libmicrohttpd: (microhttpd). Embedded HTTP server library.
-END-INFO-DIR-ENTRY
-
-
-File: microhttpd.info, Node: Top, Next: microhttpd-intro, Up: (dir)
-
-The GNU libmicrohttpd Library
-*****************************
-
-This manual documents GNU libmicrohttpd version 0.4.5, last updated
-4 December 2009. It is built upon the documentation in the header file
-`microhttpd.h'.
-
-Copyright (C) 2007, 2008, 2009 Christian Grothoff
-
- Permission is granted to copy, distribute and/or modify this
- document under the terms of the GNU Free Documentation License,
- Version 1.3 or any later version published by the Free Software
- Foundation; with no Invariant Sections, no Front-Cover Texts, and
- no Back-Cover Texts. A copy of the license is included in the
- section entitled "GNU Free Documentation License".
-
- GNU libmicrohttpd is a GNU package.
-
-* Menu:
-
-* microhttpd-intro:: Introduction.
-* microhttpd-const:: Constants.
-* microhttpd-struct:: Structures type definition.
-* microhttpd-cb:: Callback functions definition.
-* microhttpd-init:: Starting and stopping the server.
-* microhttpd-inspect:: Implementing external `select'.
-* microhttpd-requests:: Handling requests.
-* microhttpd-responses:: Building responses to requests.
-* microhttpd-post:: Adding a `POST' processor.
-* microhttpd-info:: Obtaining status information.
-
-Appendices
-
-* GNU-LGPL:: The GNU Lesser General Public License says how you
- can copy and share almost all of `libmicrohttpd'.
-* GNU GPL with eCos Extension:: The GNU General Public License with eCos extension says how you
- can copy and share some parts of `libmicrohttpd'.
-* GNU-FDL:: The GNU Free Documentation License says how you
- can copy and share the documentation of `libmicrohttpd'.
-
-Indices
-
-* Concept Index:: Index of concepts and programs.
-* Function and Data Index:: Index of functions, variables and data types.
-* Type Index:: Index of data types.
-
-
-File: microhttpd.info, Node: microhttpd-intro, Next: microhttpd-const, Prev: Top, Up: Top
-
-1 Introduction
-**************
-
-All symbols defined in the public API start with `MHD_'. MHD is a
-small HTTP daemon library. As such, it does not have any API for
-logging errors (you can only enable or disable logging to stderr).
-Also, it may not support all of the HTTP features directly, where
-applicable, portions of HTTP may have to be handled by clients of the
-library.
-
- The library is supposed to handle everything that it must handle
-(because the API would not allow clients to do this), such as basic
-connection management; however, detailed interpretations of headers --
-such as range requests -- and HTTP methods are left to clients. The
-library does understand `HEAD' and will only send the headers of the
-response and not the body, even if the client supplied a body. The
-library also understands headers that control connection management
-(specifically, `Connection: close' and `Expect: 100 continue' are
-understood and handled automatically).
-
- MHD understands `POST' data and is able to decode certain formats
-(at the moment only `application/x-www-form-urlencoded' and
-`multipart/form-data') using the post processor API. The data stream
-of a POST is also provided directly to the main application, so
-unsupported encodings could still be processed, just not conveniently
-by MHD.
-
- The header file defines various constants used by the HTTP protocol.
-This does not mean that MHD actually interprets all of these values.
-The provided constants are exported as a convenience for users of the
-library. MHD does not verify that transmitted HTTP headers are part of
-the standard specification; users of the library are free to define
-their own extensions of the HTTP standard and use those with MHD.
-
- All functions are guaranteed to be completely reentrant and
-thread-safe. MHD checks for allocation failures and tries to recover
-gracefully (for example, by closing the connection). Additionally,
-clients can specify resource limits on the overall number of
-connections, number of connections per IP address and memory used per
-connection to avoid resource exhaustion.
-
-
-File: microhttpd.info, Node: microhttpd-const, Next: microhttpd-struct, Prev: microhttpd-intro, Up: Top
-
-2 Constants
-***********
-
- -- Enumeration: MHD_FLAG
- Options for the MHD daemon.
-
- Note that if neither `MHD_USER_THREAD_PER_CONNECTION' nor
- `MHD_USE_SELECT_INTERNALLY' are used, the client wants control over
- the process and will call the appropriate microhttpd callbacks.
-
- Starting the daemon may also fail if a particular option is not
- implemented or not supported on the target platform (i.e. no
- support for SSL, threads or IPv6). SSL support generally depends
- on options given during MHD compilation. Threaded operations
- (including `MHD_USE_SELECT_INTERNALLY') are not supported on
- Symbian.
-
- `MHD_NO_FLAG'
- No options selected.
-
- `MHD_USE_DEBUG'
- Run in debug mode. If this flag is used, the library should
- print error messages and warnings to stderr. Note that MHD
- also needs to be compiled with the configure option
- `--enable-messages' for this run-time option to have any
- effect.
-
- `MHD_USE_SSL'
- Run in https mode (this option may not work with all
- threading modes yet).
-
- `MHD_USE_THREAD_PER_CONNECTION'
- Run using one thread per connection.
-
- `MHD_USE_SELECT_INTERNALLY'
- Run using an internal thread doing `SELECT'.
-
- `MHD_USE_IPv6'
- Run using the IPv6 protocol (otherwise, MHD will just support
- IPv4).
-
- `MHD_USE_PEDANTIC_CHECKS'
- Be pedantic about the protocol (as opposed to as tolerant as
- possible). Specifically, at the moment, this flag causes MHD
- to reject HTTP 1.1 connections without a `Host' header. This
- is required by the standard, but of course in violation of
- the "be as liberal as possible in what you accept" norm. It
- is recommended to turn this *ON* if you are testing clients
- against MHD, and *OFF* in production.
-
- `MHD_USE_POLL'
- Use poll instead of select. This allows sockets with
- descriptors `>= FD_SETSIZE'. This option only works in
- conjunction with `MHD_USE_THREAD_PER_CONNECTION' (at this
- point).
-
-
- -- Enumeration: MHD_OPTION
- MHD options. Passed in the varargs portion of
- `MHD_start_daemon()'.
-
- `MHD_OPTION_END'
- No more options / last option. This is used to terminate the
- VARARGs list.
-
- `MHD_OPTION_CONNECTION_MEMORY_LIMIT'
- Maximum memory size per connection (followed by a `size_t').
- The default is 32 kB (32*1024 bytes) as defined by the
- internal constant `MHD_POOL_SIZE_DEFAULT'.
-
- `MHD_OPTION_CONNECTION_LIMIT'
- Maximum number of concurrenct connections to accept (followed
- by an `unsigned int'). The default is `FD_SETSIZE - 4' (the
- maximum number of file descriptors supported by `select' minus
- four for `stdin', `stdout', `stderr' and the server socket).
- In other words, the default is as large as possible.
-
- `MHD_OPTION_CONNECTION_TIMEOUT'
- After how many seconds of inactivity should a connection
- automatically be timed out? (followed by an `unsigned int';
- use zero for no timeout). The default is zero (no timeout).
-
- `MHD_OPTION_NOTIFY_COMPLETED'
- Register a function that should be called whenever a request
- has been completed (this can be used for application-specific
- clean up). Requests that have never been presented to the
- application (via `MHD_AccessHandlerCallback()') will not
- result in notifications.
-
- This option should be followed by *TWO* pointers. First a
- pointer to a function of type `MHD_RequestCompletedCallback()'
- and second a pointer to a closure to pass to the request
- completed callback. The second pointer maybe `NULL'.
-
- `MHD_OPTION_PER_IP_CONNECTION_LIMIT'
- Limit on the number of (concurrent) connections made to the
- server from the same IP address. Can be used to prevent one
- IP from taking over all of the allowed connections. If the
- same IP tries to establish more than the specified number of
- connections, they will be immediately rejected. The option
- should be followed by an `unsigned int'. The default is
- zero, which means no limit on the number of connections from
- the same IP address.
-
- `MHD_OPTION_SOCK_ADDR'
- Bind daemon to the supplied socket address. This option
- should be followed by a `struct sockaddr *'. If
- `MHD_USE_IPv6' is specified, the `struct sockaddr*' should
- point to a `struct sockaddr_in6', otherwise to a `struct
- sockaddr_in'. If this option is not specified, the daemon
- will listen to incomming connections from anywhere.
-
- `MHD_OPTION_URI_LOG_CALLBACK'
- Specify a function that should be called before parsing the
- URI from the client. The specified callback function can be
- used for processing the URI (including the options) before it
- is parsed. The URI after parsing will no longer contain the
- options, which maybe inconvenient for logging. This option
- should be followed by two arguments, the first one must be of
- the form
- void * my_logger(void * cls, const char * uri)
- where the return value will be passed as `*con_cls' in calls
- to the `MHD_AccessHandlerCallback' when this request is
- processed later; returning a value of NULL has no special
- significance; (however, note that if you return non-NULL, you
- can no longer rely on the first call to the access handler
- having `NULL == *con_cls on entry' on entry) `cls' will be
- set to the second argument following
- MHD_OPTION_URI_LOG_CALLBACK. Finally, `uri' will be the
- 0-terminated URI of the request.
-
- `MHD_OPTION_HTTPS_MEM_KEY'
- Memory pointer to the private key to be used by the HTTPS
- daemon. This option should be followed by an "const char*"
- argument. This should be used in conjunction with
- 'MHD_OPTION_HTTPS_MEM_CERT'.
-
- `MHD_OPTION_HTTPS_MEM_CERT'
- Memory pointer to the certificate to be used by the HTTPS
- daemon. This option should be followed by an "const char*"
- argument. This should be used in conjunction with
- 'MHD_OPTION_HTTPS_MEM_KEY'.
-
- `MHD_OPTION_CRED_TYPE'
- Daemon credentials type. Either certificate or anonymous,
- this option should be followed by one of the values listed in
- "enum MHD_GNUTLS_CredentialsType".
-
- `MHD_OPTION_PROTOCOL_VERSION'
- SSL/TLS protocol version. Memory pointer to a zero
- (MHD_GNUTLS_PROTOCOL_END) terminated (const) array of 'enum
- MHD_GNUTLS_Protocol' values representing the protocol
- versions to this server should support. Unsupported requests
- will be dropped by the server.
-
- `MHD_OPTION_CIPHER_ALGORITHM'
- Memory pointer to a zero (MHD_GNUTLS_CIPHER_UNKNOWN)
- terminated (const) array of 'enum MHD_GNUTLS_CipherAlgorithm'
- representing the cipher priority order to which the HTTPS
- daemon should adhere.
-
- `MHD_OPTION_EXTERNAL_LOGGER'
- Use the given function for logging error messages. This
- option must be followed by two arguments; the first must be a
- pointer to a function of type 'void fun(void * arg, const
- char * fmt, va_list ap)' and the second a pointer of type
- 'void*' which will be passed as the "arg" argument to "fun".
-
- Note that MHD will not generate any log messages if it was
- compiled without the "-enable-messages" flag being set and
- the MHD_USE_DEBUG flag being set, even if this argument is
- used.
-
- `MHD_OPTION_ARRAY'
- This option can be used for initializing MHD using options
- from an array. A common use for this is writing an FFI for
- MHD. The actual options given are in an array of 'struct
- MHD_OptionItem', so this option requires a single argument of
- type 'struct MHD_OptionItem'. The array must be terminated
- with an entry `MHD_OPTION_END'.
-
- An example for code using MHD_OPTION_ARRAY is:
- struct MHD_OptionItem ops[] = {
- { MHD_OPTION_CONNECTION_LIMIT, 100, NULL },
- { MHD_OPTION_CONNECTION_TIMEOUT, 10, NULL },
- { MHD_OPTION_END, 0, NULL }
- };
- d = MHD_start_daemon(0, 8080, NULL, NULL, dh, NULL,
- MHD_OPTION_ARRAY, ops,
- MHD_OPTION_END);
- For options that expect a single pointer argument, the second
- member of the `struct MHD_OptionItem' is ignored. For
- options that expect two pointer arguments, the first argument
- must be cast to `intptr_t'.
-
- -- C Struct: MHD_OptionItem
- Entry in an MHD_OPTION_ARRAY. See the `MHD_OPTION_ARRAY' option
- argument for its use.
-
- The `option' member is used to specify which option is specified
- in the array. The other members specify the respective argument.
-
- Note that for options taking only a single pointer, the
- `ptr_value' member should be set. For options taking two pointer
- arguments, the first pointer must be cast to `intptr_t' and both
- the `value' and the `ptr_value' members should be used to pass the
- two pointers.
-
- -- Enumeration: MHD_ValueKind
- The `MHD_ValueKind' specifies the source of the key-value pairs in
- the HTTP protocol.
-
- `MHD_RESPONSE_HEADER_KIND'
- Response header.
-
- `MHD_HEADER_KIND'
- HTTP header.
-
- `MHD_COOKIE_KIND'
- Cookies. Note that the original HTTP header containing the
- cookie(s) will still be available and intact.
-
- `MHD_POSTDATA_KIND'
- `POST' data. This is available only if a content encoding
- supported by MHD is used (currently only URL encoding), and
- only if the posted content fits within the available memory
- pool. Note that in that case, the upload data given to the
- `MHD_AccessHandlerCallback()' will be empty (since it has
- already been processed).
-
- `MHD_GET_ARGUMENT_KIND'
- `GET' (URI) arguments.
-
- `MHD_HEADER_KIND'
- HTTP footer (only for http 1.1 chunked encodings).
-
-
- -- Enumeration: MHD_RequestTerminationCode
- The `MHD_RequestTerminationCode' specifies reasons why a request
- has been terminated (or completed).
-
- `MHD_REQUEST_TERMINATED_COMPLETED_OK'
- We finished sending the response.
-
- `MHD_REQUEST_TERMINATED_WITH_ERROR'
- Error handling the connection (resources exhausted, other
- side closed connection, application error accepting request,
- etc.)
-
- `MHD_REQUEST_TERMINATED_TIMEOUT_REACHED'
- No activity on the connection for the number of seconds
- specified using `MHD_OPTION_CONNECTION_TIMEOUT'.
-
- `MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN'
- We had to close the session since MHD was being shut down.
-
- -- Enumeration: MHD_GNUTLS_Protocol
- SSL/TLS Protocol types. Note that not all listed algorithms are
- necessarily supported by all builds of MHD.
-
- `MHD_GNUTLS_PROTOCOL_END'
-
- `MHD_GNUTLS_PROTOCOL_SSL3'
-
- `MHD_GNUTLS_PROTOCOL_TLS1_0'
-
- `MHD_GNUTLS_PROTOCOL_TLS1_1'
-
- `MHD_GNUTLS_PROTOCOL_TLS1_2'
-
- `MHD_GNUTLS_PROTOCOL_UNKNOWN'
-
- -- Enumeration: MHD_GNUTLS_CipherAlgorithm
- List of symmetric ciphers. Note that not all listed algorithms
- are necessarily supported by all builds of MHD.
-
- `MHD_GNUTLS_CIPHER_UNKNOWN'
-
- `MHD_GNUTLS_CIPHER_NULL'
-
- `MHD_GNUTLS_CIPHER_ARCFOUR_128'
-
- `MHD_GNUTLS_CIPHER_3DES_CBC'
-
- `MHD_GNUTLS_CIPHER_AES_128_CBC'
-
- `MHD_GNUTLS_CIPHER_AES_256_CBC'
-
- -- Enumeration: MHD_ConnectionInfoType
- Values of this enum are used to specify what information about a
- connection is desired.
-
- `MHD_CONNECTION_INFO_CIPHER_ALGO'
- What cipher algorithm is being used. Takes no extra
- arguments.
-
- `MHD_CONNECTION_INFO_PROTOCOL,'
- Takes no extra arguments.
-
-
- -- Enumeration: MHD_DaemonInfoType
- Values of this enum are used to specify what information about a
- deamon is desired.
- `MHD_DAEMON_INFO_KEY_SIZE'
- Request information about the key size for a particular cipher
- algorithm. The cipher algorithm should be passed as an extra
- argument (of type 'enum MHD_GNUTLS_CipherAlgorithm').
-
- `MHD_DAEMON_INFO_MAC_KEY_SIZE'
- Request information about the key size for a particular cipher
- algorithm. The cipher algorithm should be passed as an extra
- argument (of type 'enum MHD_GNUTLS_HashAlgorithm').
-
- `MHD_DAEMON_INFO_LISTEN_FD'
- Request the file-descriptor number that MHD is using to
- listen to the server socket. This can be useful if no port
- was specified and a client needs to learn what port is
- actually being used by MHD. No extra arguments should be
- passed.
-
-
-
-File: microhttpd.info, Node: microhttpd-struct, Next: microhttpd-cb, Prev: microhttpd-const, Up: Top
-
-3 Structures type definition
-****************************
-
- -- C Struct: MHD_Daemon
- Handle for the daemon (listening on a socket for HTTP traffic).
-
- -- C Struct: MHD_Connection
- Handle for a connection / HTTP request. With HTTP/1.1, multiple
- requests can be run over the same connection. However, MHD will
- only show one request per TCP connection to the client at any
- given time.
-
- -- C Struct: MHD_Response
- Handle for a response.
-
- -- C Struct: MHD_PostProcessor
- Handle for `POST' processing.
-
- -- C Union: MHD_ConnectionInfo
- Information about a connection.
-
- -- C Union: MHD_DaemonInfo
- Information about an MHD daemon.
-
-
-File: microhttpd.info, Node: microhttpd-cb, Next: microhttpd-init, Prev: microhttpd-struct, Up: Top
-
-4 Callback functions definition
-*******************************
-
- -- Function Pointer: int *MHD_AcceptPolicyCallback (void *cls, const
- struct sockaddr * addr, socklen_t addrlen)
- Invoked in the context of a connection to allow or deny a client to
- connect. This callback return `MHD_YES' if connection is allowed,
- `MHD_NO' if not.
-
- CLS
- custom value selected at callback registration time;
-
- ADDR
- address information from the client;
-
- ADDRLEN
- length of the address information.
-
- -- Function Pointer: int *MHD_AccessHandlerCallback (void *cls, struct
- MHD_Connection * connection, const char *url, const char
- *method, const char *version, const char *upload_data, size_t
- *upload_data_size, void **con_cls)
- Invoked in the context of a connection to answer a request from the
- client. This callback must call MHD functions (example: the
- `MHD_Response' ones) to provide content to give back to the client
- and return an HTTP status code (i.e. `200' for OK, `404', etc.).
-
- *note microhttpd-post::, for details on how to code this callback.
-
- Must return `MHD_YES' if the connection was handled successfully,
- `MHD_NO' if the socket must be closed due to a serious error while
- handling the request
-
- CLS
- custom value selected at callback registration time;
-
- URL
- the URL requested by the client;
-
- METHOD
- the HTTP method used by the client (`GET', `PUT', `DELETE',
- `POST', etc.);
-
- VERSION
- the HTTP version string (i.e. `HTTP/1.1');
-
- UPLOAD_DATA
- the data being uploaded (excluding headers):
-
- * for a `POST' that fits into memory and that is encoded
- with a supported encoding, the `POST' data will *NOT* be
- given in UPLOAD_DATA and is instead available as part of
- `MHD_get_connection_values()';
-
- * very large `POST' data *will* be made available
- incrementally in UPLOAD_DATA;
-
- UPLOAD_DATA_SIZE
- set initially to the size of the UPLOAD_DATA provided; this
- callback must update this value to the number of bytes *NOT*
- processed; unless external select is used, the callback maybe
- required to process at least some data. If the callback
- fails to process data in multi-threaded or internal-select
- mode and if the read-buffer is already at the maximum size
- that MHD is willing to use for reading (about half of the
- maximum amount of memory allowed for the connection), then
- MHD will abort handling the connection and return an internal
- server error to the client. In order to avoid this, clients
- must be able to process upload data incrementally and reduce
- the value of `upload_data_size'.
-
- CON_CLS
- reference to a pointer, initially set to `NULL', that this
- callback can set to some address and that will be preserved
- by MHD for future calls for this request;
-
- since the access handler may be called many times (i.e., for a
- `PUT'/`POST' operation with plenty of upload data) this allows
- the application to easily associate some request-specific
- state;
-
- if necessary, this state can be cleaned up in the global
- `MHD_RequestCompletedCallback' (which can be set with the
- `MHD_OPTION_NOTIFY_COMPLETED').
-
- -- Function Pointer: void *MHD_RequestCompletedCallback (void *cls,
- struct MHD_Connectionconnection, void **con_cls, enum
- MHD_RequestTerminationCode toe)
- Signature of the callback used by MHD to notify the application
- about completed requests.
-
- CLS
- custom value selected at callback registration time;
-
- CONNECTION
- connection handle;
-
- CON_CLS
- value as set by the last call to the
- `MHD_AccessHandlerCallback';
-
- TOE
- reason for request termination see
- `MHD_OPTION_NOTIFY_COMPLETED'.
-
- -- Function Pointer: int *MHD_KeyValueIterator (void *cls, enum
- MHD_ValueKind kind, const char *key, const char *value)
- Iterator over key-value pairs. This iterator can be used to
- iterate over all of the cookies, headers, or `POST'-data fields of
- a request, and also to iterate over the headers that have been
- added to a response.
-
- Return `MHD_YES' to continue iterating, `MHD_NO' to abort the
- iteration.
-
- -- Function Pointer: int *MHD_ContentReaderCallback (void *cls,
- uint64_t pos, char *buf, int max)
- Callback used by MHD in order to obtain content. The callback has
- to copy at most MAX bytes of content into BUF. The total number
- of bytes that has been placed into BUF should be returned.
-
- Note that returning zero will cause MHD to try again, either
- "immediately" if in multi-threaded mode (in which case the callback
- may want to do blocking operations to avoid busy waiting) or in the
- next round if `MHD_run' is used. Returning zero for a daemon that
- runs in internal `select()' mode is an error (since it would
- result in busy waiting) and cause the program to be aborted
- (`abort()').
-
- CLS
- custom value selected at callback registration time;
-
- POS
- position in the datastream to access; note that if an
- `MHD_Response' object is re-used, it is possible for the same
- content reader to be queried multiple times for the same
- data; however, if an `MHD_Response' is not re-used, MHD
- guarantees that POS will be the sum of all non-negative
- return values obtained from the content reader so far.
-
- Return `-1' on error (MHD will no longer try to read content and
- instead close the connection with the client).
-
- -- Function Pointer: void *MHD_ContentReaderFreeCallback (void *cls)
- This method is called by MHD if we are done with a content reader.
- It should be used to free resources associated with the content
- reader.
-
- -- Function Pointer: int *MHD_PostDataIterator (void *cls, enum
- MHD_ValueKind kind, const char *key, const char *filename,
- const char *content_type, const char *transfer_encoding,
- const char *data, uint64_t off, size_t size)
- Iterator over key-value pairs where the value maybe made available
- in increments and/or may not be zero-terminated. Used for
- processing `POST' data.
-
- CLS
- custom value selected at callback registration time;
-
- KIND
- type of the value;
-
- KEY
- zero-terminated key for the value;
-
- FILENAME
- name of the uploaded file, `NULL' if not known;
-
- CONTENT_TYPE
- mime-type of the data, `NULL' if not known;
-
- TRANSFER_ENCODING
- encoding of the data, `NULL' if not known;
-
- DATA
- pointer to size bytes of data at the specified offset;
-
- OFF
- offset of data in the overall value;
-
- SIZE
- number of bytes in data available.
-
- Return `MHD_YES' to continue iterating, `MHD_NO' to abort the
- iteration.
-
-
-File: microhttpd.info, Node: microhttpd-init, Next: microhttpd-inspect, Prev: microhttpd-cb, Up: Top
-
-5 Starting and stopping the server
-**********************************
-
- -- Function: void MHD_set_panic_func (MHD_PanicCallback cb, void *cls)
- Set a handler for fatal errors.
-
- CB
- function to call if MHD encounteres a fatal internal error.
- If no handler was set explicitly, MHD will call `abort'.
-
- CLS
- closure argument for cb; the other arguments are the name of
- the source file, line number and a string describing the
- nature of the fatal error (which can be NULL)
-
- -- Function: struct MHD_Daemon * MHD_start_daemon (unsigned int flags,
- unsigned short port, MHD_AcceptPolicyCallback apc, void
- *apc_cls, MHD_AccessHandlerCallback dh, void *dh_cls, ...)
- Start a webserver on the given port.
-
- FLAGS
- OR-ed combination of `MHD_FLAG' values;
-
- PORT
- port to bind to;
-
- APC
- callback to call to check which clients will be allowed to
- connect; you can pass `NULL' in which case connections from
- any IP will be accepted;
-
- APC_CLS
- extra argument to APC;
-
- DH
- default handler for all URIs;
-
- DH_CLS
- extra argument to DH.
-
- Additional arguments are a list of options (type-value pairs,
- terminated with `MHD_OPTION_END'). It is mandatory to use
- `MHD_OPTION_END' as last argument, even when there are no
- additional arguments.
-
- Return `NULL' on error, handle to daemon on success.
-
- -- Function: void MHD_stop_daemon (struct MHD_Daemon *daemon)
- Shutdown an HTTP daemon.
-
- -- Function: int MHD_run (struct MHD_Daemon *daemon)
- Run webserver operations (without blocking unless in client
- callbacks). This method should be called by clients in
- combination with `MHD_get_fdset()' if the client-controlled
- `select()' method is used.
-
- Return `MHD_YES' on success, `MHD_NO' if this daemon was not
- started with the right options for this call.
-
-
-File: microhttpd.info, Node: microhttpd-inspect, Next: microhttpd-requests, Prev: microhttpd-init, Up: Top
-
-6 Implementing external `select'
-********************************
-
- -- Function: int MHD_get_fdset (struct MHD_Daemon *daemon, fd_set *
- read_fd_set, fd_set * write_fd_set, fd_set * except_fd_set,
- int *max_fd)
- Obtain the `select()' sets for this daemon. The daemon's socket is
- added to READ_FD_SET. The list of currently existent connections
- is scanned and their file descriptors added to the correct set.
-
- *note Waiting for I/O: (libc)Waiting for I/O, for details on file
- descriptor sets.
-
- After the call completed successfully: the variable referenced by
- MAX_FD references the file descriptor with highest integer
- identifier. The variable must be set to zero before invoking this
- function.
-
- Return `MHD_YES' on success, `MHD_NO' if: the arguments are
- invalid (example: `NULL' pointers); this daemon was not started
- with the right options for this call.
-
- -- Function: int MHD_get_timeout (struct MHD_Daemon *daemon, unsigned
- long long *timeout)
- Obtain timeout value for select for this daemon (only needed if
- connection timeout is used). The returned value is how long
- `select()' should at most block, not the timeout value set for
- connections.
-
- set to the timeout (in milliseconds).
-
- Return `MHD_YES' on success, `MHD_NO' if timeouts are not used (or
- no connections exist that would necessiate the use of a timeout
- right now).
-
-
-File: microhttpd.info, Node: microhttpd-requests, Next: microhttpd-responses, Prev: microhttpd-inspect, Up: Top
-
-7 Handling requests
-*******************
-
- -- Function: int MHD_get_connection_values (struct MHD_Connection
- *connection, enum MHD_ValueKind kind, MHD_KeyValueIterator
- iterator, void *iterator_cls)
- Get all the headers matching KIND from the request.
-
- The ITERATOR callback is invoked once for each header, with
- ITERATOR_CLS as first argument. Return the number of entries
- iterated over; this can be less than the number of headers if,
- while iterating, ITERATOR returns `MHD_NO'.
-
- ITERATOR can be `NULL': in this case this function just counts and
- returns the number of headers.
-
- -- Function: int MHD_set_connection_value (struct MHD_Connection
- *connection, enum MHD_ValueKind kind, const char * key, const
- char * value)
- This function can be used to add an entry to the HTTP headers of a
- connection (so that the MHD_get_connection_values function will
- return them - and the MHD PostProcessor will also see them). This
- maybe required in certain situations (see Mantis #1399) where
- (broken) HTTP implementations fail to supply values needed by the
- post processor (or other parts of the application).
-
- This function MUST only be called from within the
- MHD_AccessHandlerCallback (otherwise, access maybe improperly
- synchronized). Furthermore, the client must guarantee that the
- key and value arguments are 0-terminated strings that are NOT
- freed until the connection is closed. (The easiest way to do this
- is by passing only arguments to permanently allocated strings.).
-
- CONNECTION is the connection for which the entry for KEY of the
- given KIND should be set to the given VALUE.
-
- The function returns `MHD_NO' if the operation could not be
- performed due to insufficient memory and `MHD_YES' on success.
-
- -- Function: const char * MHD_lookup_connection_value (struct
- MHD_Connection *connection, enum MHD_ValueKind kind, const
- char *key)
- Get a particular header value. If multiple values match the KIND,
- return one of them (the "first", whatever that means). KEY must
- reference a zero-terminated ASCII-coded string representing the
- header to look for: it is compared against the headers using
- `strcasecmp()', so case is ignored. Return `NULL' if no such item
- was found.
-
-
-File: microhttpd.info, Node: microhttpd-responses, Next: microhttpd-post, Prev: microhttpd-requests, Up: Top
-
-8 Building answers to responses
-*******************************
-
-Response objects handling by MHD is asynchronous with respect to the
-application execution flow. Instances of the `MHD_Response' structure
-are not associated to a daemon and neither to a client connection: they
-are managed with reference counting.
-
- In the simplest case: we allocate a new `MHD_Response' structure for
-each response, we use it once and finally we destroy it.
-
- MHD allows more efficient resources usages.
-
- Example: we allocate a new `MHD_Response' structure for each
-response *kind*, we use it every time we have to give that responce and
-we finally destroy it only when the daemon shuts down.
-
-* Menu:
-
-* microhttpd-response enqueue:: Enqueuing a response.
-* microhttpd-response create:: Creating a response object.
-* microhttpd-response headers:: Adding headers to a response.
-* microhttpd-response inspect:: Inspecting a response object.
-
-
-File: microhttpd.info, Node: microhttpd-response enqueue, Next: microhttpd-response create, Up: microhttpd-responses
-
-8.1 Enqueuing a response
-========================
-
- -- Function: int MHD_queue_response (struct MHD_Connection
- *connection, unsigned int status_code, struct MHD_Response
- *response)
- Queue a response to be transmitted to the client as soon as
- possible but only after MHD_AccessHandlerCallback returns. This
- function checks that it is legal to queue a response at this time
- for the given connection. It also increments the internal
- reference counter for the response object (the counter will be
- decremented automatically once the response has been transmitted).
-
- CONNECTION
- the connection identifying the client;
-
- STATUS_CODE
- HTTP status code (i.e. `200' for OK);
-
- RESPONSE
- response to transmit.
-
- Return `MHD_YES' on success or if message has been queued. Return
- `MHD_NO': if arguments are invalid (example: `NULL' pointer); on
- error (i.e. reply already sent).
-
- -- Function: void MHD_destroy_response (struct MHD_Response *response)
- Destroy a response object and associated resources (decrement the
- reference counter). Note that MHD may keep some of the resources
- around if the response is still in the queue for some clients, so
- the memory may not necessarily be freed immediatley.
-
- An explanation of reference counting(1):
-
- 1. a `MHD_Response' object is allocated:
-
- struct MHD_Response * response = MHD_create_response_from_data(...);
- /* here: reference counter = 1 */
-
- 2. the `MHD_Response' object is enqueued in a `MHD_Connection':
-
- MHD_queue_response(connection, , response);
- /* here: reference counter = 2 */
-
- 3. the creator of the response object discharges responsibility for
- it:
-
- MHD_destroy_response(response);
- /* here: reference counter = 1 */
-
- 4. the daemon handles the connection sending the response's data to
- the client then decrements the reference counter by calling
- `MHD_destroy_response()': the counter's value drops to zero and
- the `MHD_Response' object is released.
-
- ---------- Footnotes ----------
-
- (1) Note to readers acquainted to the Tcl API: reference counting on
-`MHD_Connection' structures is handled in the same way as Tcl handles
-`Tcl_Obj' structures through `Tcl_IncrRefCount()' and
-`Tcl_DecrRefCount()'.
-
-
-File: microhttpd.info, Node: microhttpd-response create, Next: microhttpd-response headers, Prev: microhttpd-response enqueue, Up: microhttpd-responses
-
-8.2 Creating response objects
-=============================
-
- -- Function: struct MHD_Response * MHD_create_response_from_callback
- (uint64_t size, size_t block_size, MHD_ContentReaderCallback
- crc, void *crc_cls, MHD_ContentReaderFreeCallback crfc)
- Create a response object. The response object can be extended with
- header information and then it can be used any number of times.
-
- SIZE
- size of the data portion of the response, `-1' for unknown;
-
- BLOCK_SIZE
- preferred block size for querying CRC (advisory only, MHD may
- still call CRC using smaller chunks); this is essentially the
- buffer size used for IO, clients should pick a value that is
- appropriate for IO and memory performance requirements;
-
- CRC
- callback to use to obtain response data;
-
- CRC_CLS
- extra argument to CRC;
-
- CRFC
- callback to call to free CRC_CLS resources.
-
- Return `NULL' on error (i.e. invalid arguments, out of memory).
-
- -- Function: struct MHD_Response * MHD_create_response_from_data
- (size_t size, void *data, int must_free, int must_copy)
- Create a response object. The response object can be extended with
- header information and then it can be used any number of times.
-
- SIZE
- size of the data portion of the response;
-
- DATA
- the data itself;
-
- MUST_FREE
- if true: MHD should free data when done;
-
- MUST_COPY
- if true: MHD allocates a block of memory and use it to make a
- copy of DATA embedded in the returned `MHD_Response'
- structure; handling of the embedded memory is responsibility
- of MHD; DATA can be released anytime after this call returns.
-
- Return `NULL' on error (i.e. invalid arguments, out of memory).
-
- Example: create a response from a statically allocated string:
-
- const char * data = "<html><body><p>Error!</p></body></html>";
-
- struct MHD_Connection * connection = ...;
- struct MHD_Response * response;
-
- response = MHD_create_response_from_data(strlen(data), data,
- MHD_NO, MHD_NO);
- MHD_queue_response(connection, 404, response);
- MHD_destroy_response(response);
-
-
-File: microhttpd.info, Node: microhttpd-response headers, Next: microhttpd-response inspect, Prev: microhttpd-response create, Up: microhttpd-responses
-
-8.3 Adding headers to a response
-================================
-
- -- Function: int MHD_add_response_header (struct MHD_Response
- *response, const char *header, const char *content)
- Add a header line to the response. The strings referenced by
- HEADER and CONTENT must be zero-terminated and they are duplicated
- into memory blocks embedded in RESPONSE.
-
- Notice that the strings must not hold newlines, carriage returns
- or tab chars.
-
- Return `MHD_NO' on error (i.e. invalid header or content format or
- memory allocation error).
-
- -- Function: int MHD_del_response_header (struct MHD_Response
- *response, const char *header, const char *content)
- Delete a header line from the response. Return `MHD_NO' on error
- (arguments are invalid or no such header known).
-
-
-File: microhttpd.info, Node: microhttpd-response inspect, Prev: microhttpd-response headers, Up: microhttpd-responses
-
-8.4 Inspecting a response object
-================================
-
- -- Function: int MHD_get_response_headers (struct MHD_Response
- *response, MHD_KeyValueIterator iterator, void *iterator_cls)
- Get all of the headers added to a response.
-
- Invoke the ITERATOR callback for each header in the response,
- using ITERATOR_CLS as first argument. Return number of entries
- iterated over. ITERATOR can be `NULL': in this case the function
- just counts headers.
-
- ITERATOR should not modify the its key and value arguments, unless
- we know what we are doing.
-
- -- Function: const char * MHD_get_response_header (struct MHD_Response
- *response, const char *key)
- Find and return a pointer to the value of a particular header from
- the response. KEY must reference a zero-terminated string
- representing the header to look for. The search is case sensitive.
- Return `NULL' if header does not exist or KEY is `NULL'.
-
- We should not modify the value, unless we know what we are doing.
-
-
-File: microhttpd.info, Node: microhttpd-post, Next: microhttpd-info, Prev: microhttpd-responses, Up: Top
-
-9 Adding a `POST' processor
-***************************
-
-* Menu:
-
-* microhttpd-post api:: Programming interface for the
- `POST' processor.
-
-MHD provides the post procesor API to make it easier for applications to
-parse the data of a client's `POST' request: the
-`MHD_AccessHandlerCallback' will be invoked multiple times to process
-data as it arrives; at each invocation a new chunk of data must be
-processed. The arguments UPLOAD_DATA and UPLOAD_DATA_SIZE are used to
-reference the chunk of data.
-
- When `MHD_AccessHandlerCallback' is invoked for a new connection:
-its `*CON_CLS' argument is set to `NULL'. When `POST' data comes in the
-upload buffer it is *mandatory* to use the CON_CLS to store a reference
-to per-connection data. The fact that the pointer was initially `NULL'
-can be used to detect that this is a new request.
-
- One method to detect that a new connection was established is to set
-`*con_cls' to anunused integer:
-
- int
- access_handler (void *cls,
- struct MHD_Connection * connection,
- const char *url,
- const char *method, const char *version,
- const char *upload_data, size_t *upload_data_size,
- void **con_cls)
- {
- static int old_connection_marker;
- int new_connection = (MYNULL == *con_cls);
-
- if (new_connection)
- {
- /* new connection with POST */
- *con_cls = &old_connection_marker;
- }
-
- ...
- }
-
-In contrast to the previous example, for `POST' requests in particular,
-it is more common to use the value of `*con_cls' to keep track of
-actual state used during processing, such as the post processor (or a
-struct containing a post processor):
-
- int
- access_handler (void *cls,
- struct MHD_Connection * connection,
- const char *url,
- const char *method, const char *version,
- const char *upload_data, size_t *upload_data_size,
- void **con_cls)
- {
- struct MHD_PostProcessor * pp = *con_cls;
-
- if (pp == NULL)
- {
- pp = MHD_create_post_processor(connection, ...);
- *con_cls = pp;
- return MHD_YES;
- }
- if (*upload_data_size)
- {
- MHD_post_process(pp, upload_data, *upload_data_size);
- *upload_data_size = 0;
- return MHD_YES;
- }
- else
- {
- MHD_destroy_post_processor(pp);
- return MHD_queue_response(...);
- }
- }
-
- Note that the callback from `MHD_OPTION_NOTIFY_COMPLETED' should be
-used to destroy the post processor. This cannot be done inside of the
-access handler since the connection may not always terminate normally.
-
-
-File: microhttpd.info, Node: microhttpd-post api, Up: microhttpd-post
-
-9.1 Programming interface for the `POST' processor
-==================================================
-
- -- Function: struct MHD_PostProcessor * MHD_create_post_processor
- (struct MHD_Connection *connection, size_t buffer_size,
- MHD_PostDataIterator iterator, void *iterator_cls)
- Create a PostProcessor. A PostProcessor can be used to
- (incrementally) parse the data portion of a `POST' request.
-
- CONNECTION
- the connection on which the `POST' is happening (used to
- determine the `POST' format);
-
- BUFFER_SIZE
- maximum number of bytes to use for internal buffering (used
- only for the parsing, specifically the parsing of the keys).
- A tiny value (256-1024) should be sufficient; do *NOT* use a
- value smaller than 256;
-
- ITERATOR
- iterator to be called with the parsed data; must *NOT* be
- `NULL';
-
- ITERATOR_CLS
- custom value to be used as first argument to ITERATOR.
-
- Return `NULL' on error (out of memory, unsupported encoding),
- otherwise a PP handle.
-
- -- Function: int MHD_post_process (struct MHD_PostProcessor *pp, const
- char *post_data, size_t post_data_len)
- Parse and process `POST' data. Call this function when `POST'
- data is available (usually during an `MHD_AccessHandlerCallback')
- with the UPLOAD_DATA and UPLOAD_DATA_SIZE. Whenever possible,
- this will then cause calls to the
- `MHD_IncrementalKeyValueIterator'.
-
- PP
- the post processor;
-
- POST_DATA
- POST_DATA_LEN bytes of `POST' data;
-
- POST_DATA_LEN
- length of POST_DATA.
-
- Return `MHD_YES' on success, `MHD_NO' on error (out-of-memory,
- iterator aborted, parse error).
-
- -- Function: int MHD_destroy_post_processor (struct MHD_PostProcessor
- *pp)
- Release PostProcessor resources. After this function is being
- called, the PostProcessor is guaranteed to no longer call its
- iterator. There is no special call to the iterator to indicate
- the end of the post processing stream. After destroying the
- PostProcessor, the programmer should perform any necessary work to
- complete the processing of the iterator.
-
- Return `MHD_YES' if processing completed nicely, `MHD_NO' if there
- were spurious characters or formatting problems with the post
- request. It is common to ignore the return value of this function.
-
-
-
-File: microhttpd.info, Node: microhttpd-info, Next: GNU-LGPL, Prev: microhttpd-post, Up: Top
-
-10 Obtaining status information.
-********************************
-
-* Menu:
-
-* microhttpd-info daemon:: State information about an MHD daemon
-* microhttpd-info conn:: State information about a connection
-
-
-File: microhttpd.info, Node: microhttpd-info daemon, Next: microhttpd-info conn, Up: microhttpd-info
-
-10.1 Obtaining state information about an MHD daemon
-====================================================
-
- -- Function: const union MHD_DaemonInfo * MHD_get_daemon_info (struct
- MHD_Daemon *daemon, enum MHD_DaemonInfoType infoType, ...)
- Obtain information about the given daemon. This function is
- currently not fully implemented.
-
- DAEMON
- the daemon about which information is desired;
-
- INFOTYPE
- type of information that is desired
-
- ...
- additional arguments about the desired information (depending
- on infoType)
-
- Returns a union with the respective member (depending on infoType)
- set to the desired information), or NULL in case the desired
- information is not available or applicable.
-
-
-File: microhttpd.info, Node: microhttpd-info conn, Prev: microhttpd-info daemon, Up: microhttpd-info
-
-10.2 Obtaining state information about a connection
-===================================================
-
- -- Function: const union MHD_ConnectionInfo * MHD_get_connection_info
- (struct MHD_Connection *daemon, enum MHD_ConnectionInfoType
- infoType, ...)
- Obtain information about the given connection.
-
- CONNECTION
- the connection about which information is desired;
-
- INFOTYPE
- type of information that is desired
-
- ...
- additional arguments about the desired information (depending
- on infoType)
-
- Returns a union with the respective member (depending on infoType)
- set to the desired information), or NULL in case the desired
- information is not available or applicable.
-
-
-File: microhttpd.info, Node: GNU-LGPL, Next: GNU GPL with eCos Extension, Prev: microhttpd-info, Up: Top
-
-GNU-LGPL
-********
-
- Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- [This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence the
- version number 2.1.]
-
-Preamble
---------
-
-The licenses for most software are designed to take away your freedom
-to share and change it. By contrast, the GNU General Public Licenses
-are intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software--typically libraries--of the Free
-Software Foundation and other authors who decide to use it. You can use
-it too, but we suggest you first think carefully about whether this
-license or the ordinary General Public License is the better strategy to
-use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-not price. Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of it
-in new free programs; and that you are informed that you can do these
-things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know that
-what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and is
-quite different from the ordinary General Public License. We use this
-license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does _Less_ to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it
-becomes a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of free
-software. For example, permission to use the GNU C Library in non-free
-programs enables many more people to use the whole GNU operating
-system, as well as its variant, the GNU/Linux operating system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run that
-program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
----------------------------------------------------------------
-
- 0. This License Agreement applies to any software library or other
- program which contains a notice placed by the copyright holder or
- other authorized party saying it may be distributed under the
- terms of this Lesser General Public License (also called "this
- License"). Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
- prepared so as to be conveniently linked with application programs
- (which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
- which has been distributed under these terms. A "work based on the
- Library" means either the Library or any derivative work under
- copyright law: that is to say, a work containing the Library or a
- portion of it, either verbatim or with modifications and/or
- translated straightforwardly into another language. (Hereinafter,
- translation is included without limitation in the term
- "modification".)
-
- "Source code" for a work means the preferred form of the work for
- making modifications to it. For a library, complete source code
- means all the source code for all modules it contains, plus any
- associated interface definition files, plus the scripts used to
- control compilation and installation of the library.
-
- Activities other than copying, distribution and modification are
- not covered by this License; they are outside its scope. The act
- of running a program using the Library is not restricted, and
- output from such a program is covered only if its contents
- constitute a work based on the Library (independent of the use of
- the Library in a tool for writing it). Whether that is true
- depends on what the Library does and what the program that uses
- the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
- complete source code as you receive it, in any medium, provided
- that you conspicuously and appropriately publish on each copy an
- appropriate copyright notice and disclaimer of warranty; keep
- intact all the notices that refer to this License and to the
- absence of any warranty; and distribute a copy of this License
- along with the Library.
-
- You may charge a fee for the physical act of transferring a copy,
- and you may at your option offer warranty protection in exchange
- for a fee.
-
- 2. You may modify your copy or copies of the Library or any portion
- of it, thus forming a work based on the Library, and copy and
- distribute such modifications or work under the terms of Section 1
- above, provided that you also meet all of these conditions:
-
- a. The modified work must itself be a software library.
-
- b. You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c. You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d. If a facility in the modified Library refers to a function or
- a table of data to be supplied by an application program that
- uses the facility, other than as an argument passed when the
- facility is invoked, then you must make a good faith effort
- to ensure that, in the event an application does not supply
- such function or table, the facility still operates, and
- performs whatever part of its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots
- has a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function
- must be optional: if the application does not supply it, the
- square root function must still compute square roots.)
-
- These requirements apply to the modified work as a whole. If
- identifiable sections of that work are not derived from the
- Library, and can be reasonably considered independent and separate
- works in themselves, then this License, and its terms, do not
- apply to those sections when you distribute them as separate
- works. But when you distribute the same sections as part of a
- whole which is a work based on the Library, the distribution of
- the whole must be on the terms of this License, whose permissions
- for other licensees extend to the entire whole, and thus to each
- and every part regardless of who wrote it.
-
- Thus, it is not the intent of this section to claim rights or
- contest your rights to work written entirely by you; rather, the
- intent is to exercise the right to control the distribution of
- derivative or collective works based on the Library.
-
- In addition, mere aggregation of another work not based on the
- Library with the Library (or with a work based on the Library) on
- a volume of a storage or distribution medium does not bring the
- other work under the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
- License instead of this License to a given copy of the Library.
- To do this, you must alter all the notices that refer to this
- License, so that they refer to the ordinary GNU General Public
- License, version 2, instead of to this License. (If a newer
- version than version 2 of the ordinary GNU General Public License
- has appeared, then you can specify that version instead if you
- wish.) Do not make any other change in these notices.
-
- Once this change is made in a given copy, it is irreversible for
- that copy, so the ordinary GNU General Public License applies to
- all subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
- the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
- derivative of it, under Section 2) in object code or executable
- form under the terms of Sections 1 and 2 above provided that you
- accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software
- interchange.
-
- If distribution of object code is made by offering access to copy
- from a designated place, then offering equivalent access to copy
- the source code from the same place satisfies the requirement to
- distribute the source code, even though third parties are not
- compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
- Library, but is designed to work with the Library by being
- compiled or linked with it, is called a "work that uses the
- Library". Such a work, in isolation, is not a derivative work of
- the Library, and therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
- creates an executable that is a derivative of the Library (because
- it contains portions of the Library), rather than a "work that
- uses the library". The executable is therefore covered by this
- License. Section 6 states terms for distribution of such
- executables.
-
- When a "work that uses the Library" uses material from a header
- file that is part of the Library, the object code for the work may
- be a derivative work of the Library even though the source code is
- not. Whether this is true is especially significant if the work
- can be linked without the Library, or if the work is itself a
- library. The threshold for this to be true is not precisely
- defined by law.
-
- If such an object file uses only numerical parameters, data
- structure layouts and accessors, and small macros and small inline
- functions (ten lines or less in length), then the use of the object
- file is unrestricted, regardless of whether it is legally a
- derivative work. (Executables containing this object code plus
- portions of the Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
- distribute the object code for the work under the terms of Section
- 6. Any executables containing that work also fall under Section 6,
- whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
- link a "work that uses the Library" with the Library to produce a
- work containing portions of the Library, and distribute that work
- under terms of your choice, provided that the terms permit
- modification of the work for the customer's own use and reverse
- engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
- Library is used in it and that the Library and its use are covered
- by this License. You must supply a copy of this License. If the
- work during execution displays copyright notices, you must include
- the copyright notice for the Library among them, as well as a
- reference directing the user to the copy of this License. Also,
- you must do one of these things:
-
- a. Accompany the work with the complete corresponding
- machine-readable source code for the Library including
- whatever changes were used in the work (which must be
- distributed under Sections 1 and 2 above); and, if the work
- is an executable linked with the Library, with the complete
- machine-readable "work that uses the Library", as object code
- and/or source code, so that the user can modify the Library
- and then relink to produce a modified executable containing
- the modified Library. (It is understood that the user who
- changes the contents of definitions files in the Library will
- not necessarily be able to recompile the application to use
- the modified definitions.)
-
- b. Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run
- time a copy of the library already present on the user's
- computer system, rather than copying library functions into
- the executable, and (2) will operate properly with a modified
- version of the library, if the user installs one, as long as
- the modified version is interface-compatible with the version
- that the work was made with.
-
- c. Accompany the work with a written offer, valid for at least
- three years, to give the same user the materials specified in
- Subsection 6a, above, for a charge no more than the cost of
- performing this distribution.
-
- d. If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the
- above specified materials from the same place.
-
- e. Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
- Library" must include any data and utility programs needed for
- reproducing the executable from it. However, as a special
- exception, the materials to be distributed need not include
- anything that is normally distributed (in either source or binary
- form) with the major components (compiler, kernel, and so on) of
- the operating system on which the executable runs, unless that
- component itself accompanies the executable.
-
- It may happen that this requirement contradicts the license
- restrictions of other proprietary libraries that do not normally
- accompany the operating system. Such a contradiction means you
- cannot use both them and the Library together in an executable
- that you distribute.
-
- 7. You may place library facilities that are a work based on the
- Library side-by-side in a single library together with other
- library facilities not covered by this License, and distribute
- such a combined library, provided that the separate distribution
- of the work based on the Library and of the other library
- facilities is otherwise permitted, and provided that you do these
- two things:
-
- a. Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b. Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same
- work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute the
- Library except as expressly provided under this License. Any
- attempt otherwise to copy, modify, sublicense, link with, or
- distribute the Library is void, and will automatically terminate
- your rights under this License. However, parties who have
- received copies, or rights, from you under this License will not
- have their licenses terminated so long as such parties remain in
- full compliance.
-
- 9. You are not required to accept this License, since you have not
- signed it. However, nothing else grants you permission to modify
- or distribute the Library or its derivative works. These actions
- are prohibited by law if you do not accept this License.
- Therefore, by modifying or distributing the Library (or any work
- based on the Library), you indicate your acceptance of this
- License to do so, and all its terms and conditions for copying,
- distributing or modifying the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
- Library), the recipient automatically receives a license from the
- original licensor to copy, distribute, link with or modify the
- Library subject to these terms and conditions. You may not impose
- any further restrictions on the recipients' exercise of the rights
- granted herein. You are not responsible for enforcing compliance
- by third parties with this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
- infringement or for any other reason (not limited to patent
- issues), conditions are imposed on you (whether by court order,
- agreement or otherwise) that contradict the conditions of this
- License, they do not excuse you from the conditions of this
- License. If you cannot distribute so as to satisfy simultaneously
- your obligations under this License and any other pertinent
- obligations, then as a consequence you may not distribute the
- Library at all. For example, if a patent license would not permit
- royalty-free redistribution of the Library by all those who
- receive copies directly or indirectly through you, then the only
- way you could satisfy both it and this License would be to refrain
- entirely from distribution of the Library.
-
- If any portion of this section is held invalid or unenforceable
- under any particular circumstance, the balance of the section is
- intended to apply, and the section as a whole is intended to apply
- in other circumstances.
-
- It is not the purpose of this section to induce you to infringe any
- patents or other property right claims or to contest validity of
- any such claims; this section has the sole purpose of protecting
- the integrity of the free software distribution system which is
- implemented by public license practices. Many people have made
- generous contributions to the wide range of software distributed
- through that system in reliance on consistent application of that
- system; it is up to the author/donor to decide if he or she is
- willing to distribute software through any other system and a
- licensee cannot impose that choice.
-
- This section is intended to make thoroughly clear what is believed
- to be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
- certain countries either by patents or by copyrighted interfaces,
- the original copyright holder who places the Library under this
- License may add an explicit geographical distribution limitation
- excluding those countries, so that distribution is permitted only
- in or among countries not thus excluded. In such case, this
- License incorporates the limitation as if written in the body of
- this License.
-
- 13. The Free Software Foundation may publish revised and/or new
- versions of the Lesser General Public License from time to time.
- Such new versions will be similar in spirit to the present version,
- but may differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
- Library specifies a version number of this License which applies
- to it and "any later version", you have the option of following
- the terms and conditions either of that version or of any later
- version published by the Free Software Foundation. If the Library
- does not specify a license version number, you may choose any
- version ever published by the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
- programs whose distribution conditions are incompatible with these,
- write to the author to ask for permission. For software which is
- copyrighted by the Free Software Foundation, write to the Free
- Software Foundation; we sometimes make exceptions for this. Our
- decision will be guided by the two goals of preserving the free
- status of all derivatives of our free software and of promoting
- the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
- WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE
- LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
- HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT
- WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
- QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE
- LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
- WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
- MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE
- LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
- INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF
- DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
- OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY
- OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
-How to Apply These Terms to Your New Libraries
-----------------------------------------------
-
-If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of
-the ordinary General Public License).
-
- To apply these terms, attach the following notices to the library.
-It is safest to attach them to the start of each source file to most
-effectively convey the exclusion of warranty; and each file should have
-at least the "copyright" line and a pointer to where the full notice is
-found.
-
- ONE LINE TO GIVE THE LIBRARY'S NAME AND AN IDEA OF WHAT IT DOES.
- Copyright (C) YEAR NAME OF AUTHOR
-
- This library is free software; you can redistribute it and/or modify it
- under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or (at
- your option) any later version.
-
- This library is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- USA.
-
- Also add information on how to contact you by electronic and paper
-mail.
-
- You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the library,
-if necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the library
- `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- SIGNATURE OF TY COON, 1 April 1990
- Ty Coon, President of Vice
-
- That's all there is to it!
-
-
-File: microhttpd.info, Node: GNU GPL with eCos Extension, Next: GNU-FDL, Prev: GNU-LGPL, Up: Top
-
-GNU GPL with eCos Extension
-***************************
-
- Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
---------
-
-The licenses for most software are designed to take away your freedom
-to share and change it. By contrast, the GNU General Public License is
-intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it in
-new free programs; and that you know you can do these things.
-
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software,
-and (2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
- 1. This License applies to any program or other work which contains a
- notice placed by the copyright holder saying it may be distributed
- under the terms of this General Public License. The "Program",
- below, refers to any such program or work, and a "work based on
- the Program" means either the Program or any derivative work under
- copyright law: that is to say, a work containing the Program or a
- portion of it, either verbatim or with modifications and/or
- translated into another language. (Hereinafter, translation is
- included without limitation in the term "modification".) Each
- licensee is addressed as "you".
-
- Activities other than copying, distribution and modification are
- not covered by this License; they are outside its scope. The act
- of running the Program is not restricted, and the output from the
- Program is covered only if its contents constitute a work based on
- the Program (independent of having been made by running the
- Program). Whether that is true depends on what the Program does.
-
- 2. You may copy and distribute verbatim copies of the Program's
- source code as you receive it, in any medium, provided that you
- conspicuously and appropriately publish on each copy an appropriate
- copyright notice and disclaimer of warranty; keep intact all the
- notices that refer to this License and to the absence of any
- warranty; and give any other recipients of the Program a copy of
- this License along with the Program.
-
- You may charge a fee for the physical act of transferring a copy,
- and you may at your option offer warranty protection in exchange
- for a fee.
-
- 3. You may modify your copy or copies of the Program or any portion
- of it, thus forming a work based on the Program, and copy and
- distribute such modifications or work under the terms of Section 1
- above, provided that you also meet all of these conditions:
-
- a. You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b. You must cause any work that you distribute or publish, that
- in whole or in part contains or is derived from the Program
- or any part thereof, to be licensed as a whole at no charge
- to all third parties under the terms of this License.
-
- c. If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display
- an announcement including an appropriate copyright notice and
- a notice that there is no warranty (or else, saying that you
- provide a warranty) and that users may redistribute the
- program under these conditions, and telling the user how to
- view a copy of this License. (Exception: if the Program
- itself is interactive but does not normally print such an
- announcement, your work based on the Program is not required
- to print an announcement.)
-
- These requirements apply to the modified work as a whole. If
- identifiable sections of that work are not derived from the
- Program, and can be reasonably considered independent and separate
- works in themselves, then this License, and its terms, do not
- apply to those sections when you distribute them as separate
- works. But when you distribute the same sections as part of a
- whole which is a work based on the Program, the distribution of
- the whole must be on the terms of this License, whose permissions
- for other licensees extend to the entire whole, and thus to each
- and every part regardless of who wrote it.
-
- Thus, it is not the intent of this section to claim rights or
- contest your rights to work written entirely by you; rather, the
- intent is to exercise the right to control the distribution of
- derivative or collective works based on the Program.
-
- In addition, mere aggregation of another work not based on the
- Program with the Program (or with a work based on the Program) on
- a volume of a storage or distribution medium does not bring the
- other work under the scope of this License.
-
- 4. You may copy and distribute the Program (or a work based on it,
- under Section 2) in object code or executable form under the terms
- of Sections 1 and 2 above provided that you also do one of the
- following:
-
- a. Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of
- Sections 1 and 2 above on a medium customarily used for
- software interchange; or,
-
- b. Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a
- medium customarily used for software interchange; or,
-
- c. Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with
- such an offer, in accord with Subsection b above.)
-
- The source code for a work means the preferred form of the work for
- making modifications to it. For an executable work, complete
- source code means all the source code for all modules it contains,
- plus any associated interface definition files, plus the scripts
- used to control compilation and installation of the executable.
- However, as a special exception, the source code distributed need
- not include anything that is normally distributed (in either
- source or binary form) with the major components (compiler,
- kernel, and so on) of the operating system on which the executable
- runs, unless that component itself accompanies the executable.
-
- If distribution of executable or object code is made by offering
- access to copy from a designated place, then offering equivalent
- access to copy the source code from the same place counts as
- distribution of the source code, even though third parties are not
- compelled to copy the source along with the object code.
-
- 5. You may not copy, modify, sublicense, or distribute the Program
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense or distribute the Program is
- void, and will automatically terminate your rights under this
- License. However, parties who have received copies, or rights,
- from you under this License will not have their licenses
- terminated so long as such parties remain in full compliance.
-
- 6. You are not required to accept this License, since you have not
- signed it. However, nothing else grants you permission to modify
- or distribute the Program or its derivative works. These actions
- are prohibited by law if you do not accept this License.
- Therefore, by modifying or distributing the Program (or any work
- based on the Program), you indicate your acceptance of this
- License to do so, and all its terms and conditions for copying,
- distributing or modifying the Program or works based on it.
-
- 7. Each time you redistribute the Program (or any work based on the
- Program), the recipient automatically receives a license from the
- original licensor to copy, distribute or modify the Program
- subject to these terms and conditions. You may not impose any
- further restrictions on the recipients' exercise of the rights
- granted herein. You are not responsible for enforcing compliance
- by third parties to this License.
-
- 8. If, as a consequence of a court judgment or allegation of patent
- infringement or for any other reason (not limited to patent
- issues), conditions are imposed on you (whether by court order,
- agreement or otherwise) that contradict the conditions of this
- License, they do not excuse you from the conditions of this
- License. If you cannot distribute so as to satisfy simultaneously
- your obligations under this License and any other pertinent
- obligations, then as a consequence you may not distribute the
- Program at all. For example, if a patent license would not permit
- royalty-free redistribution of the Program by all those who
- receive copies directly or indirectly through you, then the only
- way you could satisfy both it and this License would be to refrain
- entirely from distribution of the Program.
-
- If any portion of this section is held invalid or unenforceable
- under any particular circumstance, the balance of the section is
- intended to apply and the section as a whole is intended to apply
- in other circumstances.
-
- It is not the purpose of this section to induce you to infringe any
- patents or other property right claims or to contest validity of
- any such claims; this section has the sole purpose of protecting
- the integrity of the free software distribution system, which is
- implemented by public license practices. Many people have made
- generous contributions to the wide range of software distributed
- through that system in reliance on consistent application of that
- system; it is up to the author/donor to decide if he or she is
- willing to distribute software through any other system and a
- licensee cannot impose that choice.
-
- This section is intended to make thoroughly clear what is believed
- to be a consequence of the rest of this License.
-
- 9. If the distribution and/or use of the Program is restricted in
- certain countries either by patents or by copyrighted interfaces,
- the original copyright holder who places the Program under this
- License may add an explicit geographical distribution limitation
- excluding those countries, so that distribution is permitted only
- in or among countries not thus excluded. In such case, this
- License incorporates the limitation as if written in the body of
- this License.
-
- 10. The Free Software Foundation may publish revised and/or new
- versions of the General Public License from time to time. Such
- new versions will be similar in spirit to the present version, but
- may differ in detail to address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
- Program specifies a version number of this License which applies
- to it and "any later version", you have the option of following
- the terms and conditions either of that version or of any later
- version published by the Free Software Foundation. If the Program
- does not specify a version number of this License, you may choose
- any version ever published by the Free Software Foundation.
-
- 11. If you wish to incorporate parts of the Program into other free
- programs whose distribution conditions are different, write to the
- author to ask for permission. For software which is copyrighted
- by the Free Software Foundation, write to the Free Software
- Foundation; we sometimes make exceptions for this. Our decision
- will be guided by the two goals of preserving the free status of
- all derivatives of our free software and of promoting the sharing
- and reuse of software generally.
-
- NO WARRANTY
- 12. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
- WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
- LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
- HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
- WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE
- QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
- 13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
- WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
- MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
- LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
- INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
- INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
- DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
- OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
- OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- ECOS EXTENSION
- 14. As a special exception, if other files instantiate templates or use
- macros or inline functions from this file, or you compile this file
- and link it with other works to produce a work based on this file,
- this file does not by itself cause the resulting work to be
- covered by the GNU General Public License. However the source code
- for this file must still be made available in accordance with
- section (3) of the GNU General Public License v2.
-
- This exception does not invalidate any other reasons why a work
- based on this file might be covered by the GNU General Public
- License.
-
-
- END OF TERMS AND CONDITIONS
-How to Apply These Terms to Your New Programs
-=============================================
-
-If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these
-terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- ONE LINE TO GIVE THE PROGRAM'S NAME AND AN IDEA OF WHAT IT DOES.
- Copyright (C) 19YY NAME OF AUTHOR
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
-
- Also add information on how to contact you by electronic and paper
-mail.
-
- If the program is interactive, make it output a short notice like
-this when it starts in an interactive mode:
-
- Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
- type `show w'. This is free software, and you are welcome
- to redistribute it under certain conditions; type `show c'
- for details.
-
- The hypothetical commands `show w' and `show c' should show the
-appropriate parts of the General Public License. Of course, the
-commands you use may be called something other than `show w' and `show
-c'; they could even be mouse-clicks or menu items--whatever suits your
-program.
-
- You should also get your employer (if you work as a programmer) or
-your school, if any, to sign a "copyright disclaimer" for the program,
-if necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright
- interest in the program `Gnomovision'
- (which makes passes at compilers) written
- by James Hacker.
-
- SIGNATURE OF TY COON, 1 April 1989
- Ty Coon, President of Vice
-
- This General Public License does not permit incorporating your
-program into proprietary programs. If your program is a subroutine
-library, you may consider it more useful to permit linking proprietary
-applications with the library. If this is what you want to do, use the
-GNU Library General Public License instead of this License.
-
-
-File: microhttpd.info, Node: GNU-FDL, Next: Concept Index, Prev: GNU GPL with eCos Extension, Up: Top
-
-GNU-FDL
-*******
-
- Version 1.3, 3 November 2008
-
- Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- `http://fsf.org/'
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- 0. PREAMBLE
-
- The purpose of this License is to make a manual, textbook, or other
- functional and useful document "free" in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by others.
-
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
-
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book.
- We recommend this License principally for works whose purpose is
- instruction or reference.
-
- 1. APPLICABILITY AND DEFINITIONS
-
- This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it
- can be distributed under the terms of this License. Such a notice
- grants a world-wide, royalty-free license, unlimited in duration,
- to use that work under the conditions stated herein. The
- "Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You
- accept the license if you copy, modify or distribute the work in a
- way requiring permission under copyright law.
-
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
-
- A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could
- fall directly within that overall subject. (Thus, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.
-
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in
- the notice that says that the Document is released under this
- License. If a section does not fit the above definition of
- Secondary then it is not allowed to be designated as Invariant.
- The Document may contain zero Invariant Sections. If the Document
- does not identify any Invariant Sections then there are none.
-
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License. A
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
- be at most 25 words.
-
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images
- composed of pixels) generic paint programs or (for drawings) some
- widely available drawing editor, and that is suitable for input to
- text formatters or for automatic translation to a variety of
- formats suitable for input to text formatters. A copy made in an
- otherwise Transparent file format whose markup, or absence of
- markup, has been arranged to thwart or discourage subsequent
- modification by readers is not Transparent. An image format is
- not Transparent if used for any substantial amount of text. A
- copy that is not "Transparent" is called "Opaque".
-
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and
- standard-conforming simple HTML, PostScript or PDF designed for
- human modification. Examples of transparent image formats include
- PNG, XCF and JPG. Opaque formats include proprietary formats that
- can be read and edited only by proprietary word processors, SGML or
- XML for which the DTD and/or processing tools are not generally
- available, and the machine-generated HTML, PostScript or PDF
- produced by some word processors for output purposes only.
-
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
-
- The "publisher" means any person or entity that distributes copies
- of the Document to the public.
-
- A section "Entitled XYZ" means a named subunit of the Document
- whose title either is precisely XYZ or contains XYZ in parentheses
- following text that translates XYZ in another language. (Here XYZ
- stands for a specific section name mentioned below, such as
- "Acknowledgements", "Dedications", "Endorsements", or "History".)
- To "Preserve the Title" of such a section when you modify the
- Document means that it remains a section "Entitled XYZ" according
- to this definition.
-
- The Document may include Warranty Disclaimers next to the notice
- which states that this License applies to the Document. These
- Warranty Disclaimers are considered to be included by reference in
- this License, but only as regards disclaiming warranties: any other
- implication that these Warranty Disclaimers may have is void and
- has no effect on the meaning of this License.
-
- 2. VERBATIM COPYING
-
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow
- the conditions in section 3.
-
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
-
- 3. COPYING IN QUANTITY
-
- If you publish printed copies (or copies in media that commonly
- have printed covers) of the Document, numbering more than 100, and
- the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all
- these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the
- title equally prominent and visible. You may add other material
- on the covers in addition. Copying with changes limited to the
- covers, as long as they preserve the title of the Document and
- satisfy these conditions, can be treated as verbatim copying in
- other respects.
-
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
-
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a
- machine-readable Transparent copy along with each Opaque copy, or
- state in or with each Opaque copy a computer-network location from
- which the general network-using public has access to download
- using public-standard network protocols a complete Transparent
- copy of the Document, free of added material. If you use the
- latter option, you must take reasonably prudent steps, when you
- begin distribution of Opaque copies in quantity, to ensure that
- this Transparent copy will remain thus accessible at the stated
- location until at least one year after the last time you
- distribute an Opaque copy (directly or through your agents or
- retailers) of that edition to the public.
-
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of
- copies, to give them a chance to provide you with an updated
- version of the Document.
-
- 4. MODIFICATIONS
-
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with
- the Modified Version filling the role of the Document, thus
- licensing distribution and modification of the Modified Version to
- whoever possesses a copy of it. In addition, you must do these
- things in the Modified Version:
-
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of
- previous versions (which should, if there were any, be listed
- in the History section of the Document). You may use the
- same title as a previous version if the original publisher of
- that version gives permission.
-
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in
- the Modified Version, together with at least five of the
- principal authors of the Document (all of its principal
- authors, if it has fewer than five), unless they release you
- from this requirement.
-
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-
- D. Preserve all the copyright notices of the Document.
-
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified
- Version under the terms of this License, in the form shown in
- the Addendum below.
-
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
-
- H. Include an unaltered copy of this License.
-
- I. Preserve the section Entitled "History", Preserve its Title,
- and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on
- the Title Page. If there is no section Entitled "History" in
- the Document, create one stating the title, year, authors,
- and publisher of the Document as given on its Title Page,
- then add an item describing the Modified Version as stated in
- the previous sentence.
-
- J. Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in
- the "History" section. You may omit a network location for a
- work that was published at least four years before the
- Document itself, or if the original publisher of the version
- it refers to gives permission.
-
- K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the
- section all the substance and tone of each of the contributor
- acknowledgements and/or dedications given therein.
-
- L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section
- titles.
-
- M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-
- N. Do not retitle any existing section to be Entitled
- "Endorsements" or to conflict in title with any Invariant
- Section.
-
- O. Preserve any Warranty Disclaimers.
-
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option
- designate some or all of these sections as invariant. To do this,
- add their titles to the list of Invariant Sections in the Modified
- Version's license notice. These titles must be distinct from any
- other section titles.
-
- You may add a section Entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text
- has been approved by an organization as the authoritative
- definition of a standard.
-
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end
- of the list of Cover Texts in the Modified Version. Only one
- passage of Front-Cover Text and one of Back-Cover Text may be
- added by (or through arrangements made by) any one entity. If the
- Document already includes a cover text for the same cover,
- previously added by you or by arrangement made by the same entity
- you are acting on behalf of, you may not add another; but you may
- replace the old one, on explicit permission from the previous
- publisher that added the old one.
-
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
-
- 5. COMBINING DOCUMENTS
-
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination
- all of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice, and that you preserve all
- their Warranty Disclaimers.
-
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
-
- In the combination, you must combine any sections Entitled
- "History" in the various original documents, forming one section
- Entitled "History"; likewise combine any sections Entitled
- "Acknowledgements", and any sections Entitled "Dedications". You
- must delete all sections Entitled "Endorsements."
-
- 6. COLLECTIONS OF DOCUMENTS
-
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the
- documents in all other respects.
-
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow
- this License in all other respects regarding verbatim copying of
- that document.
-
- 7. AGGREGATION WITH INDEPENDENT WORKS
-
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of
- a storage or distribution medium, is called an "aggregate" if the
- copyright resulting from the compilation is not used to limit the
- legal rights of the compilation's users beyond what the individual
- works permit. When the Document is included in an aggregate, this
- License does not apply to the other works in the aggregate which
- are not themselves derivative works of the Document.
-
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one half
- of the entire aggregate, the Document's Cover Texts may be placed
- on covers that bracket the Document within the aggregate, or the
- electronic equivalent of covers if the Document is in electronic
- form. Otherwise they must appear on printed covers that bracket
- the whole aggregate.
-
- 8. TRANSLATION
-
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License, and all the license notices in the
- Document, and any Warranty Disclaimers, provided that you also
- include the original English version of this License and the
- original versions of those notices and disclaimers. In case of a
- disagreement between the translation and the original version of
- this License or a notice or disclaimer, the original version will
- prevail.
-
- If a section in the Document is Entitled "Acknowledgements",
- "Dedications", or "History", the requirement (section 4) to
- Preserve its Title (section 1) will typically require changing the
- actual title.
-
- 9. TERMINATION
-
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense, or distribute it is void,
- and will automatically terminate your rights under this License.
-
- However, if you cease all violation of this License, then your
- license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly
- and finally terminates your license, and (b) permanently, if the
- copyright holder fails to notify you of the violation by some
- reasonable means prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
- reinstated permanently if the copyright holder notifies you of the
- violation by some reasonable means, this is the first time you have
- received notice of violation of this License (for any work) from
- that copyright holder, and you cure the violation prior to 30 days
- after your receipt of the notice.
-
- Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from
- you under this License. If your rights have been terminated and
- not permanently reinstated, receipt of a copy of some or all of
- the same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new
- versions will be similar in spirit to the present version, but may
- differ in detail to address new problems or concerns. See
- `http://www.gnu.org/copyleft/'.
-
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If
- the Document does not specify a version number of this License,
- you may choose any version ever published (not as a draft) by the
- Free Software Foundation. If the Document specifies that a proxy
- can decide which future versions of this License can be used, that
- proxy's public statement of acceptance of a version permanently
- authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
- "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
- World Wide Web server that publishes copyrightable works and also
- provides prominent facilities for anybody to edit those works. A
- public wiki that anybody can edit is an example of such a server.
- A "Massive Multiauthor Collaboration" (or "MMC") contained in the
- site means any set of copyrightable works thus published on the MMC
- site.
-
- "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
- license published by Creative Commons Corporation, a not-for-profit
- corporation with a principal place of business in San Francisco,
- California, as well as future copyleft versions of that license
- published by that same organization.
-
- "Incorporate" means to publish or republish a Document, in whole or
- in part, as part of another Document.
-
- An MMC is "eligible for relicensing" if it is licensed under this
- License, and if all works that were first published under this
- License somewhere other than this MMC, and subsequently
- incorporated in whole or in part into the MMC, (1) had no cover
- texts or invariant sections, and (2) were thus incorporated prior
- to November 1, 2008.
-
- The operator of an MMC Site may republish an MMC contained in the
- site under CC-BY-SA on the same site at any time before August 1,
- 2009, provided the MMC is eligible for relicensing.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
-Texts, replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
- being LIST.
-
- If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
- If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: microhttpd.info, Node: Concept Index, Next: Function and Data Index, Prev: GNU-FDL, Up: Top
-
-Concept Index
-*************
-
-
-* Menu:
-
-* bind, restricting bind: microhttpd-const. (line 108)
-* connection, limiting number of connections: microhttpd-const.
- (line 74)
-* cookie: microhttpd-const. (line 222)
-* debugging: microhttpd-const. (line 24)
-* eCos, GNU General Public License with eCos Extension: GNU GPL with eCos Extension.
- (line 6)
-* FD_SETSIZE: microhttpd-const. (line 54)
-* GPL, GNU General Public License: GNU GPL with eCos Extension.
- (line 6)
-* IPv6: microhttpd-const. (line 41)
-* license <1>: GNU-FDL. (line 6)
-* license <2>: GNU GPL with eCos Extension.
- (line 6)
-* license: GNU-LGPL. (line 6)
-* listen: microhttpd-const. (line 317)
-* logging: microhttpd-const. (line 116)
-* memory, limiting memory utilization: microhttpd-const. (line 69)
-* options: microhttpd-const. (line 177)
-* poll: microhttpd-const. (line 54)
-* POST method <1>: microhttpd-post api. (line 6)
-* POST method <2>: microhttpd-post. (line 6)
-* POST method <3>: microhttpd-cb. (line 50)
-* POST method <4>: microhttpd-struct. (line 19)
-* POST method: microhttpd-const. (line 226)
-* PUT method: microhttpd-cb. (line 50)
-* query string: microhttpd-const. (line 116)
-* select: microhttpd-const. (line 54)
-* timeout <1>: microhttpd-inspect. (line 27)
-* timeout: microhttpd-const. (line 81)
-
-
-File: microhttpd.info, Node: Function and Data Index, Next: Type Index, Prev: Concept Index, Up: Top
-
-Function and Data Index
-***********************
-
-
-* Menu:
-
-* *MHD_AcceptPolicyCallback: microhttpd-cb. (line 8)
-* *MHD_AccessHandlerCallback: microhttpd-cb. (line 25)
-* *MHD_ContentReaderCallback: microhttpd-cb. (line 120)
-* *MHD_ContentReaderFreeCallback: microhttpd-cb. (line 147)
-* *MHD_KeyValueIterator: microhttpd-cb. (line 110)
-* *MHD_PostDataIterator: microhttpd-cb. (line 155)
-* *MHD_RequestCompletedCallback: microhttpd-cb. (line 91)
-* MHD_add_response_header: microhttpd-response headers.
- (line 8)
-* MHD_create_post_processor: microhttpd-post api. (line 9)
-* MHD_create_response_from_callback: microhttpd-response create.
- (line 9)
-* MHD_create_response_from_data: microhttpd-response create.
- (line 34)
-* MHD_del_response_header: microhttpd-response headers.
- (line 20)
-* MHD_destroy_post_processor: microhttpd-post api. (line 54)
-* MHD_destroy_response: microhttpd-response enqueue.
- (line 30)
-* MHD_get_connection_info: microhttpd-info conn.
- (line 9)
-* MHD_get_connection_values: microhttpd-requests. (line 9)
-* MHD_get_daemon_info: microhttpd-info daemon.
- (line 8)
-* MHD_get_fdset: microhttpd-inspect. (line 9)
-* MHD_get_response_header: microhttpd-response inspect.
- (line 20)
-* MHD_get_response_headers: microhttpd-response inspect.
- (line 8)
-* MHD_get_timeout: microhttpd-inspect. (line 27)
-* MHD_lookup_connection_value: microhttpd-requests. (line 45)
-* MHD_post_process: microhttpd-post api. (line 34)
-* MHD_queue_response: microhttpd-response enqueue.
- (line 9)
-* MHD_run: microhttpd-init. (line 54)
-* MHD_set_connection_value: microhttpd-requests. (line 22)
-* MHD_set_panic_func: microhttpd-init. (line 7)
-* MHD_start_daemon: microhttpd-init. (line 21)
-* MHD_stop_daemon: microhttpd-init. (line 51)
-
-
-File: microhttpd.info, Node: Type Index, Prev: Function and Data Index, Up: Top
-
-Type Index
-**********
-
-
-* Menu:
-
-* MHD_Connection: microhttpd-struct. (line 10)
-* MHD_ConnectionInfo: microhttpd-struct. (line 22)
-* MHD_ConnectionInfoType: microhttpd-const. (line 292)
-* MHD_Daemon: microhttpd-struct. (line 7)
-* MHD_DaemonInfo: microhttpd-struct. (line 25)
-* MHD_DaemonInfoType: microhttpd-const. (line 304)
-* MHD_FLAG: microhttpd-const. (line 7)
-* MHD_GNUTLS_CipherAlgorithm: microhttpd-const. (line 276)
-* MHD_GNUTLS_Protocol: microhttpd-const. (line 260)
-* MHD_OPTION: microhttpd-const. (line 61)
-* MHD_OptionItem: microhttpd-const. (line 199)
-* MHD_PostProcessor: microhttpd-struct. (line 19)
-* MHD_RequestTerminationCode: microhttpd-const. (line 241)
-* MHD_Response: microhttpd-struct. (line 16)
-* MHD_ValueKind: microhttpd-const. (line 212)
-
-
-
-Tag Table:
-Node: Top823
-Node: microhttpd-intro2927
-Node: microhttpd-const5122
-Node: microhttpd-struct18507
-Node: microhttpd-cb19284
-Node: microhttpd-init26594
-Node: microhttpd-inspect28670
-Node: microhttpd-requests30250
-Node: microhttpd-responses32747
-Node: microhttpd-response enqueue33795
-Ref: microhttpd-response enqueue-Footnote-136062
-Node: microhttpd-response create36281
-Node: microhttpd-response headers38713
-Node: microhttpd-response inspect39694
-Node: microhttpd-post40862
-Node: microhttpd-post api43804
-Node: microhttpd-info46320
-Node: microhttpd-info daemon46640
-Node: microhttpd-info conn47520
-Node: GNU-LGPL48380
-Node: GNU GPL with eCos Extension76490
-Node: GNU-FDL96348
-Node: Concept Index121450
-Node: Function and Data Index123793
-Node: Type Index126775
-
-End Tag Table
diff --git a/lib/libmicrohttpd/doc/stamp-vti b/lib/libmicrohttpd/doc/stamp-vti
deleted file mode 100644
index fa981c5dca..0000000000
--- a/lib/libmicrohttpd/doc/stamp-vti
+++ /dev/null
@@ -1,4 +0,0 @@
-@set UPDATED 4 December 2009
-@set UPDATED-MONTH December 2009
-@set EDITION 0.4.5
-@set VERSION 0.4.5
diff --git a/lib/libmicrohttpd/doc/version.texi b/lib/libmicrohttpd/doc/version.texi
deleted file mode 100644
index fa981c5dca..0000000000
--- a/lib/libmicrohttpd/doc/version.texi
+++ /dev/null
@@ -1,4 +0,0 @@
-@set UPDATED 4 December 2009
-@set UPDATED-MONTH December 2009
-@set EDITION 0.4.5
-@set VERSION 0.4.5