  Computing \emph{all best swap edges} (ABSE) of a spanning tree $T$ of a given
$n$-vertex and $m$-edge undirected and weighted graph $G$ means to select, for
each edge $e$ of $T$, a corresponding non-tree edge $f$, in such a way that the
tree obtained by replacing $e$ with $f$ enjoys some optimality criterion (which
is naturally defined according to some objective function originally addressed
by $T$). Solving efficiently an ABSE problem is by now a classic algorithmic
issue, since it conveys a very successful way of coping with a (transient)
\emph{edge failure} in tree-based communication networks: just replace the
failing edge with its respective swap edge, so as that the connectivity is
promptly reestablished by minimizing the rerouting and set-up costs. In this
paper, we solve the ABSE problem for the case in which $T$ is a
\emph{single-source shortest-path tree} of $G$, and our two selected swap
criteria aim to minimize either the \emph{maximum} or the \emph{average
stretch} in the swap tree of all the paths emanating from the source. Having
these criteria in mind, the obtained structures can then be reviewed as
\emph{edge-fault-tolerant single-source spanners}. For them, we propose two
efficient algorithms running in $O(m n +n^2 \log n)$ and $O(m n \log
\alpha(m,n))$ time, respectively, and we show that the guaranteed (either
maximum or average, respectively) stretch factor is equal to 3, and this is
tight. Moreover, for the maximum stretch, we also propose an almost linear $O(m
\log \alpha(m,n))$ time algorithm computing a set of \emph{good} swap edges,
each of which will guarantee a relative approximation factor on the maximum
stretch of $3/2$ (tight) as opposed to that provided by the corresponding BSE.
Surprisingly, no previous results were known for these two very natural swap
problems.
