blob: fef53c4116b562f0afc8b7b59e5f9b47f0cbc47e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
--- ssmtp.orig.c 2004-07-23 00:58:48.000000000 -0500
+++ ssmtp.c 2008-07-14 16:03:08.000000000 -0500
@@ -76,6 +76,7 @@ int log_level = 1;
#else
int log_level = 0;
#endif
+int minuserid = MAXSYSUID+1;
int port = 25;
#ifdef INET6
int p_family = PF_UNSPEC; /* Protocol family used in SMTP connection */
@@ -641,7 +642,7 @@ char *rcpt_remap(char *str)
{
struct passwd *pw;
if((root==NULL) || strlen(root)==0 || strchr(str, '@') ||
- ((pw = getpwnam(str)) == NULL) || (pw->pw_uid > MAXSYSUID)) {
+ ((pw = getpwnam(str)) == NULL) || (pw->pw_uid >= minuserid)) {
return(append_domain(str)); /* It's not a local systems-level user */
}
else {
@@ -814,6 +815,17 @@ bool_t read_config()
log_event(LOG_INFO, "Set Root=\"%s\"\n", root);
}
}
+ else if(strcasecmp(p, "MinUserId") == 0) {
+ if((r = strdup(q)) == (char *)NULL) {
+ die("parse_config() -- strdup() failed");
+ }
+
+ minuserid = atoi(r);
+
+ if(log_level > 0) {
+ log_event(LOG_INFO, "Set MinUserId=\"%d\"\n", minuserid);
+ }
+ }
else if(strcasecmp(p, "MailHub") == 0) {
if((mailhost = strdup(q)) == (char *)NULL) {
die("parse_config() -- strdup() failed");
|