[10/18] migration/qemu-file: add qemu_put_counted_string()
diff mbox

Message ID 1471343175-14945-11-git-send-email-vsementsov@virtuozzo.com
State New
Headers show

Commit Message

Vladimir Sementsov-Ogievskiy Aug. 16, 2016, 10:26 a.m. UTC
Add function opposite to qemu_get_counted_string.
qemu_put_counted_string puts one-byte length of the string (string
should not be longer than 255 characters), and then it puts the string,
without last zero byte.

Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
 include/migration/qemu-file.h |  2 ++
 migration/qemu-file.c         | 13 +++++++++++++
 2 files changed, 15 insertions(+)

Comments

Fam Zheng Aug. 17, 2016, 9:09 a.m. UTC | #1
On Tue, 08/16 13:26, Vladimir Sementsov-Ogievskiy wrote:
> Add function opposite to qemu_get_counted_string.
> qemu_put_counted_string puts one-byte length of the string (string
> should not be longer than 255 characters), and then it puts the string,
> without last zero byte.
> 
> Reviewed-by: John Snow <jsnow@redhat.com>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
>  include/migration/qemu-file.h |  2 ++
>  migration/qemu-file.c         | 13 +++++++++++++
>  2 files changed, 15 insertions(+)
> 
> diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h
> index abedd46..d860c92 100644
> --- a/include/migration/qemu-file.h
> +++ b/include/migration/qemu-file.h
> @@ -309,4 +309,6 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv)
>  
>  size_t qemu_get_counted_string(QEMUFile *f, char buf[256]);
>  
> +void qemu_put_counted_string(QEMUFile *f, const char *name);
> +
>  #endif
> diff --git a/migration/qemu-file.c b/migration/qemu-file.c
> index bbc565e..6fcdd68 100644
> --- a/migration/qemu-file.c
> +++ b/migration/qemu-file.c
> @@ -690,6 +690,19 @@ size_t qemu_get_counted_string(QEMUFile *f, char buf[256])
>  }
>  
>  /*
> + * Put a string with one preceding byte containing its length. The length of
> + * the string should be less than 256.
> + */
> +void qemu_put_counted_string(QEMUFile *f, const char *name)

"Name" is a poor name. Perhaps call it "buf" like qemu_get_counted_string?

Fam

> +{
> +    size_t len = strlen(name);
> +
> +    assert(len < 256);
> +    qemu_put_byte(f, len);
> +    qemu_put_buffer(f, (const uint8_t *)name, len);
> +}
> +
> +/*
>   * Set the blocking state of the QEMUFile.
>   * Note: On some transports the OS only keeps a single blocking state for
>   *       both directions, and thus changing the blocking on the main
> -- 
> 1.8.3.1
> 
>
Vladimir Sementsov-Ogievskiy Nov. 21, 2016, 5:23 a.m. UTC | #2
17.08.2016 12:09, Fam Zheng wrote:
> On Tue, 08/16 13:26, Vladimir Sementsov-Ogievskiy wrote:
>> Add function opposite to qemu_get_counted_string.
>> qemu_put_counted_string puts one-byte length of the string (string
>> should not be longer than 255 characters), and then it puts the string,
>> without last zero byte.
>>
>> Reviewed-by: John Snow <jsnow@redhat.com>
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>> ---
>>   include/migration/qemu-file.h |  2 ++
>>   migration/qemu-file.c         | 13 +++++++++++++
>>   2 files changed, 15 insertions(+)
>>
>> diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h
>> index abedd46..d860c92 100644
>> --- a/include/migration/qemu-file.h
>> +++ b/include/migration/qemu-file.h
>> @@ -309,4 +309,6 @@ static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv)
>>   
>>   size_t qemu_get_counted_string(QEMUFile *f, char buf[256]);
>>   
>> +void qemu_put_counted_string(QEMUFile *f, const char *name);
>> +
>>   #endif
>> diff --git a/migration/qemu-file.c b/migration/qemu-file.c
>> index bbc565e..6fcdd68 100644
>> --- a/migration/qemu-file.c
>> +++ b/migration/qemu-file.c
>> @@ -690,6 +690,19 @@ size_t qemu_get_counted_string(QEMUFile *f, char buf[256])
>>   }
>>   
>>   /*
>> + * Put a string with one preceding byte containing its length. The length of
>> + * the string should be less than 256.
>> + */
>> +void qemu_put_counted_string(QEMUFile *f, const char *name)
> "Name" is a poor name. Perhaps call it "buf" like qemu_get_counted_string?

buf is poor too, as it say nothing about 0-ended string. Let it be 'str'.

>
> Fam
>
>> +{
>> +    size_t len = strlen(name);
>> +
>> +    assert(len < 256);
>> +    qemu_put_byte(f, len);
>> +    qemu_put_buffer(f, (const uint8_t *)name, len);
>> +}
>> +
>> +/*
>>    * Set the blocking state of the QEMUFile.
>>    * Note: On some transports the OS only keeps a single blocking state for
>>    *       both directions, and thus changing the blocking on the main
>> -- 
>> 1.8.3.1
>>
>>

Patch
diff mbox

diff --git a/include/migration/qemu-file.h b/include/migration/qemu-file.h
index abedd46..d860c92 100644
--- a/include/migration/qemu-file.h
+++ b/include/migration/qemu-file.h
@@ -309,4 +309,6 @@  static inline void qemu_get_sbe64s(QEMUFile *f, int64_t *pv)
 
 size_t qemu_get_counted_string(QEMUFile *f, char buf[256]);
 
+void qemu_put_counted_string(QEMUFile *f, const char *name);
+
 #endif
diff --git a/migration/qemu-file.c b/migration/qemu-file.c
index bbc565e..6fcdd68 100644
--- a/migration/qemu-file.c
+++ b/migration/qemu-file.c
@@ -690,6 +690,19 @@  size_t qemu_get_counted_string(QEMUFile *f, char buf[256])
 }
 
 /*
+ * Put a string with one preceding byte containing its length. The length of
+ * the string should be less than 256.
+ */
+void qemu_put_counted_string(QEMUFile *f, const char *name)
+{
+    size_t len = strlen(name);
+
+    assert(len < 256);
+    qemu_put_byte(f, len);
+    qemu_put_buffer(f, (const uint8_t *)name, len);
+}
+
+/*
  * Set the blocking state of the QEMUFile.
  * Note: On some transports the OS only keeps a single blocking state for
  *       both directions, and thus changing the blocking on the main