MCPcopy Create free account
hub / github.com/MariaDB/server / do_authorization

Method do_authorization

plugin/handler_socket/handlersocket/hstcpsvr_worker.cpp:912–945  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

910}
911
912void
913hstcpsvr_worker::do_authorization(char *start, char *finish,
914 hstcpsvr_conn& conn)
915{
916 /* auth type */
917 char *const authtype_begin = start;
918 read_token(start, finish);
919 char *const authtype_end = start;
920 const size_t authtype_len = authtype_end - authtype_begin;
921 skip_one(start, finish);
922 /* key */
923 char *const key_begin = start;
924 read_token(start, finish);
925 char *const key_end = start;
926 const size_t key_len = key_end - key_begin;
927 authtype_end[0] = 0;
928 key_end[0] = 0;
929 char *wp = key_begin;
930 unescape_string(wp, key_begin, key_end);
931 if (authtype_len != 1 || authtype_begin[0] != '1') {
932 return conn.dbcb_resp_short(3, "authtype");
933 }
934 if (cshared.plain_secret.size() == key_len &&
935 memcmp(cshared.plain_secret.data(), key_begin, key_len) == 0) {
936 conn.authorized = true;
937 } else {
938 conn.authorized = false;
939 }
940 if (!conn.authorized) {
941 return conn.dbcb_resp_short(3, "unauth");
942 } else {
943 return conn.dbcb_resp_short(0, "");
944 }
945}
946
947hstcpsvr_worker_ptr
948hstcpsvr_worker_i::create(const hstcpsvr_worker_arg& arg)

Callers

nothing calls this directly

Calls 6

skip_oneFunction · 0.85
unescape_stringFunction · 0.85
dbcb_resp_shortMethod · 0.80
read_tokenFunction · 0.50
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected