status response
This commit is contained in:
parent
209c3e8bdb
commit
4ee7f7a1e9
34
main.c
34
main.c
|
@ -3,6 +3,7 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <time.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
#define PORT 6969
|
#define PORT 6969
|
||||||
|
@ -145,9 +146,22 @@ void write_String(int client_fd, const char* str, int len)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void write_Long(int client_fd, int64_t value)
|
||||||
|
{
|
||||||
|
(void) client_fd;
|
||||||
|
request[req_current_byte] = value;
|
||||||
|
req_current_byte += 8;
|
||||||
|
}
|
||||||
|
|
||||||
void send_request(int client_fd)
|
void send_request(int client_fd)
|
||||||
{
|
{
|
||||||
write(client_fd, request, req_current_byte);
|
write(client_fd, request, req_current_byte);
|
||||||
|
|
||||||
|
printf("[INFO] %d byte request sent: ", req_current_byte);
|
||||||
|
print_hex((const char*) request, req_current_byte > 10 ? 10 : req_current_byte);
|
||||||
|
printf("...\n");
|
||||||
|
|
||||||
|
req_current_byte = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
File read_entire_file(const char *filename)
|
File read_entire_file(const char *filename)
|
||||||
|
@ -155,7 +169,7 @@ File read_entire_file(const char *filename)
|
||||||
FILE *f = fopen(filename, "r");
|
FILE *f = fopen(filename, "r");
|
||||||
fseek(f, 0, SEEK_END);
|
fseek(f, 0, SEEK_END);
|
||||||
long fsize = ftell(f);
|
long fsize = ftell(f);
|
||||||
fseek(f, 0, SEEK_SET); /* same as rewind(f); */
|
fseek(f, 0, SEEK_SET);
|
||||||
|
|
||||||
char *string = malloc(fsize);
|
char *string = malloc(fsize);
|
||||||
fread(string, fsize, 1, f);
|
fread(string, fsize, 1, f);
|
||||||
|
@ -246,12 +260,24 @@ int main()
|
||||||
write_String(client_fd, status_rep.data, status_rep.len);
|
write_String(client_fd, status_rep.data, status_rep.len);
|
||||||
|
|
||||||
send_request(client_fd);
|
send_request(client_fd);
|
||||||
printf("[INFO] %d byte request sent: ", req_current_byte);
|
|
||||||
print_hex((const char*) request, 10);
|
|
||||||
printf("...\n");
|
|
||||||
|
|
||||||
file_free(status_rep);
|
file_free(status_rep);
|
||||||
|
|
||||||
|
int request_status_len = read_VarInt(client_fd);
|
||||||
|
int request_status_id = read_VarInt(client_fd);
|
||||||
|
printf("[MCPACKET %d] packet length: %d\n", request_status_id, request_status_len);
|
||||||
|
if (request_status_id != 0 || request_status_len != 1) {
|
||||||
|
printf("[ERR] client not in the status state\n");
|
||||||
|
close_connection(client_fd);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
write_VarInt(client_fd, 1 /*packet id*/ + 8 /*Long len*/);
|
||||||
|
write_VarInt(client_fd, 1); // protocol id
|
||||||
|
write_Long(client_fd, (long)time(NULL));
|
||||||
|
|
||||||
|
send_request(client_fd);
|
||||||
|
|
||||||
close_connection(client_fd);
|
close_connection(client_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
"online": 1,
|
"online": 1,
|
||||||
"sample": [
|
"sample": [
|
||||||
{
|
{
|
||||||
"name": "caca player 69 ?",
|
"name": "Le caca est cuit ?",
|
||||||
"id": "83e2e372-1df3-485d-a360-d9c4caf8b8c4"
|
"id": "83e2e372-1df3-485d-a360-d9c4caf8b8c4"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -16,6 +16,6 @@
|
||||||
"description": {
|
"description": {
|
||||||
"text": "caca serveur minecraft en \u00a72C"
|
"text": "caca serveur minecraft en \u00a72C"
|
||||||
},
|
},
|
||||||
"favicon": "data:image/png;base64,<data>",
|
"favicon": "data:image/png;base64,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",
|
||||||
"enforcesSecureChat": false
|
"enforcesSecureChat": false
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue