s4-netlogon: change parameters string to lsa_BinaryString.
authorGünther Deschner <gd@samba.org>
Mon, 10 Nov 2008 11:30:35 +0000 (12:30 +0100)
committerGünther Deschner <gd@samba.org>
Mon, 10 Nov 2008 20:46:25 +0000 (21:46 +0100)
Guenther

librpc/idl/netlogon.idl
source4/libnet/libnet_samsync_ldb.c
source4/torture/rpc/samsync.c

index 764958937f11c8dd3d7ac126342be68d9b7423df..e9b5170e9d3871765a05035db9b287bceeb2e3c1 100644 (file)
@@ -436,7 +436,7 @@ interface netlogon
                boolean8 lm_password_present;
                boolean8 password_expired;
                lsa_String comment;
-               lsa_String parameters;
+               lsa_BinaryString parameters;
                uint16 country_code;
                uint16 code_page;
                netr_USER_PRIVATE_INFO user_private_info;
index 8b7dd1f59891beec4fc29007c5d04f79ee04b87a..160b4b3e19c893a3f06a50ac1656ace32701c634 100644 (file)
@@ -384,7 +384,11 @@ static NTSTATUS samsync_ldb_handle_user(TALLOC_CTX *mem_ctx,
        }
            
        ADD_OR_DEL(string, "comment", comment.string);
-       ADD_OR_DEL(string, "userParameters", parameters.string);
+
+       if (samdb_msg_add_parameters(state->sam_ldb, mem_ctx, msg, "userParameters", &user->parameters) != 0) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
        ADD_OR_DEL(uint, "countryCode", country_code);
        ADD_OR_DEL(uint, "codePage", code_page);
 
index 12ddc934c96a8e9a24dbb34dfc0bb07667c9d355..d97b9ba4983f89cbfb33c34a1a696f86c565d4f8 100644 (file)
@@ -260,6 +260,15 @@ static struct sec_desc_buf *samsync_query_lsa_sec_desc(TALLOC_CTX *mem_ctx,
        } \
 } while (0)
 
+#define TEST_BINARY_STRING_EQUAL(s1, s2) do {\
+       if (!((!s1.array || s1.array[0]=='\0') && (!s2.array || s2.array[0]=='\0')) \
+           && memcmp(s1.array, s2.array, s1.length * 2) != 0) {\
+             printf("%s: string mismatch: " #s1 ":%s != " #s2 ": %s\n", \
+                    __location__, (const char *)s1.array, (const char *)s2.array);\
+             ret = false;\
+       } \
+} while (0)
+
 #define TEST_SID_EQUAL(s1, s2) do {\
        if (!dom_sid_equal(s1, s2)) {\
              printf("%s: dom_sid mismatch: " #s1 ":%s != " #s2 ": %s\n", \
@@ -535,7 +544,7 @@ static bool samsync_handle_user(struct torture_context *tctx, TALLOC_CTX *mem_ct
        TEST_INT_EQUAL(q.out.info->info21.password_expired, user->password_expired);
 
        TEST_STRING_EQUAL(q.out.info->info21.comment, user->comment);
-       TEST_STRING_EQUAL(q.out.info->info21.parameters, user->parameters);
+       TEST_BINARY_STRING_EQUAL(q.out.info->info21.parameters, user->parameters);
 
        TEST_INT_EQUAL(q.out.info->info21.country_code, user->country_code);
        TEST_INT_EQUAL(q.out.info->info21.code_page, user->code_page);