X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=test%2Fsmtp-dummy.c;h=1c89e9af81232add629fa49d3f818a096ae27d85;hp=71992edd1d968d5d0d14907ef505f0a0427f3051;hb=11ac932a4503872c19987b843d58513c4b9ef76f;hpb=c3a683299d4c27d6eadaacf4fb516f73a6c69fc3 diff --git a/test/smtp-dummy.c b/test/smtp-dummy.c index 71992edd..1c89e9af 100644 --- a/test/smtp-dummy.c +++ b/test/smtp-dummy.c @@ -129,6 +129,7 @@ main (int argc, char *argv[]) int reuse; int background; int ret = 0; + socklen_t addrlen; progname = argv[0]; @@ -191,7 +192,7 @@ main (int argc, char *argv[]) memset (&addr, 0, sizeof (addr)); addr.sin_family = AF_INET; - addr.sin_port = htons (25025); + addr.sin_port = 0; addr.sin_addr = *(struct in_addr *) hostinfo->h_addr; err = bind (sock, (struct sockaddr *) &addr, sizeof (addr)); if (err) { @@ -202,6 +203,18 @@ main (int argc, char *argv[]) goto DONE; } + addrlen = sizeof (addr); + err = getsockname (sock, (struct sockaddr *) &addr, &addrlen); + if (err) { + fprintf (stderr, "Error: getsockname() failed: %s\n", + strerror (errno)); + close (sock); + ret = 1; + goto DONE; + } + + printf ("smtp_dummy_port='%d'\n", ntohs (addr.sin_port)); + err = listen (sock, 1); if (err) { fprintf (stderr, "Error: listen() failed: %s\n", @@ -262,7 +275,7 @@ main (int argc, char *argv[]) do_smtp_to_file (peer_file, output); - DONE: + DONE: if (output) fclose (output); if (peer_file)