Changeset 988 for vendor/current/source3/utils/nmblookup.c
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source3/utils/nmblookup.c
r740 r988 41 41 { 42 42 struct sockaddr_storage ss; 43 const char *sock_addr = lp_ socket_address();43 const char *sock_addr = lp_nbt_client_socket_address(); 44 44 45 45 if (!interpret_string_addr(&ss, sock_addr, … … 108 108 ****************************************************************************/ 109 109 110 static voiddo_node_status(const char *name,110 static bool do_node_status(const char *name, 111 111 int type, 112 112 struct sockaddr_storage *pss) … … 143 143 d_printf("\n"); 144 144 TALLOC_FREE(addrs); 145 return true; 145 146 } else { 146 147 d_printf("No reply from %s\n\n",addr); 148 return false; 147 149 } 148 150 } … … 169 171 &ip_list, &count, &flags); 170 172 } else { 171 const struct in_addr *bcast; 172 for (j=iface_count() - 1; 173 !ip_list && j >= 0; 174 j--) { 175 char addr[INET6_ADDRSTRLEN]; 176 struct sockaddr_storage bcast_ss; 177 178 bcast = iface_n_bcast_v4(j); 179 if (!bcast) { 180 continue; 181 } 182 in_addr_to_sockaddr_storage(&bcast_ss, *bcast); 183 print_sockaddr(addr, sizeof(addr), &bcast_ss); 184 d_printf("querying %s on %s\n", 185 lookup, addr); 186 status = name_query(lookup,lookup_type, 187 use_bcast, 188 use_bcast?True:recursion_desired, 189 &bcast_ss, talloc_tos(), 190 &ip_list, &count, &flags); 191 } 173 status = name_resolve_bcast( 174 lookup, lookup_type, 175 talloc_tos(), &ip_list, &count); 192 176 } 193 177 … … 220 204 */ 221 205 if (find_status) { 222 do_node_status(lookup, lookup_type, &ip_list[j]); 206 if (!do_node_status(lookup, lookup_type, &ip_list[j])) { 207 status = NT_STATUS_UNSUCCESSFUL; 208 } 223 209 } 224 210 } … … 233 219 main program 234 220 ****************************************************************************/ 235 int main(int argc, char *argv[])221 int main(int argc, const char *argv[]) 236 222 { 237 223 int opt; … … 240 226 static bool find_master=False; 241 227 static bool lookup_by_ip = False; 242 poptContext pc ;228 poptContext pc = NULL; 243 229 TALLOC_CTX *frame = talloc_stackframe(); 230 int rc = 0; 244 231 245 232 struct poptOption long_options[] = { … … 261 248 *lookup = 0; 262 249 263 load_case_tables();250 smb_init_locale(); 264 251 265 252 setup_logging(argv[0], DEBUG_STDOUT); 266 253 267 pc = poptGetContext("nmblookup", argc, (const char **)argv,254 pc = poptGetContext("nmblookup", argc, argv, 268 255 long_options, POPT_CONTEXT_KEEP_FIRST); 269 256 … … 316 303 if(!poptPeekArg(pc)) { 317 304 poptPrintUsage(pc, stderr, 0); 318 exit(1); 319 } 320 321 if (!lp_load(get_dyn_CONFIGFILE(),True,False,False,True)) { 305 rc = 1; 306 goto out; 307 } 308 309 if (!lp_load_global(get_dyn_CONFIGFILE())) { 322 310 fprintf(stderr, "Can't load %s - run testparm to debug it\n", 323 311 get_dyn_CONFIGFILE()); … … 326 314 load_interfaces(); 327 315 if (!open_sockets()) { 328 return(1); 316 rc = 1; 317 goto out; 329 318 } 330 319 … … 332 321 char *p; 333 322 struct in_addr ip; 323 size_t nbt_len; 334 324 335 325 fstrcpy(lookup,poptGetArg(pc)); … … 340 330 in_addr_to_sockaddr_storage(&ss, ip); 341 331 fstrcpy(lookup,"*"); 342 do_node_status(lookup, lookup_type, &ss); 332 if (!do_node_status(lookup, lookup_type, &ss)) { 333 rc = 1; 334 } 343 335 continue; 344 336 } … … 359 351 } 360 352 353 nbt_len = strlen(lookup); 354 if (nbt_len > MAX_NETBIOSNAME_LEN - 1) { 355 d_printf("The specified netbios name [%s] is too long!\n", 356 lookup); 357 continue; 358 } 359 360 361 361 if (!query_one(lookup, lookup_type)) { 362 rc = 1; 362 363 d_printf( "name_query failed to find name %s", lookup ); 363 364 if( 0 != lookup_type ) { … … 368 369 } 369 370 371 out: 370 372 poptFreeContext(pc); 371 373 TALLOC_FREE(frame); 372 return (0);373 } 374 return rc; 375 }
Note:
See TracChangeset
for help on using the changeset viewer.