Yes, I should have been more careful about that point.

So we have

and suppose we are interested in all integer solutions. First note that there are trivial solutions

for all integers

. Without loss of generality we can consider just solutions in positive integers for the non-trivial solutions. It can be seen that if

satisfies, then

satisfies for any positive integer

, thus we can obtain all non-trivial solutions from the

*primitive* solutions having

. (This is standard use of the term primitive.) As for the problem statement restricting

to odd; I don't know what the motivation is for that, but we can just discard any solutions for which

is even at the very end.

Now for the actual proof/derivation I mentioned earlier. Disclaimer is that my solution method is not original.

Let

and

, from which we obtain

This is an equation of an ellipse; solutions to the problem correspond with points on the ellipse. Consider the point

on the ellipse. A parametrisation for all lines through

with slope

is

. The intersection of the line with the ellipse is given by

and

It can be seen that if

is rational then

and

are rational. Replace

with

and we have

which simplifies to

Now we can take the parametrisation

. Let

. Then we have a parametrisation for primitive solutions

. We must choose positive integers

and

such that

Restricting

, we obtain all primitive triples uniquely.