fix efm ipc read error

SVN revision: 71955
This commit is contained in:
Mike Blumenkrantz 2012-06-11 15:00:18 +00:00
parent 5111448060
commit 6ffa77d7f1
1 changed files with 14 additions and 10 deletions

View File

@ -1,4 +1,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif
#ifndef _FILE_OFFSET_BITS #ifndef _FILE_OFFSET_BITS
#define _FILE_OFFSET_BITS 64 #define _FILE_OFFSET_BITS 64
@ -33,12 +36,11 @@
#include <Efreet.h> #include <Efreet.h>
#include <Eet.h> #include <Eet.h>
#include <eina_stringshare.h>
#include "e.h" #include "e.h"
#include "e_fm_ipc.h" #include "e_fm_ipc.h"
//#include "e_fm_shared_c.h" //#include "e_fm_shared_c.h"
#include "e_fm_op.h" #include "e_fm_op.h"
#include "e_fm_main.h"
#define DEF_SYNC_NUM 8 #define DEF_SYNC_NUM 8
#define DEF_ROUND_TRIP 0.05 #define DEF_ROUND_TRIP 0.05
@ -623,21 +625,23 @@ _e_fm_ipc_cb_server_data(void *data __UNUSED__, int type __UNUSED__, void *event
{ {
E_Volume *v; E_Volume *v;
const char *udi, *mountpoint; const char *udi, *mountpoint;
int ulen;
udi = e->data; udi = e->data;
mountpoint = udi + strlen(udi) + 1;
v = e_volume_find(udi); v = e_volume_find(udi);
// printf("REQ M %p (find from %s -> %s)\n", v, udi, mountpoint); fflush(stdout); if (!v) break;
if (v) ulen = strlen(udi);
if (ulen + 1 >= e->size)
WRN("No mount point available for %s, trying anyway", udi);
else
{ {
mountpoint = udi + strlen(udi) + 1;
if (mountpoint[0]) if (mountpoint[0])
{ eina_stringshare_replace(&v->mount_point, mountpoint);
if (v->mount_point) eina_stringshare_del(v->mount_point); // printf("REQ M %p (find from %s -> %s)\n", v, udi, mountpoint); fflush(stdout);
v->mount_point = eina_stringshare_add(mountpoint);
} }
e_volume_mount(v); e_volume_mount(v);
} }
}
break; break;
case E_FM_OP_UNMOUNT: /* unmount udi */ case E_FM_OP_UNMOUNT: /* unmount udi */