[maemo-commits] [maemo-commits] r16818 - projects/haf/trunk/ke-recv/src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Mon Dec 1 11:17:47 EET 2008
- Previous message: [maemo-commits] r16817 - projects/haf/tags/mtools
- Next message: [maemo-commits] r16819 - projects/haf/trunk/ke-recv/src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: kihamala Date: 2008-12-01 11:17:36 +0200 (Mon, 01 Dec 2008) New Revision: 16818 Modified: projects/haf/trunk/ke-recv/src/events.c projects/haf/trunk/ke-recv/src/ke-recv.c Log: fix for E_RENAME handling Modified: projects/haf/trunk/ke-recv/src/events.c =================================================================== --- projects/haf/trunk/ke-recv/src/events.c 2008-12-01 09:03:17 UTC (rev 16817) +++ projects/haf/trunk/ke-recv/src/events.c 2008-12-01 09:17:36 UTC (rev 16818) @@ -603,17 +603,28 @@ } } -static void handle_e_rename(mmc_info_t *mmc, const char *udi) +static void handle_e_rename(mmc_info_t *mmc) { const char* args[] = {MMC_RENAME_PROG, NULL, NULL, NULL}; int ret; - char *dev; + volume_list_t *vol; - dev = get_prop_string(udi, "block.device"); - if (dev == NULL) { - return; + vol = get_nth_volume(mmc, mmc->preferred_volume); + + if (vol == NULL || vol->dev_name == NULL) { + ULOG_ERR_F("could not find partition number %d", + mmc->preferred_volume); + if (mmc->preferred_volume != 1 && mmc->internal_card) { + /* workaround for not yet partitioned systems */ + ULOG_DEBUG_F("%s: falling back to partition 1!"); + vol = get_nth_volume(mmc, 1); + if (vol == NULL || vol->dev_name == NULL) + return; + } else + return; } - args[1] = dev; + + args[1] = vol->dev_name; args[2] = mmc->desired_label; /* check validity of volume label */ @@ -621,11 +632,9 @@ assert(ret < 1 && ret > -3); if (ret == -1) { ULOG_ERR_F("too long name"); - libhal_free_string(dev); return; } else if (ret == -2) { ULOG_ERR_F("invalid characters"); - libhal_free_string(dev); return; } @@ -641,7 +650,6 @@ /* even if renaming failed it makes sense to * try mounting the card */ } - libhal_free_string(dev); update_mmc_label(mmc); ULOG_DEBUG_F("successful renaming"); @@ -650,7 +658,6 @@ display_dialog(MSG_MEMORY_CARD_IS_CORRUPTED); } } else { - libhal_free_string(dev); ULOG_DEBUG_F("umount failed"); display_system_note(dgettext("osso-filemanager", "sfil_ni_mmc_rename_mmc_in_use")); @@ -1125,7 +1132,7 @@ } break; case E_RENAME: - handle_e_rename(mmc, arg); + handle_e_rename(mmc); break; case E_FORMAT: handle_e_format(mmc); Modified: projects/haf/trunk/ke-recv/src/ke-recv.c =================================================================== --- projects/haf/trunk/ke-recv/src/ke-recv.c 2008-12-01 09:03:17 UTC (rev 16817) +++ projects/haf/trunk/ke-recv/src/ke-recv.c 2008-12-01 09:17:36 UTC (rev 16818) @@ -365,19 +365,6 @@ send_reply(); - l = &mmc->volumes; - while (l != NULL) { - if (l->udi != NULL && l->volume_number == 1) { - udi = l->udi; - break; - } - l = l->next; - } - if (udi == NULL) { - ULOG_ERR_F("could not find udi for first partition"); - goto rename_exit; - } - if (label[0] == '\0') { /* empty label */ strncpy(mmc->desired_label, " ", 11); @@ -387,7 +374,7 @@ mmc->desired_label[11] = '\0'; ULOG_DEBUG_F("got label: '%s'", mmc->desired_label); /* validity of the label is checked later */ - handle_event(E_RENAME, mmc, udi); + handle_event(E_RENAME, mmc, NULL); rename_exit: /* invalidate */
- Previous message: [maemo-commits] r16817 - projects/haf/tags/mtools
- Next message: [maemo-commits] r16819 - projects/haf/trunk/ke-recv/src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]