rem: printf("Unhandled message:\n");
add: printf("MediaAddonServer: Unhandled message:\n");
context: MediaAddonServer::MessageReceived(BMessage *msg){	switch (msg->what) 	{		case B_NODE_MONITOR:		{			switch (msg->FindInt32("opcode")) 			{				case B_ENTRY_CREATED:				{					const char *name;					entry_ref ref;					ino_t node;					BEntry e;					BPath p;					msg->FindString("name", &name);					msg->FindInt64("node", &node);					msg->FindInt32("device", &ref.device);					msg->FindInt64("directory", &ref.directory);					ref.set_name(name);					e.SetTo(&ref,false);// build a BEntry for the created file/link/dir					e.GetPath(&p); 		// get the path to the file/link/dir					e.SetTo(&ref,true); // travese links to see					if (e.IsFile()) {		// if it's a link to a file, or a file						if (false == msg->FindBool("nowait")) {							// XXX wait 5 seconds if this is a regular notification							// because the file creation may not be finshed when the							// notification arrives (very ugly, how can we fix this?)							// this will also fail if copying takes longer than 5 seconds							snooze(5000000);						}						AddOnAdded(p.Path(),node);					}					return;				}				case B_ENTRY_REMOVED:				{					ino_t node;					msg->FindInt64("node",&node);					AddOnRemoved(node);					return;				}				case B_ENTRY_MOVED:				{					ino_t from;					ino_t to;					msg->FindInt64("from directory", &from);					msg->FindInt64("to directory", &to);					if (DirNodeSystem == from || DirNodeUser == from) {						msg->ReplaceInt32("opcode",B_ENTRY_REMOVED);						msg->AddInt64("directory",from);						MessageReceived(msg);					}					if (DirNodeSystem == to || DirNodeUser == to) {						msg->ReplaceInt32("opcode",B_ENTRY_CREATED);						msg->AddInt64("directory",to);						msg->AddBool("nowait",true);						MessageReceived(msg);					}					return;				}			}			break;		}	}	printf("Unhandled message:\n");	msg->PrintToStream();}