@@ -74,6 +74,47 @@ const mp_obj_property_t wifi_radio_enabled_obj = {
74
74
MP_ROM_NONE },
75
75
};
76
76
77
+ //| hostname: ReadableBuffer
78
+ //| """Hostname for wifi interface. When the hostname is altered after interface started/connected
79
+ //| the changes would only be reflected once the interface restarts/reconnects."""
80
+ //|
81
+ STATIC mp_obj_t wifi_radio_get_hostname (mp_obj_t self_in ) {
82
+ wifi_radio_obj_t * self = MP_OBJ_TO_PTR (self_in );
83
+ return common_hal_wifi_radio_get_hostname (self );
84
+ }
85
+ MP_DEFINE_CONST_FUN_OBJ_1 (wifi_radio_get_hostname_obj , wifi_radio_get_hostname );
86
+
87
+ STATIC mp_obj_t wifi_radio_set_hostname (mp_obj_t self_in , mp_obj_t hostname_in ) {
88
+ mp_buffer_info_t hostname ;
89
+ mp_get_buffer_raise (hostname_in , & hostname , MP_BUFFER_READ );
90
+
91
+ if (hostname .len < 1 || hostname .len > 253 ) {
92
+ mp_raise_ValueError (translate ("Hostname must be between 1 and 253 characters" ));
93
+ }
94
+
95
+ #ifndef CONFIG_IDF_TARGET_ESP32C3
96
+ regex_t regex ; // validate hostname according to RFC 1123
97
+ regcomp (& regex ,"^(([a-z0-9]|[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9])$" , REG_EXTENDED | REG_ICASE | REG_NOSUB );
98
+ if (regexec (& regex , hostname .buf , 0 , NULL , 0 )) {
99
+ mp_raise_ValueError (translate ("invalid hostname" ));
100
+ }
101
+ regfree (& regex );
102
+ #endif
103
+
104
+ wifi_radio_obj_t * self = MP_OBJ_TO_PTR (self_in );
105
+ common_hal_wifi_radio_set_hostname (self , hostname .buf );
106
+
107
+ return mp_const_none ;
108
+ }
109
+ MP_DEFINE_CONST_FUN_OBJ_2 (wifi_radio_set_hostname_obj , wifi_radio_set_hostname );
110
+
111
+ const mp_obj_property_t wifi_radio_hostname_obj = {
112
+ .base .type = & mp_type_property ,
113
+ .proxy = {(mp_obj_t )& wifi_radio_get_hostname_obj ,
114
+ (mp_obj_t )& wifi_radio_set_hostname_obj ,
115
+ MP_ROM_NONE },
116
+ };
117
+
77
118
//| mac_address: bytes
78
119
//| """MAC address of the wifi radio station. (read-only)"""
79
120
//|
@@ -132,47 +173,6 @@ STATIC mp_obj_t wifi_radio_stop_scanning_networks(mp_obj_t self_in) {
132
173
}
133
174
STATIC MP_DEFINE_CONST_FUN_OBJ_1 (wifi_radio_stop_scanning_networks_obj , wifi_radio_stop_scanning_networks );
134
175
135
- //| hostname: ReadableBuffer
136
- //| """Hostname for wifi interface. When the hostname is altered after interface started/connected
137
- //| the changes would only be reflected once the interface restarts/reconnects."""
138
- //|
139
- STATIC mp_obj_t wifi_radio_get_hostname (mp_obj_t self_in ) {
140
- wifi_radio_obj_t * self = MP_OBJ_TO_PTR (self_in );
141
- return common_hal_wifi_radio_get_hostname (self );
142
- }
143
- MP_DEFINE_CONST_FUN_OBJ_1 (wifi_radio_get_hostname_obj , wifi_radio_get_hostname );
144
-
145
- STATIC mp_obj_t wifi_radio_set_hostname (mp_obj_t self_in , mp_obj_t hostname_in ) {
146
- mp_buffer_info_t hostname ;
147
- mp_get_buffer_raise (hostname_in , & hostname , MP_BUFFER_READ );
148
-
149
- if (hostname .len < 1 || hostname .len > 253 ) {
150
- mp_raise_ValueError (translate ("Hostname must be between 1 and 253 characters" ));
151
- }
152
-
153
- #ifndef CONFIG_IDF_TARGET_ESP32C3
154
- regex_t regex ; // validate hostname according to RFC 1123
155
- regcomp (& regex ,"^(([a-z0-9]|[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9])\\.)*([a-z0-9]|[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9])$" , REG_EXTENDED | REG_ICASE | REG_NOSUB );
156
- if (regexec (& regex , hostname .buf , 0 , NULL , 0 )) {
157
- mp_raise_ValueError (translate ("invalid hostname" ));
158
- }
159
- regfree (& regex );
160
- #endif
161
-
162
- wifi_radio_obj_t * self = MP_OBJ_TO_PTR (self_in );
163
- common_hal_wifi_radio_set_hostname (self , hostname .buf );
164
-
165
- return mp_const_none ;
166
- }
167
- MP_DEFINE_CONST_FUN_OBJ_2 (wifi_radio_set_hostname_obj , wifi_radio_set_hostname );
168
-
169
- const mp_obj_property_t wifi_radio_hostname_obj = {
170
- .base .type = & mp_type_property ,
171
- .proxy = {(mp_obj_t )& wifi_radio_get_hostname_obj ,
172
- (mp_obj_t )& wifi_radio_set_hostname_obj ,
173
- MP_ROM_NONE },
174
- };
175
-
176
176
//| def start_station(self) -> None:
177
177
//| """Starts a Station."""
178
178
//| ...
@@ -503,18 +503,20 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_KW(wifi_radio_ping_obj, 1, wifi_radio_ping);
503
503
504
504
STATIC const mp_rom_map_elem_t wifi_radio_locals_dict_table [] = {
505
505
{ MP_ROM_QSTR (MP_QSTR_enabled ), MP_ROM_PTR (& wifi_radio_enabled_obj ) },
506
+
507
+ { MP_ROM_QSTR (MP_QSTR_hostname ), MP_ROM_PTR (& wifi_radio_hostname_obj ) },
508
+
506
509
{ MP_ROM_QSTR (MP_QSTR_mac_address ), MP_ROM_PTR (& wifi_radio_mac_address_obj ) },
507
510
{ MP_ROM_QSTR (MP_QSTR_mac_address_ap ), MP_ROM_PTR (& wifi_radio_mac_address_ap_obj ) },
508
511
509
512
{ MP_ROM_QSTR (MP_QSTR_start_scanning_networks ), MP_ROM_PTR (& wifi_radio_start_scanning_networks_obj ) },
510
513
{ MP_ROM_QSTR (MP_QSTR_stop_scanning_networks ), MP_ROM_PTR (& wifi_radio_stop_scanning_networks_obj ) },
511
514
512
- { MP_ROM_QSTR (MP_QSTR_hostname ), MP_ROM_PTR (& wifi_radio_hostname_obj ) },
513
-
514
515
{ MP_ROM_QSTR (MP_QSTR_start_station ), MP_ROM_PTR (& wifi_radio_start_station_obj ) },
515
516
{ MP_ROM_QSTR (MP_QSTR_stop_station ), MP_ROM_PTR (& wifi_radio_stop_station_obj ) },
516
- { MP_ROM_QSTR ( MP_QSTR_stop_ap ), MP_ROM_PTR ( & wifi_radio_stop_ap_obj ) },
517
+
517
518
{ MP_ROM_QSTR (MP_QSTR_start_ap ), MP_ROM_PTR (& wifi_radio_start_ap_obj ) },
519
+ { MP_ROM_QSTR (MP_QSTR_stop_ap ), MP_ROM_PTR (& wifi_radio_stop_ap_obj ) },
518
520
519
521
{ MP_ROM_QSTR (MP_QSTR_connect ), MP_ROM_PTR (& wifi_radio_connect_obj ) },
520
522
// { MP_ROM_QSTR(MP_QSTR_connect_to_enterprise), MP_ROM_PTR(&wifi_radio_connect_to_enterprise_obj) },
0 commit comments