Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
9d04fec5
Commit
9d04fec5
authored
May 26, 2016
by
Paul Sokolovsky
Browse files
extmod/modussl: Make more compatible with non-default obj representations.
Still not compatible with nanboxing.
parent
c76acd8c
Changes
1
Hide whitespace changes
Inline
Side-by-side
extmod/modussl.c
View file @
9d04fec5
...
...
@@ -78,12 +78,12 @@ STATIC mp_obj_ssl_socket_t *socket_new(mp_obj_t sock, bool server_side) {
STATIC
void
socket_print
(
const
mp_print_t
*
print
,
mp_obj_t
self_in
,
mp_print_kind_t
kind
)
{
(
void
)
kind
;
mp_obj_ssl_socket_t
*
self
=
self_in
;
mp_obj_ssl_socket_t
*
self
=
MP_OBJ_TO_PTR
(
self_in
)
;
mp_printf
(
print
,
"<_SSLSocket %p>"
,
self
->
ssl_sock
);
}
STATIC
mp_uint_t
socket_read
(
mp_obj_t
o_in
,
void
*
buf
,
mp_uint_t
size
,
int
*
errcode
)
{
mp_obj_ssl_socket_t
*
o
=
o_in
;
mp_obj_ssl_socket_t
*
o
=
MP_OBJ_TO_PTR
(
o_in
)
;
while
(
o
->
bytes_left
==
0
)
{
mp_int_t
r
=
ssl_read
(
o
->
ssl_sock
,
&
o
->
buf
);
...
...
@@ -113,7 +113,7 @@ STATIC mp_uint_t socket_read(mp_obj_t o_in, void *buf, mp_uint_t size, int *errc
}
STATIC
mp_uint_t
socket_write
(
mp_obj_t
o_in
,
const
void
*
buf
,
mp_uint_t
size
,
int
*
errcode
)
{
mp_obj_ssl_socket_t
*
o
=
o_in
;
mp_obj_ssl_socket_t
*
o
=
MP_OBJ_TO_PTR
(
o_in
)
;
mp_int_t
r
=
ssl_write
(
o
->
ssl_sock
,
buf
,
size
);
if
(
r
<
0
)
{
*
errcode
=
r
;
...
...
@@ -123,7 +123,7 @@ STATIC mp_uint_t socket_write(mp_obj_t o_in, const void *buf, mp_uint_t size, in
}
STATIC
mp_obj_t
socket_close
(
mp_obj_t
self_in
)
{
mp_obj_ssl_socket_t
*
self
=
self_in
;
mp_obj_ssl_socket_t
*
self
=
MP_OBJ_TO_PTR
(
self_in
)
;
ssl_free
(
self
->
ssl_sock
);
ssl_ctx_free
(
self
->
ssl_ctx
);
...
...
@@ -133,13 +133,13 @@ STATIC mp_obj_t socket_close(mp_obj_t self_in) {
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_1
(
socket_close_obj
,
socket_close
);
STATIC
const
mp_map_elem_t
ussl_socket_locals_dict_table
[]
=
{
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_read
),
(
mp_obj_t
)
&
mp_stream_read_obj
},
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_readall
),
(
mp_obj_t
)
&
mp_stream_readall_obj
},
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_readinto
),
(
mp_obj_t
)
&
mp_stream_readinto_obj
},
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_readline
),
(
mp_obj_t
)
&
mp_stream_unbuffered_readline_obj
},
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_write
),
(
mp_obj_t
)
&
mp_stream_write_obj
},
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_close
),
(
mp_obj_t
)
&
socket_close_obj
},
STATIC
const
mp_
rom_
map_elem_t
ussl_socket_locals_dict_table
[]
=
{
{
MP_
ROM
_QSTR
(
MP_QSTR_read
),
MP_ROM_PTR
(
&
mp_stream_read_obj
)
},
{
MP_
ROM
_QSTR
(
MP_QSTR_readall
),
MP_ROM_PTR
(
&
mp_stream_readall_obj
)
},
{
MP_
ROM
_QSTR
(
MP_QSTR_readinto
),
MP_ROM_PTR
(
&
mp_stream_readinto_obj
)
},
{
MP_
ROM
_QSTR
(
MP_QSTR_readline
),
MP_ROM_PTR
(
&
mp_stream_unbuffered_readline_obj
)
},
{
MP_
ROM
_QSTR
(
MP_QSTR_write
),
MP_ROM_PTR
(
&
mp_stream_write_obj
)
},
{
MP_
ROM
_QSTR
(
MP_QSTR_close
),
MP_ROM_PTR
(
&
socket_close_obj
)
},
};
STATIC
MP_DEFINE_CONST_DICT
(
ussl_socket_locals_dict
,
ussl_socket_locals_dict_table
);
...
...
@@ -157,10 +157,10 @@ STATIC const mp_obj_type_t ussl_socket_type = {
.
getiter
=
NULL
,
.
iternext
=
NULL
,
.
stream_p
=
&
ussl_socket_stream_p
,
.
locals_dict
=
(
mp_obj_t
)
&
ussl_socket_locals_dict
,
.
locals_dict
=
(
void
*
)
&
ussl_socket_locals_dict
,
};
STATIC
mp_obj_t
mod_ssl_wrap_socket
(
mp_uint
_t
n_args
,
const
mp_obj_t
*
pos_args
,
mp_map_t
*
kw_args
)
{
STATIC
mp_obj_t
mod_ssl_wrap_socket
(
size
_t
n_args
,
const
mp_obj_t
*
pos_args
,
mp_map_t
*
kw_args
)
{
// TODO: Implement more args
static
const
mp_arg_t
allowed_args
[]
=
{
{
MP_QSTR_server_side
,
MP_ARG_KW_ONLY
|
MP_ARG_BOOL
,
{.
u_bool
=
false
}
},
...
...
@@ -175,13 +175,13 @@ STATIC mp_obj_t mod_ssl_wrap_socket(mp_uint_t n_args, const mp_obj_t *pos_args,
mp_arg_parse_all
(
n_args
-
1
,
pos_args
+
1
,
kw_args
,
MP_ARRAY_SIZE
(
allowed_args
),
allowed_args
,
(
mp_arg_val_t
*
)
&
args
);
return
socket_new
(
sock
,
args
.
server_side
.
u_bool
);
return
MP_OBJ_FROM_PTR
(
socket_new
(
sock
,
args
.
server_side
.
u_bool
)
)
;
}
STATIC
MP_DEFINE_CONST_FUN_OBJ_KW
(
mod_ssl_wrap_socket_obj
,
1
,
mod_ssl_wrap_socket
);
STATIC
const
mp_map_elem_t
mp_module_ssl_globals_table
[]
=
{
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR___name__
),
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_ussl
)
},
{
MP_
OBJ_NEW
_QSTR
(
MP_QSTR_wrap_socket
),
(
mp_obj_t
)
&
mod_ssl_wrap_socket_obj
},
STATIC
const
mp_
rom_
map_elem_t
mp_module_ssl_globals_table
[]
=
{
{
MP_
ROM
_QSTR
(
MP_QSTR___name__
),
MP_
ROM
_QSTR
(
MP_QSTR_ussl
)
},
{
MP_
ROM
_QSTR
(
MP_QSTR_wrap_socket
),
MP_ROM_PTR
(
&
mod_ssl_wrap_socket_obj
)
},
};
STATIC
MP_DEFINE_CONST_DICT
(
mp_module_ssl_globals
,
mp_module_ssl_globals_table
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment