@@ -24,11 +24,6 @@ typedef struct encryption_request_response_writable {
2424 uint8_t should_authenticate ;
2525} encryptionRequestResponseWritable ;
2626
27- typedef struct len_data_pair {
28- size_t len ;
29- uint8_t * data ;
30- } lenDataPair ;
31-
3227/* enum SERVER_STATE { */
3328/* STATE_STATUS = 1, */
3429/* STATE_LOGIN = 2, */
@@ -38,13 +33,6 @@ typedef struct len_data_pair {
3833//-------------------------------------
3934//-----PRIVATE UTIL PREDECLARATION-----
4035//-------------------------------------
41-
42- lenDataPair * * parse_generic_packet_body (
43- const uint8_t * body ,
44- size_t body_len ,
45- int num_pairs
46- );
47-
4836uint8_t * get_handshake_packet_body (
4937 int protocol_version ,
5038 const char server_addr [255 ],
@@ -66,9 +54,9 @@ uint8_t* get_handshake_packet_body(int protocol_version, const char server_addr[
6654
6755 size_t server_address_len = strnlen (server_addr , 254 ) + 1 ;
6856
69- Varint * protocol_version_vint = varint_int_to_vint (protocol_version );
70- Varint * server_addr_len_vint = varint_int_to_vint (server_address_len );
71- Varint * next_state_vint = varint_int_to_vint (next_state );
57+ Varint * protocol_version_vint = varint_vint_from_int (protocol_version );
58+ Varint * server_addr_len_vint = varint_vint_from_int (server_address_len );
59+ Varint * next_state_vint = varint_vint_from_int (next_state );
7260
7361
7462 * buff_len =
@@ -98,81 +86,10 @@ uint8_t* get_handshake_packet_body(int protocol_version, const char server_addr[
9886 return buff ;
9987}
10088
101-
102- lenDataPair * * parse_generic_packet_body (
103- const uint8_t * body ,
104- size_t body_len ,
105- int num_pairs
106- ) {
107- bool failure = false;
108-
109- lenDataPair * * result = malloc (sizeof (lenDataPair * ) * num_pairs );
110- failure = !c_assert (
111- result != NULL ,
112- "Could not allocate space for array of lenDataPair pointers"
113- );
114-
115- if (failure ) {
116- return NULL ;
117- }
118-
119- size_t offset = 0 ;
120- int i = 0 ;
121- for (; i < num_pairs && body_len && !failure ; i ++ ) {
122- result [i ] = malloc (sizeof (lenDataPair ));
123- failure = !c_assert (
124- result != NULL ,
125- "Could not allocate space for lenDataPair"
126- );
127- if (failure ) break ;
128-
129- int chunk_len = varint_bytes_to_int (body );
130- failure = !c_assert (
131- chunk_len >= 0 ,
132- "Could beginning of chunk to varint"
133- );
134- if (failure ) break ;
135- offset += chunk_len ;
136-
137- result [i ]-> len = chunk_len ;
138- result [i ]-> data = malloc (chunk_len );
139- failure = !c_assert (
140- result [i ]-> data != NULL ,
141- "Could not allocate chunk body"
142- );
143- if (failure ) break ;
144-
145- memcpy (result [i ]-> data , body + offset , chunk_len );
146- offset += chunk_len ;
147- }
148-
149- if (failure ) {
150- //don't go freeing all the way, we need to be careful with
151- //freeing the last bit of data
152- for (int j = 0 ; j < i - 1 ; j ++ ) {
153- free (result [j ]-> data );
154- free (result [j ]);
155- }
156-
157- if (result [i - 1 ] != NULL ) {
158- if (result [i - 1 ]-> data != NULL ) {
159- free (result [i - 1 ]-> data );
160- }
161- free (result [i - 1 ]);
162- }
163-
164- free (result );
165- }
166-
167- return failure ? NULL : result ;
168- }
169-
170-
171-
17289//----------------------------
17390//----- PUBLIC FUNCTIONS -----
17491//----------------------------
175- //
92+
17693bool mc_protocol_handshake_custom (
17794 int sock ,
17895 const char * server_addr ,
@@ -267,7 +184,7 @@ bool mc_protocol_login_request(
267184 }
268185
269186 size_t username_length = strnlen (username , MAX_USERNAME_LENGTH );
270- Varint * username_length_vint = varint_int_to_vint (username_length );
187+ Varint * username_length_vint = varint_vint_from_int (username_length );
271188 bool error = !c_assert (
272189 username_length_vint != NULL ,
273190 "Could not convert username length into a varint"
0 commit comments