rem: share_init(&share, file);
add: share_init(&share, path);
context: OPN_HANDLER(search_result){	OpnSession *session = (OpnSession *) udata;	OpnUrl url;	OpnSearch *search;	Share share;	char md5[33], user[64], bitrate[8], frequency[8], length[16];	char tmp[PATH_MAX + 1];	char *file, *path, *root;	uint32_t ip, filesize;	if (!data)		return;	assert(session);	md5[0] = user[0] = bitrate[0] = frequency[0] = length[0] = 0;	tmp[0] = 0;	sscanf(data, "\"%[^\"]\" %32s %u %s %s %s %63s %u %*[^\n]", tmp, md5,			&filesize, bitrate, frequency, length, user, &ip);	if (!user)		return;	/* FIXME */	path = my_file_unix_path(tmp);	file = get_filename(path);	root = get_directory(path);	/* now find the search this searchresult might belong to	 * .oO(stupid napster)	 */	if (!(search = opn_search_find(path)))		return;		assert(search->event);	share_init(&share, file);	share_set_root(&share, root, strlen(root));	share.size = filesize;	share_set_meta(&share, "Bitrate", bitrate);	share_set_meta(&share, "Frequency", frequency);	share_set_meta(&share, "Length", length);	opn_url_set_file_data(&url, file, filesize);	opn_url_set_client_data(&url, user, ip, 0);	opn_url_set_server_data(&url, session->node->ip,			session->node->port);	opn_proto->search_result(opn_proto, search->event,			user, NULL, opn_url_serialize(&url),			1, &share);	share_finish(&share);}