summaryrefslogtreecommitdiff
path: root/common.c
diff options
context:
space:
mode:
authorGravatar moon <moon@coffin.ir> 2025-09-13 00:51:54 +0330
committerGravatar moon <moon@coffin.ir> 2025-09-13 00:51:54 +0330
commit59a134f2d68a6b27e8bd4e2c31794bd8f2dad6e8 (patch)
tree07a85376425a0393ce2557e87adb6a7dd0aa4a02 /common.c
parentbug fixes (diff)
new things
Diffstat (limited to 'common.c')
-rw-r--r--common.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/common.c b/common.c
index 183cfb2..27f2734 100644
--- a/common.c
+++ b/common.c
@@ -6,6 +6,8 @@
#include <stdio.h>
#include <string.h>
#include <time.h>
+//
+#include "omen.c"
#define likely(A) __builtin_expect(A, 1)
#define unlikely(A) __builtin_expect(A, 0)
@@ -421,4 +423,26 @@ static inline uint16_t read_u16_le(const byte *b) {
static inline void write_u16_le(byte *b, uint16_t v) {
b[ 0 ] = v & 0xFF;
b[ 1 ] = (v >> 8) & 0xFF;
-} \ No newline at end of file
+}
+
+struct relay_info run_server_audit(const char* ip, int port) {
+ byte data[] = { audit_server, 0, 0, 0, 0, 0, 0, 0 };
+ byte* response = NULL;
+ size_t resp_len = 0;
+ bool success;
+
+ int ret = study(ip, port, data, sizeof(data), &response, &resp_len);
+ if (ret != 0) {
+ printf("error: study returned %i\n", ret);
+ if (response) free(response);
+ return (struct relay_info) { 0 };
+ }
+
+ struct relay_info info = s2relay_info(resp_len - 1, response + 1, &success);
+ if (!success) { printf("error: failed to deserialize relay_info\n"); }
+
+ free(response);
+ return info;
+}
+
+pthread_mutex_t packet_storage_mutex = PTHREAD_MUTEX_INITIALIZER; \ No newline at end of file