[2/2] git commit: Revert Receive the correct error message to proceed upon ignoring a file-open error
Revert Receive the correct error message to proceed upon ignoring a file-open error Most of the errors here will be of the form {error, Reason} because they come from the file module. Instead of minting our own file_exists atom lets use {error, eexist}. This reverts commit 3e5ad086c59af9819f2e93d55f10d61f949002d3. Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/bb569905 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/bb569905 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/bb569905 Branch: refs/heads/1.2.x Commit: bb569905aa1781beaf3403c98f4079ea06339451 Parents: 3e5ad08 Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 01:46:08 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 01:46:08 2012 -0700 -- src/couchdb/couch_file.erl |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/bb569905/src/couchdb/couch_file.erl -- diff --git a/src/couchdb/couch_file.erl b/src/couchdb/couch_file.erl index 73edde3..7725ddc 100644 --- a/src/couchdb/couch_file.erl +++ b/src/couchdb/couch_file.erl @@ -53,14 +53,14 @@ open(Filepath, Options) - ignore - % get the error receive -{Ref, Pid, Reason} - +{Ref, Pid, {error, Reason} = Error} - case process_info(self(), trap_exit) of {trap_exit, true} - receive {'EXIT', Pid, _} - ok end; {trap_exit, false} - ok end, ?LOG_ERROR(Error opening file ~s: ~s, [Filepath, file:format_error(Reason)]), -Reason +Error end; Error - % We can't say much here, because it could be any kind of error.
[1/2] git commit: no really, I was mostly right
Updated Branches: refs/heads/1.2.x 3e5ad086c - cd238b42d no really, I was mostly right The errors that come back from the file module are always of the form {error, Reason}, and Reason is the atom that should be passed to file:format_error/1. In one case, couch_file was returning the atom file_exists rather than comforming to the file module's errors I was expecting. Returning {error, eexist} is cleaner. Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/cd238b42 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/cd238b42 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/cd238b42 Branch: refs/heads/1.2.x Commit: cd238b42d1333cece5ab899c35c3b83ada8d448a Parents: bb56990 Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 01:42:33 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 01:46:54 2012 -0700 -- src/couchdb/couch_file.erl |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/cd238b42/src/couchdb/couch_file.erl -- diff --git a/src/couchdb/couch_file.erl b/src/couchdb/couch_file.erl index 7725ddc..9179933 100644 --- a/src/couchdb/couch_file.erl +++ b/src/couchdb/couch_file.erl @@ -274,7 +274,7 @@ init({Filepath, Options, ReturnPid, Ref}) - {ok, #file{fd=Fd}}; false - ok = file:close(Fd), -init_status_error(ReturnPid, Ref, file_exists) +init_status_error(ReturnPid, Ref, {error, eexist}) end; false - maybe_track_open_os_files(Options),
git commit: no really, I was mostly right
Updated Branches: refs/heads/1.1.x d17388c60 - 9490c55e3 no really, I was mostly right The errors that come back from the file module are always of the form {error, Reason}, and Reason is the atom that should be passed to file:format_error/1. In one case, couch_file was returning the atom file_exists rather than comforming to the file module's errors I was expecting. Returning {error, eexist} is cleaner. Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/9490c55e Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/9490c55e Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/9490c55e Branch: refs/heads/1.1.x Commit: 9490c55e315205dd41998fe01a8cf2c86cb42407 Parents: d17388c Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 01:42:33 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 01:44:45 2012 -0700 -- src/couchdb/couch_file.erl |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/9490c55e/src/couchdb/couch_file.erl -- diff --git a/src/couchdb/couch_file.erl b/src/couchdb/couch_file.erl index ade018b..0585413 100644 --- a/src/couchdb/couch_file.erl +++ b/src/couchdb/couch_file.erl @@ -264,7 +264,7 @@ init({Filepath, Options, ReturnPid, Ref}) - {ok, #file{fd=Fd}}; false - ok = file:close(Fd), -init_status_error(ReturnPid, Ref, file_exists) +init_status_error(ReturnPid, Ref, {error, eexist}) end; false - maybe_track_open_os_files(Options),
git commit: Update NEWS CHANGES for file:format_error
Updated Branches: refs/heads/1.2.x cd238b42d - 25e079117 Update NEWS CHANGES for file:format_error Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/25e07911 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/25e07911 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/25e07911 Branch: refs/heads/1.2.x Commit: 25e079117218b52c18d51dca0810b974ec80ff8a Parents: cd238b4 Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 13:38:58 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 13:39:13 2012 -0700 -- CHANGES |1 + NEWS|1 + 2 files changed, 2 insertions(+), 0 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/25e07911/CHANGES -- diff --git a/CHANGES b/CHANGES index 369c76e..aa16074 100644 --- a/CHANGES +++ b/CHANGES @@ -102,6 +102,7 @@ Futon: Log System: * Log correct stacktrace in all cases. + * Improvements to log messages for file-related errors. Version 1.1.1 - http://git-wip-us.apache.org/repos/asf/couchdb/blob/25e07911/NEWS -- diff --git a/NEWS b/NEWS index 631c7e1..4067744 100644 --- a/NEWS +++ b/NEWS @@ -52,6 +52,7 @@ This release contains backwards incompatible changes. * Improvements to the build system and etap test suite. * Avoid invalidating view indexes when running out of file descriptors. * Log correct stacktrace in all cases. + * Improvements to log messages for file-related errors. Version 1.1.1 -
git commit: Update NEWS CHANGES for file:format_error
Updated Branches: refs/heads/1.1.x 9490c55e3 - e567f110a Update NEWS CHANGES for file:format_error Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/e567f110 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/e567f110 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/e567f110 Branch: refs/heads/1.1.x Commit: e567f110a93b2abf80f77f7241374734b0a975fc Parents: 9490c55 Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 13:38:58 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 13:40:57 2012 -0700 -- CHANGES |4 NEWS|1 + 2 files changed, 5 insertions(+), 0 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/e567f110/CHANGES -- diff --git a/CHANGES b/CHANGES index 3262da8..b676bc2 100644 --- a/CHANGES +++ b/CHANGES @@ -20,6 +20,10 @@ View Server: * Avoid invalidating view indexes when running out of file descriptors. +Log System: + +* Improvements to log messages for file-related errors. + Version 1.1.1 - http://git-wip-us.apache.org/repos/asf/couchdb/blob/e567f110/NEWS -- diff --git a/NEWS b/NEWS index fe85146..4eb39c2 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,7 @@ This version has not been released yet. * Fix pull replication of documents with many revisions. * Fix replication with an HTTP source and target * Avoid invalidating view indexes when running out of file descriptors. +* Improvements to log messages for file-related errors. Version 1.1.1 -
[2/2] git commit: Document new PBKDF2 feature
Document new PBKDF2 feature Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/adb4c98a Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/adb4c98a Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/adb4c98a Branch: refs/heads/COUCHDB-1060-strong-password-hash Commit: adb4c98aae77f3f28dbc1226ed26ed7c87cd316b Parents: 77a7d80 Author: Robert Newson rnew...@apache.org Authored: Tue Mar 20 13:58:54 2012 + Committer: Robert Newson rnew...@apache.org Committed: Tue Mar 20 13:58:54 2012 + -- CHANGES |5 + NEWS|1 + 2 files changed, 6 insertions(+), 0 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/adb4c98a/CHANGES -- diff --git a/CHANGES b/CHANGES index 7453893..7fb2bd5 100644 --- a/CHANGES +++ b/CHANGES @@ -23,6 +23,11 @@ Futon: * Added view request duration to Futon. +Security: + + * Passwords are now hashed using the PBKDF2 algorithm with a +configurable work factor. + Version 1.2.0 - http://git-wip-us.apache.org/repos/asf/couchdb/blob/adb4c98a/NEWS -- diff --git a/NEWS b/NEWS index 8579754..6644d87 100644 --- a/NEWS +++ b/NEWS @@ -17,6 +17,7 @@ This version has not been released yet. * Speedup in the communication with external view servers. * Fixed unnecessary conflict when deleting and creating a document in the same batch. + * New and updated passwords are hashed using PBKDF2. Version 1.2.0 -
[1/2] git commit: bump default work factor to 10,000
Updated Branches: refs/heads/COUCHDB-1060-strong-password-hash 77a7d8096 - 912d3c61c bump default work factor to 10,000 Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/912d3c61 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/912d3c61 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/912d3c61 Branch: refs/heads/COUCHDB-1060-strong-password-hash Commit: 912d3c61cad3a9b217104d472b25314fe63581a7 Parents: adb4c98 Author: Robert Newson rnew...@apache.org Authored: Tue Mar 20 14:49:15 2012 + Committer: Robert Newson rnew...@apache.org Committed: Tue Mar 20 14:49:15 2012 + -- etc/couchdb/default.ini.tpl.in |2 +- src/couchdb/couch_httpd_auth.erl |2 +- src/couchdb/couch_server.erl |2 +- 3 files changed, 3 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/912d3c61/etc/couchdb/default.ini.tpl.in -- diff --git a/etc/couchdb/default.ini.tpl.in b/etc/couchdb/default.ini.tpl.in index 6931c97..ce84905 100644 --- a/etc/couchdb/default.ini.tpl.in +++ b/etc/couchdb/default.ini.tpl.in @@ -65,7 +65,7 @@ require_valid_user = false timeout = 600 ; number of seconds before automatic logout auth_cache_size = 50 ; size is number of cache entries allow_persistent_cookies = false ; set to true to allow persistent cookies -iterations = 1000 ; iterations for password hashing +iterations = 1 ; iterations for password hashing [couch_httpd_oauth] ; If set to 'true', oauth token and consumer secrets will be looked up http://git-wip-us.apache.org/repos/asf/couchdb/blob/912d3c61/src/couchdb/couch_httpd_auth.erl -- diff --git a/src/couchdb/couch_httpd_auth.erl b/src/couchdb/couch_httpd_auth.erl index 02ed8c1..0b4ba8f 100644 --- a/src/couchdb/couch_httpd_auth.erl +++ b/src/couchdb/couch_httpd_auth.erl @@ -344,7 +344,7 @@ authenticate(Pass, UserProps) - {couch_passwords:simple(Pass, UserSalt), couch_util:get_value(password_sha, UserProps, nil)}; pbkdf2 - -Iterations = couch_util:get_value(iterations, UserProps, 1000), +Iterations = couch_util:get_value(iterations, UserProps, 1), {couch_passwords:pbkdf2(Pass, UserSalt, Iterations), couch_util:get_value(derived_key, UserProps, nil)} end, http://git-wip-us.apache.org/repos/asf/couchdb/blob/912d3c61/src/couchdb/couch_server.erl -- diff --git a/src/couchdb/couch_server.erl b/src/couchdb/couch_server.erl index 7e9aa05..cf66b86 100644 --- a/src/couchdb/couch_server.erl +++ b/src/couchdb/couch_server.erl @@ -129,7 +129,7 @@ hash_admin_passwords() - hash_admin_passwords(true). hash_admin_passwords(Persist) - -Iterations = couch_config:get(couch_httpd_auth, iterations, 1000), +Iterations = couch_config:get(couch_httpd_auth, iterations, 1), lists:foreach( fun({_User, -hashed- ++ _}) - ok; % already hashed
git commit: maintain the file_exists idiom
Updated Branches: refs/heads/1.2.x 25e079117 - af9e1c883 maintain the file_exists idiom POSIX {error, eexist} from the file module needs to be kept from bubbling all the way to couch_httpd or it will result in a 500 error when a 412 is what we want. This change confines all the database exists already conversion of the {error, eexist} that now bubble out of couch_file contained within couch_server. Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/af9e1c88 Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/af9e1c88 Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/af9e1c88 Branch: refs/heads/1.2.x Commit: af9e1c883ca4accb2097ac9d26efa4daf1fd Parents: 25e0791 Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 14:38:53 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 14:38:53 2012 -0700 -- src/couchdb/couch_server.erl |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/af9e1c88/src/couchdb/couch_server.erl -- diff --git a/src/couchdb/couch_server.erl b/src/couchdb/couch_server.erl index 1185a20..440af62 100644 --- a/src/couchdb/couch_server.erl +++ b/src/couchdb/couch_server.erl @@ -323,6 +323,8 @@ handle_call({open_result, DbName, {ok, OpenedDbPid}, Options}, _From, Server) - ok end, {reply, ok, Server}; +handle_call({open_result, DbName, {error, eexist}, Options}, From, Server) - +handle_call({open_result, DbName, file_exists, Options}, From, Server); handle_call({open_result, DbName, Error, Options}, _From, Server) - [{DbName, {opening,Opener,Froms}}] = ets:lookup(couch_dbs_by_name, DbName), lists:foreach(fun(From) -
git commit: maintain the file_exists idiom
Updated Branches: refs/heads/1.1.x e567f110a - 3e2280bfd maintain the file_exists idiom POSIX {error, eexist} from the file module needs to be kept from bubbling all the way to couch_httpd or it will result in a 500 error when a 412 is what we want. This change confines all the database exists already conversion of the {error, eexist} that now bubble out of couch_file contained within couch_server. Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/3e2280bf Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/3e2280bf Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/3e2280bf Branch: refs/heads/1.1.x Commit: 3e2280bfd5e18983a1509382c4a42834b33bec45 Parents: e567f11 Author: Randall Leeds rand...@apache.org Authored: Wed Mar 21 14:38:53 2012 -0700 Committer: Randall Leeds rand...@apache.org Committed: Wed Mar 21 14:43:31 2012 -0700 -- src/couchdb/couch_server.erl |2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) -- http://git-wip-us.apache.org/repos/asf/couchdb/blob/3e2280bf/src/couchdb/couch_server.erl -- diff --git a/src/couchdb/couch_server.erl b/src/couchdb/couch_server.erl index 7870d69..957bdcb 100644 --- a/src/couchdb/couch_server.erl +++ b/src/couchdb/couch_server.erl @@ -284,6 +284,8 @@ handle_call({open_result, DbName, {ok, OpenedDbPid}, Options}, _From, Server) - ok end, {reply, ok, Server}; +handle_call({open_result, DbName, {error, eexist}, Options}, From, Server) - +handle_call({open_result, DbName, file_exists, Options}, From, Server); handle_call({open_result, DbName, Error, Options}, _From, Server) - [{DbName, {opening,Opener,Froms}}] = ets:lookup(couch_dbs_by_name, DbName), lists:foreach(fun(From) -
[Couchdb Wiki] Update of Development by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The Development page has been changed by mCoolin: http://wiki.apache.org/couchdb/Development?action=diffrev1=16rev2=17 Comment: creating new edocs page * [[Full_text_search]] * [[Adding_Runtime_Statistics]] * [[Tips__Tricks_for_developers]] + * [[couch_edocs]]
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs Comment: creating initial structure New page: = COUCHDB edocs summary of modules = Please note this is a work in progress but over the next few days I hope to have all sections and modules documentation posted here. == couchdb == = Module couch_util = * [[#index|Function Index]] * [[#functions|Function Details]] == Function Index == ||tablewidth=100%^[[#abs_pathname-1|abs_pathname/1]]|| || ||^[[#abs_pathname-2|abs_pathname/2]]|| || ||^[[#collate-2|collate/2]]|| || ||^[[#collate-3|collate/3]]|| || ||^[[#decodeBase64Url-1|decodeBase64Url/1]]|| || ||^[[#dict_find-3|dict_find/3]]|| || ||^[[#encodeBase64Url-1|encodeBase64Url/1]]|| || ||^[[#encode_doc_id-1|encode_doc_id/1]]|| || ||^[[#get_nested_json_value-2|get_nested_json_value/2]]|| || ||^[[#get_value-2|get_value/2]]|| || ||^[[#get_value-3|get_value/3]]|| || ||^[[#implode-2|implode/2]]|| || ||^[[#json_apply_field-2|json_apply_field/2]]|| || ||^[[#json_user_ctx-1|json_user_ctx/1]]|| || ||^[[#md5-1|md5/1]]|| || ||^[[#md5_final-1|md5_final/1]]|| || ||^[[#md5_init-0|md5_init/0]]|| || ||^[[#md5_update-2|md5_update/2]]|| || ||^[[#normpath-1|normpath/1]]|| || ||^[[#parse_term-1|parse_term/1]]|| || ||^[[#priv_dir-0|priv_dir/0]]|| || ||^[[#proplist_apply_field-2|proplist_apply_field/2]]|| || ||^[[#rand32-0|rand32/0]]|| || ||^[[#reorder_results-2|reorder_results/2]]|| || ||^[[#should_flush-0|should_flush/0]]|| || ||^[[#should_flush-1|should_flush/1]]|| || ||^[[#shutdown_sync-1|shutdown_sync/1]]|| || ||^[[#simple_call-2|simple_call/2]]|| || ||^[[#to_binary-1|to_binary/1]]|| || ||^[[#to_existing_atom-1|to_existing_atom/1]]|| || ||^[[#to_hex-1|to_hex/1]]|| || ||^[[#to_integer-1|to_integer/1]]|| || ||^[[#to_list-1|to_list/1]]|| || ||^[[#trim-1|trim/1]]|| || ||^[[#url_encode-1|url_encode/1]]|| || ||^[[#url_strip_password-1|url_strip_password/1]]|| || ||^[[#validate_utf8-1|validate_utf8/1]]|| || ||^[[#verify-2|verify/2]]|| || ||^[[#with_db-2|with_db/2]]|| || == Function Details == === abs_pathname/1 === {{{abs_pathname(Filename) - any()}}} === abs_pathname/2 === {{{abs_pathname(Filename, Dir) - any()}}} === collate/2 === {{{collate(A, B) - any()}}} === collate/3 === {{{collate(A, B, Options) - any()}}} === decodeBase64Url/1 === {{{decodeBase64Url(Url64) - any()}}} === dict_find/3 === {{{dict_find(Key, Dict, DefaultValue) - any()}}} === encodeBase64Url/1 === {{{encodeBase64Url(Url) - any()}}} === encode_doc_id/1 === {{{encode_doc_id(Doc) - any()}}} === get_nested_json_value/2 === {{{get_nested_json_value(Value, Keys) - any()}}} === get_value/2 === {{{get_value(Key, List) - any()}}} === get_value/3 === {{{get_value(Key, List, Default) - any()}}} === implode/2 === {{{implode(List, Sep) - any()}}} === json_apply_field/2 === {{{json_apply_field(H, X2) - any()}}} === json_user_ctx/1 === {{{json_user_ctx(Db) - any()}}} === md5/1 === {{{md5(Data::(iolist() | binary())) - Digest::binary()}}} === md5_final/1 === {{{md5_final(Context::binary()) - Digest::binary()}}} === md5_init/0 === {{{md5_init() - Context::binary()}}} === md5_update/2 === {{{md5_update(Context::binary(), Data::(iolist() | binary())) - NewContext::binary()}}} === normpath/1 === {{{normpath(Path) - any()}}} === parse_term/1 === {{{parse_term(Bin) - any()}}} === priv_dir/0 === {{{priv_dir() - any()}}} === proplist_apply_field/2 === {{{proplist_apply_field(H, L) - any()}}} === rand32/0 === {{{rand32() - any()}}} === reorder_results/2 === {{{reorder_results(Keys, SortedResults) - any()}}} === should_flush/0 === {{{should_flush() - any()}}} === should_flush/1 === {{{should_flush(MemThreshHold) - any()}}} === shutdown_sync/1 === {{{shutdown_sync(Pid) - any()}}} === simple_call/2 === {{{simple_call(Pid, Message) - any()}}} === to_binary/1 === {{{to_binary(V) - any()}}} === to_existing_atom/1 === {{{to_existing_atom(V) - any()}}} === to_hex/1 === {{{to_hex(Bin) - any()}}} === to_integer/1 === {{{to_integer(V) - any()}}} === to_list/1 === {{{to_list(V) - any()}}} === trim/1 === {{{trim(String) - any()}}} === url_encode/1 === {{{url_encode(Bin) - any()}}} === url_strip_password/1 === {{{url_strip_password(Url) - any()}}} === validate_utf8/1 === {{{validate_utf8(Data) - any()}}} === verify/2 === {{{verify(X, Y) - any()}}} === with_db/2 === {{{with_db(Db, Fun) - any()}}} == couch_index == == courch_mrview == == couch_replicator == == ejson == == erlang-oauth == == etap == == ibrowse == == mochiweb == == snappy ==
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=1rev2=2 = COUCHDB edocs summary of modules = Please note this is a work in progress but over the next few days I hope to have all sections and modules documentation posted here. - + TableOfContents() == couchdb == = Module couch_util = - * [[#index|Function Index]] - * [[#functions|Function Details]] - == Function Index == ||tablewidth=100%^[[#abs_pathname-1|abs_pathname/1]]|| || ||^[[#abs_pathname-2|abs_pathname/2]]|| ||
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=2rev2=3 Please note this is a work in progress but over the next few days I hope to have all sections and modules documentation posted here. TableOfContents() == couchdb == - = Module couch_util = + === Module couch_util === - == Function Index == + Function Index ||tablewidth=100%^[[#abs_pathname-1|abs_pathname/1]]|| || ||^[[#abs_pathname-2|abs_pathname/2]]|| || ||^[[#collate-2|collate/2]]|| || @@ -47, +47 @@ ||^[[#with_db-2|with_db/2]]|| || - == Function Details == + Function Details - === abs_pathname/1 === + = abs_pathname/1 = {{{abs_pathname(Filename) - any()}}} - === abs_pathname/2 === + = abs_pathname/2 = {{{abs_pathname(Filename, Dir) - any()}}} - === collate/2 === + = collate/2 = {{{collate(A, B) - any()}}} - === collate/3 === + = collate/3 = {{{collate(A, B, Options) - any()}}} - === decodeBase64Url/1 === + = decodeBase64Url/1 = {{{decodeBase64Url(Url64) - any()}}} - === dict_find/3 === + = dict_find/3 = {{{dict_find(Key, Dict, DefaultValue) - any()}}} - === encodeBase64Url/1 === + = encodeBase64Url/1 = {{{encodeBase64Url(Url) - any()}}} - === encode_doc_id/1 === + = encode_doc_id/1 = {{{encode_doc_id(Doc) - any()}}} - === get_nested_json_value/2 === + = get_nested_json_value/2 = {{{get_nested_json_value(Value, Keys) - any()}}} - === get_value/2 === + = get_value/2 = {{{get_value(Key, List) - any()}}} - === get_value/3 === + = get_value/3 = {{{get_value(Key, List, Default) - any()}}} - === implode/2 === + = implode/2 = {{{implode(List, Sep) - any()}}} - === json_apply_field/2 === + = json_apply_field/2 = {{{json_apply_field(H, X2) - any()}}} - === json_user_ctx/1 === + = json_user_ctx/1 = {{{json_user_ctx(Db) - any()}}} - === md5/1 === + = md5/1 = {{{md5(Data::(iolist() | binary())) - Digest::binary()}}} - === md5_final/1 === + = md5_final/1 = {{{md5_final(Context::binary()) - Digest::binary()}}} - === md5_init/0 === + = md5_init/0 = {{{md5_init() - Context::binary()}}} - === md5_update/2 === + = md5_update/2 = {{{md5_update(Context::binary(), Data::(iolist() | binary())) - NewContext::binary()}}} - === normpath/1 === + = normpath/1 = {{{normpath(Path) - any()}}} - === parse_term/1 === + = parse_term/1 = {{{parse_term(Bin) - any()}}} - === priv_dir/0 === + = priv_dir/0 = {{{priv_dir() - any()}}} - === proplist_apply_field/2 === + = proplist_apply_field/2 = {{{proplist_apply_field(H, L) - any()}}} - === rand32/0 === + = rand32/0 = {{{rand32() - any()}}} - === reorder_results/2 === + = reorder_results/2 = {{{reorder_results(Keys, SortedResults) - any()}}} - === should_flush/0 === + = should_flush/0 = {{{should_flush() - any()}}} - === should_flush/1 === + = should_flush/1 = {{{should_flush(MemThreshHold) - any()}}} - === shutdown_sync/1 === + = shutdown_sync/1 = {{{shutdown_sync(Pid) - any()}}} - === simple_call/2 === + = simple_call/2 = {{{simple_call(Pid, Message) - any()}}} - === to_binary/1 === + = to_binary/1 = {{{to_binary(V) - any()}}} - === to_existing_atom/1 === + = to_existing_atom/1 = {{{to_existing_atom(V) - any()}}} - === to_hex/1 === + = to_hex/1 = {{{to_hex(Bin) - any()}}} - === to_integer/1 === + = to_integer/1 = {{{to_integer(V) - any()}}} - === to_list/1 === + = to_list/1 = {{{to_list(V) - any()}}} - === trim/1 === + = trim/1 = {{{trim(String) - any()}}} - === url_encode/1 === + = url_encode/1 = {{{url_encode(Bin) - any()}}} - === url_strip_password/1 === + = url_strip_password/1 = {{{url_strip_password(Url) - any()}}} - === validate_utf8/1 === + = validate_utf8/1 = {{{validate_utf8(Data) - any()}}} - === verify/2 === + = verify/2 = {{{verify(X, Y) - any()}}} === with_db/2 ===
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=3rev2=4 TableOfContents() == couchdb == === Module couch_util === - Function Index - ||tablewidth=100%^[[#abs_pathname-1|abs_pathname/1]]|| || - ||^[[#abs_pathname-2|abs_pathname/2]]|| || - ||^[[#collate-2|collate/2]]|| || - ||^[[#collate-3|collate/3]]|| || - ||^[[#decodeBase64Url-1|decodeBase64Url/1]]|| || - ||^[[#dict_find-3|dict_find/3]]|| || - ||^[[#encodeBase64Url-1|encodeBase64Url/1]]|| || - ||^[[#encode_doc_id-1|encode_doc_id/1]]|| || - ||^[[#get_nested_json_value-2|get_nested_json_value/2]]|| || - ||^[[#get_value-2|get_value/2]]|| || - ||^[[#get_value-3|get_value/3]]|| || - ||^[[#implode-2|implode/2]]|| || - ||^[[#json_apply_field-2|json_apply_field/2]]|| || - ||^[[#json_user_ctx-1|json_user_ctx/1]]|| || - ||^[[#md5-1|md5/1]]|| || - ||^[[#md5_final-1|md5_final/1]]|| || - ||^[[#md5_init-0|md5_init/0]]|| || - ||^[[#md5_update-2|md5_update/2]]|| || - ||^[[#normpath-1|normpath/1]]|| || - ||^[[#parse_term-1|parse_term/1]]|| || - ||^[[#priv_dir-0|priv_dir/0]]|| || - ||^[[#proplist_apply_field-2|proplist_apply_field/2]]|| || - ||^[[#rand32-0|rand32/0]]|| || - ||^[[#reorder_results-2|reorder_results/2]]|| || - ||^[[#should_flush-0|should_flush/0]]|| || - ||^[[#should_flush-1|should_flush/1]]|| || - ||^[[#shutdown_sync-1|shutdown_sync/1]]|| || - ||^[[#simple_call-2|simple_call/2]]|| || - ||^[[#to_binary-1|to_binary/1]]|| || - ||^[[#to_existing_atom-1|to_existing_atom/1]]|| || - ||^[[#to_hex-1|to_hex/1]]|| || - ||^[[#to_integer-1|to_integer/1]]|| || - ||^[[#to_list-1|to_list/1]]|| || - ||^[[#trim-1|trim/1]]|| || - ||^[[#url_encode-1|url_encode/1]]|| || - ||^[[#url_strip_password-1|url_strip_password/1]]|| || - ||^[[#validate_utf8-1|validate_utf8/1]]|| || - ||^[[#verify-2|verify/2]]|| || - ||^[[#with_db-2|with_db/2]]|| || - - Function Details = abs_pathname/1 = {{{abs_pathname(Filename) - any()}}}
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=4rev2=5 = verify/2 = {{{verify(X, Y) - any()}}} - === with_db/2 === + = with_db/2 = {{{with_db(Db, Fun) - any()}}} - == couch_index == == courch_mrview == == couch_replicator ==
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=5rev2=6 Comment: linked to daleharvey generated site for erldocs = COUCHDB edocs summary of modules = Please note this is a work in progress but over the next few days I hope to have all sections and modules documentation posted here. - TableOfContents() - == couchdb == - === Module couch_util === - Function Details - = abs_pathname/1 = - {{{abs_pathname(Filename) - any()}}} - = abs_pathname/2 = - {{{abs_pathname(Filename, Dir) - any()}}} + == comment suggestions == + * module comments (more to come) + * function comments (more to come) - = collate/2 = - {{{collate(A, B) - any()}}} + == link to generated documentation == + [[http://couch.erldocs.com/| couch erldocs]] - = collate/3 = - {{{collate(A, B, Options) - any()}}} - - = decodeBase64Url/1 = - {{{decodeBase64Url(Url64) - any()}}} - - = dict_find/3 = - {{{dict_find(Key, Dict, DefaultValue) - any()}}} - - = encodeBase64Url/1 = - {{{encodeBase64Url(Url) - any()}}} - - = encode_doc_id/1 = - {{{encode_doc_id(Doc) - any()}}} - - = get_nested_json_value/2 = - {{{get_nested_json_value(Value, Keys) - any()}}} - - = get_value/2 = - {{{get_value(Key, List) - any()}}} - - = get_value/3 = - {{{get_value(Key, List, Default) - any()}}} - - = implode/2 = - {{{implode(List, Sep) - any()}}} - - = json_apply_field/2 = - {{{json_apply_field(H, X2) - any()}}} - - = json_user_ctx/1 = - {{{json_user_ctx(Db) - any()}}} - - = md5/1 = - {{{md5(Data::(iolist() | binary())) - Digest::binary()}}} - - = md5_final/1 = - {{{md5_final(Context::binary()) - Digest::binary()}}} - - = md5_init/0 = - {{{md5_init() - Context::binary()}}} - - = md5_update/2 = - {{{md5_update(Context::binary(), Data::(iolist() | binary())) - NewContext::binary()}}} - - = normpath/1 = - {{{normpath(Path) - any()}}} - - = parse_term/1 = - {{{parse_term(Bin) - any()}}} - - = priv_dir/0 = - {{{priv_dir() - any()}}} - - = proplist_apply_field/2 = - {{{proplist_apply_field(H, L) - any()}}} - - = rand32/0 = - {{{rand32() - any()}}} - - = reorder_results/2 = - {{{reorder_results(Keys, SortedResults) - any()}}} - - = should_flush/0 = - {{{should_flush() - any()}}} - - = should_flush/1 = - {{{should_flush(MemThreshHold) - any()}}} - - = shutdown_sync/1 = - {{{shutdown_sync(Pid) - any()}}} - - = simple_call/2 = - {{{simple_call(Pid, Message) - any()}}} - - = to_binary/1 = - {{{to_binary(V) - any()}}} - - = to_existing_atom/1 = - {{{to_existing_atom(V) - any()}}} - - = to_hex/1 = - {{{to_hex(Bin) - any()}}} - - = to_integer/1 = - {{{to_integer(V) - any()}}} - - = to_list/1 = - {{{to_list(V) - any()}}} - - = trim/1 = - {{{trim(String) - any()}}} - - = url_encode/1 = - {{{url_encode(Bin) - any()}}} - - = url_strip_password/1 = - {{{url_strip_password(Url) - any()}}} - - = validate_utf8/1 = - {{{validate_utf8(Data) - any()}}} - - = verify/2 = - {{{verify(X, Y) - any()}}} - - = with_db/2 = - {{{with_db(Db, Fun) - any()}}} - - == couch_index == - == courch_mrview == - == couch_replicator == - == ejson == - == erlang-oauth == - == etap == - == ibrowse == - == mochiweb == - == snappy == -
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=6rev2=7 Please note this is a work in progress but over the next few days I hope to have all sections and modules documentation posted here. == comment suggestions == - * module comments (more to come) - * function comments (more to come) + * module comments + * By using the edoc '@doc' tag before the module you can add one or more lines of documentation for the module + + . e.g. + + . %% @doc This would be a line of documentation + + . %% More lines can be used if needed + + * function comments + * By using the edoc '@doc' tag before the function you can add one or more lines of documentation for the function + + . e.g. + + . %% @doc This would be a line of documentation + + . %% More lines can be used if needed == link to generated documentation == - [[http://couch.erldocs.com/| couch erldocs]] + [[http://couch.erldocs.com/|couch erldocs]]
[Couchdb Wiki] Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=7rev2=8 Comment: removed extra title . %% More lines can be used if needed + [[http://www.erlang.org/doc/apps/edoc/chapter.html|edoc reference]] - == link to generated documentation == - [[http://couch.erldocs.com/|couch erldocs]] + [[http://couch.erldocs.com/|couchdb erldocs]] +
[Couchdb Wiki] Trivial Update of couch_edocs by mCoolin
Dear Wiki user, You have subscribed to a wiki page or wiki category on Couchdb Wiki for change notification. The couch_edocs page has been changed by mCoolin: http://wiki.apache.org/couchdb/couch_edocs?action=diffrev1=8rev2=9 Comment: capitalization = COUCHDB edocs summary of modules = Please note this is a work in progress but over the next few days I hope to have all sections and modules documentation posted here. - == comment suggestions == + == Comment suggestions == * module comments * By using the edoc '@doc' tag before the module you can add one or more lines of documentation for the module @@ -21, +21 @@ . %% @doc This would be a line of documentation . %% More lines can be used if needed - [[http://www.erlang.org/doc/apps/edoc/chapter.html|edoc reference]] [[http://couch.erldocs.com/|couchdb erldocs]]