Lines Matching refs:name

17  * information: Portions Copyright [yyyy] [name of copyright owner]
26 * NetBIOS name resolution node types.
28 * A B-node (broadcast node) uses broadcasts for name registration
32 * A P-node (peer-to-peer node) uses a NetBIOS name server (WINS)
35 * be configured to use the NetBIOS name server because P-nodes do
39 * resolve the name via broadcast then it tries a NetBIOS name server
43 * resolve the name using a NetBIOS name server then it resorts to
194 * of the name. Challenge that owner. If owner either does not
195 * respond or indicates that he no longer owns the name, claim the
196 * name. Otherwise, the name cannot be claimed.
202 destination = answer->name;
203 question.name = answer->name;
318 smb_netbios_name_freeaddrs(answer->name);
330 struct name_entry *name;
345 addr = &answer->name->addr_list;
348 * Make sure that remote name is not
361 } while (addr != &answer->name->addr_list);
362 smb_netbios_name_logf(answer->name);
363 (void) smb_netbios_cache_insert_list(answer->name);
378 name = answer->name;
379 entry = smb_netbios_cache_lookup(name);
382 * a name in the state "conflict
385 * will be accepted on that name.
387 * that name.
392 * against such a name is DELETE NAME.
396 "nbns: name conflict: %15.15s",
397 entry->name);
406 * name can be added:
408 * TTL, for this name
413 if ((entry = smb_netbios_cache_lookup(question->name)) != 0) {
435 * name. Challenge that owner. If
438 * name, claim the name. Otherwise,
439 * the name cannot be claimed.
450 smb_netbios_name_freeaddrs(answer->name);
516 (void) smb_first_level_name_encode(npb->question[i].name,
548 (void) smb_first_level_name_encode(nrr->name,
572 tmp = nrr[i].name->attributes &
578 raddr = &nrr[i].name->addr_list;
619 is_multihome(char *name)
621 return (smb_nic_getnum(name) > 1);
627 * Get the Netbios name part of the given record.
630 * Returns the name length on success, otherwise
634 smb_netbios_getname(char *name, char *buf, char *buf_end)
640 /* no room for a NB name */
646 /* not a valid NB name */
652 (void) strlcpy(name, buf, name_len);
662 * Returns a pointer to a name packet on success. Otherwise, returns
723 npb->question[i].name = (struct name_entry *)heap;
750 * Populate each resource_record's .name field.
756 nrr[i].name = (struct name_entry *)heap;
770 npb->question[i].name);
772 npb->question[i].name);
774 /* Couldn't decode the question name */
820 nrr[i].name);
822 nrr[i].name)) < 0) {
845 next = &nrr[i].name->addr_list;
855 &nrr[i].name->addr_list,
858 nrr[i].name->attributes =
885 * Send out a name service packet to proper destination.
888 * struct netbios_name *dest -> NETBIOS name of destination
970 type = question->name->name[15];
972 syslog(LOG_DEBUG, "nbns: name registration bad type (0x%02x)",
974 smb_netbios_name_logf(question->name);
975 question->name->attributes &= ~NAME_ATTR_LOCAL;
1006 if (IS_UNIQUE(question->name->attributes) &&
1007 (is_multihome((char *)(question->name->name))))
1045 type = question->name->name[15];
1047 syslog(LOG_DEBUG, "nbns: name refresh bad type (0x%02x)", type);
1048 smb_netbios_name_logf(question->name);
1049 question->name->attributes &= ~NAME_ATTR_LOCAL;
1074 destination = &question->name->addr_list;
1089 if (IS_UNIQUE(question->name->attributes) &&
1090 (is_multihome((char *)(question->name->name))))
1153 answer.name = original_packet->question->name;
1241 answer.name = original_packet->question->name;
1343 answer.name = entry;
1407 answer.name = original_packet->question->name;
1414 original_packet->question->name->scope);
1522 smb_name_Bnode_add_name(struct name_entry *name)
1531 addr = &name->addr_list;
1534 /* build name service packet */
1535 question.name = name;
1537 * question.name->attributes |= NAME_NB_FLAGS_ONT_B;
1543 additional.name = name;
1549 attr = name->attributes & (NAME_ATTR_GROUP |
1560 } while (addr != &name->addr_list);
1566 smb_name_Bnode_find_name(struct name_entry *name)
1570 question.name = name;
1578 smb_name_Bnode_delete_name(struct name_entry *name)
1589 question.name = name;
1593 additional.name = name;
1599 raddr = &name->addr_list;
1602 attr = name->attributes & (NAME_ATTR_GROUP |
1613 } while (raddr != &name->addr_list);
1620 smb_name_Pnode_add_name(struct name_entry *name)
1630 addr = &name->addr_list;
1632 question.name = name;
1636 additional.name = name;
1642 attr = name->attributes &
1654 } while (addr != &name->addr_list);
1660 smb_name_Pnode_refresh_name(struct name_entry *name)
1670 addr = &name->addr_list;
1672 question.name = name;
1676 additional.name = name;
1682 attr = name->attributes &
1693 } while (addr != &name->addr_list);
1699 smb_name_Pnode_find_name(struct name_entry *name)
1706 question.name = name;
1707 question.name->attributes |= NAME_NB_FLAGS_ONT_P;
1715 smb_name_Pnode_delete_name(struct name_entry *name)
1726 question.name = name;
1727 question.name->attributes |= NAME_NB_FLAGS_ONT_P;
1731 additional.name = name;
1737 raddr = &name->addr_list;
1740 attr = name->attributes & (NAME_ATTR_GROUP |
1754 } while (raddr != &name->addr_list);
1760 smb_name_Mnode_add_name(struct name_entry *name)
1762 if (smb_name_Bnode_add_name(name) > 0) {
1764 return (1); /* No name server configured */
1766 return (smb_name_Pnode_add_name(name));
1772 smb_name_Hnode_add_name(struct name_entry *name)
1775 if (smb_name_Pnode_add_name(name) == 1)
1779 return (smb_name_Bnode_add_name(name));
1783 smb_name_Mnode_find_name(struct name_entry *name)
1785 if (smb_name_Bnode_find_name(name) == 1)
1789 return (1); /* No name server configured */
1791 return (smb_name_Pnode_find_name(name));
1795 smb_name_Hnode_find_name(struct name_entry *name)
1798 if (smb_name_Pnode_find_name(name) == 1)
1801 return (smb_name_Bnode_find_name(name));
1805 smb_name_Mnode_delete_name(struct name_entry *name)
1807 (void) smb_name_Bnode_delete_name(name);
1810 return (-1); /* No name server configured */
1812 if (smb_name_Pnode_delete_name(name) > 0)
1819 smb_name_Hnode_delete_name(struct name_entry *name)
1822 if (smb_name_Pnode_delete_name(name) > 0)
1825 return (smb_name_Bnode_delete_name(name));
1831 struct name_entry *name;
1844 if (additional->name->addr_list.sin.sin_addr.s_addr == 0)
1847 name = question->name;
1848 name->addr_list.ttl = additional->ttl;
1849 name->attributes = additional->name->attributes;
1850 name->addr_list.sin = additional->name->addr_list.sin;
1851 name->addr_list.forw = name->addr_list.back = &name->addr_list;
1853 if ((entry = smb_netbios_cache_lookup_addr(name)) != 0) {
1854 smb_netbios_cache_update_entry(entry, question->name);
1858 (void) smb_netbios_cache_insert(question->name);
1873 name = question->name;
1874 if ((entry = smb_netbios_cache_lookup(name)) != 0) {
1886 name = question->name;
1888 if (NETBIOS_NAME_IS_STAR(name->name) ||
1889 ((entry = smb_netbios_cache_lookup(name)) != 0)) {
1911 struct name_entry *name;
1931 if (additional->name->addr_list.sin.sin_addr.s_addr == 0)
1934 name = question->name;
1935 name->addr_list.ttl = additional->ttl;
1936 name->attributes = additional->name->attributes;
1937 name->addr_list.sin = additional->name->addr_list.sin;
1938 name->addr_list.forw = name->addr_list.back = &name->addr_list;
1940 if ((entry = smb_netbios_cache_lookup(name)) != 0) {
1941 smb_netbios_cache_update_entry(entry, name);
1945 (void) smb_netbios_cache_insert(name);
1962 name = question->name;
1963 if ((entry = smb_netbios_cache_lookup(name)) != 0) {
1976 packet, name, RCODE_NAM_ERR);
1985 name = question->name;
1987 if (NETBIOS_NAME_IS_STAR(name->name) ||
1988 ((entry = smb_netbios_cache_lookup(name)) != 0)) {
2029 * Called once a second to handle name server timeouts.
2034 struct name_entry *name;
2040 while ((name = refresh_queue.head.forw) != &refresh_queue.head) {
2041 QUEUE_CLIP(name);
2042 if (IS_LOCAL(name->attributes)) {
2043 if (IS_UNIQUE(name->attributes)) {
2044 (void) smb_name_Pnode_refresh_name(name);
2047 entry = smb_name_find_name(name);
2050 free(name);
2060 * Lookup name cache for the given name.
2062 * name query request and then lookup the
2063 * cache again. Note that if a name is
2068 smb_name_find_name(struct name_entry *name)
2072 if ((result = smb_netbios_cache_lookup(name)) == 0) {
2075 (void) smb_name_Bnode_find_name(name);
2078 (void) smb_name_Pnode_find_name(name);
2081 (void) smb_name_Mnode_find_name(name);
2085 (void) smb_name_Hnode_find_name(name);
2088 return (smb_netbios_cache_lookup(name));
2095 smb_name_unlock_name(struct name_entry *name)
2097 smb_netbios_cache_unlock_entry(name);
2101 smb_name_add_name(struct name_entry *name)
2105 smb_netbios_name_logf(name);
2109 rc = smb_name_Bnode_add_name(name);
2112 rc = smb_name_Pnode_add_name(name);
2115 rc = smb_name_Mnode_add_name(name);
2119 rc = smb_name_Hnode_add_name(name);
2124 (void) smb_netbios_cache_insert(name);
2130 smb_name_delete_name(struct name_entry *name)
2135 type = name->name[15];
2137 syslog(LOG_DEBUG, "nbns: name delete bad type (0x%02x)", type);
2138 smb_netbios_name_logf(name);
2139 name->attributes &= ~NAME_ATTR_LOCAL;
2143 smb_netbios_cache_delete(name);
2147 rc = smb_name_Bnode_delete_name(name);
2150 rc = smb_name_Pnode_delete_name(name);
2153 rc = smb_name_Mnode_delete_name(name);
2157 rc = smb_name_Hnode_delete_name(name);
2177 * name service (on port 138).
2213 smb_netbios_name_freeaddrs(packet->answer->name);
2265 struct name_entry *name;
2270 name = nbc_iter.nbc_entry;
2271 (void) smb_netbios_name_logf(name);
2272 if (IS_UNIQUE(name->attributes) && IS_LOCAL(name->attributes)) {
2275 (void) smb_name_Bnode_add_name(name);
2278 (void) smb_name_Pnode_add_name(name);
2281 (void) smb_name_Mnode_add_name(name);
2285 (void) smb_name_Hnode_add_name(name);
2289 free(name);
2295 * Sends name registration requests on all configured network links.
2296 * Name registration requests are sent to claim ownership of a name.
2303 * name registration broadcast will not be done on any links.
2312 struct name_entry name;
2345 NAME_ATTR_UNIQUE, NAME_ATTR_LOCAL, &name);
2346 (void) smb_netbios_cache_insert(&name);
2351 NAME_ATTR_UNIQUE, NAME_ATTR_LOCAL, &name);
2352 (void) smb_netbios_cache_insert(&name);
2375 struct name_entry *name;
2381 while ((name = delete_queue.head.forw) != &delete_queue.head) {
2382 QUEUE_CLIP(name);
2383 (void) smb_name_delete_name(name);
2384 free(name);