> -----Original Message-----
> From: Ken Jones [mailto:[EMAIL PROTECTED]] 
> Sent: Friday, 10 January 2003 7:49 AM
> To: [EMAIL PROTECTED]
> Subject: [qmailadmin] Working on new 1.0.7 version
> 
> 
> Hi,
> 
> I'm putting together a new 1.0.7 version. 
> So anyone with updated code, or bug reports.
> Please post the information here.

Hello Ken

Please find attached four patches for qmailadmin-1.0.6 that fix an
assortment of bugs and cosmetic issues. There are comments in the top bit of
each of the patches that include a more detailed description of why they are
needed.

qmailadmin-1.0.6-forwardalias-nextpage.patch.txt
  Fix the bug in the forwards/aliases screen where the nextpage hyperlink
  is shown even when there are no more users to display 

qmailadmin-1.0.6-configure-maxaliasesperpage.patch.txt
  Fix the typo in the configure script regarding the maxaliasesperpage
option

qmailadmin-1.0.6-forwardalias-sorted.patch.txt
  Enable sorting of the userlist on the forwards/aliases screen
  (Same as patch for qmailadmin-1.0.2 as posted to this list the 
  other day by Tim Janes)

qmailadmin-1.0.6-userlist-sorted.patch.txt
  Enable alphabetical sorting of the email accounts screens and also
  the userlist dropdownboxes for people using a vpopmail backend 
  other than cdb (eg MySQL). 
  The cdb backend already provides alphabetical sorting, so it makes
  sense that the other backends should be configured to provide
  alphabetical sorting by default also.

------------------------------------------------
Michael Bowe (B.App.Sc)
Managing Director - Pipeline Internet
96 Pakington Street, Geelong West. VIC. 3218
Tel (03) 5229 7643
Fax (03) 5229 0282
Mobile 0419 242 136
http://www.pipeline.com.au/
------------------------------------------------  

###################################################################
#
# The configure script for qmailadmin-1.0.6 contains a typo for the 
# maxaliasesperpage configure command 
#
# By Michael Bowe  <[EMAIL PROTECTED]>
#
###################################################################

--- configure.orig      Sat Nov 30 12:02:49 2002
+++ configure   Sat Nov 30 12:02:54 2002
@@ -1778,7 +1778,7 @@
 # Check whether --enable-maxaliasesperpage or --disable-maxaliasesperpage was given.
 if test "${enable_maxaliasesperpage+set}" = set; then
   enableval="$enable_maxaliasesperpage"
-  maxusersperpage="$enableval"
+  maxaliasesperpage="$enableval"
 fi
 
 cat >> confdefs.h <<EOF
###################################################################
#
# In qmailadmin-1.0.6, the page navigation hyperlinks at the bottom
# of the show forwards/aliases screen alway display "next page"
# even when there are no more users to display
#
# By Michael Bowe <[EMAIL PROTECTED]>
#
###################################################################

--- alias.c.orig        Sat Nov 30 12:56:39 2002
+++ alias.c     Sat Nov 30 13:00:56 2002
@@ -46,6 +46,7 @@
 
 show_dotqmail_lines(char *user, char *dom, time_t mytime, char *dir)
 {
+ int moreusers=0;
  DIR *mydir;
  struct dirent *mydirent;
  FILE *fs;
@@ -89,6 +90,7 @@
         continue;
       }
       if ( k >MAXALIASESPERPAGE + startnumber) {
+        moreusers=1;
         break;
       }
 
@@ -174,9 +176,11 @@
     fprintf(actout, "<a 
href=\"%s/com/showforwards?user=%s&dom=%s&time=%d&page=%s\">%s</a>",
       CGIPATH,user,dom,mytime,Pagenumber,get_html_text("136"));
     fprintf(actout, "&nbsp;|&nbsp;");
-    fprintf(actout, "<a 
href=\"%s/com/showforwards?user=%s&dom=%s&time=%d&page=%d\">%s</a>",
-      CGIPATH,user,dom,mytime,atoi(Pagenumber)+1,get_html_text("137"));    
-    fprintf(actout, "&nbsp;]");
+    if (moreusers) {
+      fprintf(actout, "<a 
+href=\"%s/com/showforwards?user=%s&dom=%s&time=%d&page=%d\">%s</a>",
+        CGIPATH,user,dom,mytime,atoi(Pagenumber)+1,get_html_text("137"));    
+      fprintf(actout, "&nbsp;]");
+    }
     fprintf(actout, "</td></tr>");                                    
   }
 }
###############################################################
#
# Adjust qmailadmin-1.0.6 so that the entries on the 
# forwards/aliases screen are shown in alphabetical order
#
# Written for qmailadmin-1.0.2 by Tim Janes <[EMAIL PROTECTED]>
# and applied to qmailadmin-1.0.6 by Michael Bowe <[EMAIL PROTECTED]>
#
###############################################################
 
--- alias.c.orig        Wed Aug  7 08:04:59 2002
+++ alias.c     Sat Nov 30 11:35:24 2002
@@ -53,6 +53,8 @@
  char alias_name[MAX_FILE_NAME];
  char *alias_name_from_command;
  int i,j,stop,k,startnumber;
+ int m,n;
+ struct dirent **namelist;
 
   if ( AdminType!=DOMAIN_ADMIN ) {
     sprintf(StatusMessage,"%s", get_html_text("142"));
@@ -74,7 +76,10 @@
     return(0);
   }
 
-  while ((mydirent=readdir(mydir)) != NULL) {
+  n = scandir(".", &namelist, 0, alphasort);
+  
+  for (m=0; m<n; m++) {
+    mydirent=namelist[m];
     /*
      *  don't read files that are really ezmlm-idx listowners,
      *  i.e. .qmail-user-owner
@@ -159,9 +164,11 @@
       fclose(fs);
       k++;
     }
+    free(namelist[m]);
   }
     
   closedir(mydir);
+  free(namelist);
 
   if (AdminType == DOMAIN_ADMIN) {
     fprintf(actout, "<tr><td align=\"right\" colspan=\"4\">");
###################################################################
#
# According to the docs on the inter7.com web site,
# ( http://inter7.com/vpopmail/vpopmail.html )
# if you REQUIRE a vauth_getall() userlist sorted in alphabetical 
# order, you need to set the sort_it parameter to 1
# 
#   "struct *vauth_getall( char *domain, int first, int sort_it )
#      domain  = domain name to retrieve password structure from
#                authentication system
#      first   = 1 to get first record, 0 = get next record 
#      sort_it = 1 to have the user list sorted alphabetically.
#                This has no effect on vpasswd/cdb method,
#                since all users are added alphabetically.
#                With mysql it adds an order by pw_name to the query."
#
# If you have sort_it set to 0, depending on the type of backend
# you are running, you may or may not receive a sorted userlist.
#   * cdb backend always returns a sorted list 
#   * mysql, postgres, ldap backends will return an unsorted list
#
# Qmailadmin-1.0.6 has been coded with sort_it = 0, which means
# that if you are not using the cdb backend, your email accounts
# screen will be unsorted, and so will the dropdown userlist boxes
# eg "add new alias"
# 
# It makes sense for the qmailadmin source to be altered so the  
# sort_it parameter is set to 1. This way, no matter what backend
# the user is running, they will receive sorted userlists.
#
# Written by Michael Bowe <[EMAIL PROTECTED]>
#
####################################################################

--- template.c.orig     Sat Nov 30 11:32:41 2002
+++ template.c  Sat Nov 30 11:32:58 2002
@@ -459,7 +459,7 @@
             {
              struct vqpasswd *pw;
 
-               pw = vauth_getall(Domain,1,0);
+               pw = vauth_getall(Domain,1,1);
                while (pw != NULL) {
                  fprintf(actout, "<option value=\"%s\">%s</option>\n", 
                    pw->pw_name, pw->pw_name);

Reply via email to