+def GenAllForward(l,File):
+ Fdb = None;
+ try:
+ OldMask = os.umask(0022);
+ Fdb = os.popen("cdbmake %s %s.tmp"%(File,File),"w");
+ os.umask(OldMask);
+
+ # Fetch all the users
+ global PasswdAttrs;
+ if PasswdAttrs == None:
+ raise "No Users";
+
+ # Write out the email address for each user
+ for x in PasswdAttrs:
+ if x[1].has_key("emailforward") == 0:
+ continue;
+
+ # Do not allow people to try to buffer overflow busted parsers
+ Forward = GetAttr(x,"emailforward");
+ if len(Forward) > 200:
+ continue;
+
+ # Check the forwarding address
+ if EmailCheck.match(Forward) == None:
+ continue;
+
+ User = GetAttr(x,"uid");
+ Fdb.write("+%d,%d:%s->%s\n"%(len(User),len(Forward),User,Forward));
+ Fdb.write("\n");
+ # Oops, something unspeakable happened.
+ except:
+ Fdb.close();
+ raise;
+ if Fdb.close() != None:
+ raise "cdbmake gave an error";
+