Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support client version negotiate and check #256

Open
qinzuoyan opened this issue Jan 14, 2019 · 1 comment
Open

Support client version negotiate and check #256

qinzuoyan opened this issue Jan 14, 2019 · 1 comment
Assignees
Labels
type/enhancement Indicates new feature requests

Comments

@qinzuoyan
Copy link
Contributor

No description provided.

@qinzuoyan qinzuoyan added the type/enhancement Indicates new feature requests label Jan 14, 2019
@vagetablechicken
Copy link
Contributor

version negotiate和auth negotiate一样,同属于SS_NEGOTIATION阶段。出于简单性的考虑,version negotiate不单独增加开关用于平滑升级,因此认证功能开启就是既要version negotiate也要auth negotiate。

初步设想为:

// version negotiation process:
//
//                       client               server
//                          | ---- VERSION ---> |
//                          | <-- MATCH/MIS --- |

enum version_nego_status
{
    INVALID = 0,
    MISMATCH,
    MATCH
}

struct version_nego_message
{
    1: version_nego_status status;
    2: string version;
}

也就是说client告诉server自己的版本号,server经过check后回答MATCH或MISMATCH。这样一问一答即可完成版本协商。

但version check这一步需要斟酌,原因是:version是pegasus的version,而check这一步却在rdsn的rpc_session层。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement Indicates new feature requests
Projects
None yet
Development

No branches or pull requests

2 participants