summaryrefslogtreecommitdiff
path: root/nbrpc_event.c
diff options
context:
space:
mode:
Diffstat (limited to 'nbrpc_event.c')
-rw-r--r--nbrpc_event.c256
1 files changed, 195 insertions, 61 deletions
diff --git a/nbrpc_event.c b/nbrpc_event.c
index dc5cddd..85e4aab 100644
--- a/nbrpc_event.c
+++ b/nbrpc_event.c
@@ -15,6 +15,9 @@ rpc_request* rpc_req_new(char *method, char *params, int id)
ret->id = id;
ret->method = alloc_new_str(method);
ret->params = alloc_new_str(params);
+ ret->user = NULL;
+ ret->mask = NULL;
+ ret->server = NULL;
return ret;
}
@@ -33,7 +36,9 @@ rpc_response* rpc_resp_new(char *result, char *error, int id)
ret->id = id;
ret->result = alloc_new_str(result);
ret->error = alloc_new_str(error);
-
+ ret->user = NULL;
+ ret->mask = NULL;
+ ret->server = NULL;
return ret;
}
@@ -42,12 +47,15 @@ int rpc_req_free(rpc_request *req)
{
if (req)
{
- free(req->method);
- free(req->params);
- free(req);
- req = NULL;
+ FREE(req->user);
+ FREE(req->mask);
+ FREE(req->user);
+ FREE(req->method);
+ FREE(req->params);
+ FREE(req);
+ return 0;
}
-
+ return -1;
}
@@ -55,11 +63,15 @@ int rpc_resp_free(rpc_response *resp)
{
if (resp)
{
- free(resp->result);
- free(resp->error);
- free(resp);
- resp = NULL;
+ FREE(resp->user);
+ FREE(resp->mask);
+ FREE(resp->server);
+ FREE(resp->result);
+ FREE(resp->error);
+ FREE(resp);
+ return 0;
}
+ return -1;
}
@@ -67,24 +79,28 @@ int rpc_req_marsh( rpc_request *req, netbyte_store **nb_req)
{
netbyte_store *nb = NULL;
nb_u32 nb_id;
- nb_u8arr nb_method, nb_params;
+ nb_u8arr nb_method, nb_params, nb_user, nb_mask, nb_server;
nb = calloc(1,sizeof(netbyte_store));
nb_init(nb);
- nb_u8arr_create(&nb_method, strlen(req->method), req->method);
+ nb_u8arr_create(&nb_method, strlen(req->method), (uint8_t *)req->method);
nb_add_u8arr(nb, &nb_method);
- nb_u8arr_create(&nb_params, strlen(req->params), req->params);
+ nb_u8arr_create(&nb_params, strlen(req->params), (uint8_t *)req->params);
nb_add_u8arr(nb, &nb_params);
nb_u32_create(&nb_id, req->id);
- //PRINT("%d\n", req->id);
- //PRINT("%d\n", nb_id.val);
nb_add_u32(nb, &nb_id);
- //nb_print(nb);
- //nb_print(nb);
+ nb_u8arr_create(&nb_user, strlen(req->user), (uint8_t *)req->user);
+ nb_add_u8arr(nb, &nb_user);
+
+ nb_u8arr_create(&nb_mask, strlen(req->mask), (uint8_t *)req->mask);
+ nb_add_u8arr(nb, &nb_mask);
+
+ nb_u8arr_create(&nb_server, strlen(req->server), (uint8_t *)req->server);
+ nb_add_u8arr(nb, &nb_server);
*nb_req = nb;
return 0;
@@ -96,28 +112,35 @@ int rpc_resp_marsh( rpc_response *resp, netbyte_store **nb_resp)
int eret;
netbyte_store *nb = NULL;
nb_u32 nb_id;
- nb_u8arr nb_result, nb_error;
+ nb_u8arr nb_result, nb_error, nb_user, nb_mask, nb_server;
nb = calloc(1,sizeof(netbyte_store));
nb_init(nb);
- eret = nb_u8arr_create(&nb_result, strlen(resp->result), resp->result);
+ eret = nb_u8arr_create(&nb_result, strlen(resp->result), (uint8_t *)resp->result);
eret |= nb_add_u8arr(nb, &nb_result);
- eret = nb_u8arr_create(&nb_error, strlen(resp->error), resp->error);
+ eret = nb_u8arr_create(&nb_error, strlen(resp->error), (uint8_t *)resp->error);
eret |= nb_add_u8arr(nb, &nb_error);
eret = nb_u32_create(&nb_id, resp->id);
- //PRINT("%d\n", resp->id);
- //PRINT("%d\n", nb_id.val);
eret |= nb_add_u32(nb, &nb_id);
+
+ eret = nb_u8arr_create(&nb_user, strlen(resp->user), (uint8_t *)resp->user);
+ eret |= nb_add_u8arr(nb, &nb_user);
+
+ eret = nb_u8arr_create(&nb_mask, strlen(resp->mask), (uint8_t *)resp->mask);
+ eret |= nb_add_u8arr(nb, &nb_mask);
+
+ eret = nb_u8arr_create(&nb_server, strlen(resp->server), (uint8_t *)resp->server);
+ eret |= nb_add_u8arr(nb, &nb_server);
+
+
if (!eret)
{
ENL();
}
- //nb_print(nb);
-
*nb_resp = nb;
return 0;
}
@@ -141,34 +164,82 @@ int rpc_req_unmarsh( netbyte_store *nb_req, rpc_request **req)
__req = calloc(1,sizeof(rpc_request));
if (0 == nb_val(nb_req, 0, &type))
- if (type->type == NBT_U8ARRAY)
- {
- nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
- __req->method = alloc_new_str_s(u8arr->val, u8arr->len);
- } else
{
- ENL();
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __req->method = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
}
if (0 == nb_val(nb_req, 1, &type))
- if (type->type == NBT_U8ARRAY)
- {
- nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
- __req->params = alloc_new_str_s(u8arr->val, u8arr->len);
- } else
{
- ENL();
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __req->params = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
}
if (0 == nb_val(nb_req, 2, &type))
- if (type->type == NBT_U32)
- {
- //PNL();
- nb_u32 *u32 = (nb_u32 *)type->nb_val;
- __req->id = u32->val;
- } else
{
- ENL();
+ if (type->type == NBT_U32)
+ {
+ //PNL();
+ nb_u32 *u32 = (nb_u32 *)type->nb_val;
+ __req->id = u32->val;
+ } else
+ {
+ ENL();
+ }
+ }
+
+ //user
+ if (0 == nb_val(nb_req, 3, &type))
+ {
+ if (type->type == NBT_U8ARRAY)
+ {
+ //PNL();
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __req->user = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
+ }
+
+ //mask
+ if (0 == nb_val(nb_req, 4, &type))
+ {
+ if (type->type == NBT_U8ARRAY)
+ {
+ //PNL();
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __req->mask = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
+ }
+
+ //server
+ if (0 == nb_val(nb_req, 5, &type))
+ {
+ if (type->type == NBT_U8ARRAY)
+ {
+ //PNL();
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __req->server = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
}
*req = __req;
@@ -195,32 +266,95 @@ int rpc_resp_unmarsh(netbyte_store *nb_resp, rpc_response **resp)
__resp = calloc(1,sizeof(rpc_response));
if (0 == nb_val(nb_resp, 0, &type))
- if (type->type == NBT_U8ARRAY)
{
- nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
- __resp->result = alloc_new_str_s(u8arr->val, u8arr->len);
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __resp->result = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
} else
{
ENL();
}
if (0 == nb_val(nb_resp, 1, &type))
- if (type->type == NBT_U8ARRAY)
{
- nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
- __resp->error = alloc_new_str_s(u8arr->val, u8arr->len);
- } else
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __resp->error = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
+ } else
{
ENL();
}
if (0 == nb_val(nb_resp, 2, &type))
- if (type->type == NBT_U32)
{
- PNL();
- nb_u32 *u32 = (nb_u32 *)type->nb_val;
- __resp->id = u32->val;
- //PRINT("%d\n",u32->val)
+ if (type->type == NBT_U32)
+ {
+ PNL();
+ nb_u32 *u32 = (nb_u32 *)type->nb_val;
+ __resp->id = u32->val;
+ //PRINT("%d\n",u32->val)
+ } else
+ {
+ ENL();
+ }
+ } else
+ {
+ ENL();
+ }
+
+ //user
+ if (0 == nb_val(nb_resp, 3, &type))
+ {
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __resp->user = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
+ } else
+ {
+ ENL();
+ }
+
+ //mask
+ if (0 == nb_val(nb_resp, 4, &type))
+ {
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __resp->mask = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
+ } else
+ {
+ ENL();
+ }
+
+ //server
+ if (0 == nb_val(nb_resp, 5, &type))
+ {
+ if (type->type == NBT_U8ARRAY)
+ {
+ nb_u8arr *u8arr = (nb_u8arr *)type->nb_val;
+ __resp->server = alloc_new_str_s((char *)u8arr->val, u8arr->len);
+ } else
+ {
+ ENL();
+ }
} else
{
ENL();
@@ -234,36 +368,36 @@ int rpc_resp_unmarsh(netbyte_store *nb_resp, rpc_response **resp)
int rpc_req_set_user(rpc_request *req)
{
-
+ return -1;
}
int rpc_resp_set_user(rpc_response *resp)
{
-
+ return -1;
}
int rpc_req_set_mask(rpc_request *req)
{
-
+ return -1;
}
int rpc_resp_set_mask(rpc_response *resp)
{
-
+ return -1;
}
int rpc_req_set_server(rpc_request *req)
{
-
+ return -1;
}
int rpc_resp_set_server(rpc_response *resp)
{
-
+ return -1;
}