|
@@ -53,6 +53,8 @@
|
|
|
#define LDAP_NO_ATTRS "1.1"
|
|
|
#endif
|
|
|
|
|
|
+#define PWD_NEVER_EXPIRES (__int64)0x8000000000000000
|
|
|
+
|
|
|
class CLoadBalancer : public CInterface, implements IInterface
|
|
|
{
|
|
|
private:
|
|
@@ -982,14 +984,18 @@ public:
|
|
|
return 0;
|
|
|
}
|
|
|
char **values;
|
|
|
- values = ldap_get_values(sys_ld, searchResult.msg, "maxPwdAge");
|
|
|
- assertex(values);
|
|
|
- char *val = values[0];
|
|
|
- if (*val == '-')
|
|
|
- ++val;
|
|
|
__int64 maxAge = 0;
|
|
|
- for (int x=0; val[x]; x++)
|
|
|
- maxAge = maxAge * 10 + ( (int)val[x] - '0');
|
|
|
+ values = ldap_get_values(sys_ld, searchResult.msg, "maxPwdAge");
|
|
|
+ if (values && *values)
|
|
|
+ {
|
|
|
+ char *val = values[0];
|
|
|
+ if (*val == '-')
|
|
|
+ ++val;
|
|
|
+ for (int x=0; val[x]; x++)
|
|
|
+ maxAge = maxAge * 10 + ( (int)val[x] - '0');
|
|
|
+ }
|
|
|
+ else
|
|
|
+ maxAge = PWD_NEVER_EXPIRES;
|
|
|
ldap_value_free(values);
|
|
|
return maxAge;
|
|
|
}
|
|
@@ -1018,7 +1024,7 @@ public:
|
|
|
return false;
|
|
|
|
|
|
m_maxPwdAge = getMaxPwdAge();
|
|
|
- if (m_maxPwdAge != (__int64)0x8000000000000000)
|
|
|
+ if (m_maxPwdAge != PWD_NEVER_EXPIRES)
|
|
|
m_domainPwdsNeverExpire = false;
|
|
|
else
|
|
|
m_domainPwdsNeverExpire = true;
|