Uploaded image for project: 'mod_python'
  1. mod_python
  2. MODPYTHON-148

Additional constants for mod_python.apache module.

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.3.1
    • Component/s: core
    • Labels:
      None

      Description

      Apache defines the following:

      /** Magic for mod_cgi[d] */
      #define CGI_MAGIC_TYPE "application/x-httpd-cgi"
      /** Magic for mod_include */
      #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html"
      /** Magic for mod_include */
      #define INCLUDES_MAGIC_TYPE3 "text/x-server-parsed-html3"
      /** Magic for mod_dir */
      #define DIR_MAGIC_TYPE "httpd/unix-directory"

      There should be equivalents available as constants in "mod_python.apache" module.

      Apache defines the following:

      #define PROXYREQ_NONE 0 /**< No proxy */
      #define PROXYREQ_PROXY 1 /**< Standard proxy */
      #define PROXYREQ_REVERSE 2 /**< Reverse proxy */
      #define PROXYREQ_RESPONSE 3 /**< Origin response */

      The PROXYREQ_RESPONSE value is missing from "mod_python.apache".

      Apache defines the following:

      #define HTTP_UPGRADE_REQUIRED 426

      This isn't present in mod_python.apache.

      Apache defines the following:

      /** Send 413 error if message has any body */
      #define REQUEST_NO_BODY 0
      /** Send 411 error if body without Content-Length */
      #define REQUEST_CHUNKED_ERROR 1
      /** If chunked, remove the chunks for me. */
      #define REQUEST_CHUNKED_DECHUNK 2
      /** @} // values_request_rec_body */

      These are necessary to understand what req.read_body means. In practice, don't think they are relevant to mod_python handlers, but for completeness should be added.

      Apache defines the following:

      /**

      • @brief Enumeration of connection keepalive options
        */
        typedef enum {
        AP_CONN_UNKNOWN,
        AP_CONN_CLOSE,
        AP_CONN_KEEPALIVE
        } ap_conn_keepalive_e;

      These are needed to understand req.connection.keepalive. Because they a enum values, need to be populated in mod_python._apache module when module is initialised and reference made in mod_python.apache module.

      The only other thing from httpd.h which seems of interest is the DOCTYPE macro strings. Don't do anything about them for the time being.

        Attachments

          Activity

            People

            • Assignee:
              grahamd Graham Dumpleton
              Reporter:
              grahamd Graham Dumpleton
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: