add a ffid txt record so rsp and iTunes entries can be correlated

This commit is contained in:
Ron Pedde 2006-05-24 05:14:58 +00:00
parent fb2e9382c5
commit 9705113b40
3 changed files with 10 additions and 8 deletions

View File

@ -108,9 +108,9 @@ CONFIG config; /**< Main configuration structure, as read from configfile */
* Forwards * Forwards
*/ */
static void usage(char *program); static void usage(char *program);
static void txt_add(char *txtrecord, char *fmt, ...);
static void main_handler(WS_CONNINFO *pwsc); static void main_handler(WS_CONNINFO *pwsc);
static int main_auth(WS_CONNINFO *pwsc, char *username, char *password); static int main_auth(WS_CONNINFO *pwsc, char *username, char *password);
static void txt_add(char *txtrecord, char *fmt, ...);
/** /**
* build a dns text string * 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,"iTSh Version=131073"); /* iTunes 6.0.4 */
txt_add(txtrecord,"Version=196610"); /* iTunes 6.0.4 */ txt_add(txtrecord,"Version=196610"); /* iTunes 6.0.4 */
txt_add(txtrecord,"Password=%s",conf_isset("general","password") ? "true" : "false"); 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"); DPRINTF(E_LOG,L_MAIN|L_REND,"Registering rendezvous names\n");
iface = conf_alloc_string("general","interface",""); iface = conf_alloc_string("general","interface","");
rend_register(servername,"_daap._tcp",ws_config.port,iface,txtrecord); rend_register(servername,"_daap._tcp",ws_config.port,iface,txtrecord);
rend_register(servername,"_http._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(servername);
free(iface); free(iface);

View File

@ -403,10 +403,10 @@ void plugin_url_handle(WS_CONNINFO *pwsc) {
* walk through the plugins and register whatever rendezvous * walk through the plugins and register whatever rendezvous
* names the clients want * 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_ENTRY *ppi;
PLUGIN_REND_INFO *pri; PLUGIN_REND_INFO *pri;
char *txt; char *supplied_txt;
char *new_name; char *new_name;
int name_len; int name_len;
@ -419,9 +419,9 @@ int plugin_rend_register(char *name, int port, char *iface) {
if(ppi->rend_info) { if(ppi->rend_info) {
pri = ppi->rend_info; pri = ppi->rend_info;
while(pri->type) { while(pri->type) {
txt = pri->txt; supplied_txt = pri->txt;
if(!pri->txt) if(!pri->txt)
txt = ""; supplied_txt = txt;
DPRINTF(E_DBG,L_PLUG,"Registering %s\n",pri->type); 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 { } else {
snprintf(new_name,name_len,"%s",name); 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); free(new_name);
pri++; pri++;

View File

@ -34,7 +34,7 @@ extern int plugin_deinit(void);
extern int plugin_url_candispatch(WS_CONNINFO *pwsc); extern int plugin_url_candispatch(WS_CONNINFO *pwsc);
extern void plugin_url_handle(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_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); extern void plugin_event_dispatch(int event_id, int intval, void *vp, int len);