summaryrefslogtreecommitdiff
path: root/ecp/src/ecp/dir.h
diff options
context:
space:
mode:
Diffstat (limited to 'ecp/src/ecp/dir.h')
-rw-r--r--ecp/src/ecp/dir.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/ecp/src/ecp/dir.h b/ecp/src/ecp/dir.h
index 2fcc50f..e9f8e1e 100644
--- a/ecp/src/ecp/dir.h
+++ b/ecp/src/ecp/dir.h
@@ -1,5 +1,11 @@
-#define ECP_MAX_DIR_ITEM 30
-#define ECP_SIZE_DIR_ITEM 40
+#define ECP_MAX_DIR_ITEM 30
+#define ECP_SIZE_DIR_ITEM 40
+
+#define ECP_MTYPE_DIR_UPD 0x00
+#define ECP_MTYPE_DIR_REQ 0x01
+#define ECP_MTYPE_DIR_REP 0x02
+
+#define ECP_CTYPE_DIR (0x00 | ECP_CTYPE_FLAG_SYS)
typedef struct ECPDirItem {
ECPNode node;
@@ -12,7 +18,15 @@ typedef struct ECPDirList {
} ECPDirList;
ssize_t ecp_dir_parse(ECPDirList *list, unsigned char *buf, size_t buf_size);
-int ecp_dir_serialize(ECPDirList *list, unsigned char *buf, size_t buf_size);
+ssize_t ecp_dir_serialize(ECPDirList *list, unsigned char *buf, size_t buf_size);
void ecp_dir_item_parse(ECPDirItem *item, unsigned char *buf);
void ecp_dir_item_serialize(ECPDirItem *item, unsigned char *buf);
+
+ssize_t ecp_dir_handle(ECPConnection *conn, unsigned char *msg, size_t msg_size, ECP2Buffer *b);
+
+int ecp_dir_handle_open(ECPConnection *conn, ECP2Buffer *b);
+ssize_t ecp_dir_handle_msg(ECPConnection *conn, ecp_seq_t seq, unsigned char mtype, unsigned char *msg, size_t msg_size, ECP2Buffer *b);
+
+ssize_t ecp_dir_send_req(ECPConnection *conn);
+int ecp_dir_get(ECPConnection *conn, ECPSocket *sock, ECPNode *node); \ No newline at end of file