diff options
author | Steve Sistare <steven.sistare@oracle.com> | 2025-01-15 11:00:37 -0800 |
---|---|---|
committer | Fabiano Rosas <farosas@suse.de> | 2025-01-29 11:43:04 -0300 |
commit | f2374f0fc3180a449857e6e56f20add3e8d2cca8 (patch) | |
tree | 7b1df92f4d814f2d61a7e6adc3d7f2398c432c18 | |
parent | 2ef121688f407ff0fa513d317d4841fb180d6942 (diff) | |
download | qemu-f2374f0fc3180a449857e6e56f20add3e8d2cca8.zip qemu-f2374f0fc3180a449857e6e56f20add3e8d2cca8.tar.gz qemu-f2374f0fc3180a449857e6e56f20add3e8d2cca8.tar.bz2 |
migration: enhance migrate_uri_parse
Export migrate_uri_parse for use outside migration internals, and define
a method migrate_is_uri that indicates when migrate_uri_parse should
be used.
Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Link: https://lore.kernel.org/r/1736967650-129648-12-git-send-email-steven.sistare@oracle.com
Signed-off-by: Fabiano Rosas <farosas@suse.de>
-rw-r--r-- | include/migration/misc.h | 7 | ||||
-rw-r--r-- | migration/migration.c | 11 | ||||
-rw-r--r-- | migration/migration.h | 2 |
3 files changed, 18 insertions, 2 deletions
diff --git a/include/migration/misc.h b/include/migration/misc.h index 67f7ef7..c660be8 100644 --- a/include/migration/misc.h +++ b/include/migration/misc.h @@ -108,4 +108,11 @@ bool migration_in_bg_snapshot(void); bool migration_block_activate(Error **errp); bool migration_block_inactivate(void); +/* True if @uri starts with a syntactically valid URI prefix */ +bool migrate_is_uri(const char *uri); + +/* Parse @uri and return @channel, returning true on success */ +bool migrate_uri_parse(const char *uri, MigrationChannel **channel, + Error **errp); + #endif diff --git a/migration/migration.c b/migration/migration.c index fce7b22..b5ee98e 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -14,6 +14,7 @@ */ #include "qemu/osdep.h" +#include "qemu/ctype.h" #include "qemu/cutils.h" #include "qemu/error-report.h" #include "qemu/main-loop.h" @@ -587,6 +588,16 @@ void migrate_add_address(SocketAddress *address) QAPI_CLONE(SocketAddress, address)); } +bool migrate_is_uri(const char *uri) +{ + while (*uri && *uri != ':') { + if (!qemu_isalpha(*uri++)) { + return false; + } + } + return *uri == ':'; +} + bool migrate_uri_parse(const char *uri, MigrationChannel **channel, Error **errp) { diff --git a/migration/migration.h b/migration/migration.h index 0df2a18..1d4d4e9 100644 --- a/migration/migration.h +++ b/migration/migration.h @@ -519,8 +519,6 @@ bool check_dirty_bitmap_mig_alias_map(const BitmapMigrationNodeAliasList *bbm, Error **errp); void migrate_add_address(SocketAddress *address); -bool migrate_uri_parse(const char *uri, MigrationChannel **channel, - Error **errp); int foreach_not_ignored_block(RAMBlockIterFunc func, void *opaque); #define qemu_ram_foreach_block \ |