access.c revision 299742
1251875Speter/* 2251875Speter * access.c: shared code to manipulate svn_fs_access_t objects 3251875Speter * 4251875Speter * ==================================================================== 5251875Speter * Licensed to the Apache Software Foundation (ASF) under one 6251875Speter * or more contributor license agreements. See the NOTICE file 7251875Speter * distributed with this work for additional information 8251875Speter * regarding copyright ownership. The ASF licenses this file 9251875Speter * to you under the Apache License, Version 2.0 (the 10251875Speter * "License"); you may not use this file except in compliance 11251875Speter * with the License. You may obtain a copy of the License at 12251875Speter * 13251875Speter * http://www.apache.org/licenses/LICENSE-2.0 14251875Speter * 15251875Speter * Unless required by applicable law or agreed to in writing, 16251875Speter * software distributed under the License is distributed on an 17251875Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18251875Speter * KIND, either express or implied. See the License for the 19251875Speter * specific language governing permissions and limitations 20251875Speter * under the License. 21251875Speter * ==================================================================== 22251875Speter */ 23251875Speter 24251875Speter 25251875Speter#include <apr_hash.h> 26251875Speter 27251875Speter#include "svn_hash.h" 28251875Speter#include "svn_types.h" 29251875Speter#include "svn_pools.h" 30251875Speter#include "svn_fs.h" 31251875Speter#include "private/svn_fs_private.h" 32251875Speter 33251875Speter#include "fs-loader.h" 34251875Speter 35251875Speter 36251875Speter 37251875Spetersvn_error_t * 38251875Spetersvn_fs_create_access(svn_fs_access_t **access_ctx, 39251875Speter const char *username, 40251875Speter apr_pool_t *pool) 41251875Speter{ 42251875Speter svn_fs_access_t *ac; 43251875Speter 44251875Speter SVN_ERR_ASSERT(username != NULL); 45251875Speter 46251875Speter ac = apr_pcalloc(pool, sizeof(*ac)); 47251875Speter ac->username = apr_pstrdup(pool, username); 48251875Speter ac->lock_tokens = apr_hash_make(pool); 49251875Speter *access_ctx = ac; 50251875Speter 51251875Speter return SVN_NO_ERROR; 52251875Speter} 53251875Speter 54251875Speter 55251875Spetersvn_error_t * 56251875Spetersvn_fs_set_access(svn_fs_t *fs, 57251875Speter svn_fs_access_t *access_ctx) 58251875Speter{ 59251875Speter fs->access_ctx = access_ctx; 60251875Speter 61251875Speter return SVN_NO_ERROR; 62251875Speter} 63251875Speter 64251875Speter 65251875Spetersvn_error_t * 66251875Spetersvn_fs_get_access(svn_fs_access_t **access_ctx, 67251875Speter svn_fs_t *fs) 68251875Speter{ 69269847Speter *access_ctx = fs->access_ctx; 70251875Speter 71251875Speter return SVN_NO_ERROR; 72251875Speter} 73251875Speter 74251875Speter 75251875Spetersvn_error_t * 76251875Spetersvn_fs_access_get_username(const char **username, 77251875Speter svn_fs_access_t *access_ctx) 78251875Speter{ 79251875Speter *username = access_ctx->username; 80251875Speter 81251875Speter return SVN_NO_ERROR; 82251875Speter} 83251875Speter 84251875Speter 85251875Spetersvn_error_t * 86251875Spetersvn_fs_access_add_lock_token2(svn_fs_access_t *access_ctx, 87251875Speter const char *path, 88251875Speter const char *token) 89251875Speter{ 90251875Speter svn_hash_sets(access_ctx->lock_tokens, token, path); 91251875Speter return SVN_NO_ERROR; 92251875Speter} 93251875Speter 94251875Speterapr_hash_t * 95251875Spetersvn_fs__access_get_lock_tokens(svn_fs_access_t *access_ctx) 96251875Speter{ 97251875Speter return access_ctx->lock_tokens; 98251875Speter} 99251875Speter