Hi, after patching I added one line to the qmail-smtpd.c so that I could get the user that makes the authentication on the environment var, instead of the 'from user' so I can later use any filter (smtp throttle in my case) based on the sender.
the file that was edited was the qmail-smtpd.c and just added this line after patching: env_put2("SMTPAUTHUSER", remoteinfo); after line 1598 in here: case '2': flagauthok = 1; remoteinfo = line.s; out(status); logline2(2,"authentication success, user ", remoteinfo); * env_put2("SMTPAUTHUSER", remoteinfo);* break; case '4 Maybe this is a tmp solution but if it works do you thing can be added to the main patch? it wont hurt much and help allot, or is there is a simple solution for getting this info please let me know. this is the filter I am using for doing the smtp throttle currently working ----- #!/usr/bin/perl $from = $ENV{SMTPAUTHUSER}; $db_file ='/var/qmail/control/smtpThrottle.db'; ###################################################################### use DB_File; tie (%db, 'DB_File', "$db_file", O_CREAT|O_RDWR, 0664, $DB_HASH) || die ("Can't open DB File, $!\n"); $cmd ="ldapsearch -h 192.168.1.1 -b 'ou=vusers,dc=pegaso,dc=unixmexico,dc=net' -LLL \"(&(objectclass=qmailuser)(uid=$from))\" smtpThrottle | grep smtpThrottle | awk '{print \$2}'"; chomp($limit =qx!$cmd!); # if no smtpTrhottle value found limit default to 10 per day if (!$limit) { $limit = 10; } $today = (localtime(time))[3]; if ($db{$from}) { ($day,$msgs) = split(/:/, $db{$from}); if ($msgs <= $limit && $day == $today) { $msgs = $msgs + 1; $db{$from} = join(":", $day, $msgs); exit 0; } elsif ($day != $today) { $db{$from} = join(":", $today, 2); exit 0; } else { print STDERR "Outgoing mail quota exceeded\n"; exit (31); } } else { $db{$from} = join(":", $today, 2); } untie (%db); ----- the qmail.scheme has this extra lines: attributetype ( 1.3.6.1.4.1.7914.1.2.1.18 NAME 'smtpThrottle' DESC 'The number of message the user is allowed to send' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ... # Object Class Definitions objectclass ( 1.3.6.1.4.1.7914.1.2.2.1 NAME 'qmailUser' DESC 'QMail-LDAP User' SUP top AUXILIARY MUST ( mail ) MAY ( uid $ mailMessageStore $ homeDirectory $ userPassword $ mailAlternateAddress $ qmailUID $ qmailGID $ mailHost $ mailForwardingAddress $ deliveryProgramPath $ qmailDotMode $ deliveryMode $ mailReplyText $ accountStatus $ qmailAccountPurge $ mailQuotaSize $ mailQuotaCount $ mailSizeMax $ smtpThrottle $ spamassassin $ AlternateEmailAddress $ YourSecretQuestion $ YourAnswer) ) --- Hope this can help someone. regards.