[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qmailadmin
Subject:    [qmailadmin] A collection of patches for qmailadmin-1.0.6
From:       "Michael Bowe" <mbowe () pipeline ! com ! au>
Date:       2002-11-30 3:22:55
[Download RAW message or body]

Hello

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

patch < 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)


Michael.


["qmailadmin-1.0.6-forwardalias-nextpage.patch.txt" (text/plain)]

###################################################################
#
# 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 <mbowe@pipeline.com.au>
#
###################################################################

--- 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>");                                    
   }
 }

["qmailadmin-1.0.6-configure-maxaliasesperpage.patch.txt" (text/plain)]

###################################################################
#
# The configure script for qmailadmin-1.0.6 contains a typo for the 
# maxaliasesperpage configure command 
#
# By Michael Bowe  <mbowe@pipeline.com.au>
#
###################################################################

--- 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

["qmailadmin-1.0.6-forwardalias-sorted.patch.txt" (text/plain)]

###############################################################
#
# 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 <t.janes@2020speech.com>
# and applied to qmailadmin-1.0.6 by Michael Bowe <mbowe@pipeline.com.au>
#
###############################################################
 
--- 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\">");

["qmailadmin-1.0.6-userlist-sorted.patch.txt" (text/plain)]

###################################################################
#
# 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 <mbowe@pipeline.com.au>
#
####################################################################

--- 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);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic