1251881Speter/* 2251881Speter * ra_svn_sasl.h : SASL-related declarations shared between the 3251881Speter * ra_svn and svnserve module 4251881Speter * 5251881Speter * ==================================================================== 6251881Speter * Licensed to the Apache Software Foundation (ASF) under one 7251881Speter * or more contributor license agreements. See the NOTICE file 8251881Speter * distributed with this work for additional information 9251881Speter * regarding copyright ownership. The ASF licenses this file 10251881Speter * to you under the Apache License, Version 2.0 (the 11251881Speter * "License"); you may not use this file except in compliance 12251881Speter * with the License. You may obtain a copy of the License at 13251881Speter * 14251881Speter * http://www.apache.org/licenses/LICENSE-2.0 15251881Speter * 16251881Speter * Unless required by applicable law or agreed to in writing, 17251881Speter * software distributed under the License is distributed on an 18251881Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 19251881Speter * KIND, either express or implied. See the License for the 20251881Speter * specific language governing permissions and limitations 21251881Speter * under the License. 22251881Speter * ==================================================================== 23251881Speter */ 24251881Speter 25251881Speter 26251881Speter 27251881Speter#ifndef RA_SVN_SASL_H 28251881Speter#define RA_SVN_SASL_H 29251881Speter 30251881Speter#ifdef WIN32 31251881Speter/* This prevents sasl.h from redefining iovec, which is always defined by APR 32251881Speter on win32. */ 33251881Speter#define STRUCT_IOVEC_DEFINED 34251881Speter#include <sasl.h> 35251881Speter#else 36251881Speter#include <sasl/sasl.h> 37251881Speter#endif 38251881Speter 39251881Speter#include <apr_errno.h> 40251881Speter#include <apr_pools.h> 41251881Speter 42251881Speter#include "svn_error.h" 43251881Speter#include "svn_ra_svn.h" 44251881Speter 45251881Speter#include "private/svn_atomic.h" 46251881Speter 47251881Speter#ifdef __cplusplus 48251881Speterextern "C" { 49251881Speter#endif /* __cplusplus */ 50251881Speter 51251881Speter/** The application and service name used for sasl_client_new, 52251881Speter * sasl_server_init, and sasl_server_new. */ 53251881Speter#define SVN_RA_SVN_SASL_NAME "svn" 54251881Speter 55251881Speterextern volatile svn_atomic_t svn_ra_svn__sasl_status; 56251881Speter 57251881Speter/* Initialize secprops with default values. */ 58251881Spetervoid 59251881Spetersvn_ra_svn__default_secprops(sasl_security_properties_t *secprops); 60251881Speter 61251881Speter/* This function is called by the client and the server before 62251881Speter calling sasl_{client, server}_init, pool is used for allocations. */ 63251881Spetersvn_error_t * 64251881Spetersvn_ra_svn__sasl_common_init(apr_pool_t *pool); 65251881Speter 66251881Speter/* Sets local_addrport and remote_addrport to a string containing the 67251881Speter remote and local IP address and port, formatted like this: a.b.c.d;port. */ 68251881Spetersvn_error_t * 69251881Spetersvn_ra_svn__get_addresses(const char **local_addrport, 70251881Speter const char **remote_addrport, 71251881Speter svn_ra_svn_conn_t *conn, 72251881Speter apr_pool_t *pool); 73251881Speter 74251881Speter/* If a security layer was negotiated during the authentication exchange, 75251881Speter create an encrypted stream for conn. */ 76251881Spetersvn_error_t * 77251881Spetersvn_ra_svn__enable_sasl_encryption(svn_ra_svn_conn_t *conn, 78251881Speter sasl_conn_t *sasl_ctx, 79251881Speter apr_pool_t *pool); 80251881Speter 81251881Speter 82251881Speter#ifdef __cplusplus 83251881Speter} 84251881Speter#endif /* __cplusplus */ 85251881Speter 86251881Speter#endif /* RA_SVN_SASL_H */ 87