gsasl  2.2.1
xfinish.c
Go to the documentation of this file.
1 /* xfinish.c --- Finish libgsasl session.
2  * Copyright (C) 2002-2024 Simon Josefsson
3  *
4  * This file is part of GNU SASL Library.
5  *
6  * GNU SASL Library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License
8  * as published by the Free Software Foundation; either version 2.1 of
9  * the License, or (at your option) any later version.
10  *
11  * GNU SASL Library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License License along with GNU SASL Library; if not, write to the
18  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #include <config.h>
24 #include "internal.h"
25 
33 void
35 {
36  if (sctx == NULL)
37  return;
38 
39  if (sctx->clientp)
40  {
41  if (sctx->mech && sctx->mech->client.finish)
42  sctx->mech->client.finish (sctx, sctx->mech_data);
43  }
44  else
45  {
46  if (sctx->mech && sctx->mech->server.finish)
47  sctx->mech->server.finish (sctx, sctx->mech_data);
48  }
49 
50  free (sctx->anonymous_token);
51  free (sctx->authid);
52  free (sctx->authzid);
53  free (sctx->password);
54  free (sctx->passcode);
55  free (sctx->pin);
56  free (sctx->suggestedpin);
57  free (sctx->service);
58  free (sctx->hostname);
59  free (sctx->gssapi_display_name);
60  free (sctx->realm);
61  free (sctx->digest_md5_hashed_password);
62  free (sctx->qops);
63  free (sctx->qop);
64  free (sctx->scram_iter);
65  free (sctx->scram_salt);
66  free (sctx->scram_salted_password);
67  free (sctx->scram_serverkey);
68  free (sctx->scram_storedkey);
69  free (sctx->cb_tls_unique);
70  free (sctx->cb_tls_exporter);
71  free (sctx->saml20_idp_identifier);
72  free (sctx->saml20_redirect_url);
73  free (sctx->openid20_redirect_url);
74  free (sctx->openid20_outcome_data);
75  /* If you add anything here, remember to change change map() in
76  property.c and Gsasl_session in internal.h. */
77 
78  free (sctx);
79 }
Gsasl_finish_function finish
Definition: gsasl-mech.h:157
struct Gsasl_mechanism_functions server
Definition: gsasl-mech.h:176
struct Gsasl_mechanism_functions client
Definition: gsasl-mech.h:175
void * mech_data
Definition: internal.h:53
char * qops
Definition: internal.h:69
Gsasl_mechanism * mech
Definition: internal.h:52
char * hostname
Definition: internal.h:65
char * authid
Definition: internal.h:58
char * openid20_redirect_url
Definition: internal.h:80
char * service
Definition: internal.h:64
char * qop
Definition: internal.h:70
char * cb_tls_exporter
Definition: internal.h:77
char * scram_salted_password
Definition: internal.h:73
char * gssapi_display_name
Definition: internal.h:66
char * pin
Definition: internal.h:62
char * cb_tls_unique
Definition: internal.h:76
char * scram_storedkey
Definition: internal.h:75
char * saml20_redirect_url
Definition: internal.h:79
char * scram_salt
Definition: internal.h:72
char * scram_iter
Definition: internal.h:71
char * passcode
Definition: internal.h:61
char * anonymous_token
Definition: internal.h:57
char * password
Definition: internal.h:60
char * openid20_outcome_data
Definition: internal.h:81
char * suggestedpin
Definition: internal.h:63
char * digest_md5_hashed_password
Definition: internal.h:68
char * authzid
Definition: internal.h:59
char * realm
Definition: internal.h:67
char * scram_serverkey
Definition: internal.h:74
char * saml20_idp_identifier
Definition: internal.h:78
void gsasl_finish(Gsasl_session *sctx)
Definition: xfinish.c:34