X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/fd4c285cd86a1c06acaa34c33cb898c057208ec5..f41e05066084a6a1780b8a4df9c668bac2ecd606:/test/src/server.c diff --git a/test/src/server.c b/test/src/server.c index e425880a8..b94da5e68 100644 --- a/test/src/server.c +++ b/test/src/server.c @@ -173,6 +173,7 @@ line *last = NULL; line *s; FILE *in, *out; int linebuf = 1; +char *pidfile = NULL; char *sockname = NULL; unsigned char buffer[10240]; @@ -205,6 +206,7 @@ while (na < argc && argv[na][0] == '-') else if (strcmp(argv[na], "-i") == 0) initial_pause = atoi(argv[++na]); else if (strcmp(argv[na], "-noipv4") == 0) use_ipv4 = 0; else if (strcmp(argv[na], "-noipv6") == 0) use_ipv6 = 0; + else if (strcmp(argv[na], "-oP") == 0) pidfile = argv[++na]; else { printf("server: unknown option %s\n", argv[na]); @@ -409,6 +411,18 @@ for (i = 0; i <= skn; i++) } +if (pidfile) + { + FILE * p; + if (!(p = fopen(pidfile, "w"))) + { + fprintf(stderr, "pidfile create failed: %s\n", strerror(errno)); + exit(1); + } + fprintf(p, "%ld\n", (long)getpid()); + fclose(p); + } + /* This program handles only a fixed number of connections, in sequence. Before waiting for the first connection, read the standard input, which contains the script of things to do. A line containing "++++" is treated as end of file.