Ignore:
Timestamp:
Jul 9, 2009, 1:50:37 PM (15 years ago)
Author:
Christoph Mayer
Message:

einige avahi fixes und ablauf

Location:
source/ariba/utility/bootstrap/modules
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/utility/bootstrap/modules/BootstrapModule.h

    r4758 r4836  
    5353        virtual ~BootstrapModule();
    5454
     55        // the module must run asynchronously in its own thread.
    5556        virtual void start() = 0;
    5657        virtual void stop() = 0;
     
    6061        virtual bool isFunctional() = 0;
    6162
    62         virtual void publishService(string name, string info) = 0;
     63        virtual void publishService(string name, string info1, string info2, string info3) = 0;
    6364        virtual void revokeService(string name) = 0;
    6465
  • source/ariba/utility/bootstrap/modules/multicastdns/MulticastDns.cpp

    r4758 r4836  
    4646
    4747MulticastDns::MulticastDns(BootstrapInformationCallback* _callback) : BootstrapModule(_callback) {
    48   #ifdef HAVE_LIBAVAHI_CLIENT
     48  #ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    4949        avahiclient = NULL;
    5050        avahipoll = NULL;
    5151        avahibrowser = NULL;
    52   #endif // HAVE_LIBAVAHI_CLIENT
     52  #endif // HAVE_AVAHI_CLIENT_CLIENT_H
    5353}
    5454
     
    6565
    6666bool MulticastDns::isFunctional(){
    67   #ifdef HAVE_LIBAVAHI_CLIENT
     67  #ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    6868        return true;
    6969  #else
     
    7373
    7474void MulticastDns::start(){
    75   #ifdef HAVE_LIBAVAHI_CLIENT
     75  #ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    7676
    7777        int error = 0;
     
    110110        avahi_threaded_poll_start( avahipoll );
    111111
    112   #endif // HAVE_LIBAVAHI_CLIENT
     112  #endif // HAVE_AVAHI_CLIENT_CLIENT_H
    113113}
    114114
    115115void MulticastDns::stop(){
    116   #ifdef HAVE_LIBAVAHI_CLIENT
     116  #ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    117117
    118118        //
     
    144144        avahipoll = NULL;
    145145
    146   #endif // HAVE_LIBAVAHI_CLIENT
    147 }
    148 
    149 void MulticastDns::publishService(string name, string info){
    150   #ifdef HAVE_LIBAVAHI_CLIENT
     146  #endif // HAVE_AVAHI_CLIENT_CLIENT_H
     147}
     148
     149void MulticastDns::publishService(string name, string info1, string info2, string info3){
     150  #ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    151151
    152152        if(name.length() > 63){
     
    198198                        NULL,                                   // host name of our machine, let avahi find out
    199199                        3333,                                   // port number the service is on, just dummy, everything is encoded in TXT
    200                         info.c_str(),                   // arbitrary info
     200                        info1.c_str(),                  // arbitrary info
     201                        info2.c_str(),                  // arbitrary info
     202                        info3.c_str(),                  // arbitrary info
    201203                        NULL);                                  // make that this is the last info field
    202204
     
    219221        avahi_threaded_poll_unlock(avahipoll);
    220222
    221   #endif // HAVE_LIBAVAHI_CLIENT
     223  #endif // HAVE_AVAHI_CLIENT_CLIENT_H
    222224}
    223225
    224226void MulticastDns::revokeService(string name){
    225   #ifdef HAVE_LIBAVAHI_CLIENT
     227  #ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    226228
    227229        avahi_threaded_poll_lock(avahipoll);
     
    239241        avahi_threaded_poll_unlock(avahipoll);
    240242
    241   #endif // HAVE_LIBAVAHI_CLIENT
    242 }
    243 
    244 #ifdef HAVE_LIBAVAHI_CLIENT
     243  #endif // HAVE_AVAHI_CLIENT_CLIENT_H
     244}
     245
     246#ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    245247
    246248void MulticastDns::client_callback(AvahiClient* client, AvahiClientState state, void* userdata){
     
    395397
    396398                        char addr[AVAHI_ADDRESS_STR_MAX];
    397                         char* text = NULL;
    398399
    399400                        avahi_address_snprint(addr, sizeof(addr), address);
    400                         text = avahi_string_list_to_string(txt);
     401
     402                        string info1 = "";
     403                        string info2 = "";
     404                        string info3 = "";
     405
     406                        if(txt != NULL){
     407                                char* cinfo = avahi_string_list_to_string(txt);
     408                                info1 = cinfo;
     409                                avahi_free(cinfo);
     410                        }
     411
     412                        if(txt != NULL && avahi_string_list_get_next(txt) != NULL){
     413                                char* cinfo = avahi_string_list_to_string( avahi_string_list_get_next(txt) );
     414                                info2 = cinfo;
     415                                avahi_free(cinfo);
     416                        }
     417
     418                        if(txt != NULL && avahi_string_list_get_next(txt) != NULL){
     419                                char* cinfo = avahi_string_list_to_string( avahi_string_list_get_next(txt) );
     420                                info3 = cinfo;
     421                                avahi_free(cinfo);
     422                        }
    401423
    402424                        if(obj != NULL && obj->callback != NULL)
    403                                 obj->callback->onBootstrapServiceFound(name, text);
    404 
    405                         avahi_free( text );
     425                                obj->callback->onBootstrapServiceFound(name, info1, info2, info3);
     426
    406427                        break;
    407428        }
     
    410431}
    411432
    412 #endif // HAVE_LIBAVAHI_CLIENT
     433#endif // HAVE_AVAHI_CLIENT_CLIENT_H
    413434
    414435}} //namespace ariba, utility
  • source/ariba/utility/bootstrap/modules/multicastdns/MulticastDns.h

    r4758 r4836  
    4242#include "ariba/config.h"
    4343
    44 #ifdef HAVE_LIBAVAHI_CLIENT
     44#ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    4545  #include <avahi-client/client.h>
    4646  #include <avahi-client/lookup.h>
     
    5151  #include <avahi-common/error.h>
    5252  #include <avahi-common/timeval.h>
    53 #endif
     53#endif // HAVE_AVAHI_CLIENT_CLIENT_H
    5454
    5555#include <iostream>
     
    8080        virtual string getInformation();
    8181        virtual bool isFunctional();
    82         virtual void publishService(string name, string info);
     82        virtual void publishService(string name, string info1, string info2, string info3);
    8383        virtual void revokeService(string name);
    8484
     
    8686        static const string serviceType;
    8787
    88 #ifdef HAVE_LIBAVAHI_CLIENT
     88#ifdef HAVE_AVAHI_CLIENT_CLIENT_H
    8989
    9090        AvahiClient*         avahiclient;
     
    133133                        );
    134134
    135 #endif // HAVE_LIBAVAHI_CLIENT
     135#endif // HAVE_AVAHI_CLIENT_CLIENT_H
    136136
    137137};
Note: See TracChangeset for help on using the changeset viewer.