couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Filipe Manana (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COUCHDB-882) Nonstandard HTTP methods not converted to JSON correctly
Date Wed, 08 Sep 2010 16:47:36 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-882?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12907302#action_12907302
] 

Filipe Manana commented on COUCHDB-882:
---------------------------------------

What I meant is:

    Method1 =
    case MochiReq:get(method) of
        % already an atom
        Meth when is_atom(Meth) -> Meth;

        % Non standard HTTP verbs aren't atoms (COPY, MOVE etc) so convert when
        % possible (if any module references the atom, then it's existing).
        Meth -> couch_util:to_binary(Meth)
    end,

Like this, everywhere in the code you know you have to use an atom to match standard methods,
an binaries for others.
To me it seems like this it simplifies Erlang code that needs to reference non-standard methods.



> Nonstandard HTTP methods not converted to JSON correctly
> --------------------------------------------------------
>
>                 Key: COUCHDB-882
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-882
>             Project: CouchDB
>          Issue Type: Bug
>          Components: HTTP Interface
>    Affects Versions: 1.0.1
>         Environment: Erlang R13, Linux
>            Reporter: Jason Smith
>            Priority: Minor
>             Fix For: 1.0.1
>
>         Attachments: 0001-For-unknown-HTTP-methods-Use-a-binary-for-httpd.meth.patch
>
>
> Since COUCHDB-815, CouchDB allows nonstandard or unknown HTTP methods in case a _show
or similar function may want to implement a response to that method.
> Unfortunately the (my) patch in that ticket used couch_util:to_existing_atom which returns
the passed value unmodified if it has no corresponding atom. That is wrong because the HTTP
method will be copied into the `req` object in the view server, therefore it must not be an
Erlang string (list of integers) because those do not JSONify correctly. Instead, if the atom
does not exist, the method should be converted to a binary.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message