- if (!st->netlink->check_config(st->netlink->st,msg6)) {
- slog(st,LOG_SEC,"MSG6/PONG packet contained bad netlink config");
+ /* Older versions of secnet used to write some config data here
+ * which we ignore. So we don't CHECK_EMPTY */
+ return True;
+}
+
+static bool_t decrypt_msg0(struct site *st, struct buffer_if *msg0)
+{
+ cstring_t transform_err;
+ struct msg0 m;
+ uint32_t problem;
+
+ if (!unpick_msg0(st,msg0,&m)) return False;
+
+ problem = st->current_transform->reverse(st->current_transform->st,
+ msg0,&transform_err);
+ if (!problem) return True;
+
+ if (problem==2) {
+ slog(st,LOG_DROP,"transform: %s (merely skew)",transform_err);