]> git.notmuchmail.org Git - notmuch/blobdiff - test/smtp-dummy.c
test: Add a test script for "notmuch tag"
[notmuch] / test / smtp-dummy.c
index e58d0ad68d7b606650b4e04c19a1c64bc6d57286..3801a5e066c7c8fe1804ca3306e250fb0eb962f7 100644 (file)
@@ -71,7 +71,7 @@ static int
 process_command (FILE *peer, FILE *output, const char *command)
 {
        if (STRNCMP_LITERAL (command, "EHLO ") == 0) {
-               fprintf (peer, "502\r\n");
+               fprintf (peer, "502 not implemented\r\n");
                fflush (peer);
        } else if (STRNCMP_LITERAL (command, "HELO ") == 0) {
                fprintf (peer, "250 localhost\r\n");
@@ -99,9 +99,6 @@ process_command (FILE *peer, FILE *output, const char *command)
 static void
 do_smtp_to_file (FILE *peer, FILE *output)
 {
-       char buf[4096];
-       ssize_t bytes;
-       char greeting[] = "220 localhost smtp-dummy\r\n";
        char *line = NULL;
        size_t line_size;
        ssize_t line_len;
@@ -130,7 +127,7 @@ main (int argc, char *argv[])
 
        if (argc != 2) {
                fprintf (stderr, "Usage: %s <output-file>\n", argv[0]);
-               exit (1);
+               return 1;
        }
 
        output_filename = argv[1];
@@ -138,14 +135,14 @@ main (int argc, char *argv[])
        if (output == NULL) {
                fprintf (stderr, "Failed to open %s for writing: %s\n",
                         output_filename, strerror (errno));
-               exit (1);
+               return 1;
        }
 
        sock = socket (AF_INET, SOCK_STREAM, 0);
        if (sock == -1) {
                fprintf (stderr, "Error: socket() failed: %s\n",
                         strerror (errno));
-               exit (1);
+               return 1;
        }
 
        reuse = 1;
@@ -153,15 +150,16 @@ main (int argc, char *argv[])
        if (err) {
                fprintf (stderr, "Error: setsockopt() failed: %s\n",
                         strerror (errno));
-               exit (1);
+               return 1;
        }
 
        hostinfo = gethostbyname ("localhost");
        if (hostinfo == NULL) {
                fprintf (stderr, "Unknown host: localhost\n");
-               exit (1);
+               return 1;
        }
 
+       memset (&addr, 0, sizeof (addr));
        addr.sin_family = AF_INET;
        addr.sin_port = htons (25025);
        addr.sin_addr = *(struct in_addr *) hostinfo->h_addr;
@@ -170,7 +168,7 @@ main (int argc, char *argv[])
                fprintf (stderr, "Error: bind() failed: %s\n",
                         strerror (errno));
                close (sock);
-               exit (1);
+               return 1;
        }
 
        err = listen (sock, 1);
@@ -178,7 +176,7 @@ main (int argc, char *argv[])
                fprintf (stderr, "Error: listen() failed: %s\n",
                         strerror (errno));
                close (sock);
-               exit (1);
+               return 1;
        }
 
        peer_addr_len = sizeof (peer_addr);
@@ -186,14 +184,14 @@ main (int argc, char *argv[])
        if (peer == -1) {
                fprintf (stderr, "Error: accept() failed: %s\n",
                         strerror (errno));
-               exit (1);
+               return 1;
        }
 
        peer_file = fdopen (peer, "w+");
        if (peer_file == NULL) {
                fprintf (stderr, "Error: fdopen() failed: %s\n",
                         strerror (errno));
-               return;
+               return 1;
        }
 
        do_smtp_to_file (peer_file, output);