Code Review
/
src
/
app-framework-main.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Merge "Add wait for start jobs"
[src/app-framework-main.git]
/
src
/
wgtpkg-uninstall.c
diff --git
a/src/wgtpkg-uninstall.c
b/src/wgtpkg-uninstall.c
index
653aea7
..
41bc693
100644
(file)
--- a/
src/wgtpkg-uninstall.c
+++ b/
src/wgtpkg-uninstall.c
@@
-1,5
+1,6
@@
/*
/*
- Copyright 2015, 2016, 2017 IoT.bzh
+ Copyright (C) 2015-2020 IoT.bzh
+ Copyright (C) 2020 Konsulko Group
author: José Bollo <jose.bollo@iot.bzh>
author: José Bollo <jose.bollo@iot.bzh>
@@
-36,17
+37,20
@@
/* uninstall the widget of idaver */
int uninstall_widget(const char *idaver, const char *root)
{
/* uninstall the widget of idaver */
int uninstall_widget(const char *idaver, const char *root)
{
+#if DISTINCT_VERSIONS
char *id;
char *ver;
char *id;
char *ver;
- char path[PATH_MAX];
const char *at;
const char *at;
- int rc, rc2;
+#endif
+ char path[PATH_MAX];
+ int rc;
struct unitconf uconf;
struct wgt_info *ifo;
NOTICE("-- UNINSTALLING widget of id %s from %s --", idaver, root);
/* find the last '@' of the id */
struct unitconf uconf;
struct wgt_info *ifo;
NOTICE("-- UNINSTALLING widget of id %s from %s --", idaver, root);
/* find the last '@' of the id */
+#if DISTINCT_VERSIONS
at = strrchr(idaver, '@');
if (at == NULL) {
ERROR("bad widget id '%s', no @", idaver);
at = strrchr(idaver, '@');
if (at == NULL) {
ERROR("bad widget id '%s', no @", idaver);
@@
-58,6
+62,10
@@
int uninstall_widget(const char *idaver, const char *root)
/* compute the path */
rc = snprintf(path, sizeof path, "%s/%s/%s", root, id, ver);
/* compute the path */
rc = snprintf(path, sizeof path, "%s/%s/%s", root, id, ver);
+#else
+ rc = snprintf(path, sizeof path, "%s/%s", root, idaver);
+#endif
+
if (rc >= (int)sizeof path) {
ERROR("bad widget id '%s', too long", idaver);
errno = EINVAL;
if (rc >= (int)sizeof path) {
ERROR("bad widget id '%s', too long", idaver);
errno = EINVAL;
@@
-72,7
+80,8
@@
int uninstall_widget(const char *idaver, const char *root)
}
uconf.installdir = path;
uconf.icondir = FWK_ICON_DIR;
}
uconf.installdir = path;
uconf.icondir = FWK_ICON_DIR;
- uconf.port = 0;
+ uconf.new_afid = 0;
+ uconf.base_http_ports = 0;
unit_uninstall(ifo, &uconf);
wgt_info_unref(ifo);
unit_uninstall(ifo, &uconf);
wgt_info_unref(ifo);
@@
-87,17
+96,20
@@
int uninstall_widget(const char *idaver, const char *root)
rc = snprintf(path, sizeof path, "%s/%s", FWK_ICON_DIR, idaver);
assert(rc < (int)sizeof path);
rc = unlink(path);
rc = snprintf(path, sizeof path, "%s/%s", FWK_ICON_DIR, idaver);
assert(rc < (int)sizeof path);
rc = unlink(path);
- if (rc < 0)
- ERROR("can't removing '%s': %m", path);
+ if (rc < 0 && errno != ENOENT) {
+ ERROR("can't remove '%s': %m", path);
+ return -1;
+ }
+#if DISTINCT_VERSIONS
/* removes the parent directory if empty */
/* removes the parent directory if empty */
- rc
2
= snprintf(path, sizeof path, "%s/%s", root, id);
- assert(rc
2
< (int)sizeof path);
- rc
2
= rmdir(path);
+ rc = snprintf(path, sizeof path, "%s/%s", root, id);
+ assert(rc < (int)sizeof path);
+ rc = rmdir(path);
if (rc < 0 && errno == ENOTEMPTY)
return rc;
if (rc < 0) {
if (rc < 0 && errno == ENOTEMPTY)
return rc;
if (rc < 0) {
- ERROR("
error
while removing directory '%s': %m", path);
+ ERROR("while removing directory '%s': %m", path);
return -1;
}
return -1;
}
@@
-105,16
+117,18
@@
int uninstall_widget(const char *idaver, const char *root)
* parent directory removed: last occurrence of the application
* uninstall it for the security-manager
*/
* parent directory removed: last occurrence of the application
* uninstall it for the security-manager
*/
- rc2 = secmgr_init(id);
- if (rc2) {
+ rc = secmgr_init(id);
+#else
+ rc = secmgr_init(idaver);
+#endif
+ if (rc) {
ERROR("can't init security manager context");
return -1;
}
ERROR("can't init security manager context");
return -1;
}
- rc
2
= secmgr_uninstall();
- if (rc
2
) {
+ rc = secmgr_uninstall();
+ if (rc) {
ERROR("can't uninstall security manager context");
return -1;
}
ERROR("can't uninstall security manager context");
return -1;
}
- return
rc
;
+ return
0
;
}
}
-