Lines Matching refs:name

17  * information: Portions Copyright [yyyy] [name of copyright owner]
27 * NetBIOS name resolution node types.
29 * A B-node (broadcast node) uses broadcasts for name registration
33 * A P-node (peer-to-peer node) uses a NetBIOS name server (WINS)
36 * be configured to use the NetBIOS name server because P-nodes do
40 * resolve the name via broadcast then it tries a NetBIOS name server
44 * resolve the name using a NetBIOS name server then it resorts to
192 * of the name. Challenge that owner. If owner either does not
193 * respond or indicates that he no longer owns the name, claim the
194 * name. Otherwise, the name cannot be claimed.
200 destination = answer->name;
201 question.name = answer->name;
321 smb_netbios_name_freeaddrs(answer->name);
333 struct name_entry *name;
348 addr = &answer->name->addr_list;
351 * Make sure that remote name is not
364 } while (addr != &answer->name->addr_list);
365 smb_netbios_name_logf(answer->name);
366 (void) smb_netbios_cache_insert_list(answer->name);
381 name = answer->name;
382 entry = smb_netbios_cache_lookup(name);
385 * a name in the state "conflict
388 * will be accepted on that name.
390 * that name.
395 * against such a name is DELETE NAME.
399 "nbns: name conflict: %15.15s",
400 entry->name);
409 * name can be added:
411 * TTL, for this name
416 if ((entry = smb_netbios_cache_lookup(question->name)) != 0) {
438 * name. Challenge that owner. If
441 * name, claim the name. Otherwise,
442 * the name cannot be claimed.
453 smb_netbios_name_freeaddrs(answer->name);
519 (void) smb_first_level_name_encode(npb->question[i].name,
551 (void) smb_first_level_name_encode(nrr->name,
575 tmp = nrr[i].name->attributes &
581 raddr = &nrr[i].name->addr_list;
622 is_multihome(char *name)
624 return (smb_nic_getnum(name) > 1);
630 * Get the Netbios name part of the given record.
633 * Returns the name length on success, otherwise
637 smb_netbios_getname(char *name, char *buf, char *buf_end)
643 /* no room for a NB name */
649 /* not a valid NB name */
655 (void) strlcpy(name, buf, name_len);
665 * Returns a pointer to a name packet on success. Otherwise, returns
726 npb->question[i].name = (struct name_entry *)heap;
753 * Populate each resource_record's .name field.
759 nrr[i].name = (struct name_entry *)heap;
773 npb->question[i].name);
775 npb->question[i].name);
777 /* Couldn't decode the question name */
823 nrr[i].name);
825 nrr[i].name)) < 0) {
848 next = &nrr[i].name->addr_list;
858 &nrr[i].name->addr_list,
861 nrr[i].name->attributes =
888 * Send out a name service packet to proper destination.
891 * struct netbios_name *dest -> NETBIOS name of destination
973 type = question->name->name[15];
975 syslog(LOG_DEBUG, "nbns: name registration bad type (0x%02x)",
977 smb_netbios_name_logf(question->name);
978 question->name->attributes &= ~NAME_ATTR_LOCAL;
1009 if (IS_UNIQUE(question->name->attributes) &&
1010 (is_multihome((char *)(question->name->name))))
1048 type = question->name->name[15];
1050 syslog(LOG_DEBUG, "nbns: name refresh bad type (0x%02x)", type);
1051 smb_netbios_name_logf(question->name);
1052 question->name->attributes &= ~NAME_ATTR_LOCAL;
1077 destination = &question->name->addr_list;
1092 if (IS_UNIQUE(question->name->attributes) &&
1093 (is_multihome((char *)(question->name->name))))
1156 answer.name = original_packet->question->name;
1244 answer.name = original_packet->question->name;
1346 answer.name = entry;
1410 answer.name = original_packet->question->name;
1417 original_packet->question->name->scope);
1525 smb_name_Bnode_add_name(struct name_entry *name)
1534 addr = &name->addr_list;
1537 /* build name service packet */
1538 question.name = name;
1540 * question.name->attributes |= NAME_NB_FLAGS_ONT_B;
1546 additional.name = name;
1552 attr = name->attributes & (NAME_ATTR_GROUP |
1563 } while (addr != &name->addr_list);
1569 smb_name_Bnode_find_name(struct name_entry *name)
1573 question.name = name;
1581 smb_name_Bnode_delete_name(struct name_entry *name)
1592 question.name = name;
1596 additional.name = name;
1602 raddr = &name->addr_list;
1605 attr = name->attributes & (NAME_ATTR_GROUP |
1616 } while (raddr != &name->addr_list);
1623 smb_name_Pnode_add_name(struct name_entry *name)
1633 addr = &name->addr_list;
1635 question.name = name;
1639 additional.name = name;
1645 attr = name->attributes &
1657 } while (addr != &name->addr_list);
1663 smb_name_Pnode_refresh_name(struct name_entry *name)
1673 addr = &name->addr_list;
1675 question.name = name;
1679 additional.name = name;
1685 attr = name->attributes &
1696 } while (addr != &name->addr_list);
1702 smb_name_Pnode_find_name(struct name_entry *name)
1709 question.name = name;
1710 question.name->attributes |= NAME_NB_FLAGS_ONT_P;
1718 smb_name_Pnode_delete_name(struct name_entry *name)
1729 question.name = name;
1730 question.name->attributes |= NAME_NB_FLAGS_ONT_P;
1734 additional.name = name;
1740 raddr = &name->addr_list;
1743 attr = name->attributes & (NAME_ATTR_GROUP |
1757 } while (raddr != &name->addr_list);
1763 smb_name_Mnode_add_name(struct name_entry *name)
1765 if (smb_name_Bnode_add_name(name) > 0) {
1767 return (1); /* No name server configured */
1769 return (smb_name_Pnode_add_name(name));
1775 smb_name_Hnode_add_name(struct name_entry *name)
1778 if (smb_name_Pnode_add_name(name) == 1)
1782 return (smb_name_Bnode_add_name(name));
1786 smb_name_Mnode_find_name(struct name_entry *name)
1788 if (smb_name_Bnode_find_name(name) == 1)
1792 return (1); /* No name server configured */
1794 return (smb_name_Pnode_find_name(name));
1798 smb_name_Hnode_find_name(struct name_entry *name)
1801 if (smb_name_Pnode_find_name(name) == 1)
1804 return (smb_name_Bnode_find_name(name));
1808 smb_name_Mnode_delete_name(struct name_entry *name)
1810 (void) smb_name_Bnode_delete_name(name);
1813 return (-1); /* No name server configured */
1815 if (smb_name_Pnode_delete_name(name) > 0)
1822 smb_name_Hnode_delete_name(struct name_entry *name)
1825 if (smb_name_Pnode_delete_name(name) > 0)
1828 return (smb_name_Bnode_delete_name(name));
1834 struct name_entry *name;
1847 if (additional->name->addr_list.sin.sin_addr.s_addr == 0)
1850 name = question->name;
1851 name->addr_list.ttl = additional->ttl;
1852 name->attributes = additional->name->attributes;
1853 name->addr_list.sin = additional->name->addr_list.sin;
1854 name->addr_list.forw = name->addr_list.back = &name->addr_list;
1856 if ((entry = smb_netbios_cache_lookup_addr(name)) != 0) {
1857 smb_netbios_cache_update_entry(entry, question->name);
1861 (void) smb_netbios_cache_insert(question->name);
1876 name = question->name;
1877 if ((entry = smb_netbios_cache_lookup(name)) != 0) {
1889 name = question->name;
1891 if (NETBIOS_NAME_IS_STAR(name->name) ||
1892 ((entry = smb_netbios_cache_lookup(name)) != 0)) {
1914 struct name_entry *name;
1934 if (additional->name->addr_list.sin.sin_addr.s_addr == 0)
1937 name = question->name;
1938 name->addr_list.ttl = additional->ttl;
1939 name->attributes = additional->name->attributes;
1940 name->addr_list.sin = additional->name->addr_list.sin;
1941 name->addr_list.forw = name->addr_list.back = &name->addr_list;
1943 if ((entry = smb_netbios_cache_lookup(name)) != 0) {
1944 smb_netbios_cache_update_entry(entry, name);
1948 (void) smb_netbios_cache_insert(name);
1965 name = question->name;
1966 if ((entry = smb_netbios_cache_lookup(name)) != 0) {
1979 packet, name, RCODE_NAM_ERR);
1988 name = question->name;
1990 if (NETBIOS_NAME_IS_STAR(name->name) ||
1991 ((entry = smb_netbios_cache_lookup(name)) != 0)) {
2032 * Called once a second to handle name server timeouts.
2037 struct name_entry *name;
2043 while ((name = refresh_queue.head.forw) != &refresh_queue.head) {
2044 QUEUE_CLIP(name);
2045 if (IS_LOCAL(name->attributes)) {
2046 if (IS_UNIQUE(name->attributes)) {
2047 (void) smb_name_Pnode_refresh_name(name);
2050 entry = smb_name_find_name(name);
2053 free(name);
2063 * Lookup name cache for the given name.
2065 * name query request and then lookup the
2066 * cache again. Note that if a name is
2071 smb_name_find_name(struct name_entry *name)
2075 if ((result = smb_netbios_cache_lookup(name)) == 0) {
2078 (void) smb_name_Bnode_find_name(name);
2081 (void) smb_name_Pnode_find_name(name);
2084 (void) smb_name_Mnode_find_name(name);
2088 (void) smb_name_Hnode_find_name(name);
2091 return (smb_netbios_cache_lookup(name));
2098 smb_name_unlock_name(struct name_entry *name)
2100 smb_netbios_cache_unlock_entry(name);
2104 smb_name_add_name(struct name_entry *name)
2108 smb_netbios_name_logf(name);
2112 rc = smb_name_Bnode_add_name(name);
2115 rc = smb_name_Pnode_add_name(name);
2118 rc = smb_name_Mnode_add_name(name);
2122 rc = smb_name_Hnode_add_name(name);
2127 (void) smb_netbios_cache_insert(name);
2133 smb_name_delete_name(struct name_entry *name)
2138 type = name->name[15];
2140 syslog(LOG_DEBUG, "nbns: name delete bad type (0x%02x)", type);
2141 smb_netbios_name_logf(name);
2142 name->attributes &= ~NAME_ATTR_LOCAL;
2146 smb_netbios_cache_delete(name);
2150 rc = smb_name_Bnode_delete_name(name);
2153 rc = smb_name_Pnode_delete_name(name);
2156 rc = smb_name_Mnode_delete_name(name);
2160 rc = smb_name_Hnode_delete_name(name);
2180 * name service (on port 138).
2216 smb_netbios_name_freeaddrs(packet->answer->name);
2268 struct name_entry *name;
2273 name = nbc_iter.nbc_entry;
2274 (void) smb_netbios_name_logf(name);
2275 if (IS_UNIQUE(name->attributes) && IS_LOCAL(name->attributes)) {
2278 (void) smb_name_Bnode_add_name(name);
2281 (void) smb_name_Pnode_add_name(name);
2284 (void) smb_name_Mnode_add_name(name);
2288 (void) smb_name_Hnode_add_name(name);
2292 free(name);
2305 struct name_entry name;
2335 NAME_ATTR_UNIQUE, NAME_ATTR_LOCAL, &name);
2336 (void) smb_netbios_cache_insert(&name);
2341 NAME_ATTR_UNIQUE, NAME_ATTR_LOCAL, &name);
2342 (void) smb_netbios_cache_insert(&name);
2354 struct name_entry *name;
2360 while ((name = delete_queue.head.forw) != &delete_queue.head) {
2361 QUEUE_CLIP(name);
2362 (void) smb_name_delete_name(name);
2363 free(name);