summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/substitute.c15
-rw-r--r--source3/smbd/reply.c9
2 files changed, 9 insertions, 15 deletions
diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c
index e5f1b2dbdf..e655128f49 100644
--- a/source3/lib/substitute.c
+++ b/source3/lib/substitute.c
@@ -45,7 +45,6 @@ bool set_local_machine_name(const char *local_name, bool perm)
{
static bool already_perm = false;
char *tmp_local_machine = NULL;
- char addr[INET6_ADDRSTRLEN];
size_t len;
tmp_local_machine = SMB_STRDUP(local_name);
@@ -54,20 +53,6 @@ bool set_local_machine_name(const char *local_name, bool perm)
}
trim_char(tmp_local_machine,' ',' ');
- /*
- * Windows NT/2k uses "*SMBSERVER" and XP uses "*SMBSERV"
- * arrggg!!!
- */
-
- if (strequal(tmp_local_machine, "*SMBSERVER") ||
- strequal(tmp_local_machine, "*SMBSERV") ) {
- SAFE_FREE(local_machine);
- local_machine = SMB_STRDUP(client_socket_addr(smbd_server_fd(),
- addr, sizeof(addr)) );
- SAFE_FREE(tmp_local_machine);
- return local_machine ? true : false;
- }
-
if (already_perm) {
return true;
}
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 5533ee07d1..df7dac7b09 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -528,6 +528,15 @@ void reply_special(struct smbd_server_connection *sconn, char *inbuf)
exit_server_cleanly("retargeted client");
}
+ /*
+ * Windows NT/2k uses "*SMBSERVER" and XP uses
+ * "*SMBSERV" arrggg!!!
+ */
+ if (strequal(name1, "*SMBSERVER ")
+ || strequal(name1, "*SMBSERV ")) {
+ fstrcpy(name1, sconn->client_id.addr);
+ }
+
set_local_machine_name(name1, True);
set_remote_machine_name(name2, True);