about summary refs log tree commit diff stats
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/handlers.h33
1 files changed, 31 insertions, 2 deletions
diff --git a/inc/handlers.h b/inc/handlers.h
index 6be05da..aecd964 100644
--- a/inc/handlers.h
+++ b/inc/handlers.h
@@ -7,6 +7,14 @@
 #define NBD_NBTPD_ARGS_PATH_MAX 768
 #define NBD_NBTPD_ARGS_MODE_MAX 32
 
+typedef enum opmode {
+	NOT_FOUND,
+	NETASCII,
+	OCTAL,
+	MAIL
+// any additional modes
+} nbd_opmode;
+
 typedef struct {
 	char path[NBD_NBTPD_ARGS_PATH_MAX];
 	char mode[NBD_NBTPD_ARGS_MODE_MAX];
@@ -14,9 +22,30 @@ typedef struct {
 	struct sockaddr_in client;
 } nbd_nbtpd_args;
 
-/// WARNING: use this only if you know what you are doing
+nbd_opmode get_mode(char *mode);
+
+
+/*!
+ *  WARNING: use this only if you know what you are doing
+ *  The actual function signature is `void read_req_resp(nbd_nbtpd_args *args)`
+ *  Invoke this function as a response to getting a new read request.
+ *  It opens a new UDP socket and reads file to transmit.
+ *  ```c
+ *  nbd_nbtpd_args *args = malloc(sizeof(nbd_nbtpd_args));
+ *  pthread_create(thread, attrs, read_req_resp, (void *)args);
+ *  ```
+ */
 void *read_req_resp(void *args);
-/// WARNING: use this only if you know what you are doing
+/*!
+ *  WARNING: use this only if you know what you are doing
+ *  The actual function signature is `void write_req_resp(nbd_nbtpd_args *args)`
+ *  Invoke this function as a response to getting a new write request.
+ *  It opens a new UDP socket, receives file to write to disk.
+ *  ```c
+ *  nbd_nbtpd_args *args = malloc(sizeof(nbd_nbtpd_args));
+ *  pthread_create(thread, attrs, write_req_resp, (void *)args);
+ *  ```
+ */
 void *write_req_resp(void *args);
 /// WARNING: use this only if you know what you are doing
 void *nbd_nbtpd_resp_error(void *args);