X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=blobdiff_plain;f=include%2Ftr_gss.h;fp=include%2Ftr_gss.h;h=f7fcd4191cf80c344029231e5cb9c81292233272;hp=676c8e4191acb25ebe92023fee5359d30e2e057b;hb=6f65c9cce86719147d0b4dcc9823b25443c2d185;hpb=eaa1a8ceed54fbfadc2638cf383aaa12ab446a57 diff --git a/include/tr_gss.h b/include/tr_gss.h index 676c8e4..f7fcd41 100644 --- a/include/tr_gss.h +++ b/include/tr_gss.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, JANET(UK) + * Copyright (c) 2018, JANET(UK) * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,31 +32,28 @@ * */ -#ifndef __TR_GSS_H__ -#define __TR_GSS_H__ +#ifndef TRUST_ROUTER_TR_GSS_H +#define TRUST_ROUTER_TR_GSS_H -#include -#include +#include -#define TR_MAX_GSS_NAMES 5 +typedef int (TR_GSS_AUTH_FN)(gss_name_t, TR_NAME *, void *); +typedef enum tr_gss_rc (TR_GSS_HANDLE_REQ_FN)(TALLOC_CTX *, TR_MSG *, TR_MSG **, void *); -typedef struct tr_gss_names { - TR_NAME *names[TR_MAX_GSS_NAMES]; -} TR_GSS_NAMES; +typedef enum tr_gss_rc { + TR_GSS_SUCCESS = 0, /* success */ + TR_GSS_AUTH_FAILED, /* authorization failed */ + TR_GSS_REQUEST_FAILED, /* request failed */ + TR_GSS_INTERNAL_ERROR, /* internal error (memory allocation, etc) */ + TR_GSS_ERROR, /* unspecified error */ +} TR_GSS_RC; -typedef struct tr_gss_names_iter { - TR_GSS_NAMES *gn; - int ii; /* which entry did we last output? */ -} TR_GSS_NAMES_ITER; +TR_GSS_RC tr_gss_handle_connection(int conn, + const char *acceptor_service, + const char *acceptor_hostname, + TR_GSS_AUTH_FN auth_cb, + void *auth_cookie, + TR_GSS_HANDLE_REQ_FN req_cb, + void *req_cookie); -TR_GSS_NAMES *tr_gss_names_new(TALLOC_CTX *mem_ctx); -void tr_gss_names_free(TR_GSS_NAMES *gn); -int tr_gss_names_add(TR_GSS_NAMES *gn, TR_NAME *new); -int tr_gss_names_matches(TR_GSS_NAMES *gn, TR_NAME *name); - -TR_GSS_NAMES_ITER *tr_gss_names_iter_new(TALLOC_CTX *mem_ctx); -TR_NAME *tr_gss_names_iter_first(TR_GSS_NAMES_ITER *iter, TR_GSS_NAMES *gn); -TR_NAME *tr_gss_names_iter_next(TR_GSS_NAMES_ITER *iter); -void tr_gss_names_iter_free(TR_GSS_NAMES_ITER *iter); - -#endif /* __TR_GSS_H__ */ +#endif //TRUST_ROUTER_TR_GSS_H