diff --git a/src/main.c b/src/main.c index 0e48e036..1f6dc33d 100644 --- a/src/main.c +++ b/src/main.c @@ -108,9 +108,9 @@ CONFIG config; /**< Main configuration structure, as read from configfile */ * Forwards */ static void usage(char *program); -static void txt_add(char *txtrecord, char *fmt, ...); static void main_handler(WS_CONNINFO *pwsc); static int main_auth(WS_CONNINFO *pwsc, char *username, char *password); +static void txt_add(char *txtrecord, char *fmt, ...); /** * build a dns text string @@ -440,13 +440,15 @@ int main(int argc, char *argv[]) { txt_add(txtrecord,"iTSh Version=131073"); /* iTunes 6.0.4 */ txt_add(txtrecord,"Version=196610"); /* iTunes 6.0.4 */ txt_add(txtrecord,"Password=%s",conf_isset("general","password") ? "true" : "false"); + srand(time(NULL)); + txt_add(txtrecord,"ffid=%08x",rand()); DPRINTF(E_LOG,L_MAIN|L_REND,"Registering rendezvous names\n"); iface = conf_alloc_string("general","interface",""); rend_register(servername,"_daap._tcp",ws_config.port,iface,txtrecord); rend_register(servername,"_http._tcp",ws_config.port,iface,txtrecord); - plugin_rend_register(servername,ws_config.port,iface); + plugin_rend_register(servername,ws_config.port,iface,txtrecord); free(servername); free(iface); diff --git a/src/plugin.c b/src/plugin.c index eac0381f..8fbb7406 100644 --- a/src/plugin.c +++ b/src/plugin.c @@ -403,10 +403,10 @@ void plugin_url_handle(WS_CONNINFO *pwsc) { * walk through the plugins and register whatever rendezvous * names the clients want */ -int plugin_rend_register(char *name, int port, char *iface) { +int plugin_rend_register(char *name, int port, char *iface, char *txt) { PLUGIN_ENTRY *ppi; PLUGIN_REND_INFO *pri; - char *txt; + char *supplied_txt; char *new_name; int name_len; @@ -419,9 +419,9 @@ int plugin_rend_register(char *name, int port, char *iface) { if(ppi->rend_info) { pri = ppi->rend_info; while(pri->type) { - txt = pri->txt; + supplied_txt = pri->txt; if(!pri->txt) - txt = ""; + supplied_txt = txt; DPRINTF(E_DBG,L_PLUG,"Registering %s\n",pri->type); @@ -437,7 +437,7 @@ int plugin_rend_register(char *name, int port, char *iface) { } else { snprintf(new_name,name_len,"%s",name); } - rend_register(new_name,pri->type,port,iface,txt); + rend_register(new_name,pri->type,port,iface,supplied_txt); free(new_name); pri++; diff --git a/src/plugin.h b/src/plugin.h index 8a3c4b23..d2d95234 100644 --- a/src/plugin.h +++ b/src/plugin.h @@ -34,7 +34,7 @@ extern int plugin_deinit(void); extern int plugin_url_candispatch(WS_CONNINFO *pwsc); extern void plugin_url_handle(WS_CONNINFO *pwsc); extern int plugin_auth_handle(WS_CONNINFO *pwsc, char *username, char *pw); -extern int plugin_rend_register(char *name, int port, char *iface); +extern int plugin_rend_register(char *name, int port, char *iface, char *txt); extern void plugin_event_dispatch(int event_id, int intval, void *vp, int len);