Ignore:
Timestamp:
Nov 24, 2016, 1:14:11 PM (9 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to version 4.4.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/utils/nmblookup.c

    r740 r988  
    4141{
    4242        struct sockaddr_storage ss;
    43         const char *sock_addr = lp_socket_address();
     43        const char *sock_addr = lp_nbt_client_socket_address();
    4444
    4545        if (!interpret_string_addr(&ss, sock_addr,
     
    108108****************************************************************************/
    109109
    110 static void do_node_status(const char *name,
     110static bool do_node_status(const char *name,
    111111                int type,
    112112                struct sockaddr_storage *pss)
     
    143143                d_printf("\n");
    144144                TALLOC_FREE(addrs);
     145                return true;
    145146        } else {
    146147                d_printf("No reply from %s\n\n",addr);
     148                return false;
    147149        }
    148150}
     
    169171                                    &ip_list, &count, &flags);
    170172        } 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);
    192176        }
    193177
     
    220204                 */
    221205                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                        }
    223209                }
    224210        }
     
    233219  main program
    234220****************************************************************************/
    235 int main(int argc,char *argv[])
     221int main(int argc, const char *argv[])
    236222{
    237223        int opt;
     
    240226        static bool find_master=False;
    241227        static bool lookup_by_ip = False;
    242         poptContext pc;
     228        poptContext pc = NULL;
    243229        TALLOC_CTX *frame = talloc_stackframe();
     230        int rc = 0;
    244231
    245232        struct poptOption long_options[] = {
     
    261248        *lookup = 0;
    262249
    263         load_case_tables();
     250        smb_init_locale();
    264251
    265252        setup_logging(argv[0], DEBUG_STDOUT);
    266253
    267         pc = poptGetContext("nmblookup", argc, (const char **)argv,
     254        pc = poptGetContext("nmblookup", argc, argv,
    268255                        long_options, POPT_CONTEXT_KEEP_FIRST);
    269256
     
    316303        if(!poptPeekArg(pc)) {
    317304                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())) {
    322310                fprintf(stderr, "Can't load %s - run testparm to debug it\n",
    323311                                get_dyn_CONFIGFILE());
     
    326314        load_interfaces();
    327315        if (!open_sockets()) {
    328                 return(1);
     316                rc = 1;
     317                goto out;
    329318        }
    330319
     
    332321                char *p;
    333322                struct in_addr ip;
     323                size_t nbt_len;
    334324
    335325                fstrcpy(lookup,poptGetArg(pc));
     
    340330                        in_addr_to_sockaddr_storage(&ss, ip);
    341331                        fstrcpy(lookup,"*");
    342                         do_node_status(lookup, lookup_type, &ss);
     332                        if (!do_node_status(lookup, lookup_type, &ss)) {
     333                                rc = 1;
     334                        }
    343335                        continue;
    344336                }
     
    359351                }
    360352
     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
    361361                if (!query_one(lookup, lookup_type)) {
     362                        rc = 1;
    362363                        d_printf( "name_query failed to find name %s", lookup );
    363364                        if( 0 != lookup_type ) {
     
    368369        }
    369370
     371out:
    370372        poptFreeContext(pc);
    371373        TALLOC_FREE(frame);
    372         return(0);
    373 }
     374        return rc;
     375}
Note: See TracChangeset for help on using the changeset viewer.