projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: there is, not their is
[tinc]
/
src
/
fsck.c
diff --git
a/src/fsck.c
b/src/fsck.c
index
205a599
..
e5e7dd5
100644
(file)
--- a/
src/fsck.c
+++ b/
src/fsck.c
@@
-216,6
+216,7
@@
int fsck(const char *argv0) {
return 1;
}
return 1;
}
+#if !defined(HAVE_MINGW) && !defined(HAVE_CYGWIN)
if(st.st_mode & 077) {
fprintf(stderr, "WARNING: unsafe file permissions on %s.\n", fname);
if(st.st_uid != uid) {
if(st.st_mode & 077) {
fprintf(stderr, "WARNING: unsafe file permissions on %s.\n", fname);
if(st.st_uid != uid) {
@@
-227,6
+228,7
@@
int fsck(const char *argv0) {
fprintf(stderr, "Fixed permissions of %s.\n", fname);
}
}
fprintf(stderr, "Fixed permissions of %s.\n", fname);
}
}
+#endif
}
#endif
}
#endif
@@
-255,6
+257,7
@@
int fsck(const char *argv0) {
return 1;
}
return 1;
}
+#if !defined(HAVE_MINGW) && !defined(HAVE_CYGWIN)
if(st.st_mode & 077) {
fprintf(stderr, "WARNING: unsafe file permissions on %s.\n", fname);
if(st.st_uid != uid) {
if(st.st_mode & 077) {
fprintf(stderr, "WARNING: unsafe file permissions on %s.\n", fname);
if(st.st_uid != uid) {
@@
-266,6
+269,7
@@
int fsck(const char *argv0) {
fprintf(stderr, "Fixed permissions of %s.\n", fname);
}
}
fprintf(stderr, "Fixed permissions of %s.\n", fname);
}
}
+#endif
}
#ifdef DISABLE_LEGACY
}
#ifdef DISABLE_LEGACY
@@
-281,7
+285,7
@@
int fsck(const char *argv0) {
}
// Check for public keys.
}
// Check for public keys.
- // TODO: use RSAPublicKeyFile
and Ed25519PublicKeyFile variables
if present.
+ // TODO: use RSAPublicKeyFile
variable
if present.
snprintf(fname, sizeof fname, "%s/hosts/%s", confbase, name);
if(access(fname, R_OK))
snprintf(fname, sizeof fname, "%s/hosts/%s", confbase, name);
if(access(fname, R_OK))
@@
-293,9
+297,10
@@
int fsck(const char *argv0) {
rsa_t *rsa_pub = NULL;
f = fopen(fname, "r");
rsa_t *rsa_pub = NULL;
f = fopen(fname, "r");
- if(f)
+ if(f)
{
rsa_pub = rsa_read_pem_public_key(f);
rsa_pub = rsa_read_pem_public_key(f);
- fclose(f);
+ fclose(f);
+ }
if(rsa_priv) {
if(!rsa_pub) {
if(rsa_priv) {
if(!rsa_pub) {
@@
-342,14
+347,18
@@
int fsck(const char *argv0) {
fprintf(stderr, "WARNING: A public RSA key was found but no private key is known.\n");
}
#endif
fprintf(stderr, "WARNING: A public RSA key was found but no private key is known.\n");
}
#endif
- //
- // TODO: this should read the Ed25519PublicKey config variable instead.
+
ecdsa_t *ecdsa_pub = NULL;
f = fopen(fname, "r");
ecdsa_t *ecdsa_pub = NULL;
f = fopen(fname, "r");
- if(f)
- ecdsa_pub = ecdsa_read_pem_public_key(f);
- fclose(f);
+ if(f) {
+ ecdsa_pub = get_pubkey(f);
+ if(!ecdsa_pub) {
+ rewind(f);
+ ecdsa_pub = ecdsa_read_pem_public_key(f);
+ }
+ fclose(f);
+ }
if(ecdsa_priv) {
if(!ecdsa_pub) {
if(ecdsa_priv) {
if(!ecdsa_pub) {