annotate src/master/ssl-init-main.c @ 3992:04958ae9a2e3 HEAD

Fix building without ssl support
author Timo Sirainen <tss@iki.fi>
date Tue, 07 Feb 2006 14:38:04 +0200
parents e93e39326ae1
children b02af502bcd6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3989
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 /* Copyright (C) 2006 Timo Sirainen */
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "lib.h"
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 #include "lib-signals.h"
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 #include "randgen.h"
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 #include "ssl-init.h"
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 #include <stdio.h>
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 #include <fcntl.h>
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 #include <unistd.h>
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 #include <sys/stat.h>
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
3992
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
13 #ifdef HAVE_SSL
3989
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 static void generate_parameters_file(const char *fname)
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 {
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 const char *temp_fname;
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 mode_t old_mask;
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 int fd;
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 temp_fname = t_strconcat(fname, ".tmp", NULL);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 (void)unlink(temp_fname);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 old_mask = umask(0);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 fd = open(temp_fname, O_WRONLY | O_CREAT | O_EXCL, 0644);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 umask(old_mask);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
27 if (fd == -1) {
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 i_fatal("Can't create temporary SSL parameters file %s: %m",
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 temp_fname);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30 }
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32 _ssl_generate_parameters(fd, temp_fname);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 if (close(fd) < 0)
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
35 i_fatal("close(%s) failed: %m", temp_fname);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
37 if (rename(temp_fname, fname) < 0)
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38 i_fatal("rename(%s, %s) failed: %m", temp_fname, fname);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
39
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
40 i_info("SSL parameters regeneration completed");
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
41 }
3992
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
42 #else
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
43 static void generate_parameters_file(const char *fname __attr_unused__)
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
44 {
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
45 i_fatal("Dovecot built without SSL support");
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
46 }
04958ae9a2e3 Fix building without ssl support
Timo Sirainen <tss@iki.fi>
parents: 3989
diff changeset
47 #endif
3989
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
48
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
49 int main(int argc, char *argv[])
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
50 {
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
51 lib_init();
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
52 i_set_failure_internal();
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
53
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
54 if (argc < 2)
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
55 i_fatal("Usage: ssl-build-param <path>");
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
56
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
57 random_init();
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
58 generate_parameters_file(argv[1]);
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
59
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
60 random_deinit();
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
61 lib_deinit();
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
62 return 0;
e93e39326ae1 Added ssl-build-param binary to build the ssl-parameters.dat. This way
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
63 }