christgau / wsdd

A Web Service Discovery host daemon.
MIT License
808 stars 97 forks source link

Is it possible to set a display name? #204

Closed kroese closed 2 months ago

kroese commented 2 months ago

I have an issue where the container running wsdd cannot reached by DNS from the Windows machine, only by IP address.

So to solve this, I used the -n parameter of wsdd to set the hostname to the IP address.

This works, but ofcourse in Windows will now show the machine by its IP address in the Network Neighbourhood.

Is it possible to make this machine appear with a nice display name? I dont know if the Network Discovery protocol has any functionality for that, to separate the machine name from the machine address? But if so, it would be really nice if wsdd added support for that.

kroese commented 2 months ago

In hindsight my whole DNS problem is not really relevant to the question, so I should re-phrase it much shorter:

Can you make a machine appear with a different hostname in the Network Neighbourhood than the hostname that will be used to connect?

christgau commented 2 months ago

Can you make a machine appear with a different hostname in the Network Neighbourhood than the hostname that will be used to connect?

AFAIK, no.

kroese commented 2 months ago

I know NetBIOS can do this, for example if I set the "Server string" to a different name, XP will use that as the display name. So I am bit surprised that feature got removed from the Network Discovery protocol, but so be it..

christgau commented 2 months ago

Within the WSD protocol (or the wsdd implementation of it), the wsdp:FriendlyName property is used to tell the searching maschine the (guess what) user friendly name of the discovered device. AFAIK, this friendly name is then used by Windows to perform a name resolution. So you cannot just put a custom string there, without breaking things. To my understanding of the WS-Transfer specification, which describes what can be exchanged w.r.t. to meta data, there is no equivalent to the server string configuration variable from samba, which "sets what will appear in browse lists next to the machine name".

Sorry to say, but I don't see a way for what you attempt to achieve. If somebody knows of a way, feel free to open a PR.

kroese commented 2 months ago

It feels a bit weird that Windows needs to perform that name resolution at all.

It already discovered the IP for my wsdd server, so if I supply a friendly name, it does not have to perform name resolution at all, since it already knows the IP for my server.

I think the reason for this behaviour is that a single wsdd server can also supply the names for other machines, not just itself. But it would have been handy if it had some way of signalling the client that the entry belongs to itself, and that no lookup is necessary.