diff options
Diffstat (limited to 'src/lib/krb5/ccache/cccursor.c')
-rw-r--r-- | src/lib/krb5/ccache/cccursor.c | 193 |
1 files changed, 97 insertions, 96 deletions
diff --git a/src/lib/krb5/ccache/cccursor.c b/src/lib/krb5/ccache/cccursor.c index 5a062d4433..852eff847f 100644 --- a/src/lib/krb5/ccache/cccursor.c +++ b/src/lib/krb5/ccache/cccursor.c @@ -1,3 +1,4 @@ +/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* * lib/krb5/ccache/cccursor.c * @@ -8,7 +9,7 @@ * require a specific license from the United States Government. * It is the responsibility of any person or organization contemplating * export to obtain such a license before exporting. - * + * * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and * distribute this software and its documentation for any purpose and * without fee is hereby granted, provided that the above copyright @@ -75,7 +76,7 @@ krb5_cccol_cursor_new( *cursor = NULL; n = malloc(sizeof(*n)); if (n == NULL) - return ENOMEM; + return ENOMEM; n->pos = CCCURSOR_CONTEXT; n->typecursor = NULL; @@ -83,27 +84,27 @@ krb5_cccol_cursor_new( n->ops = NULL; for (i = 0; i < NFULLNAMES; i++) { - n->fullnames[i].pfx = n->fullnames[i].res = NULL; + n->fullnames[i].pfx = n->fullnames[i].res = NULL; } n->cur_fullname = 0; ret = krb5int_cc_typecursor_new(context, &n->typecursor); if (ret) - goto errout; + goto errout; do { - /* Find first backend with ptcursor functionality. */ - ret = krb5int_cc_typecursor_next(context, n->typecursor, &n->ops); - if (ret || n->ops == NULL) - goto errout; + /* Find first backend with ptcursor functionality. */ + ret = krb5int_cc_typecursor_next(context, n->typecursor, &n->ops); + if (ret || n->ops == NULL) + goto errout; } while (n->ops->ptcursor_new == NULL); ret = n->ops->ptcursor_new(context, &n->ptcursor); if (ret) - goto errout; + goto errout; errout: if (ret) { - krb5_cccol_cursor_free(context, &n); + krb5_cccol_cursor_free(context, &n); } *cursor = n; return ret; @@ -124,48 +125,48 @@ krb5_cccol_cursor_next( switch (cursor->pos) { case CCCURSOR_CONTEXT: - name = os_ctx->default_ccname; - if (name != NULL) { - cursor->pos = CCCURSOR_ENV; - ret = cccol_do_resolve(context, cursor, name, ccache); - if (ret) - goto errout; - if (*ccache != NULL) - break; - } - /* fall through */ + name = os_ctx->default_ccname; + if (name != NULL) { + cursor->pos = CCCURSOR_ENV; + ret = cccol_do_resolve(context, cursor, name, ccache); + if (ret) + goto errout; + if (*ccache != NULL) + break; + } + /* fall through */ case CCCURSOR_ENV: - name = getenv(KRB5_ENV_CCNAME); - if (name != NULL) { - cursor->pos = CCCURSOR_OS; - ret = cccol_do_resolve(context, cursor, name, ccache); - if (ret) - goto errout; - if (*ccache != NULL) - break; - } - /* fall through */ + name = getenv(KRB5_ENV_CCNAME); + if (name != NULL) { + cursor->pos = CCCURSOR_OS; + ret = cccol_do_resolve(context, cursor, name, ccache); + if (ret) + goto errout; + if (*ccache != NULL) + break; + } + /* fall through */ case CCCURSOR_OS: - ret = krb5int_cc_os_default_name(context, &name); - if (ret) goto errout; - if (name != NULL) { - cursor->pos = CCCURSOR_PERTYPE; - ret = cccol_do_resolve(context, cursor, name, ccache); - free(name); - if (ret) - goto errout; - if (*ccache != NULL) - break; - } - /* fall through */ + ret = krb5int_cc_os_default_name(context, &name); + if (ret) goto errout; + if (name != NULL) { + cursor->pos = CCCURSOR_PERTYPE; + ret = cccol_do_resolve(context, cursor, name, ccache); + free(name); + if (ret) + goto errout; + if (*ccache != NULL) + break; + } + /* fall through */ case CCCURSOR_PERTYPE: - cursor->pos = CCCURSOR_PERTYPE; - do { - ret = cccol_pertype_next(context, cursor, ccache); - if (ret) - goto errout; - } while (cccol_already(context, cursor, ccache)); - break; + cursor->pos = CCCURSOR_PERTYPE; + do { + ret = cccol_pertype_next(context, cursor, ccache); + if (ret) + goto errout; + } while (cccol_already(context, cursor, ccache)); + break; } errout: return ret; @@ -180,18 +181,18 @@ krb5_cccol_cursor_free( int i; if (c == NULL) - return 0; + return 0; for (i = 0; i < NFULLNAMES; i++) { - if (c->fullnames[i].pfx != NULL) - free(c->fullnames[i].pfx); - if (c->fullnames[i].res != NULL) - free(c->fullnames[i].res); + if (c->fullnames[i].pfx != NULL) + free(c->fullnames[i].pfx); + if (c->fullnames[i].res != NULL) + free(c->fullnames[i].res); } if (c->ptcursor != NULL) - c->ops->ptcursor_free(context, &c->ptcursor); + c->ops->ptcursor_free(context, &c->ptcursor); if (c->typecursor != NULL) - krb5int_cc_typecursor_free(context, &c->typecursor); + krb5int_cc_typecursor_free(context, &c->typecursor); free(c); *cursor = NULL; @@ -200,7 +201,7 @@ krb5_cccol_cursor_free( krb5_error_code KRB5_CALLCONV krb5_cccol_last_change_time( - krb5_context context, + krb5_context context, krb5_timestamp *change_time) { krb5_error_code ret = 0; @@ -208,11 +209,11 @@ krb5_cccol_last_change_time( krb5_ccache ccache = NULL; krb5_timestamp last_time = 0; krb5_timestamp max_change_time = 0; - + *change_time = 0; - + ret = krb5_cccol_cursor_new(context, &c); - + while (!ret) { ret = krb5_cccol_cursor_next(context, c, &ccache); if (ccache) { @@ -248,19 +249,19 @@ cccol_already( int i; if (*ccache == NULL) - return 0; + return 0; name = krb5_cc_get_name(context, *ccache); if (name == NULL) - return 0; + return 0; prefix = krb5_cc_get_type(context, *ccache); assert(c->cur_fullname < NFULLNAMES); for (i = 0; i < c->cur_fullname; i++) { - if (cccol_cmpname(prefix, name, &c->fullnames[i])) { - krb5_cc_close(context, *ccache); - *ccache = NULL; - return 1; - } + if (cccol_cmpname(prefix, name, &c->fullnames[i])) { + krb5_cc_close(context, *ccache); + *ccache = NULL; + return 1; + } } return 0; } @@ -275,11 +276,11 @@ cccol_cmpname( struct cc_fullname *fullname) { if (fullname->pfx == NULL || fullname->res == NULL) - return 0; + return 0; if (strcmp(prefix, fullname->pfx)) - return 0; + return 0; if (strcmp(name, fullname->res)) - return 0; + return 0; return 1; } @@ -303,10 +304,10 @@ cccol_do_resolve( assert(cursor->cur_fullname < NFULLNAMES); ret = krb5_cc_resolve(context, name, ccache); if (ret) - return ret; + return ret; if (cccol_already(context, cursor, ccache)) - return 0; + return 0; fullname = &cursor->fullnames[cursor->cur_fullname]; fullname->pfx = strdup(krb5_cc_get_type(context, *ccache)); @@ -331,35 +332,35 @@ cccol_pertype_next( /* Are we out of backends? */ if (cursor->ops == NULL) - return 0; + return 0; /* * Loop in case there are multiple backends with empty ccache * lists. */ while (*ccache == NULL) { - ret = cursor->ops->ptcursor_next(context, cursor->ptcursor, ccache); - if (ret) - goto errout; - if (*ccache != NULL) - return 0; - - ret = cursor->ops->ptcursor_free(context, &cursor->ptcursor); - if (ret) - goto errout; - - do { - /* Find first backend with ptcursor functionality. */ - ret = krb5int_cc_typecursor_next(context, cursor->typecursor, - &cursor->ops); - if (ret) - goto errout; - if (cursor->ops == NULL) - return 0; - } while (cursor->ops->ptcursor_new == NULL); - - ret = cursor->ops->ptcursor_new(context, &cursor->ptcursor); - if (ret) - goto errout; + ret = cursor->ops->ptcursor_next(context, cursor->ptcursor, ccache); + if (ret) + goto errout; + if (*ccache != NULL) + return 0; + + ret = cursor->ops->ptcursor_free(context, &cursor->ptcursor); + if (ret) + goto errout; + + do { + /* Find first backend with ptcursor functionality. */ + ret = krb5int_cc_typecursor_next(context, cursor->typecursor, + &cursor->ops); + if (ret) + goto errout; + if (cursor->ops == NULL) + return 0; + } while (cursor->ops->ptcursor_new == NULL); + + ret = cursor->ops->ptcursor_new(context, &cursor->ptcursor); + if (ret) + goto errout; } errout: return ret; |