summaryrefslogtreecommitdiff
path: root/zephyr/modusocket.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-04-04 06:28:14 +0300
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2017-04-04 06:28:14 +0300
commit2908c3ca4168f963958e4a97e54800667ff34ccf (patch)
treeecb748d60d9b544ab12403b83bdfcf4b44af7aa2 /zephyr/modusocket.c
parent6e99a8c94e1c217f33e7116d60817ba1028d395e (diff)
zephyr/modusocket: Factor out socket_new() function.
It will be reused e.g. for accept() implementation.
Diffstat (limited to 'zephyr/modusocket.c')
-rw-r--r--zephyr/modusocket.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/zephyr/modusocket.c b/zephyr/modusocket.c
index 025cb0c92..155ed69b8 100644
--- a/zephyr/modusocket.c
+++ b/zephyr/modusocket.c
@@ -128,6 +128,15 @@ static void sock_received_cb(struct net_context *context, struct net_buf *net_bu
k_fifo_put(&socket->recv_q, net_buf);
}
+socket_obj_t *socket_new(void) {
+ socket_obj_t *socket = m_new_obj_with_finaliser(socket_obj_t);
+ socket->base.type = (mp_obj_t)&socket_type;
+ k_fifo_init(&socket->recv_q);
+ socket->cur_buf = NULL;
+ socket->state = STATE_NEW;
+ return socket;
+}
+
// Methods
STATIC void socket_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind) {
@@ -143,11 +152,7 @@ STATIC void socket_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kin
STATIC mp_obj_t socket_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 0, 4, false);
- socket_obj_t *socket = m_new_obj_with_finaliser(socket_obj_t);
- socket->base.type = type;
- k_fifo_init(&socket->recv_q);
- socket->cur_buf = NULL;
- socket->state = STATE_NEW;
+ socket_obj_t *socket = socket_new();
int family = AF_INET;
int socktype = SOCK_STREAM;