cpp_quote("#define gssx_uint64 hyper")
cpp_quote("#define gssx_buffer octet_string")
-cpp_quote("#define gssx_OID octet_string")
/*
#define gssx_qop hyper
#define gssx_time hyper
#define gssx_buffer octet_string
-#define gssx_OID octet_string
#define bool int
#define GSSX_DECLARE_ARRAY(el_struct, el_name) \
char utf8string_val[utf8string_len];
} utf8string;
+ typedef [noprint] struct {
+ uint32 octet_string_len;
+ char octet_string_val[octet_string_len];
+ } gssx_OID;
+
typedef struct {
uint32 gssx_OID_set_len;
gssx_OID gssx_OID_set_val[gssx_OID_set_len];
#include "includes.h"
#include "../librpc/gen_ndr/ndr_gssproxy.h"
+#include <gssapi.h>
_PUBLIC_ void ndr_print_octet_string(struct ndr_print *ndr, const char *name, const struct octet_string *r)
{
ndr_print_string(ndr, "utf8string_val", (char *)r->utf8string_val);
ndr->depth--;
}
+
+_PUBLIC_ void ndr_print_gssx_OID(struct ndr_print *ndr, const char *name, const struct gssx_OID *r)
+{
+ gss_OID_desc oid;
+ OM_uint32 maj,min;
+ gss_buffer_desc s = {0};
+ if (r == NULL) { ndr_print_null(ndr); return; }
+ oid.length = r->octet_string_len;
+ oid.elements = (void *)r->octet_string_val;
+ maj = gss_oid_to_str(&min, &oid, &s);
+ if (maj) { return; }
+ ndr->print(ndr, "%-25s: %s", name, (char *)s.value);
+ (void)gss_release_buffer(&min, &s);
+}
bld.SAMBA_LIBRARY('ndr-gssproxy',
source='gen_ndr/ndr_gssproxy.c ndr/ndr_gssproxy.c',
public_headers='gen_ndr/gssproxy.h gen_ndr/ndr_gssproxy.h',
- public_deps='ndr',
+ public_deps='ndr gssapi',
header_path='gen_ndr',
pc_files='ndr_gssproxy.pc',
vnum='0.0.1'