Skip to content

Commit

Permalink
fix vlimits code
Browse files Browse the repository at this point in the history
1.  ProcessInFifo.c, VlimitInLookup.c, authindi.c, authpgsql.c,
    iauth.c, sql_getpw.c, vadduser.c, vchkpass.c, vlimit.c, vmoduser.c,
    vsetuserquota.c: initialize struct vlimits
2. limits.c: fix data types to fix stack smashing
3. vlimits.h: changed data types to long
4. vlimit.c: added -T option to toggle bit field
5. vlimit.c: fixed data types
6. inquerytest: change data type to long
7. vadduser.c: fix .domain_limits path
  • Loading branch information
mbhangui committed May 27, 2024
1 parent b8635d5 commit 9de87bd
Show file tree
Hide file tree
Showing 22 changed files with 991 additions and 214 deletions.
7 changes: 5 additions & 2 deletions indimail-x/ProcessInFifo.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/*
* $Log: ProcessInFifo.c,v $
* Revision 1.20 2024-05-27 22:52:54+05:30 Cprogrammer
* initialize struct vlimits
*
* Revision 1.19 2024-05-17 16:25:48+05:30 mbhangui
* fix discarded-qualifier compiler warnings
*
Expand Down Expand Up @@ -134,7 +137,7 @@
#include "FifoCreate.h"

#ifndef lint
static char sccsid[] = "$Id: ProcessInFifo.c,v 1.19 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $";
static char sccsid[] = "$Id: ProcessInFifo.c,v 1.20 2024-05-27 22:52:54+05:30 Cprogrammer Exp mbhangui $";
#endif

int user_query_count, relay_query_count, pwd_query_count, alias_query_count;
Expand Down Expand Up @@ -929,7 +932,7 @@ ProcessInFifo(int instNum)
time_t prev_time = 0l;
substdio ssin;
#ifdef ENABLE_DOMAIN_LIMITS
struct vlimits limits;
struct vlimits limits = { 0 };
#endif

_debug = (env_get("DEBUG") ? 1 : 0);
Expand Down
7 changes: 5 additions & 2 deletions indimail-x/VlimitInLookup.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/*
* $Log: VlimitInLookup.c,v $
* Revision 1.3 2024-05-27 22:53:54+05:30 Cprogrammer
* initialize struct vlimits
*
* Revision 1.2 2024-05-17 16:25:48+05:30 mbhangui
* fix discarded-qualifier compiler warnings
*
Expand All @@ -12,7 +15,7 @@
#endif

#ifndef lint
static char sccsid[] = "$Id: VlimitInLookup.c,v 1.2 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $";
static char sccsid[] = "$Id: VlimitInLookup.c,v 1.3 2024-05-27 22:53:54+05:30 Cprogrammer Exp mbhangui $";
#endif

#ifdef ENABLE_DOMAIN_LIMITS
Expand All @@ -39,7 +42,7 @@ VlimitInLookup(const char *email, struct vlimits *lim)
static stralloc user = {0}, domain = {0};
const char *real_domain;
#ifdef ENABLE_DOMAIN_LIMITS
struct vlimits limits;
struct vlimits limits = { 0 };
#endif

#ifdef CLUSTERED_SITE
Expand Down
9 changes: 6 additions & 3 deletions indimail-x/authindi.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* $Id: authindi.c,v 1.19 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $
* $Id: authindi.c,v 1.20 2024-05-27 22:50:29+05:30 Cprogrammer Exp mbhangui $
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
Expand Down Expand Up @@ -57,7 +57,7 @@
#define WARN "authindi: warn: "

#ifndef lint
static char sccsid[] = "$Id: authindi.c,v 1.19 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $";
static char sccsid[] = "$Id: authindi.c,v 1.20 2024-05-27 22:50:29+05:30 Cprogrammer Exp mbhangui $";
#endif

static stralloc tmpbuf = {0};
Expand Down Expand Up @@ -317,7 +317,7 @@ main(int argc, char **argv)
struct passwd *pw;
#ifdef ENABLE_DOMAIN_LIMITS
time_t curtime;
struct vlimits limits;
struct vlimits limits = { 0 };
#endif

if (argc < 2)
Expand Down Expand Up @@ -684,6 +684,9 @@ main(int argc, char **argv)

/*
* $Log: authindi.c,v $
* Revision 1.20 2024-05-27 22:50:29+05:30 Cprogrammer
* initialize struct vlimits
*
* Revision 1.19 2024-05-17 16:25:48+05:30 mbhangui
* fix discarded-qualifier compiler warnings
*
Expand Down
9 changes: 6 additions & 3 deletions indimail-x/authpgsql.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/*
* $Log: authpgsql.c,v $
* Revision 1.11 2024-05-27 22:51:10+05:30 Cprogrammer
* initialize struct vlimits
*
* Revision 1.10 2023-08-04 22:39:42+05:30 Cprogrammer
* include errno.h, authmethods.h, subfd.h
*
Expand Down Expand Up @@ -73,7 +76,7 @@
#include "runcmmd.h"

#ifndef lint
static char sccsid[] = "$Id: authpgsql.c,v 1.10 2023-08-04 22:39:42+05:30 Cprogrammer Exp mbhangui $";
static char sccsid[] = "$Id: authpgsql.c,v 1.11 2024-05-27 22:51:10+05:30 Cprogrammer Exp mbhangui $";
#endif

#ifdef HAVE_PGSQL
Expand Down Expand Up @@ -108,7 +111,7 @@ pg_getpw(char *user, char *domain)
int i;
PGresult *pgres;
#ifdef ENABLE_DOMAIN_LIMITS
struct vlimits limits;
struct vlimits limits = { 0 };
#endif

lowerit(user);
Expand Down Expand Up @@ -199,7 +202,7 @@ main(int argc, char **argv)
struct passwd *pw;
#ifdef ENABLE_DOMAIN_LIMITS
time_t curtime;
struct vlimits limits;
struct vlimits limits = { 0 };
#endif

if (argc < 2)
Expand Down
10 changes: 10 additions & 0 deletions indimail-x/doc/ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ Release @version@-@release@ Start 02/05/2024 End XX/XX/XXXX
- 24/05/2024
13. vsetuserquota.c: print current usage in bytes on stdout
14. setuserquota.c: changed return type of setuserquota to 64bit int
- 28/05/2024
15. ProcessInFifo.c, VlimitInLookup.c, authindi.c, authpgsql.c, iauth.c,
sql_getpw.c, vadduser.c, vchkpass.c, vlimit.c, vmoduser.c,
vsetuserquota.c: initialize struct vlimits
16. limits.c: fix data types to fix stack smashing
17. vlimits.h: changed data types to long
18. vlimit.c: added -T option to toggle bit field
19. vlimit.c: fixed data types
20. inquerytest: change data type to long
21. vadduser.c: fix .domain_limits path

* Mon Jan 01 2024 09:24:41 +0000 Manvendra Bhangui <indimail-virtualdomains@indimail.org> 3.4.6-1.1%{?dist}
Release 3.4.6-1.1 Start 09/09/2023 End 01/01/2024
Expand Down
9 changes: 6 additions & 3 deletions indimail-x/iauth.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* $Id: iauth.c,v 1.10 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $
* $Id: iauth.c,v 1.11 2024-05-27 22:51:20+05:30 Cprogrammer Exp mbhangui $
*
* authenticate.c - Generic PAM Authentication module for pam_multi
* Copyright (C) <2008-2023> Manvendra Bhangui <manvendra@indimail.org>
Expand Down Expand Up @@ -81,7 +81,7 @@
#include "common.h"

#ifndef lint
static char sccsid[] = "$Id: iauth.c,v 1.10 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $";
static char sccsid[] = "$Id: iauth.c,v 1.11 2024-05-27 22:51:20+05:30 Cprogrammer Exp mbhangui $";
#endif

static int defaultTask(char *, char *, struct passwd *, char *, int);
Expand Down Expand Up @@ -223,7 +223,7 @@ i_acctmgmt(char *email, char *service, int *size, int *nitems, int debug)
MYSQL_RES *res;
MYSQL_ROW row;
#ifdef ENABLE_DOMAIN_LIMITS
struct vlimits limits;
struct vlimits limits = { 0 };
#endif

if (nitems)
Expand Down Expand Up @@ -470,6 +470,9 @@ defaultTask(char *email, char *TheDomain, struct passwd *pw, char *service, int

/*
* $Log: iauth.c,v $
* Revision 1.11 2024-05-27 22:51:20+05:30 Cprogrammer
* initialize struct vlimits
*
* Revision 1.10 2024-05-17 16:25:48+05:30 mbhangui
* fix discarded-qualifier compiler warnings
*
Expand Down
2 changes: 1 addition & 1 deletion indimail-x/indimail.9
Original file line number Diff line number Diff line change
Expand Up @@ -1675,7 +1675,7 @@ vdominfo(1) - Print domain information
printdir(1) - Print domain directory structure layout
.sp -1
.IP \n+[step]
vmoddomlimits(1) - Modify domain limits
vlimit(1) - Modify domain limits
.sp -1
.IP \n+[step]
vadduser(1) - Add a user
Expand Down
15 changes: 9 additions & 6 deletions indimail-x/inquerytest.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/*
* $Log: inquerytest.c,v $
* Revision 1.11 2024-05-27 22:51:37+05:30 Cprogrammer
* change data type to long
*
* Revision 1.10 2023-06-08 17:48:31+05:30 Cprogrammer
* renamed fifo directory from FIFODIR to INFIFODIR
*
Expand Down Expand Up @@ -76,7 +79,7 @@
#include "vlimits.h"

#ifndef lint
static char sccsid[] = "$Id: inquerytest.c,v 1.10 2023-06-08 17:48:31+05:30 Cprogrammer Exp mbhangui $";
static char sccsid[] = "$Id: inquerytest.c,v 1.11 2024-05-27 22:51:37+05:30 Cprogrammer Exp mbhangui $";
#endif

#define FATAL "inquerytest: fatal: "
Expand Down Expand Up @@ -114,11 +117,11 @@ print_limits(struct vlimits *limits)
subprintfe(subfdout, "inquerytest", "Max Domain Messages : %13lu\n", limits->maxmsgcount);
subprintfe(subfdout, "inquerytest", "Default User Quota : %13ld\n", limits->defaultquota);
subprintfe(subfdout, "inquerytest", "Default User Messages: %13lu\n", limits->defaultmaxmsgcount);
subprintfe(subfdout, "inquerytest", "Max Pop Accounts : %13d\n", limits->maxpopaccounts);
subprintfe(subfdout, "inquerytest", "Max Aliases : %13d\n", limits->maxaliases);
subprintfe(subfdout, "inquerytest", "Max Forwards : %13d\n", limits->maxforwards);
subprintfe(subfdout, "inquerytest", "Max Autoresponders : %13d\n", limits->maxautoresponders);
subprintfe(subfdout, "inquerytest", "Max Mailinglists : %13d\n", limits->maxmailinglists);
subprintfe(subfdout, "inquerytest", "Max Pop Accounts : %13ld\n", limits->maxpopaccounts);
subprintfe(subfdout, "inquerytest", "Max Aliases : %13ld\n", limits->maxaliases);
subprintfe(subfdout, "inquerytest", "Max Forwards : %13ld\n", limits->maxforwards);
subprintfe(subfdout, "inquerytest", "Max Autoresponders : %13ld\n", limits->maxautoresponders);
subprintfe(subfdout, "inquerytest", "Max Mailinglists : %13ld\n", limits->maxmailinglists);
out("inquerytest", "\n");
subprintfe(subfdout, "inquerytest", "GID Flags:\n");
subprintfe(subfdout, "inquerytest", " %s\n", limits->disable_imap ? "NO_IMAP" : "IMAP");
Expand Down
96 changes: 49 additions & 47 deletions indimail-x/limits.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
/*
* $Log: limits.c,v $
* Revision 1.7 2024-05-28 00:20:32+05:30 Cprogrammer
* fixed data types to fix stack smashing
*
* Revision 1.6 2024-05-17 16:25:48+05:30 mbhangui
* fix discarded-qualifier compiler warnings
*
Expand All @@ -25,7 +28,7 @@
#endif

#ifndef lint
static char sccsid[] = "$Id: limits.c,v 1.6 2024-05-17 16:25:48+05:30 mbhangui Exp mbhangui $";
static char sccsid[] = "$Id: limits.c,v 1.7 2024-05-28 00:20:32+05:30 Cprogrammer Exp mbhangui $";
#endif

#ifdef ENABLE_DOMAIN_LIMITS
Expand Down Expand Up @@ -71,7 +74,8 @@ die_nomem(char *str)
int
vget_limits(const char *domain, struct vlimits *limits)
{
int err, perm;
int err;
int perm;
MYSQL_ROW row;
MYSQL_RES *res;

Expand Down Expand Up @@ -109,11 +113,11 @@ vget_limits(const char *domain, struct vlimits *limits)
if ((row = in_mysql_fetch_row(res))) {
scan_long(row[0], &(limits->domain_expiry));
scan_long(row[1], &(limits->passwd_expiry));
scan_int(row[2], &(limits->maxpopaccounts));
scan_int(row[3], &(limits->maxaliases));
scan_int(row[4], &(limits->maxforwards));
scan_int(row[5], &(limits->maxautoresponders));
scan_int(row[6], &(limits->maxmailinglists));
scan_long(row[2], &(limits->maxpopaccounts));
scan_long(row[3], &(limits->maxaliases));
scan_long(row[4], &(limits->maxforwards));
scan_long(row[5], &(limits->maxautoresponders));
scan_long(row[6], &(limits->maxmailinglists));
limits->diskquota = strtoll(row[7], 0, 0);
#if defined(LLONG_MIN) && defined(LLONG_MAX)
if (limits->diskquota == LLONG_MIN || limits->diskquota == LLONG_MAX)
Expand Down Expand Up @@ -154,25 +158,25 @@ vget_limits(const char *domain, struct vlimits *limits)
in_mysql_free_result(res);
return (-1);
}
scan_int(row[11], (int *) &(limits->disable_pop));
scan_int(row[12], (int *) &(limits->disable_imap));
scan_int(row[13], (int *) &(limits->disable_dialup));
scan_int(row[14], (int *) &(limits->disable_passwordchanging));
scan_int(row[15], (int *) &(limits->disable_webmail));
scan_int(row[16], (int *) &(limits->disable_relay));
scan_int(row[17], (int *) &(limits->disable_smtp));
scan_int(row[18], (int *) &(limits->perm_account));
scan_int(row[19], (int *) &(limits->perm_alias));
scan_int(row[20], (int *) &(limits->perm_forward));
scan_int(row[21], (int *) &(limits->perm_autoresponder));
scan_short(row[11], &(limits->disable_pop));
scan_short(row[12], &(limits->disable_imap));
scan_short(row[13], &(limits->disable_dialup));
scan_short(row[14], &(limits->disable_passwordchanging));
scan_short(row[15], &(limits->disable_webmail));
scan_short(row[16], &(limits->disable_relay));
scan_short(row[17], &(limits->disable_smtp));
scan_short(row[18], &(limits->perm_account));
scan_short(row[19], &(limits->perm_alias));
scan_short(row[20], &(limits->perm_forward));
scan_short(row[21], &(limits->perm_autoresponder));
scan_int(row[22], &perm);
limits->perm_maillist = perm & VLIMIT_DISABLE_ALL;
perm >>= VLIMIT_DISABLE_BITS;
limits->perm_maillist_users = perm & VLIMIT_DISABLE_ALL;
perm >>= VLIMIT_DISABLE_BITS;
limits->perm_maillist_moderators = perm & VLIMIT_DISABLE_ALL;
scan_int(row[23], (int *) &(limits->perm_quota));
scan_int(row[24], (int *) &(limits->perm_defaultquota));
scan_short(row[23], &(limits->perm_quota));
scan_short(row[24], &(limits->perm_defaultquota));
}
in_mysql_free_result(res);
return (0);
Expand Down Expand Up @@ -233,57 +237,57 @@ vset_limits(const char *domain, struct vlimits *limits)
"perm_defaultquota) VALUES (\"", 425) ||
!stralloc_cats(&SqlBuf, domain) ||
!stralloc_catb(&SqlBuf, "\", ", 3) ||
!stralloc_catb(&SqlBuf, strnum, fmt_ulong(strnum, limits->domain_expiry)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->domain_expiry)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_ulong(strnum, limits->passwd_expiry)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->passwd_expiry)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->maxpopaccounts)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->maxpopaccounts)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->maxaliases)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->maxaliases)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->maxforwards)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->maxforwards)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->maxautoresponders)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->maxautoresponders)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->maxmailinglists)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->maxmailinglists)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->diskquota)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->diskquota)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->maxmsgcount)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->maxmsgcount)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->defaultquota)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->defaultquota)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->defaultmaxmsgcount)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_long(strnum, limits->defaultmaxmsgcount)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_pop)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_pop)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_imap)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_imap)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_dialup)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_dialup)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_passwordchanging)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_passwordchanging)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_webmail)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_webmail)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_relay)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_relay)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->disable_smtp)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->disable_smtp)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_account)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_account)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_alias)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_alias)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_forward)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_forward)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_autoresponder)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_autoresponder)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_maillist |
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_maillist |
(limits->perm_maillist_users << VLIMIT_DISABLE_BITS) |
(limits->perm_maillist_moderators << (VLIMIT_DISABLE_BITS * 2)))) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_quota)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_quota)) ||
!stralloc_catb(&SqlBuf, ", ", 2) ||
!stralloc_catb(&SqlBuf, strnum, fmt_uint(strnum, limits->perm_defaultquota)) ||
!stralloc_catb(&SqlBuf, strnum, fmt_int(strnum, limits->perm_defaultquota)) ||
!stralloc_catb(&SqlBuf, ")", 1) ||
!stralloc_0(&SqlBuf))
die_nomem("vset_limits");
Expand Down Expand Up @@ -339,8 +343,6 @@ static void
vdefault_limits(struct vlimits *limits)
{
/*- initialize structure */
byte_zero((char *) limits, sizeof(*limits));

limits->domain_expiry = -1;
limits->passwd_expiry = -1;
limits->maxpopaccounts = -1;
Expand Down
Loading

0 comments on commit 9de87bd

Please sign in to comment.