123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- /* staticopen.h
- * Rob Siemborski
- * Howard Chu
- */
- /*
- * Copyright (c) 1998-2016 Carnegie Mellon University. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The name "Carnegie Mellon University" must not be used to
- * endorse or promote products derived from this software without
- * prior written permission. For permission or any other legal
- * details, please contact
- * Carnegie Mellon University
- * Center for Technology Transfer and Enterprise Creation
- * 4615 Forbes Avenue
- * Suite 302
- * Pittsburgh, PA 15213
- * (412) 268-7393, fax: (412) 268-7395
- * innovation@andrew.cmu.edu
- *
- * 4. Redistributions of any form whatsoever must retain the following
- * acknowledgment:
- * "This product includes software developed by Computing Services
- * at Carnegie Mellon University (http://www.cmu.edu/computing/)."
- *
- * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
- * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
- typedef enum {
- UNKNOWN = 0, SERVER = 1, CLIENT = 2, AUXPROP = 3, CANONUSER = 4
- } _sasl_plug_type;
- typedef struct {
- _sasl_plug_type type;
- char *name;
- sasl_client_plug_init_t *plug;
- } _sasl_plug_rec;
- /* For static linking */
- #define SPECIFIC_CLIENT_PLUG_INIT_PROTO( x ) \
- sasl_client_plug_init_t x##_client_plug_init
- #define SPECIFIC_SERVER_PLUG_INIT_PROTO( x ) \
- sasl_server_plug_init_t x##_server_plug_init
- #define SPECIFIC_AUXPROP_PLUG_INIT_PROTO( x ) \
- sasl_auxprop_init_t x##_auxprop_plug_init
- #define SPECIFIC_CANONUSER_PLUG_INIT_PROTO( x ) \
- sasl_canonuser_init_t x##_canonuser_plug_init
- /* Static Compillation Foo */
- #define SPECIFIC_CLIENT_PLUG_INIT( x, n )\
- { CLIENT, n, x##_client_plug_init }
- #define SPECIFIC_SERVER_PLUG_INIT( x, n )\
- { SERVER, n, (sasl_client_plug_init_t *)x##_server_plug_init }
- #define SPECIFIC_AUXPROP_PLUG_INIT( x, n )\
- { AUXPROP, n, (sasl_client_plug_init_t *)x##_auxprop_plug_init }
- #define SPECIFIC_CANONUSER_PLUG_INIT( x, n )\
- { CANONUSER, n, (sasl_client_plug_init_t *)x##_canonuser_plug_init }
- #ifdef STATIC_ANONYMOUS
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( anonymous );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( anonymous );
- #endif
- #ifdef STATIC_CRAMMD5
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( crammd5 );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( crammd5 );
- #endif
- #ifdef STATIC_DIGESTMD5
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( digestmd5 );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( digestmd5 );
- #endif
- #ifdef STATIC_SCRAM
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( scram );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( scram );
- #endif
- #ifdef STATIC_GSSAPIV2
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( gssapiv2 );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( gssapiv2 );
- #endif
- #ifdef STATIC_KERBEROS4
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( kerberos4 );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( kerberos4 );
- #endif
- #ifdef STATIC_LOGIN
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( login );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( login );
- #endif
- #ifdef STATIC_NTLM
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( ntlm );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( ntlm );
- #endif
- #ifdef STATIC_OTP
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( otp );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( otp );
- #endif
- #ifdef STATIC_PLAIN
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( plain );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( plain );
- #endif
- #ifdef STATIC_SRP
- extern SPECIFIC_SERVER_PLUG_INIT_PROTO( srp );
- extern SPECIFIC_CLIENT_PLUG_INIT_PROTO( srp );
- #endif
- #ifdef STATIC_SASLDB
- extern SPECIFIC_AUXPROP_PLUG_INIT_PROTO( sasldb );
- #endif
- #ifdef STATIC_SQL
- extern SPECIFIC_AUXPROP_PLUG_INIT_PROTO( sql );
- #endif
- #ifdef STATIC_LDAPDB
- extern SPECIFIC_AUXPROP_PLUG_INIT_PROTO( ldapdb );
- #endif
- _sasl_plug_rec _sasl_static_plugins[] = {
- #ifdef STATIC_ANONYMOUS
- SPECIFIC_SERVER_PLUG_INIT( anonymous, "ANONYMOUS" ),
- SPECIFIC_CLIENT_PLUG_INIT( anonymous, "ANONYMOUS" ),
- #endif
- #ifdef STATIC_CRAMMD5
- SPECIFIC_SERVER_PLUG_INIT( crammd5, "CRAM-MD5" ),
- SPECIFIC_CLIENT_PLUG_INIT( crammd5, "CRAM-MD5" ),
- #endif
- #ifdef STATIC_DIGESTMD5
- SPECIFIC_SERVER_PLUG_INIT( digestmd5, "DIGEST-MD5" ),
- SPECIFIC_CLIENT_PLUG_INIT( digestmd5, "DIGEST-MD5" ),
- #endif
- #ifdef STATIC_GSSAPIV2
- SPECIFIC_SERVER_PLUG_INIT( gssapiv2, "GSSAPI" ),
- SPECIFIC_CLIENT_PLUG_INIT( gssapiv2, "GSSAPI" ),
- #endif
- #ifdef STATIC_KERBEROS4
- SPECIFIC_SERVER_PLUG_INIT( kerberos4, "KERBEROS_V4" ),
- SPECIFIC_CLIENT_PLUG_INIT( kerberos4, "KERBEROS_V4" ),
- #endif
- #ifdef STATIC_LOGIN
- SPECIFIC_SERVER_PLUG_INIT( login, "LOGIN" ),
- SPECIFIC_CLIENT_PLUG_INIT( login, "LOGIN" ),
- #endif
- #ifdef STATIC_NTLM
- SPECIFIC_SERVER_PLUG_INIT( ntlm, "NTLM" ),
- SPECIFIC_CLIENT_PLUG_INIT( ntlm, "NTLM" ),
- #endif
- #ifdef STATIC_OTP
- SPECIFIC_SERVER_PLUG_INIT( otp, "OTP" ),
- SPECIFIC_CLIENT_PLUG_INIT( otp, "OTP" ),
- #endif
- #ifdef STATIC_PLAIN
- SPECIFIC_SERVER_PLUG_INIT( plain, "PLAIN" ),
- SPECIFIC_CLIENT_PLUG_INIT( plain, "PLAIN" ),
- #endif
- #ifdef STATIC_SCRAM
- SPECIFIC_SERVER_PLUG_INIT( scram, "SCRAM" ),
- SPECIFIC_CLIENT_PLUG_INIT( scram, "SCRAM" ),
- #endif
- #ifdef STATIC_SRP
- SPECIFIC_SERVER_PLUG_INIT( srp, "SRP" ),
- SPECIFIC_CLIENT_PLUG_INIT( srp, "SRP" ),
- #endif
- #ifdef STATIC_SASLDB
- SPECIFIC_AUXPROP_PLUG_INIT( sasldb, "SASLDB" ),
- #endif
- #ifdef STATIC_SQL
- SPECIFIC_AUXPROP_PLUG_INIT( sql, "SQL" ),
- #endif
- #ifdef STATIC_LDAPDB
- SPECIFIC_AUXPROP_PLUG_INIT( ldapdb, "LDAPDB" ),
- #endif
- { UNKNOWN, NULL, NULL }
- };
|