NEWS
====
+----------------------------------------------
+0.7.3 (to be announced) "weighted correctness"
+----------------------------------------------
+
+- Old style PEM keys are now deprecated. They still work but their
+ use results in a run-time warning. The removal of PEM key support is
+ scheduled for paraslash-0.8.0.
+- Version 1.0 of the openssl library has been deprecated. A warning
+ is printed at compile-time on systems which have this outdated version
+ because it will no longer be supported once paraslash-0.8.0 comes out.
++- A spring cleanup for the senescent code in fd.c.
+
+Downloads:
+[tarball](./releases/paraslash-git.tar.xz)
+
-------------------------------------
0.7.2 (2023-03-08) "optical friction"
-------------------------------------
mode = PLAY_MODE_MOOD;
} else {
ret = -ERRNO_TO_PARA_ERROR(EINVAL);
- msg = make_message("%s: parse error", arg);
+ msg = make_message("%s: parse error\n", arg);
}
if (pb)
para_printf(pb, "%s", msg);
{
int ret = activate_mood_or_playlist(arg, NULL);
if (ret < 0) {
- PARA_WARNING_LOG("could not activate %s: %s\n", arg,
- para_strerror(-ret));
+ PARA_WARNING_LOG("could not activate %s: %s\n", arg?
+ arg : "dummy", para_strerror(-ret));
if (arg)
activate_mood_or_playlist(NULL, NULL);
}
PARA_INFO_LOG("afs_database dir %s\n", database_dir);
}
- static int make_database_dir(void)
- {
- int ret;
-
- get_database_dir();
- ret = para_mkdir(database_dir, 0777);
- if (ret >= 0 || ret == -ERRNO_TO_PARA_ERROR(EEXIST))
- return 1;
- return ret;
- }
-
static int open_afs_tables(void)
{
int i, ret;
ret = schedule(&s);
sched_shutdown(&s);
mood_unload();
+ playlist_unload();
out_close:
close_afs_tables();
out:
.size = sizeof(table_mask)};
unsigned num_inputs = lls_num_inputs(lpr);
- ret = make_database_dir();
+ get_database_dir();
+ ret = para_mkdir(database_dir);
if (ret < 0)
return ret;
if (num_inputs > 0) {
return false;
for (int i = 0; ct->features[i]; i++)
if (strcmp(feature, ct->features[i]) == 0)
- return i;
+ return true;
return false;
}
if (CLIENT_OPT_GIVEN(KEY_FILE, lpr))
kf = para_strdup(CLIENT_OPT_STRING_VAL(KEY_FILE, lpr));
else {
+ struct stat statbuf;
kf = make_message("%s/.paraslash/key.%s", home, user);
- if (!file_exists(kf)) {
+ if (stat(kf, &statbuf) != 0) { /* assume file does not exist */
free(kf);
kf = make_message("%s/.ssh/id_rsa", home);
}