[-]
[+]
|
Changed |
_service:tar_git:usb-moded.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded.spec
^
|
|
|
Changed |
_service
^
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/configure.ac
^
|
@@ -1,4 +1,4 @@
-AC_INIT([usb_moded], [0.80.4])
+AC_INIT([usb_moded], [0.80.7])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AM_CONFIG_HEADER([config.h])
@@ -10,6 +10,8 @@
AC_C_CONST
AC_HEADER_STDC
+AM_PROG_CC_C_O
+
test_gcc_flag() {
# AC_LANG_CONFTEST([int main() {}])
$CC -c conftest.c $CFLAGS $@ > /dev/null 2> /dev/null
@@ -70,14 +72,6 @@
esac],[app_sync_dbus=false])
AM_CONDITIONAL([APP_SYNC_DBUS], [test x$app_sync_dbus = xtrue])
-AC_ARG_ENABLE([udev], AS_HELP_STRING([--enable-udev], [Enable udev interface @<:@default=true@:>@]),
- [case "${enableval}" in
- yes) udev=true ; CFLAGS="-DUDEV -ludev $CFLAGS" ;;
- no) udev=false ;;
- *) AC_MSG_ERROR([bad value ${enableval} for --enable-udev]) ;;
- esac],[udev=true CFLAGS="-DUDEV -ludev $CFLAGS" ])
-AM_CONDITIONAL([UDEV], [test x$udev = xtrue])
-
AC_ARG_ENABLE([upstart], AS_HELP_STRING([--enable-upstart], [Enable upstart interface for appsync @<:@default=false@:>@]),
[case "${enableval}" in
yes) upstart=true ; CFLAGS="-DUPSTART $CFLAGS" ;;
@@ -116,6 +110,7 @@
dbus-glib-1 >= 0.78
gobject-2.0 >= 2.16.6
gio-2.0
+ libudev
libkmod
])
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/debian/changelog
^
|
@@ -1,3 +1,31 @@
+usb-moded (0.80.7) unstable; urgency=low
+
+ * [dbus] Do assign fallback mode correctly to avoid corruption
+
+ -- Philippe De Swert <philippe.deswert@jolla.com> Tue, 16 Sep 2014 12:38:31 +0300
+
+usb-moded (0.80.6) unstable; urgency=low
+
+ * Support newer autoconf versions correctly
+ * [network] Actually clean-up dynamic mode network
+ * [docs] Fix up doxygen docs for some dbus functions
+ * [rpm] Own config directories. Contributes to JB#22780
+ * Fix memory leak related to charging mode. Fixes: CID#1237447
+ * Fix usb-moded-rescue package exec permissions
+
+ -- Philippe De Swert <philippe.deswert@jolla.com> Mon, 15 Sep 2014 18:55:00 +0300
+
+usb-moded (0.80.5) unstable; urgency=low
+
+ * Remove usb_charging_set variable as it is not needed anymore
+ * [devicelock] Fix bug related to secondary device lock check
+ * [devicelock] No need to set dbus return value a second time
+ * [charging fallback] Keep fallback state internal
+ * [charging fallback] introduce charging fallback mode. Fixes JB#22320
+ * [udev] Remove udev defines as it is the only and default one
+
+ -- Philippe De Swert <philippe.deswert@jolla.com> Wed, 27 Aug 2014 13:52:53 +0300
+
usb-moded (0.80.4) unstable; urgency=low
* [usb setting logic] Do not check for mode_to_set_twice Fixes: CID#1230272
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/Makefile.am
^
|
@@ -32,16 +32,12 @@
usb_moded-mac.h \
usb_moded-dyn-config.c \
usb_moded-dyn-config.h \
+ usb_moded-udev.c \
+ usb_moded-trigger.c \
usb_moded-modules.c \
usb_moded-android.h \
usb_moded-android.c
-if UDEV
-usb_moded_SOURCES += \
- usb_moded-udev.c \
- usb_moded-trigger.c
-endif
-
if MEEGOLOCK
usb_moded_SOURCES += \
usb_moded-devicelock.h \
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded-config.c
^
|
@@ -85,7 +85,6 @@
return(get_conf_string(ALT_MOUNT_ENTRY, ALT_MOUNT_KEY));
}
-#ifdef UDEV
const char * find_udev_path(void)
{
return(get_conf_string(UDEV_PATH_ENTRY, UDEV_PATH_KEY));
@@ -95,7 +94,6 @@
{
return(get_conf_string(UDEV_PATH_ENTRY, UDEV_SUBSYSTEM_KEY));
}
-#endif /* UDEV */
#ifdef NOKIA
const char * find_cdrom_path(void)
@@ -109,7 +107,6 @@
}
#endif /* NOKIA */
-#ifdef UDEV
const char * check_trigger(void)
{
return(get_conf_string(TRIGGER_ENTRY, TRIGGER_PATH_KEY));
@@ -134,7 +131,6 @@
{
return(get_conf_string(TRIGGER_ENTRY, TRIGGER_PROPERTY_VALUE_KEY));
}
-#endif /* UDEV */
const char * get_network_ip(void)
{
@@ -466,9 +462,7 @@
GString *keyfile_string = NULL;
GKeyFile *settingsfile;
int ret = 0, test = 0, conffile_created = 0;
-#ifdef UDEV
const gchar *udev = 0;
-#endif /* UDEV */
confdir = g_dir_open(CONFIG_FILE_DIR, 0, NULL);
if(!confdir)
@@ -516,10 +510,8 @@
{
/* store mode info to add it later as we want to keep it */
mode = get_mode_setting();
-#ifdef UDEV
/* store udev path (especially important for the upgrade path */
udev = find_udev_path();
-#endif /* UDEV */
ip = get_conf_string(NETWORK_ENTRY, NETWORK_IP_KEY);
gateway = get_conf_string(NETWORK_ENTRY, NETWORK_GATEWAY_KEY);
continue;
@@ -551,7 +543,6 @@
{
set_mode_setting(mode);
}
-#ifdef UDEV
if(udev)
{
set_config_setting(UDEV_PATH_ENTRY, UDEV_PATH_KEY, udev);
@@ -563,18 +554,14 @@
set_network_setting(NETWORK_IP_KEY, ip);
if(gateway)
set_network_setting(NETWORK_GATEWAY_KEY, gateway);
-
-#endif /* UDEV */
}
else
ret = 1;
cleanup:
if(mode)
free((void *)mode);
-#ifdef UDEV
if(udev)
free((void *)udev);
-#endif /* UDEV */
if(ip)
free((void *)ip);
if(gateway)
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded-config.h
^
|
@@ -60,23 +60,19 @@
int find_sync(void);
const char * find_alt_mount(void);
-#ifdef UDEV
const char * find_udev_path(void);
const char * find_udev_subsystem(void);
-#endif
#ifdef NOKIA
const char * find_cdrom_path(void);
int find_cdrom_timeout(void);
#endif
-#ifdef UDEV
const char * check_trigger(void);
const char * get_trigger_subsystem(void);
const char * get_trigger_mode(void);
const char * get_trigger_property(void);
const char * get_trigger_value(void);
-#endif /* UDEV */
const char * get_network_ip(void);
const char * get_network_interface(void);
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded-dbus.c
^
|
@@ -76,6 +76,9 @@
{
const char *mode = get_usb_mode();
+ /* To the outside we want to keep CHARGING and CHARGING_FALLBACK the same */
+ if(!strcmp(MODE_CHARGING_FALLBACK, mode))
+ mode = MODE_CHARGING;
if((reply = dbus_message_new_method_return(msg)))
dbus_message_append_args (reply, DBUS_TYPE_STRING, &mode, DBUS_TYPE_INVALID);
}
@@ -361,7 +364,7 @@
* Send regular usb_moded error signal
*
* @return 0 on success, 1 on failure
- * @param state_ind the signal name
+ * @param error the error to be signalled
*
*/
int usb_moded_send_error_signal(const char *error)
@@ -373,7 +376,7 @@
* Send regular usb_moded mode list signal
*
* @return 0 on success, 1 on failure
- * @param state_ind the signal name
+ * @param supported_modes list of supported modes
*
*/
int usb_moded_send_supported_modes_signal(const char *supported_modes)
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded-devicelock.c
^
|
@@ -117,6 +117,7 @@
static DBusHandlerResult devicelock_unlocked_cb(DBusConnection *conn, DBusMessage *msg, void *user_data)
{
+ /* regardless what happens, we want that other programs get a chance to process this */
DBusHandlerResult result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
const char *interface = dbus_message_get_interface(msg);
const char *member = dbus_message_get_member(msg);
@@ -140,13 +141,15 @@
if(ret == 0 && get_usb_connection_state() == 1 )
{
log_debug("usb_mode %s\n", get_usb_mode());
- if(!strcmp(get_usb_mode(), MODE_UNDEFINED) || !strcmp(get_usb_mode(), MODE_CHARGING)) {
- log_debug("set_usb");
- set_usb_connected_state();
+ /* if the mode is MODE_CHARGING_FALLBACK we know the user has not selected any mode, in case it
+ things are still undefined it cannot hurt to try again to set a mode */
+ if(!strcmp(get_usb_mode(), MODE_UNDEFINED) || !strcmp(get_usb_mode(), MODE_CHARGING_FALLBACK))
+ {
+ log_debug("set_usb");
+ set_usb_connected_state();
}
}
}
- result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
cleanup:
return result;
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded-modes.h
^
|
@@ -24,6 +24,7 @@
#define MODE_MASS_STORAGE "mass_storage"
#define MODE_OVI_SUITE "ovi_suite"
#define MODE_CHARGING "charging_only"
+#define MODE_CHARGING_FALLBACK "charging_only_fallback"
#define MODE_UNDEFINED "undefined"
#define MODE_ASK "ask"
#define MODE_DEVELOPER "developer_mode"
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded-modesetting.c
^
|
@@ -471,6 +471,11 @@
return;
}
+ if(data->network)
+ {
+ usb_network_down(data);
+ }
+
/* disconnect before changing functionality */
if(data->softconnect_disconnect)
{
@@ -481,7 +486,6 @@
write_to_file(data->sysfs_path, data->sysfs_reset_value);
log_debug("writing to file %s, value %s\n", data->sysfs_path, data->sysfs_reset_value);
}
-
}
#ifdef NOKIA
@@ -533,7 +537,7 @@
{
/* no clean-up needs to be done when we come from charging mode. We need
to check since we use fake mass-storage for charging */
- if(!strcmp(MODE_CHARGING, get_usb_mode()))
+ if(!strcmp(MODE_CHARGING, get_usb_mode()) || !strcmp(MODE_CHARGING_FALLBACK, get_usb_mode()))
return 0;
unset_mass_storage_mode(NULL);
}
|
[-]
[+]
|
Changed |
_service:tar_git:usb-moded-0.80.7.tar.bz2/src/usb_moded.c
^
|
@@ -69,7 +69,6 @@
gboolean rescue_mode = FALSE;
gboolean diag_mode = FALSE;
gboolean hw_fallback = FALSE;
-gboolean charging_mode_set = FALSE;
gboolean android_broken_usb = FALSE;
#ifdef SYSTEMD
static gboolean systemd_notify = FALSE;
@@ -158,13 +157,13 @@
/* signal usb disconnected */
usb_moded_send_signal(USB_DISCONNECTED);
/* unload modules and general cleanup if not charging */
- if(strcmp(get_usb_mode(), MODE_CHARGING))
+ if(strcmp(get_usb_mode(), MODE_CHARGING) ||
+ strcmp(get_usb_mode(), MODE_CHARGING_FALLBACK))
usb_moded_mode_cleanup(get_usb_module());
/* Nothing else as we do not need to do anything for cleaning up charging mode */
usb_moded_module_cleanup(get_usb_module());
set_usb_mode(MODE_UNDEFINED);
#endif /* NOKIA */
- charging_mode_set = FALSE;
}
return FALSE;
@@ -177,12 +176,12 @@
{
log_debug("Resetting connection data after HUP\n");
/* unload modules and general cleanup if not charging */
- if(strcmp(get_usb_mode(), MODE_CHARGING))
+ if(strcmp(get_usb_mode(), MODE_CHARGING) ||
+ strcmp(get_usb_mode(), MODE_CHARGING_FALLBACK))
usb_moded_mode_cleanup(get_usb_module());
/* Nothing else as we do not need to do anything for cleaning up charging mode */
usb_moded_module_cleanup(get_usb_module());
set_usb_mode(MODE_UNDEFINED);
- charging_mode_set = FALSE;
}
return FALSE;
@@ -262,10 +261,6 @@
if(!strcmp(MODE_ASK, mode_to_set))
{
- /* if charging mode was set we do not do anything as we might get here
- due to a devicelock state change */
- if(charging_mode_set)
- return;
/* send signal, mode will be set when the dialog service calls
the set_mode method call.
*/
@@ -285,7 +280,7 @@
We also fall back here in case the device is locked and we do not
export the system contents. Or if we are in acting dead mode.
*/
- set_usb_mode(MODE_CHARGING);
+ set_usb_mode(MODE_CHARGING_FALLBACK);
}
end:
free((void *)mode_to_set);
@@ -301,28 +296,14 @@
/* set return to 1 to be sure to error out if no matching mode is found either */
int ret=1, net=0;
-
#ifdef MEEGOLOCK
/* Do a second check in case timer suspend causes a race issue */
int export = 1;
+#endif
- /* check if we are allowed to export system contents 0 is unlocked */
- /* In ACTDEAD export is always ok */
- if(is_in_user_state())
- {
- export = usb_moded_get_export_permission();
-
- if(export && strcmp(mode, MODE_CHARGING) && !rescue_mode)
- {
- log_debug("Secondary device lock check failed. Not setting mode!\n");
- goto end;
- }
- }
-#endif /* MEEGOLOCK */
-
- log_debug("Setting %s\n", mode);
-
- if(!strcmp(mode, MODE_CHARGING))
+ /* CHARGING AND FALLBACK CHARGING are always ok to set, so this can be done
+ before the optional second device lock check */
+ if(!strcmp(mode, MODE_CHARGING) || !strcmp(mode, MODE_CHARGING_FALLBACK))
{
check_module_state(MODULE_MASS_STORAGE);
/* for charging we use a fake file_storage (blame USB certification for this insanity */
@@ -335,10 +316,29 @@
set_usb_module(MODULE_NONE);
ret = set_android_charging_mode();
}
- charging_mode_set = TRUE;
goto end;
}
- else if(!strcmp(mode, MODE_ASK) || !strcmp(mode, MODE_CHARGER))
+
+#ifdef MEEGOLOCK
+ /* check if we are allowed to export system contents 0 is unlocked */
+ /* In ACTDEAD export is always ok */
+ if(is_in_user_state())
+ {
+ export = usb_moded_get_export_permission();
+
+ if(export && !rescue_mode)
+ {
+ log_debug("Secondary device lock check failed. Not setting mode!\n");
+ goto end;
+ }
+ }
+#endif /* MEEGOLOCK */
+
+ log_debug("Setting %s\n", mode);
+
+ /* nothing needs to be done for these modes, apart from the
+ signalling at the end */
+ if(!strcmp(mode, MODE_ASK) || !strcmp(mode, MODE_CHARGER))
{
ret = 0;
goto end;
@@ -382,7 +382,11 @@
log_debug("Network setting failed!\n");
free(current_mode.mode);
current_mode.mode = strdup(mode);
- usb_moded_send_signal(get_usb_mode());
+ /* CHARGING_FALLBACK is an internal mode not to be broadcasted outside */
+ if(!strcmp(mode, MODE_CHARGING_FALLBACK))
+ usb_moded_send_signal(MODE_CHARGING);
+ else
+ usb_moded_send_signal(get_usb_mode());
}
/** check if a given usb_mode exists
@@ -394,7 +398,8 @@
int valid_mode(const char *mode)
{
- /* MODE_ASK and MODE_CHARGER are not modes that are settable seen their special status */
+ /* MODE_ASK, MODE_CHARGER and MODE_CHARGING_FALLBACK are not modes that are settable seen their special 'internal' status
+ so we only check the modes that are announed outside. Only exception is the built in MODE_CHARGING */
if(!strcmp(MODE_CHARGING, mode))
return(0);
else
@@ -553,10 +558,8 @@
modelist = read_mode_list(diag_mode);
#endif /* APP_SYNC */
-#ifdef UDEV
if(check_trigger())
trigger_init();
-#endif /* UDEV */
/* Set-up mac address before kmod */
if(access("/etc/modprobe.d/g_ether.conf", F_OK) != 0)
@@ -582,7 +585,7 @@
if(strcmp(get_usb_mode(), MODE_ASK) != 0)
return FALSE;
- set_usb_mode(MODE_CHARGING);
+ set_usb_mode(MODE_CHARGING_FALLBACK);
/* since this is the fallback, we keep an indication
for the UI, as we are not really in charging mode.
*/
@@ -590,9 +593,6 @@
current_mode.mode = strdup(MODE_ASK);
current_mode.data = NULL;
charging_timeout = 0;
- /* for extra safety we explicitly set charging_mode_set
- to false as the mode was not chosen */
- charging_mode_set = FALSE;
log_info("Falling back on charging mode.\n");
return(FALSE);
|