Hi, Stipe.

Stipe Tolj wrote:
Vjacheslav Chekushin schrieb:

Hi, Stipe.
Cookies wsp packing/unpacking is the secondary problem.
The primary problem for me now is Encoding-Version support.
In wsp_headers.c Version-Encodning handled in some places, but not handled in
another impotent places. This is for example parameter packing, accept packing
and others. There is used hardcoded WSP_1_2 instead of real one.


ok, AFAIR, the state machine has the encoding version handled and we
pass this to wsp_headers_pack() as argument and that one uses
wsp_string_to_versioned_header() to select the right binary
representation for the header, right?!

I see that the problem is that the information about the
encoding-version is not available at places where it is needed to pass
the argument, since the state machine isn't present there. This is the
main "problem" about it, IMO.

Checking on how to elaborate this.


So Version-Encoding support is started but not completed. Is it planed to be
completed? Which way? Can I help?


Yes, please verify in how the state machine "attached"
encoding-version information can be "passed/used" within the calling
places where the specific encoding-version has to be passed into the
packing/unpacking routines.

First approach. The easy way is to add parameter wsp_version for every pack funcions. So in struct wsp_headers.h we need to change typedef int header_pack_func_t(Octstr *packed, Octstr *value); to typedef int header_pack_func_t(Octstr *packed, Octstr *value, int wsp_version);

And after that add this parameter to all packing functions.

Question: what to do with packing functions that doesn't need version
information at all (like wsp_pack_text())?

And for public packing functions (like the same wsp_pack_text) all calls for
these functions from other modules must be modified as well.

Second approach.
If we want to keep public functions untouched, we can do it, adding
to headerinfo structure additonal function like:
typedef int header_versioned_pack_func_t(Octstr *packed, Octstr *value, int wsp_version);


And than, if it is defined, call this function with wsp_version, else call
header_pack_func_t

What do you think?

--
Vjacheslav Chekushin                                mailto:[EMAIL PROTECTED]
Latvian Mobile Phone Company                        http://www.lmt.lv
VAS Technologies Division




Reply via email to