diff options
author | Stefan Metzmacher <metze@samba.org> | 2010-01-31 18:59:41 +0100 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2010-02-01 15:23:32 +0100 |
commit | 7a02a2ba80c2997947a2b2c48c33f8c7647f7471 (patch) | |
tree | 42eaa448959cb015fd6525a22324b87e9711b083 | |
parent | e37dc56e971f44c00791529a39144d1a972e3ca2 (diff) | |
download | samba-7a02a2ba80c2997947a2b2c48c33f8c7647f7471.tar.gz |
s4:wrepl_server: truncate the scope of a netbios name to 237 bytes as Windows 2008 does
metze
-rw-r--r-- | source4/wrepl_server/wrepl_apply_records.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/source4/wrepl_server/wrepl_apply_records.c b/source4/wrepl_server/wrepl_apply_records.c index e6ff9a03bf8..878f689f702 100644 --- a/source4/wrepl_server/wrepl_apply_records.c +++ b/source4/wrepl_server/wrepl_apply_records.c @@ -1358,6 +1358,20 @@ static NTSTATUS wreplsrv_apply_one_record(struct wreplsrv_partner *partner, bool replica_vs_replica = false; bool local_vs_replica = false; + if (replica->name.scope) { + TALLOC_CTX *parent; + const char *scope; + + /* + * Windows 2008 truncates the scope to 237 bytes, + * so we do... + */ + parent = talloc_parent(replica->name.scope); + scope = talloc_strndup(parent, replica->name.scope, 237); + NT_STATUS_HAVE_NO_MEMORY(scope); + replica->name.scope = scope; + } + status = winsdb_lookup(partner->service->wins_db, &replica->name, mem_ctx, &rec); if (NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_NOT_FOUND, status)) { |