Changeset be1b56bbd438ae97c8e3d71f1bdfb610749fbf9f

Show
Ignore:
Timestamp:
07/09/07 22:54:30 (6 years ago)
Author:
Philipp Kern <phil@…>
Parents:
0b2867fe24ca70a931a026e7f628fd391b42c557
Children:
2270de3b6315c289b39835cf98ecb546946dce43
git-committer:
Philipp Kern <phil@0x539.de> / 2007-07-09T20:54:30Z+0000
Message:

2007-07-09 Philipp Kern <phil@…>

  • inc/joindialog.hpp:
  • src/joindialog.cpp: add support for IPv6 autodiscovery
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r0b2867f rbe1b56b  
     12007-07-09  Philipp Kern  <phil@0x539.de> 
     2 
     3        * inc/joindialog.hpp: 
     4        * src/joindialog.cpp: add support for IPv6 autodiscovery 
     5 
    162007-07-09  Armin Burgmeier  <armin@0x539.de> 
    27 
  • inc/joindialog.hpp

    r73098a3 rbe1b56b  
    8282        Gtk::TreeModel::iterator find_entry(const std::string& name) const; 
    8383#ifndef WITH_AVAHI 
    84         virtual bool on_timer(); 
     84        bool on_timer(); 
    8585#endif 
    86         virtual void on_discover(const std::string& name, 
    87                                  const net6::ipv4_address& addr); 
    88         virtual void on_leave(const std::string& name); 
    89         virtual void on_change(); 
     86// The template function is implemented in the source file, thus it's private. 
     87private: 
     88        template <typename addr_type> 
     89        void on_discover(const std::string& name, 
     90                         const addr_type& addr); 
     91 
     92protected: 
     93        void on_leave(const std::string& name); 
     94        void on_change(); 
    9095 
    9196        virtual void on_show(); 
  • src/joindialog.cpp

    r500d2c5 rbe1b56b  
    125125                m_ep_discover.add(m_session_view); 
    126126 
    127                 m_zeroconf->discover_event().connect( 
    128                         sigc::mem_fun(*this, &JoinDialog::on_discover)); 
     127                m_zeroconf->discover_event().connect(sigc::mem_fun( 
     128                        *this, 
     129                        &JoinDialog::on_discover<net6::ipv4_address>)); 
     130                m_zeroconf->discover6_event().connect(sigc::mem_fun( 
     131                        *this, 
     132                        &JoinDialog::on_discover<net6::ipv6_address>)); 
    129133                m_zeroconf->leave_event().connect( 
    130134                        sigc::mem_fun(*this, &JoinDialog::on_leave) ); 
     
    223227#endif 
    224228 
     229template <typename addr_type> 
    225230void Gobby::JoinDialog::on_discover(const std::string& name, 
    226                                     const net6::ipv4_address& addr) 
     231                                    const addr_type& addr) 
    227232{ 
    228233        // Ignore entries which introduce user names which are already in 
     
    230235        if(find_entry(name) != m_session_list->children().end() ) 
    231236                return; 
     237 
    232238        Gtk::TreeModel::Row row = *(m_session_list->append() ); 
    233239        row[m_session_cols.name] = name; 
    234240        row[m_session_cols.host] = addr.get_name(); 
     241        // Generic addresses do not bear ports, thus the passed addr_type 
     242        // must implement get_port(). 
    235243        row[m_session_cols.port] = addr.get_port(); 
     244 
    236245        m_ep_discover.set_expanded(true); 
    237246}