@@ -55,6 +55,8 @@ pub enum SignalError {
5555 WsError ( #[ from] WsError ) ,
5656 #[ error( "failed to parse the url: {0}" ) ]
5757 UrlParse ( String ) ,
58+ #[ error( "access token has invalid characters" ) ]
59+ TokenFormat ,
5860 #[ error( "client error: {0} - {1}" ) ]
5961 Client ( StatusCode , String ) ,
6062 #[ error( "server error: {0} - {1}" ) ]
@@ -245,12 +247,15 @@ impl SignalInner {
245247 proto:: JoinResponse ,
246248 mpsc:: UnboundedReceiver < Box < proto:: signal_response:: Message > > ,
247249 ) > {
248- let lk_url = get_livekit_url ( url, token , & options) ?;
250+ let lk_url = get_livekit_url ( url, & options) ?;
249251
250252 // Try to connect to the SignalClient
251- let ( stream, mut events) = match SignalStream :: connect ( lk_url. clone ( ) ) . await {
253+ let ( stream, mut events) = match SignalStream :: connect ( lk_url. clone ( ) , token ) . await {
252254 Ok ( stream) => stream,
253255 Err ( err) => {
256+ if let SignalError :: TokenFormat = err {
257+ return Err ( err) ;
258+ }
254259 // Connection failed, try to retrieve more informations
255260 Self :: validate ( lk_url) . await ?;
256261 return Err ( err) ;
@@ -314,10 +319,10 @@ impl SignalInner {
314319 let sid = & self . join_response . participant . as_ref ( ) . unwrap ( ) . sid ;
315320 let token = self . token . lock ( ) . clone ( ) ;
316321
317- let mut lk_url = get_livekit_url ( & self . url , & token , & self . options ) . unwrap ( ) ;
322+ let mut lk_url = get_livekit_url ( & self . url , & self . options ) . unwrap ( ) ;
318323 lk_url. query_pairs_mut ( ) . append_pair ( "reconnect" , "1" ) . append_pair ( "sid" , sid) ;
319324
320- let ( new_stream, mut events) = SignalStream :: connect ( lk_url) . await ?;
325+ let ( new_stream, mut events) = SignalStream :: connect ( lk_url, & token ) . await ?;
321326 let reconnect_response = get_reconnect_response ( & mut events) . await ?;
322327 * stream = Some ( new_stream) ;
323328
@@ -458,7 +463,7 @@ fn is_queuable(signal: &proto::signal_request::Message) -> bool {
458463 )
459464}
460465
461- fn get_livekit_url ( url : & str , token : & str , options : & SignalOptions ) -> SignalResult < url:: Url > {
466+ fn get_livekit_url ( url : & str , options : & SignalOptions ) -> SignalResult < url:: Url > {
462467 let mut lk_url = url:: Url :: parse ( url) . map_err ( |err| SignalError :: UrlParse ( err. to_string ( ) ) ) ?;
463468
464469 if !lk_url. has_host ( ) {
@@ -482,7 +487,6 @@ fn get_livekit_url(url: &str, token: &str, options: &SignalOptions) -> SignalRes
482487 . query_pairs_mut ( )
483488 . append_pair ( "sdk" , options. sdk_options . sdk . as_str ( ) )
484489 . append_pair ( "protocol" , PROTOCOL_VERSION . to_string ( ) . as_str ( ) )
485- . append_pair ( "access_token" , token)
486490 . append_pair ( "auto_subscribe" , if options. auto_subscribe { "1" } else { "0" } )
487491 . append_pair ( "adaptive_stream" , if options. adaptive_stream { "1" } else { "0" } ) ;
488492
@@ -533,14 +537,13 @@ mod tests {
533537
534538 #[ test]
535539 fn livekit_url_test ( ) {
536- let it = "null_token" ;
537540 let io = SignalOptions :: default ( ) ;
538541
539- assert ! ( get_livekit_url( "localhost:7880" , it , & io) . is_err( ) ) ;
540- assert_eq ! ( get_livekit_url( "https://localhost:7880" , it , & io) . unwrap( ) . scheme( ) , "wss" ) ;
541- assert_eq ! ( get_livekit_url( "http://localhost:7880" , it , & io) . unwrap( ) . scheme( ) , "ws" ) ;
542- assert_eq ! ( get_livekit_url( "wss://localhost:7880" , it , & io) . unwrap( ) . scheme( ) , "wss" ) ;
543- assert_eq ! ( get_livekit_url( "ws://localhost:7880" , it , & io) . unwrap( ) . scheme( ) , "ws" ) ;
544- assert ! ( get_livekit_url( "ftp://localhost:7880" , it , & io) . is_err( ) ) ;
542+ assert ! ( get_livekit_url( "localhost:7880" , & io) . is_err( ) ) ;
543+ assert_eq ! ( get_livekit_url( "https://localhost:7880" , & io) . unwrap( ) . scheme( ) , "wss" ) ;
544+ assert_eq ! ( get_livekit_url( "http://localhost:7880" , & io) . unwrap( ) . scheme( ) , "ws" ) ;
545+ assert_eq ! ( get_livekit_url( "wss://localhost:7880" , & io) . unwrap( ) . scheme( ) , "wss" ) ;
546+ assert_eq ! ( get_livekit_url( "ws://localhost:7880" , & io) . unwrap( ) . scheme( ) , "ws" ) ;
547+ assert ! ( get_livekit_url( "ftp://localhost:7880" , & io) . is_err( ) ) ;
545548 }
546549}
0 commit comments