MCPcopy Create free account
hub / github.com/Tencent/phxsql / DecodedLengthBinary

Function DecodedLengthBinary

phxsqlproxy/phxsqlproxyutil.cpp:205–247  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

203}
204
205uint64_t DecodedLengthBinary(const char * buf, int len, int & len_field_size) {
206 uint8_t first_bit = (uint8_t)(buf[0]);
207 uint64_t package_len = 0;
208 switch (first_bit) {
209 case 251: {
210 package_len = 0;
211 len_field_size = 1;
212 break;
213 }
214 case 252: {
215 if (len < 3) {
216 package_len = -1;
217 } else {
218 memcpy(&package_len, buf + 1, sizeof(char) * 2);
219 len_field_size = 3;
220 }
221 break;
222 }
223 case 253: {
224 if (len < 4) {
225 package_len = -1;
226 } else {
227 memcpy(&package_len, buf + 1, sizeof(char) * 3);
228 len_field_size = 4;
229 }
230 break;
231 }
232 case 254: {
233 if (len < 9) {
234 package_len = -1;
235 } else {
236 memcpy(&package_len, buf + 1, sizeof(char) * 8);
237 len_field_size = 9;
238 }
239 break;
240 }
241 default:
242 package_len = first_bit;
243 len_field_size = 1;
244 break;
245 }
246 return package_len;
247}
248
249std::string UIntToStr(uint32_t i) {
250 char buf[16];

Callers 1

GetDBNameFromAuthBufMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected