]> git.sesse.net Git - vlc/commitdiff
- fix is_mult call in case of Unicode build (c_str => mb_str)
authorRémi Denis-Courmont <rem@videolan.org>
Tue, 1 Mar 2005 20:28:37 +0000 (20:28 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Tue, 1 Mar 2005 20:28:37 +0000 (20:28 +0000)
- fix IPv6 multicast address range
- more strict IPv4 multicast address range

modules/gui/wxwindows/wizard.cpp

index 94b281a6b239f5394c7d1f03c4957d6d74f26084..bfae413beb76ca24f0bd0453c7d6f6b5bf5ad671 100644 (file)
@@ -424,7 +424,7 @@ END_EVENT_TABLE()
 \r
 \r
 /* Local functions */\r
-static int ismult( char *psz_uri );\r
+static int ismult( const char *psz_uri );\r
 \r
 static void pageHeader( wxWindow *window, wxBoxSizer *sizer,\r
                        char *psz_title, char *psz_text);\r
@@ -1062,7 +1062,7 @@ void wizStreamingMethodPage::OnWizardPageChanging(wxWizardEvent& event)
     if( !event.GetDirection() ) return;\r
 \r
     /* Check valid address */\r
-    if( i_method == 1 && !ismult((char *) address_txtctrl->GetValue().c_str()) )\r
+    if( i_method == 1 && !ismult( address_txtctrl->GetValue().mb_str()) )\r
     {\r
         wxMessageBox( wxU( INVALID_MCAST_ADDRESS ) , wxU( ERROR_MSG ),\r
                       wxICON_WARNING | wxOK, this->p_parent );\r
@@ -1643,23 +1643,19 @@ void WizardDialog::Run()
 /****************************************************************\r
  * Local helper functions\r
  ****************************************************************/\r
-static int ismult( char *psz_uri )\r
+static int ismult( const char *psz_uri )\r
 {\r
     char *psz_end;\r
-    int  i_value;\r
+    unsigned long i_value;\r
 \r
-    i_value = strtol( psz_uri, &psz_end, 0 );\r
     /* IPv6 */\r
     if( psz_uri[0] == '[')\r
-    {\r
-            if( strncasecmp( &psz_uri[1], "FF0" , 3) ||\r
-                            strncasecmp( &psz_uri[2], "FF0" , 3))\r
-                    return( VLC_TRUE );\r
-            else\r
-                    return( VLC_FALSE );\r
-    }\r
+            return strncasecmp( &psz_uri[1], "FF" , 2) ? VLC_FALSE : VLC_TRUE;\r
+\r
+    /* IPv4 */\r
+    i_value = strtoul( psz_uri, &psz_end, 10 );\r
     if( *psz_end != '.' ) { return( VLC_FALSE ); }\r
 \r
-    return( i_value < 224 ? VLC_FALSE : VLC_TRUE );\r
+    return( ( i_value >= 224 && i_value < 240 ) ? VLC_TRUE : VLC_FALSE );\r
 \r
 }\r