Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions live/root/etc/systemd/system/agama-certificate-wait.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[Unit]
Description=Postpone login prompt after the SSL fingerprint issue is generated

After=agama-web-server.service

# copied from YaST2-Second-Stage.service
Before=getty@tty1.service
Before=getty@tty2.service
Before=getty@tty3.service
Before=getty@tty4.service
Before=getty@tty5.service
Before=getty@tty6.service
Before=serial-getty@hvc0.service
Before=serial-getty@sclp_line0.service
Before=serial-getty@ttyAMA0.service
Before=serial-getty@ttyS0.service
Before=serial-getty@ttyS1.service
Before=serial-getty@ttyS2.service
Before=serial-getty@ttysclp0.service

[Service]
Type=oneshot
# wait at most 15 seconds to not block
ExecStart=agama-issue-generator --wait-for-ssl 15

[Install]
WantedBy=default.target
10 changes: 10 additions & 0 deletions live/root/usr/bin/agama-issue-generator
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,14 @@ generate_network_url() {
fi
}

# wait until the SSL fingreprint issue is create, but at most 10 seconds
wait_for_ssl_issue() {
for i in $(seq 1 "$1"); do
[ -f "$CERT_ISSUE" ] && exit 0
sleep 1
done
}

# make sure the parent directory for the issues exists
mkdir -p /run/issue.d

Expand All @@ -159,6 +167,8 @@ elif [ "$1" = "--ssh" ]; then
generate_ssh_fingerprints
elif [ "$1" = "--ssl" ]; then
generate_certificate_fingerprints
elif [ "$1" = "--wait-for-ssl" ]; then
wait_for_ssl_issue "$2"
elif [ "$1" = "--network" ]; then
generate_network_url "$2" "$3"
elif [ "$1" = "--watch-avahi" ]; then
Expand Down
1 change: 1 addition & 0 deletions live/src/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ systemctl enable agama-auto.service
systemctl enable agama-hostname.service
systemctl enable agama-proxy-setup.service
systemctl enable agama-certificate-issue.path
systemctl enable agama-certificate-wait.service
systemctl enable agama-welcome-issue.service
systemctl enable agama-avahi-issue.service
systemctl enable agama-ssh-issue.service
Expand Down