AuspeXeu / openvpn-status

A web-based application to monitor OpenVPN server client connections
MIT License
161 stars 48 forks source link

loc.country = undefined "TypeError: Cannot read property 'iso_code' of undefined" #498

Open pablolucas890 opened 1 year ago

pablolucas890 commented 1 year ago

The normal loc object like with

loc : {                                                                                                                
  city: { geoname_id: 111111111, names: { en: 'XXXXXXXXXXXX' } },                                                       
  continent: {                                                                                                   
    code: 'SA',                                                                                                  
    geoname_id: 11111111,                                                                                         
    names: {                                                                                                     
      de: 'Südamerika',                                                                                          
      en: 'South America',                                                                                       
      es: 'Sudamérica',                                                                                          
      fr: 'Amérique du Sud',                                                                                     
      ja: '南アメリカ',                                                                                          
      'pt-BR': 'América do Sul',                                                                                 
      ru: 'Южная Америка',                                                                                       
      'zh-CN': '南美洲'                                                                                          
    }                                                                                                            
  },                                                                                                             
  country: {                                                                                                     
    geoname_id: 111111111,                                                                                         
    iso_code: 'BR',                                                                                              
    names: {                                                                                                     
      de: 'Brasilien',                                                                                           
      en: 'Brazil',                                                                                              
      es: 'Brasil',                                                                                              
      fr: 'Brésil',                                                                                              
      ja: 'ブラジル連邦共和国',                                                                                  
      'pt-BR': 'Brasil',                                                                                         
      ru: 'Бразилия',                                                                                            
      'zh-CN': '巴西'                                                                                            
    }                                                                                                            
  },                                                                                                             
  location: {                                                                                                    
    accuracy_radius: 100,
    latitude: 111111111111
    longitude: 111111111,
    time_zone: 'America/Sao_Paulo' 
  },
  postal: { code: '13250' },
  registered_country: {
    geoname_id: 111111111
    iso_code: 'BR',
    names: {
      de: 'Brasilien',
      en: 'Brazil',
      es: 'Brasil',
      fr: 'Brésil',
      ja: 'ブラジル連邦共和国',
      'pt-BR': 'Brasil',
      ru: 'Бразилия',
      'zh-CN': '巴西'
    }
  },
  subdivisions: [ { geoname_id: 1111111111, iso_code: 'SP', names: [Object] } ]
}

But one ovpn client return a object without some values:

loc : {
   registered_country: {
     geoname_id: 1111111,
     iso_code: 'BR',
     names: {
       de: 'Brasilien',
       en: 'Brazil',
       es: 'Brasil',
       fr: 'Brésil',
       ja: 'ブラジル連邦共和国',
       'pt-BR': 'Brasil',
       ru: 'Бразилия',
       'zh-CN': '巴西'
     }
   }
 }

Then we have a problem at this line: https://github.com/AuspeXeu/openvpn-status/blob/bcc0129004d296292db4b75d91cbd4e175073dbf/server.js#L74

To resolve for moment I write the iso_code, name, lat and lon with registered_country value or default, but it isn't apropriate for resolve the error...

image

I see that object its related with maxmid database, so the error can be related with this package or data