diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pb-protocol/pb-protocol.c | 20 | ||||
-rw-r--r-- | lib/pb-protocol/pb-protocol.h | 4 |
2 files changed, 8 insertions, 16 deletions
diff --git a/lib/pb-protocol/pb-protocol.c b/lib/pb-protocol/pb-protocol.c index 31637c6..c6d8f63 100644 --- a/lib/pb-protocol/pb-protocol.c +++ b/lib/pb-protocol/pb-protocol.c @@ -338,10 +338,9 @@ struct pb_protocol_message *pb_protocol_read_message(void *ctx, int fd) } -struct device *pb_protocol_deserialise_device(void *ctx, +int pb_protocol_deserialise_device(struct device *dev, const struct pb_protocol_message *message) { - struct device *dev; const char *pos; int i, n_options; unsigned int len; @@ -349,8 +348,6 @@ struct device *pb_protocol_deserialise_device(void *ctx, len = message->payload_len; pos = message->payload; - dev = talloc(ctx, struct device); - if (read_string(dev, &pos, &len, &dev->id)) goto out_err; @@ -398,25 +395,21 @@ struct device *pb_protocol_deserialise_device(void *ctx, list_add(&dev->boot_options, &opt->list); } - return dev; + return 0; out_err: - talloc_free(dev); - return NULL; + return -1; } -struct boot_command *pb_protocol_deserialise_boot_command(void *ctx, +int pb_protocol_deserialise_boot_command(struct boot_command *cmd, const struct pb_protocol_message *message) { - struct boot_command *cmd; const char *pos; unsigned int len; len = message->payload_len; pos = message->payload; - cmd = talloc(ctx, struct boot_command); - if (read_string(cmd, &pos, &len, &cmd->option_id)) goto out_err; @@ -429,9 +422,8 @@ struct boot_command *pb_protocol_deserialise_boot_command(void *ctx, if (read_string(cmd, &pos, &len, &cmd->boot_args)) goto out_err; - return cmd; + return 0; out_err: - talloc_free(cmd); - return NULL; + return -1; } diff --git a/lib/pb-protocol/pb-protocol.h b/lib/pb-protocol/pb-protocol.h index 6068f05..de2ae7c 100644 --- a/lib/pb-protocol/pb-protocol.h +++ b/lib/pb-protocol/pb-protocol.h @@ -47,10 +47,10 @@ struct pb_protocol_message *pb_protocol_create_message(void *ctx, struct pb_protocol_message *pb_protocol_read_message(void *ctx, int fd); -struct device *pb_protocol_deserialise_device(void *ctx, +int pb_protocol_deserialise_device(struct device *dev, const struct pb_protocol_message *message); -struct boot_command *pb_protocol_deserialise_boot_command(void *ctx, +int pb_protocol_deserialise_boot_command(struct boot_command *cmd, const struct pb_protocol_message *message); #endif /* _PB_PROTOCOL_H */ |