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.

        Activity

        There are no comments yet on this issue.

          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:

              Development