callback.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "internal.h"
00024
00043 void
00044 gsasl_callback_set (Gsasl * ctx, Gsasl_callback_function cb)
00045 {
00046 ctx->cb = cb;
00047 }
00048
00049 #ifndef GSASL_NO_OBSOLETE
00050
00051 int _gsasl_obsolete_callback (Gsasl * ctx, Gsasl_session * sctx,
00052 Gsasl_property prop);
00053 #endif
00054
00080 int
00081 gsasl_callback (Gsasl * ctx, Gsasl_session * sctx, Gsasl_property prop)
00082 {
00083 if (ctx == NULL && sctx == NULL)
00084 return GSASL_NO_CALLBACK;
00085
00086 if (ctx == NULL)
00087 ctx = sctx->ctx;
00088
00089 if (ctx->cb)
00090 return ctx->cb (ctx, sctx, prop);
00091
00092 #ifndef GSASL_NO_OBSOLETE
00093 return _gsasl_obsolete_callback (ctx, sctx, prop);
00094 #endif
00095
00096 return GSASL_NO_CALLBACK;
00097 }
00098
00113 void
00114 gsasl_callback_hook_set (Gsasl * ctx, void *hook)
00115 {
00116 ctx->application_hook = hook;
00117 }
00118
00133 void *
00134 gsasl_callback_hook_get (Gsasl * ctx)
00135 {
00136 return ctx->application_hook;
00137 }
00138
00153 void
00154 gsasl_session_hook_set (Gsasl_session * sctx, void *hook)
00155 {
00156 sctx->application_hook = hook;
00157 }
00158
00173 void *
00174 gsasl_session_hook_get (Gsasl_session * sctx)
00175 {
00176 return sctx->application_hook;
00177 }