diff options
author | Andrew Tridgell <tridge@samba.org> | 2005-11-14 01:50:55 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:46:16 -0500 |
commit | cbb7a47cf269dd741ae43be22cc27bf9035ac59e (patch) | |
tree | 484cb102a514128227a4048e89eb4489790f20b3 /source4/nbt_server/interfaces.c | |
parent | df4624870b6edbf6c426ae5bc2807dcee205e69f (diff) | |
download | samba-cbb7a47cf269dd741ae43be22cc27bf9035ac59e.tar.gz samba-cbb7a47cf269dd741ae43be22cc27bf9035ac59e.tar.bz2 samba-cbb7a47cf269dd741ae43be22cc27bf9035ac59e.zip |
r11711: fixed the nbt server to use the right interface for outgoing requests
(This used to be commit d87df5fe8e37d3daa3d9cb575450d756dc3d3c8f)
Diffstat (limited to 'source4/nbt_server/interfaces.c')
-rw-r--r-- | source4/nbt_server/interfaces.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/source4/nbt_server/interfaces.c b/source4/nbt_server/interfaces.c index 23276123d5..4ef2afb8ee 100644 --- a/source4/nbt_server/interfaces.c +++ b/source4/nbt_server/interfaces.c @@ -286,3 +286,27 @@ failed: talloc_free(ret); return NULL; } + + +/* + find the interface to use for sending a outgoing request +*/ +struct nbtd_interface *nbtd_find_interface(struct nbtd_server *nbtd_server, + const char *address) +{ + struct nbtd_interface *iface; + /* try to find a exact match */ + for (iface=nbtd_server->interfaces;iface;iface=iface->next) { + if (iface_same_net(address, iface->ip_address, iface->netmask)) { + return iface; + } + } + + /* no exact match, if we have the broadcast interface, use that */ + if (nbtd_server->bcast_interface) { + return nbtd_server->bcast_interface; + } + + /* fallback to first interface */ + return nbtd_server->interfaces; +} |