1333347Speter/* 2333347Speter * svn_wrapped_sasl.h : wrapped SASL API 3333347Speter * 4333347Speter * ==================================================================== 5333347Speter * Licensed to the Apache Software Foundation (ASF) under one 6333347Speter * or more contributor license agreements. See the NOTICE file 7333347Speter * distributed with this work for additional information 8333347Speter * regarding copyright ownership. The ASF licenses this file 9333347Speter * to you under the Apache License, Version 2.0 (the 10333347Speter * "License"); you may not use this file except in compliance 11333347Speter * with the License. You may obtain a copy of the License at 12333347Speter * 13333347Speter * http://www.apache.org/licenses/LICENSE-2.0 14333347Speter * 15333347Speter * Unless required by applicable law or agreed to in writing, 16333347Speter * software distributed under the License is distributed on an 17333347Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18333347Speter * KIND, either express or implied. See the License for the 19333347Speter * specific language governing permissions and limitations 20333347Speter * under the License. 21333347Speter * ==================================================================== 22333347Speter */ 23333347Speter 24333347Speter#ifndef RA_SVN_WRAPPED_SASL_H 25333347Speter#define RA_SVN_WRAPPED_SASL_H 26333347Speter 27333347Speter#include <stddef.h> 28333347Speter 29333347Speter#ifdef WIN32 30333347Speter# define APR_WANT_IOVEC 31333347Speter# include <apr_want.h> 32333347Speter /* This prevents sasl.h from redefining iovec, 33333347Speter which is always defined by APR on win32. */ 34333347Speter# define STRUCT_IOVEC_DEFINED 35333347Speter# include <sasl.h> 36333347Speter#else 37333347Speter# include <sasl/sasl.h> 38333347Speter#endif 39333347Speter 40333347Speter/* Apple deprecated the SASL API on Mac OS X 10.11, causing a 41333347Speter moderately huge number of deprecation warnings to be emitted during 42333347Speter compilation. Consequently, we wrap the parts of the SASL API that 43333347Speter we use in a set of private functions and disable the deprecation 44333347Speter warnings for this header and the implementation file. */ 45333347Speter#ifdef __APPLE__ 46333347Speter# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) 47333347Speter# pragma GCC diagnostic push 48333347Speter# pragma GCC diagnostic ignored "-Wdeprecated-declarations" 49333347Speter# endif 50333347Speter#endif /* __APPLE__ */ 51333347Speter 52333347Speter#ifdef __cplusplus 53333347Speterextern "C" { 54333347Speter#endif /* __cplusplus */ 55333347Speter 56333347Spetervoid 57333347Spetersvn_sasl__set_mutex(sasl_mutex_alloc_t *, sasl_mutex_lock_t *, 58333347Speter sasl_mutex_unlock_t *, sasl_mutex_free_t *); 59333347Speter 60333347Spetervoid 61333347Spetersvn_sasl__done(void); 62333347Speter 63333347Spetervoid 64333347Spetersvn_sasl__dispose(sasl_conn_t **); 65333347Speter 66333347Speterconst char * 67333347Spetersvn_sasl__errstring(int, const char *, const char **); 68333347Speter 69333347Speterconst char * 70333347Spetersvn_sasl__errdetail(sasl_conn_t *); 71333347Speter 72333347Speterint 73333347Spetersvn_sasl__getprop(sasl_conn_t *, int, const void **); 74333347Speter 75333347Speterint 76333347Spetersvn_sasl__setprop(sasl_conn_t *, int, const void *); 77333347Speter 78333347Speterint 79333347Spetersvn_sasl__client_init(const sasl_callback_t *); 80333347Speter 81333347Speterint 82333347Spetersvn_sasl__client_new(const char *, const char *, const char *, const char *, 83333347Speter const sasl_callback_t *, unsigned, sasl_conn_t **); 84333347Speter 85333347Speterint 86333347Spetersvn_sasl__client_start(sasl_conn_t *, const char *, sasl_interact_t **, 87333347Speter const char **, unsigned *, const char **); 88333347Speter 89333347Speterint 90333347Spetersvn_sasl__client_step(sasl_conn_t *, const char *, unsigned, 91333347Speter sasl_interact_t **, const char **, unsigned *); 92333347Speter 93333347Speterint 94333347Spetersvn_sasl__server_init(const sasl_callback_t *, const char *); 95333347Speter 96333347Speterint 97333347Spetersvn_sasl__server_new(const char *, const char *, const char *, 98333347Speter const char *, const char *, const sasl_callback_t *, 99333347Speter unsigned, sasl_conn_t **); 100333347Speter 101333347Speterint 102333347Spetersvn_sasl__listmech(sasl_conn_t *, const char *, const char *, const char *, 103333347Speter const char *, const char **, unsigned *, int *); 104333347Speter 105333347Speterint 106333347Spetersvn_sasl__server_start(sasl_conn_t *, const char *, const char *, unsigned, 107333347Speter const char **, unsigned *); 108333347Speter 109333347Speterint 110333347Spetersvn_sasl__server_step(sasl_conn_t *, const char *, unsigned, 111333347Speter const char **, unsigned *); 112333347Speter 113333347Speterint 114333347Spetersvn_sasl__encode(sasl_conn_t *, const char *, unsigned, 115333347Speter const char **, unsigned *); 116333347Speter 117333347Speterint 118333347Spetersvn_sasl__decode(sasl_conn_t *, const char *, unsigned, 119333347Speter const char **, unsigned *); 120333347Speter 121333347Speter#ifdef __cplusplus 122333347Speter} 123333347Speter#endif /* __cplusplus */ 124333347Speter 125333347Speter#ifdef __APPLE__ 126333347Speter# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2) 127333347Speter# pragma GCC diagnostic pop 128333347Speter# endif 129333347Speter#endif /* __APPLE__ */ 130333347Speter 131333347Speter#endif /* RA_SVN_WRAPPED_SASL_H */ 132