File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -20,6 +20,16 @@ pub struct Share {
2020 pub passphrase : String ,
2121}
2222
23+ // https://github.com/zxing/zxing/wiki/Barcode-Contents#wi-fi-network-config-android-ios-11
24+ fn get_escaped_wifi_value ( value : & str ) -> String {
25+ value
26+ . replace ( '\\' , r"\\" )
27+ . replace ( ';' , r"\;" )
28+ . replace ( ',' , r"\," )
29+ . replace ( '"' , r#"\""# )
30+ . replace ( ':' , r"\:" )
31+ }
32+
2333impl Share {
2434 pub fn new ( network_name : String ) -> Result < Self > {
2535 let encoded_network_name = iwd_network_name ( & network_name) ;
@@ -30,7 +40,11 @@ impl Share {
3040 . find ( |& line| line. starts_with ( "Passphrase=" ) )
3141 && let Some ( ( _, passphrase) ) = line. split_once ( '=' )
3242 {
33- let message = format ! ( "WIFI:T:WPA;S:{network_name};P:{passphrase};;" ) ;
43+ let message = format ! (
44+ "WIFI:T:WPA;S:{};P:{};;" ,
45+ get_escaped_wifi_value( & network_name) ,
46+ get_escaped_wifi_value( passphrase) ,
47+ ) ;
3448 let qr_code = QrCode :: new ( message) ?;
3549 Ok ( Self {
3650 qr_code,
You can’t perform that action at this time.
0 commit comments