AD: Don't fail the request if ad_account_can_shortcut fails
MAN: Fix a typo
LDAP: Fix error check

https://fedorahosted.org/sssd/ticket/2199
LDAP: Don't fail if subdomain cannot be found by sid

Domain needn't contain sid if id_provider is ldap.
With enabled id mapping, user couldn't be stored, because domain
couldn't be found by sid.

Resolves:
https://fedorahosted.org/sssd/ticket/2172
LDAP: update id mapping detection for ldap provider

For id_provider ldap, it is only necessary to enable option ldap_id_mapping.
It is an regression introduced in the commit d3e1d88ce7de3216a862b

Resolves:
https://fedorahosted.org/sssd/ticket/2172
sdap_idamp: Fall back to another method if sid is wrong

sss_idmap_domain_has_algorithmic_mapping can return also
IDMAP_SID_INVALID, but it does not mean that idmaping is
unavailable. We should fall back to another method of detection
(sss_idmap_domain_by_name_has_algorithmic_mapping)
and do not return false immediately.

Resolves:
https://fedorahosted.org/sssd/ticket/2172
krb5: hint to increase krb5_auth_timeout

Resolves:
https://fedorahosted.org/sssd/ticket/2202
LDAP: Don't abort request if no id mapping domain matches

If an ID was requested from the back end, but no ID mapping domain
matched, the request ended with a scary error message. It's better to
treat the request as if no such ID was found in the domain

Related:
https://fedorahosted.org/sssd/ticket/2200
TESTS: Fix authtok test for zero length string.

There is a test for sss_authtok_set where '\0' is used as argument data.
'\0' is evaluated as zero and zero is treated as a null pointer.
And there is another test for NULL pointer few lines before.
Patch changes 3rd argument  '\0' into properly cast zero length sting ""
CLIENT: Remove unused macros

PAM_SM_AUTH, PAM_SM_ACCOUNT, PAM_SM_SESSION, PAM_SM_PASSWORD
I cannot find in git history where these macro were used.
utils: handling NULL params in sss_parse_name
AD SRV: use right domain name for CLDAP ping

Currently always the name of the configured domain was passed to the
CLDAP request. This will fail if the CLDAP request is send to a DC form
a different domain.
AD: Store info on whether a subdomain is set to enumerate

Depending on the state of the subdomain_enumerate variable, the newly
created subdomain object is created with the right value of "enumerate"
attribute in the sysdb.
LDAP: Pass a private context to enumeration ptask instead of hardcoded connection

Previously, the sdap-domain enumeration request used a single connection context to
download all the data. Now we'd like to use different connections to
download different objects, so the ID context is passed in and the
request itself decides which connection to use for the sdap-domain
enumeration.
LDAP: Add enum request with custom connection

This commit changes the enumerate-sdap-domain request to accept a
connection context per object that can be enumerated. Internally in the
request, an sdap_id_op is also created per enumerated object type.

This change will allow i.e. users to be enumerated using GC connection,
while keeping the LDAP connection for groups and services.
AD: Enumerate users from GC, other entities from LDAP
LDAP: Don't clobber original_member during enumeration
DB: Add sss_ldb_el_to_string_list
AD: Establish cross-domain memberships after enumeration finishes

Because domain enumeration currently works for each domain separately,
the code has to establish cross-domain memberships after all domains are
enumerated. The code works as follows:

    1) check if any *sub*domains were enumerated. If not, do nothing
    2) if any of the groups saved had more original members than
       sysdb members, check if members of these groups can be linked now
       that all users and groups are saved using the orig_member
       attribute of the group matched against originalDN member of the
       user.

Related:
https://fedorahosted.org/sssd/ticket/2142
sudo: memset tm when converting time attributes

strptime() which is used to parse LDAP time value does not initialize
all fields of tm structure (especially tm_isdst). This results in
random behavior - when the tm is converted into timestamp via mktime(),
the result depends on current value of tm_isdst.

Resolves:
https://fedorahosted.org/sssd/ticket/2213