From f71b16fd5d7743b99b85ba921cb565f7b82acf13 Mon Sep 17 00:00:00 2001 From: Phillip Heller Date: Sat, 4 Oct 2025 21:50:40 -0600 Subject: [PATCH] Handle birthdate omitted during enrollment; treat 999999 as nil. Fixes #112. --- apps/server/lib/prodigy/server/service/profile.ex | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/server/lib/prodigy/server/service/profile.ex b/apps/server/lib/prodigy/server/service/profile.ex index 1e2cd58..e58e463 100644 --- a/apps/server/lib/prodigy/server/service/profile.ex +++ b/apps/server/lib/prodigy/server/service/profile.ex @@ -1,4 +1,4 @@ -# Copyright 2022, Phillip Heller +# Copyright 2022-2025, Phillip Heller # # This file is part of Prodigy Reloaded. # @@ -41,6 +41,8 @@ defmodule Prodigy.Server.Service.Profile do Timex.parse!(input, "{0M}{0D}{YY}") |> Timex.to_date() end + defp to2digitdate("999999"), do: nil # enrollment sends this when client omits birthdate + defp to2digitdate(input) do parsed_date = todate(input) if parsed_date.year >= 2039 do @@ -173,7 +175,7 @@ defmodule Prodigy.Server.Service.Profile do def get_tac(tac, user, household) do res = get_value(tac, user, household) - <> <> + res = <> <> case res do nil -> <<0x0>> _ -> <> @@ -275,6 +277,8 @@ defmodule Prodigy.Server.Service.Profile do 0x2C2 -> user.prf_last_logon_date 0x2C4 -> user.prf_last_logon_time 0x2FB -> user.prf_madmaze_save + 0x183 -> "0H12AX6" + 0x18A -> " " _ -> Logger.error("User requested profile value for unhandled TAC #{inspect(tac, base: :hex)}")