For now, the second part is not yet done:
> - make the decision if sop_add is sent as a <Replace> or a <Add>
> depending
> on a config option, so we can use both variants (of course, only
> for clients).
>
> - only in case we disguise sop_add as <Replace>, apply the statistics
> workaround when checking for status.
>
So now, the engine runs in "100% clean behaviour" mode. I guess it
makes sense to test with your target servers if there is any problem
with this. If so, just let me know and I'll add the config option
quickly. Otherwise, I'll keep it on a todo list for future improvements.
Lukas, the test results show good results for the this clean behavior, no
regressions is found.
The remaining problem is: even we really send "sop_add" as <Add>, it does
not help the statistics problem. The server (google) still responds with a status 200
instead of 201, which we will still count it as update instead of add.
What's the potential case when the client sends <Add> and the server *correctly*
responds with 200 meaning an update at server side? I have checked the spec and not found
such case. So can we just workaround this as counting 200 as Add for a sop_add?