By letting y=0 in (1), we have f(x)⋅f(0)=f(−1)+xf(0).
We distinguish two cases regarding the value of f(0).
Case 1. f(0)=0 implies f(x)=x+c for all x∈R with c is constant, which is not a solution.
Case 2. f(0)=0 implies f(−1)=0.
By plugging x=y=1 into (1), we get f(1)2=2f(1), so f(1)=0 or f(1)=2. From (1), the substitution y=−1 yields
f(−y−1)=f(y),∀y∈R.(2)
Replacing y by −y−1 in (1), we get
f(x)f(−y−1)=f(−x(y+1)−1)+xf(−y−1)−(y+1)f(x).
Thus, it follows from (2)
f(xy−1)+yf(x)=f(xy+x)−(y+1)f(x),∀x,y∈R.(3)
Let x=−1, replacing x by x+1 and y by x+11 in (3), we have
f(x−1)=x+1x−1f(x),∀x=−1.
On the other hand, we set y=1 in (1) and get
f(x)⋅f(1)=f(x−1)+x⋅f(1)+f(x)=x+1x−1⋅f(x)+x⋅f(1)+f(x),∀x=−1.(4)
* If f(1)=0 then f=0 because (4) and f(−1)=0.
* If f(1)=2 then f(x)=x(x+1) because (4) and f(−1)=0.
It is easy to see that f(x)≡0 and f(x)=x(x+1) satisfied (1). □