Ignore:
Timestamp:
Apr 9, 2010, 3:51:41 PM (15 years ago)
Author:
Silvan Scherrer
Message:

Samba 3.5.x: trunk update to 3.5.2

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source3/winbindd/winbindd_reconnect.c

    r414 r429  
    2828extern struct winbindd_methods msrpc_methods;
    2929
     30static bool reconnect_need_retry(NTSTATUS status)
     31{
     32        if (NT_STATUS_IS_OK(status)) {
     33                return false;
     34        }
     35
     36        if (!NT_STATUS_IS_ERR(status)) {
     37                return false;
     38        }
     39
     40        if (NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) {
     41                return false;
     42        }
     43
     44        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_USER)) {
     45                return false;
     46        }
     47
     48        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_GROUP)) {
     49                return false;
     50        }
     51
     52        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_ALIAS)) {
     53                return false;
     54        }
     55
     56        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_MEMBER)) {
     57                return false;
     58        }
     59
     60        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_DOMAIN)) {
     61                return false;
     62        }
     63
     64        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_SUCH_PRIVILEGE)) {
     65                return false;
     66        }
     67
     68        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MEMORY)) {
     69                return false;
     70        }
     71
     72        return true;
     73}
     74
    3075/* List all users */
    3176static NTSTATUS query_user_list(struct winbindd_domain *domain,
     
    3984                                               num_entries, info);
    4085
    41         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     86        if (reconnect_need_retry(result))
    4287                result = msrpc_methods.query_user_list(domain, mem_ctx,
    4388                                                       num_entries, info);
     
    56101                                               num_entries, info);
    57102
    58         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     103        if (reconnect_need_retry(result))
    59104                result = msrpc_methods.enum_dom_groups(domain, mem_ctx,
    60105                                                       num_entries, info);
     
    74119                                                 num_entries, info);
    75120
    76         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     121        if (reconnect_need_retry(result))
    77122                result = msrpc_methods.enum_local_groups(domain, mem_ctx,
    78123                                                         num_entries, info);
     
    95140                                           flags, sid, type);
    96141
    97         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     142        if (reconnect_need_retry(result))
    98143                result = msrpc_methods.name_to_sid(domain, mem_ctx,
    99144                                                   domain_name, name, flags,
     
    118163                                           domain_name, name, type);
    119164
    120         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     165        if (reconnect_need_retry(result))
    121166                result = msrpc_methods.sid_to_name(domain, mem_ctx, sid,
    122167                                                   domain_name, name, type);
     
    139184                                             rids, num_rids,
    140185                                             domain_name, names, types);
    141         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL)) {
     186        if (reconnect_need_retry(result)) {
    142187                result = msrpc_methods.rids_to_names(domain, mem_ctx, sid,
    143188                                                     rids, num_rids,
     
    160205                                          user_info);
    161206
    162         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     207        if (reconnect_need_retry(result))
    163208                result = msrpc_methods.query_user(domain, mem_ctx, user_sid,
    164209                                                  user_info);
     
    179224                                                 user_gids);
    180225
    181         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     226        if (reconnect_need_retry(result))
    182227                result = msrpc_methods.lookup_usergroups(domain, mem_ctx,
    183228                                                         user_sid, num_groups,
     
    199244                                                  alias_rids);
    200245
    201         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     246        if (reconnect_need_retry(result))
    202247                result = msrpc_methods.lookup_useraliases(domain, mem_ctx,
    203248                                                          num_sids, sids,
     
    224269                                               name_types);
    225270
    226         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     271        if (reconnect_need_retry(result))
    227272                result = msrpc_methods.lookup_groupmem(domain, mem_ctx,
    228273                                                       group_sid, type,
     
    241286        result = msrpc_methods.sequence_number(domain, seq);
    242287
    243         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     288        if (reconnect_need_retry(result))
    244289                result = msrpc_methods.sequence_number(domain, seq);
    245290
     
    256301        result = msrpc_methods.lockout_policy(domain, mem_ctx, policy);
    257302
    258         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     303        if (reconnect_need_retry(result))
    259304                result = msrpc_methods.lockout_policy(domain, mem_ctx, policy);
    260305
     
    271316        result = msrpc_methods.password_policy(domain, mem_ctx, policy);
    272317
    273         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     318        if (reconnect_need_retry(result))
    274319                result = msrpc_methods.password_policy(domain, mem_ctx, policy);
    275320       
     
    286331        result = msrpc_methods.trusted_domains(domain, mem_ctx, trusts);
    287332
    288         if (NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))
     333        if (reconnect_need_retry(result))
    289334                result = msrpc_methods.trusted_domains(domain, mem_ctx,
    290335                                                       trusts);
Note: See TracChangeset for help on using the changeset viewer.