|
1 # |
|
2 # This patch fixes the dejagnu test suite and code to successfully run to |
|
3 # completion. |
|
4 # |
|
5 # Note: Given that the changes are dependent upon Solaris' version of RPC it |
|
6 # is not possible to contribute these changes to MIT unless RPC is also |
|
7 # donated. |
|
8 # Patch source: in-house |
|
9 # |
|
10 diff -pur old/src/kadmin/testing/scripts/init_db new/src/kadmin/testing/scripts/init_db |
|
11 --- old/src/kadmin/testing/scripts/init_db 2015-06-10 00:50:51.127628066 -0600 |
|
12 +++ new/src/kadmin/testing/scripts/init_db 2015-06-16 02:28:12.221384825 -0600 |
|
13 @@ -215,7 +215,7 @@ changepw/kerberos@$REALM cil |
|
14 |
|
15 EOF |
|
16 |
|
17 -eval $LOCAL_MAKE_KEYTAB -princ kadmin/admin -princ kadmin/changepw -princ ovsec_adm/admin -princ ovsec_adm/changepw $K5ROOT/ovsec_adm.srvtab $REDIRECT |
|
18 +eval $LOCAL_MAKE_KEYTAB -princ kadmin/$qualname -princ changepw/$qualname -princ ovsec_adm/admin -princ ovsec_adm/changepw $K5ROOT/ovsec_adm.srvtab $REDIRECT |
|
19 |
|
20 # Create $K5ROOT/setup.csh to make it easy to run other programs against |
|
21 # the test db |
|
22 diff -pur old/src/kadmin/testing/util/tcl_kadm5.c new/src/kadmin/testing/util/tcl_kadm5.c |
|
23 --- old/src/kadmin/testing/util/tcl_kadm5.c 2015-06-10 00:50:51.128546692 -0600 |
|
24 +++ new/src/kadmin/testing/util/tcl_kadm5.c 2015-06-16 02:25:40.402115955 -0600 |
|
25 @@ -13,8 +13,11 @@ |
|
26 #include <errno.h> |
|
27 #include <stdlib.h> |
|
28 #include <adb_err.h> |
|
29 +#include <unistd.h> |
|
30 #include "tcl_kadm5.h" |
|
31 |
|
32 +#define MAXHOSTNAMELEN 256 |
|
33 + |
|
34 struct flagval { |
|
35 char *name; |
|
36 krb5_flags val; |
|
37 @@ -2504,12 +2507,14 @@ static int tcl_kadm5_get_privs(ClientDat |
|
38 |
|
39 void Tcl_kadm5_init(Tcl_Interp *interp) |
|
40 { |
|
41 - char buf[20]; |
|
42 + char buf[MAXHOSTNAMELEN], localname[MAXHOSTNAMELEN] = "localhost"; |
|
43 + |
|
44 + (void) gethostname(localname, MAXHOSTNAMELEN); |
|
45 |
|
46 - Tcl_SetVar(interp, "KADM5_ADMIN_SERVICE", |
|
47 - KADM5_ADMIN_SERVICE, TCL_GLOBAL_ONLY); |
|
48 - Tcl_SetVar(interp, "KADM5_CHANGEPW_SERVICE", |
|
49 - KADM5_CHANGEPW_SERVICE, TCL_GLOBAL_ONLY); |
|
50 + (void) sprintf(buf, "%s@%s", KADM5_ADMIN_HOST_SERVICE, localname); |
|
51 + Tcl_SetVar(interp, "KADM5_ADMIN_SERVICE", buf, TCL_GLOBAL_ONLY); |
|
52 + (void) sprintf(buf, "%s@%s", KADM5_CHANGEPW_HOST_SERVICE, localname); |
|
53 + Tcl_SetVar(interp, "KADM5_CHANGEPW_SERVICE", buf, TCL_GLOBAL_ONLY); |
|
54 (void) sprintf(buf, "%d", KADM5_STRUCT_VERSION); |
|
55 Tcl_SetVar(interp, "KADM5_STRUCT_VERSION", buf, TCL_GLOBAL_ONLY); |
|
56 (void) sprintf(buf, "%d", KADM5_API_VERSION_2); |
|
57 diff -pur old/src/lib/kadm5/unit-test/api.current/init-v2.exp new/src/lib/kadm5/unit-test/api.current/init-v2.exp |
|
58 --- old/src/lib/kadm5/unit-test/api.current/init-v2.exp 2015-06-10 00:50:51.345973412 -0600 |
|
59 +++ new/src/lib/kadm5/unit-test/api.current/init-v2.exp 2015-06-17 15:27:14.063710212 -0600 |
|
60 @@ -70,7 +70,7 @@ proc test102 {} { |
|
61 [config_params {KADM5_CONFIG_ADMIN_SERVER} does.not.exist] \ |
|
62 $KADM5_STRUCT_VERSION $KADM5_API_VERSION_3 \ |
|
63 server_handle |
|
64 - } "CANT_RESOLVE" |
|
65 + } "KADM5_RPC_ERROR" |
|
66 } |
|
67 if {$RPC} test102 |
|
68 |
|
69 @@ -434,10 +434,11 @@ expect { |
|
70 |
|
71 test "init 150" |
|
72 proc test150 {} { |
|
73 - global test KADM5_ADMIN_SERVICE |
|
74 + global test hostname |
|
75 |
|
76 + get_hostname |
|
77 kdestroy |
|
78 - kinit testuser notathena "-S $KADM5_ADMIN_SERVICE" |
|
79 + kinit testuser notathena "-S kadmin/$hostname" |
|
80 one_line_succeed_test { |
|
81 kadm5_init_with_creds testuser null $KADM5_ADMIN_SERVICE \ |
|
82 null $KADM5_STRUCT_VERSION $KADM5_API_VERSION_3 \ |
|
83 @@ -449,10 +450,11 @@ if {$RPC} test150 |
|
84 |
|
85 test "init 151" |
|
86 proc test151 {} { |
|
87 - global test KADM5_CHANGEPW_SERVICE |
|
88 + global test hostname |
|
89 |
|
90 + get_hostname |
|
91 kdestroy |
|
92 - kinit testuser notathena "-S $KADM5_CHANGEPW_SERVICE" |
|
93 + kinit testuser notathena "-S changepw/$hostname" |
|
94 one_line_succeed_test { |
|
95 kadm5_init_with_creds testuser null $KADM5_CHANGEPW_SERVICE \ |
|
96 null $KADM5_STRUCT_VERSION $KADM5_API_VERSION_3 \ |
|
97 diff -pur old/src/lib/kadm5/unit-test/api.current/init.exp new/src/lib/kadm5/unit-test/api.current/init.exp |
|
98 --- old/src/lib/kadm5/unit-test/api.current/init.exp 2015-06-10 00:50:51.346734449 -0600 |
|
99 +++ new/src/lib/kadm5/unit-test/api.current/init.exp 2015-06-16 02:25:07.155377656 -0600 |
|
100 @@ -697,8 +697,8 @@ if {$RPC} { |
|
101 # re-extract the keytab so it is right |
|
102 exec rm $env(K5ROOT)/ovsec_adm.srvtab |
|
103 exec $env(MAKE_KEYTAB) -princ ovsec_adm/admin -princ ovsec_adm/changepw \ |
|
104 - -princ kadmin/admin -princ kadmin/changepw \ |
|
105 - $env(K5ROOT)/ovsec_adm.srvtab |
|
106 + -princ kadmin/[exec $env(QUALNAME)] \ |
|
107 + -princ changepw/[exec $env(QUALNAME)] $env(K5ROOT)/ovsec_adm.srvtab |
|
108 } |
|
109 |
|
110 return "" |
|
111 diff -pur old/src/lib/kadm5/unit-test/destroy-test.c new/src/lib/kadm5/unit-test/destroy-test.c |
|
112 --- old/src/lib/kadm5/unit-test/destroy-test.c 2015-06-10 00:50:51.347207985 -0600 |
|
113 +++ new/src/lib/kadm5/unit-test/destroy-test.c 2015-06-12 01:15:05.073293523 -0600 |
|
114 @@ -27,7 +27,7 @@ int main() |
|
115 exit(2); |
|
116 } |
|
117 for(x = 0; x < TEST_NUM; x++) { |
|
118 - ret = kadm5_init(context, "admin", "admin", KADM5_ADMIN_SERVICE, 0, |
|
119 + ret = kadm5_init(context, "admin", "admin", NULL, 0, |
|
120 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL, |
|
121 &server_handle); |
|
122 if(ret != KADM5_OK) { |
|
123 diff -pur old/src/lib/kadm5/unit-test/handle-test.c new/src/lib/kadm5/unit-test/handle-test.c |
|
124 --- old/src/lib/kadm5/unit-test/handle-test.c 2015-06-10 00:50:51.347684536 -0600 |
|
125 +++ new/src/lib/kadm5/unit-test/handle-test.c 2015-06-12 01:17:51.121655473 -0600 |
|
126 @@ -30,7 +30,7 @@ int main(int argc, char *argv[]) |
|
127 |
|
128 kadm5_init_krb5_context(&context); |
|
129 |
|
130 - ret = kadm5_init(context, "admin/none", "admin", KADM5_ADMIN_SERVICE, NULL, |
|
131 + ret = kadm5_init(context, "admin/none", "admin", NULL, NULL, |
|
132 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL, |
|
133 &server_handle); |
|
134 if(ret != KADM5_OK) { |
|
135 diff -pur old/src/lib/kadm5/unit-test/iter-test.c new/src/lib/kadm5/unit-test/iter-test.c |
|
136 --- old/src/lib/kadm5/unit-test/iter-test.c 2015-06-10 00:50:51.347990562 -0600 |
|
137 +++ new/src/lib/kadm5/unit-test/iter-test.c 2015-06-12 01:18:32.114334236 -0600 |
|
138 @@ -22,7 +22,7 @@ int main(int argc, char **argv) |
|
139 com_err("iter-test", ret, "while initializing context"); |
|
140 exit(1); |
|
141 } |
|
142 - ret = kadm5_init("admin", "admin", KADM5_ADMIN_SERVICE, 0, |
|
143 + ret = kadm5_init("admin", "admin", NULL, 0, |
|
144 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL, |
|
145 &server_handle); |
|
146 if (ret != KADM5_OK) { |
|
147 diff -pur old/src/lib/kadm5/unit-test/Makefile.in new/src/lib/kadm5/unit-test/Makefile.in |
|
148 --- old/src/lib/kadm5/unit-test/Makefile.in 2015-06-10 00:50:51.344879613 -0600 |
|
149 +++ new/src/lib/kadm5/unit-test/Makefile.in 2015-06-12 01:08:32.007953859 -0600 |
|
150 @@ -103,7 +103,7 @@ unit-test-server-setup:: |
|
151 unit-test-server-cleanup:: |
|
152 $(ENV_SETUP) $(STOP_SERVERS_LOCAL) |
|
153 |
|
154 -unit-test-client-body: site.exp test-noauth test-destroy test-handle-client |
|
155 +unit-test-client-body: site.exp test-destroy test-handle-client |
|
156 $(ENV_SETUP) $(RUNTEST) --tool api RPC=1 API=$(CLNTTCL) \ |
|
157 KINIT=$(BUILDTOP)/clients/kinit/kinit \ |
|
158 KDESTROY=$(BUILDTOP)/clients/kdestroy/kdestroy \ |
|
159 diff -pur old/src/lib/kadm5/unit-test/randkey-test.c new/src/lib/kadm5/unit-test/randkey-test.c |
|
160 --- old/src/lib/kadm5/unit-test/randkey-test.c 2015-06-10 00:50:51.345250545 -0600 |
|
161 +++ new/src/lib/kadm5/unit-test/randkey-test.c 2015-06-12 01:19:03.866788127 -0600 |
|
162 @@ -23,7 +23,7 @@ int main() |
|
163 kadm5_init_krb5_context(&context); |
|
164 |
|
165 krb5_parse_name(context, "testuser", &tprinc); |
|
166 - ret = kadm5_init(context, "admin", "admin", KADM5_ADMIN_SERVICE, NULL, |
|
167 + ret = kadm5_init(context, "admin", "admin", NULL, NULL, |
|
168 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL, |
|
169 &server_handle); |
|
170 if(ret != KADM5_OK) { |
|
171 diff -pur old/src/lib/kadm5/unit-test/setkey-test.c new/src/lib/kadm5/unit-test/setkey-test.c |
|
172 --- old/src/lib/kadm5/unit-test/setkey-test.c 2015-06-10 00:50:51.345023163 -0600 |
|
173 +++ new/src/lib/kadm5/unit-test/setkey-test.c 2015-06-12 01:19:20.512438967 -0600 |
|
174 @@ -119,7 +119,7 @@ main(int argc, char **argv) |
|
175 exit(1); |
|
176 } |
|
177 |
|
178 - ret = kadm5_init(context, authprinc, NULL, KADM5_ADMIN_SERVICE, NULL, |
|
179 + ret = kadm5_init(context, authprinc, NULL, NULL, NULL, |
|
180 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL, |
|
181 &handle); |
|
182 if (ret) { |
|
183 diff -pur old/src/tests/dejagnu/krb-standalone/kadmin.exp new/src/tests/dejagnu/krb-standalone/kadmin.exp |
|
184 --- old/src/tests/dejagnu/krb-standalone/kadmin.exp 2015-06-10 00:50:51.143889459 -0600 |
|
185 +++ new/src/tests/dejagnu/krb-standalone/kadmin.exp 2015-06-17 16:39:21.177011699 -0600 |
|
186 @@ -1050,13 +1050,16 @@ proc kadmin_test { } { |
|
187 return |
|
188 } |
|
189 |
|
190 + # The fallback to kadmin/admin is an invalid test case for Solaris RPC. |
|
191 + # Ergo this test is now commented out. |
|
192 + # |
|
193 # test fallback to kadmin/admin |
|
194 - if {![kadmin_delete kadmin/$hostname] \ |
|
195 - || ![kadmin_list] \ |
|
196 - || ![kadmin_add_rnd kadmin/$hostname -allow_tgs_req] \ |
|
197 - || ![kadmin_list]} { |
|
198 - return |
|
199 - } |
|
200 + #if {![kadmin_delete kadmin/$hostname] \ |
|
201 + # || ![kadmin_list] \ |
|
202 + # || ![kadmin_add_rnd kadmin/$hostname -allow_tgs_req] \ |
|
203 + # || ![kadmin_list]} { |
|
204 + # return |
|
205 + #} |
|
206 |
|
207 verbose "kadmin_test succeeded" |
|
208 } |