summaryrefslogtreecommitdiff
path: root/databases/compass/files/kerberos-heimdal.patch
blob: 2ef5795dd1d92312a0b9c3b2e4151d64f923fd88 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
diff -ur package.orig/src/unix/kerberos_gss.cc package/src/unix/kerberos_gss.cc
--- package.orig/src/unix/kerberos_gss.cc	1985-10-26 17:15:00.000000000 +0900
+++ package/src/unix/kerberos_gss.cc	2024-05-29 05:59:03.862817000 +0900
@@ -120,9 +120,9 @@
 
 namespace node_kerberos {
 
-const char* krb5_get_err_text(const krb5_context&, krb5_error_code code) {
-    return COMERR_CALL(error_message)(code);
-}
+//const char* krb5_get_err_text(const krb5_context& ctx, krb5_error_code code) {
+//    return COMERR_CALL(krb5_get_error_message)(ctx, code);
+//}
 
 static gss_result gss_success_result(int ret);
 static gss_result gss_error_result(OM_uint32 err_maj, OM_uint32 err_min);
@@ -138,7 +138,7 @@
     int code;
     krb5_context kcontext;
     krb5_keytab kt = NULL;
-    krb5_kt_cursor cursor = NULL;
+    krb5_kt_cursor cursor;
     krb5_keytab_entry entry;
     char* pname = NULL;
 
@@ -174,12 +174,12 @@
         if (strncmp(pname, match, match_len) == 0) {
             details = pname;
             KRB5_CALL(krb5_free_unparsed_name)(kcontext, pname);
-            KRB5_CALL(krb5_free_keytab_entry_contents)(kcontext, &entry);
+            KRB5_CALL(krb5_kt_free_entry)(kcontext, &entry);
             break;
         }
 
         KRB5_CALL(krb5_free_unparsed_name)(kcontext, pname);
-        KRB5_CALL(krb5_free_keytab_entry_contents)(kcontext, &entry);
+        KRB5_CALL(krb5_kt_free_entry)(kcontext, &entry);
     }
 
     if (details.empty()) {
@@ -189,8 +189,7 @@
         result.data = std::move(details);
     }
 end:
-    if (cursor)
-        KRB5_CALL(krb5_kt_end_seq_get)(kcontext, kt, &cursor);
+    KRB5_CALL(krb5_kt_end_seq_get)(kcontext, kt, &cursor);
     if (kt)
         KRB5_CALL(krb5_kt_close)(kcontext, kt);
     KRB5_CALL(krb5_free_context)(kcontext);
@@ -223,7 +222,7 @@
     name_token.value = (char*)service;
 
     maj_stat =
-        GSS_CALL(gss_import_name)(&min_stat, &name_token, GSS_VALUE(gss_nt_service_name), &state->server_name);
+        GSS_CALL(gss_import_name)(&min_stat, &name_token, GSS_VALUE(GSS_C_NT_HOSTBASED_SERVICE), &state->server_name);
 
     if (GSS_ERROR(maj_stat)) {
         ret = gss_error_result(maj_stat, min_stat);
diff -ur package.orig/src/unix/kerberos_gss.h package/src/unix/kerberos_gss.h
--- package.orig/src/unix/kerberos_gss.h	1985-10-26 17:15:00.000000000 +0900
+++ package/src/unix/kerberos_gss.h	2024-05-29 06:03:39.889151000 +0900
@@ -18,8 +18,9 @@
 #define KERBEROS_GSS_H
 
 extern "C" {
+    #include <krb5.h>
     #include <gssapi/gssapi.h>
-    #include <gssapi/gssapi_generic.h>
+    // #include <gssapi/gssapi_generic.h>
     #include <gssapi/gssapi_krb5.h>
 }
 
@@ -27,7 +28,7 @@
 
 namespace node_kerberos {
 
-const char* krb5_get_err_text(const krb5_context&, krb5_error_code code);
+// const char* krb5_get_err_text(const krb5_context&, krb5_error_code code);
 
 #define AUTH_GSS_ERROR -1
 #define AUTH_GSS_COMPLETE 1