Lines 805-811
Link Here
|
805 |
return EX_PROTOCOL; |
805 |
return EX_PROTOCOL; |
806 |
} |
806 |
} |
807 |
|
807 |
|
808 |
int message_filter(struct transport *tp, const char *username, |
808 |
int message_filter(struct transport *tp, const char *username, const char *userprefs, |
809 |
int flags, struct message *m) |
809 |
int flags, struct message *m) |
810 |
{ |
810 |
{ |
811 |
char buf[8192]; |
811 |
char buf[8192]; |
Lines 880-885
Link Here
|
880 |
strcat(buf + len, "\r\n"); |
880 |
strcat(buf + len, "\r\n"); |
881 |
len += strlen(buf + len); |
881 |
len += strlen(buf + len); |
882 |
} |
882 |
} |
|
|
883 |
if (userprefs != NULL) { |
884 |
if (strlen(userprefs) + 8 >= (bufsiz - len)) { |
885 |
free(m->out); |
886 |
m->out = m->msg; |
887 |
m->out_len = m->msg_len; |
888 |
return EX_OSERR; |
889 |
} |
890 |
strcpy(buf + len, "UserPrefs: "); |
891 |
strcat(buf + len, userprefs); |
892 |
strcat(buf + len, "\r\n"); |
893 |
len += strlen(buf + len); |
894 |
} |
883 |
if ((m->msg_len > 9999999) || ((len + 27) >= (bufsiz - len))) { |
895 |
if ((m->msg_len > 9999999) || ((len + 27) >= (bufsiz - len))) { |
884 |
free(m->out); |
896 |
free(m->out); |
885 |
m->out = m->msg; |
897 |
m->out = m->msg; |
Lines 1048-1054
Link Here
|
1048 |
} |
1060 |
} |
1049 |
|
1061 |
|
1050 |
|
1062 |
|
1051 |
int message_process(struct transport *trans, char *username, int max_size, |
1063 |
int message_process(struct transport *trans, char *username, char *userprefs, int max_size, |
1052 |
int in_fd, int out_fd, const int flags) |
1064 |
int in_fd, int out_fd, const int flags) |
1053 |
{ |
1065 |
{ |
1054 |
int ret; |
1066 |
int ret; |
Lines 1060-1066
Link Here
|
1060 |
ret = message_read(in_fd, flags, &m); |
1072 |
ret = message_read(in_fd, flags, &m); |
1061 |
if (ret != EX_OK) |
1073 |
if (ret != EX_OK) |
1062 |
goto FAIL; |
1074 |
goto FAIL; |
1063 |
ret = message_filter(trans, username, flags, &m); |
1075 |
ret = message_filter(trans, username, userprefs, flags, &m); |
1064 |
if (ret != EX_OK) |
1076 |
if (ret != EX_OK) |
1065 |
goto FAIL; |
1077 |
goto FAIL; |
1066 |
if (message_write(out_fd, &m) < 0) |
1078 |
if (message_write(out_fd, &m) < 0) |
Lines 1097-1103
Link Here
|
1097 |
} |
1109 |
} |
1098 |
|
1110 |
|
1099 |
/* Aug 14, 2002 bj: Obsolete! */ |
1111 |
/* Aug 14, 2002 bj: Obsolete! */ |
1100 |
int process_message(struct transport *tp, char *username, int max_size, |
1112 |
int process_message(struct transport *tp, char *username, char *userprefs, int max_size, |
1101 |
int in_fd, int out_fd, const int my_check_only, |
1113 |
int in_fd, int out_fd, const int my_check_only, |
1102 |
const int my_safe_fallback) |
1114 |
const int my_safe_fallback) |
1103 |
{ |
1115 |
{ |
Lines 1109-1115
Link Here
|
1109 |
if (my_safe_fallback) |
1121 |
if (my_safe_fallback) |
1110 |
flags |= SPAMC_SAFE_FALLBACK; |
1122 |
flags |= SPAMC_SAFE_FALLBACK; |
1111 |
|
1123 |
|
1112 |
return message_process(tp, username, max_size, in_fd, out_fd, flags); |
1124 |
return message_process(tp, username, userprefs, max_size, in_fd, out_fd, flags); |
1113 |
} |
1125 |
} |
1114 |
|
1126 |
|
1115 |
/* |
1127 |
/* |