diff -urN qmail-1.03-08/qmail-pop3d.c qmail-1.03/qmail-pop3d.c --- qmail-1.03-08/qmail-pop3d.c 2003-06-24 09:48:42.000000000 +0200 +++ qmail-1.03/qmail-pop3d.c 2003-06-24 09:49:11.000000000 +0200 @@ -277,8 +277,21 @@ close(fd); } +void pop3_capa(arg) char *arg; +{ + puts("+OK Capability list follows\r\n" + "TOP\r\n" + "UIDL\r\n" + "LAST\r\n" + "USER\r\n" + "APOP\r\n" + ".\r\n"); + flush(); +} + struct commands pop3commands[] = { { "quit", pop3_quit, 0 } +, { "capa", pop3_capa, 0 } , { "stat", pop3_stat, 0 } , { "list", pop3_list, 0 } , { "uidl", pop3_uidl, 0 } diff -urN qmail-1.03-08/qmail-popup.c qmail-1.03/qmail-popup.c --- qmail-1.03-08/qmail-popup.c 1998-06-15 12:53:16.000000000 +0200 +++ qmail-1.03/qmail-popup.c 2003-06-24 09:49:15.000000000 +0200 @@ -155,11 +155,23 @@ *space++ = 0; doanddie(arg,space - arg,space); } +void pop3_capa(arg) char *arg; +{ + puts("+OK Capability list follows\r\n" + "TOP\r\n" + "UIDL\r\n" + "LAST\r\n" + "USER\r\n" + "APOP\r\n" + ".\r\n"); + flush(); +} struct commands pop3commands[] = { { "user", pop3_user, 0 } , { "pass", pop3_pass, 0 } , { "apop", pop3_apop, 0 } +, { "capa", pop3_capa, 0 } , { "quit", pop3_quit, 0 } , { "noop", okay, 0 } , { 0, err_authoriz, 0 }