when my smb.conf file contained:
bind interfaces only = yes
interfaces = lo eth0
I was only able to browse to my local shares by hostname. I could browse by ip to my other computer. ( Eth1 points to the internet and if I don't have lo in there I can't browse at all. ) "smbclient -L host" could not resolve an ip but "nmblookup host" could.
I didn't know it at the time, but the error that "interfaces = eth0 lo" creates in log.nmbd ("queue_query_name: interface 1 has NULL IP address !") is non fatal and browsing works.
However, to solve the situation I had to put "eth0" first then "127.0.0.1". So
interfaces = eth0 127.0.0.1
does not produce an error in the log and allows normal browsing by hostname.
Because I assumed the error was bad, I ended up spending half a day trying to get it to work. I don't know if this is a bug in the code or documentation. But for whatever reason both order and the reference(lo vs. 127.0.0.1) is important for correct functionality.
I spent most of the day with good ol' google trying to figure it out. I hope you can fix it, or at the very least someone else might find a quick answer to their problem.
I can provide more info if needed.
Thank you for your time! And good luck to those who need it!
Re-assigning to Jeremy.