X Tutup
Skip to content

Commit 0d94088

Browse files
committed
import: use structured initializers
1 parent c3e6580 commit 0d94088

File tree

10 files changed

+141
-86
lines changed

10 files changed

+141
-86
lines changed

src/import/curl-util.c

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -222,24 +222,31 @@ CurlGlue *curl_glue_unref(CurlGlue *g) {
222222

223223
int curl_glue_new(CurlGlue **glue, sd_event *event) {
224224
_cleanup_(curl_glue_unrefp) CurlGlue *g = NULL;
225+
_cleanup_(curl_multi_cleanupp) CURL *c = NULL;
226+
_cleanup_(sd_event_unrefp) sd_event *e = NULL;
225227
int r;
226228

227-
g = new0(CurlGlue, 1);
228-
if (!g)
229-
return -ENOMEM;
230-
231229
if (event)
232-
g->event = sd_event_ref(event);
230+
e = sd_event_ref(event);
233231
else {
234-
r = sd_event_default(&g->event);
232+
r = sd_event_default(&e);
235233
if (r < 0)
236234
return r;
237235
}
238236

239-
g->curl = curl_multi_init();
240-
if (!g->curl)
237+
c = curl_multi_init();
238+
if (!c)
239+
return -ENOMEM;
240+
241+
g = new(CurlGlue, 1);
242+
if (!g)
241243
return -ENOMEM;
242244

245+
*g = (CurlGlue) {
246+
.event = TAKE_PTR(e),
247+
.curl = TAKE_PTR(c),
248+
};
249+
243250
if (curl_multi_setopt(g->curl, CURLMOPT_SOCKETDATA, g) != CURLM_OK)
244251
return -EINVAL;
245252

src/import/curl-util.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ int curl_header_strdup(const void *contents, size_t sz, const char *field, char
3535
int curl_parse_http_time(const char *t, usec_t *ret);
3636

3737
DEFINE_TRIVIAL_CLEANUP_FUNC(CURL*, curl_easy_cleanup);
38+
DEFINE_TRIVIAL_CLEANUP_FUNC(CURL*, curl_multi_cleanup);
3839
DEFINE_TRIVIAL_CLEANUP_FUNC(struct curl_slist*, curl_slist_free_all);

src/import/export-raw.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,19 @@ int raw_export_new(
8686

8787
assert(ret);
8888

89-
e = new0(RawExport, 1);
89+
e = new(RawExport, 1);
9090
if (!e)
9191
return -ENOMEM;
9292

93-
e->output_fd = e->input_fd = -1;
94-
e->on_finished = on_finished;
95-
e->userdata = userdata;
93+
*e = (RawExport) {
94+
.output_fd = -1,
95+
.input_fd = -1,
96+
.on_finished = on_finished,
97+
.userdata = userdata,
98+
.last_percent = (unsigned) -1,
99+
};
96100

97101
RATELIMIT_INIT(e->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
98-
e->last_percent = (unsigned) -1;
99102

100103
if (event)
101104
e->event = sd_event_ref(event);

src/import/export-tar.c

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,20 @@ int tar_export_new(
8888

8989
assert(ret);
9090

91-
e = new0(TarExport, 1);
91+
e = new(TarExport, 1);
9292
if (!e)
9393
return -ENOMEM;
9494

95-
e->output_fd = e->tar_fd = -1;
96-
e->on_finished = on_finished;
97-
e->userdata = userdata;
98-
e->quota_referenced = (uint64_t) -1;
95+
*e = (TarExport) {
96+
.output_fd = -1,
97+
.tar_fd = -1,
98+
.on_finished = on_finished,
99+
.userdata = userdata,
100+
.quota_referenced = (uint64_t) -1,
101+
.last_percent = (unsigned) -1,
102+
};
99103

100104
RATELIMIT_INIT(e->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
101-
e->last_percent = (unsigned) -1;
102105

103106
if (event)
104107
e->event = sd_event_ref(event);

src/import/import-raw.c

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,26 +94,33 @@ int raw_import_new(
9494
void *userdata) {
9595

9696
_cleanup_(raw_import_unrefp) RawImport *i = NULL;
97+
_cleanup_free_ char *root = NULL;
98+
bool grow;
9799
int r;
98100

99101
assert(ret);
100102

101-
i = new0(RawImport, 1);
102-
if (!i)
103+
root = strdup(image_root ?: "/var/lib/machines");
104+
if (!root)
103105
return -ENOMEM;
104106

105-
i->input_fd = i->output_fd = -1;
106-
i->on_finished = on_finished;
107-
i->userdata = userdata;
108-
109-
RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
110-
i->last_percent = (unsigned) -1;
107+
grow = path_startswith(root, "/var/lib/machines");
111108

112-
i->image_root = strdup(image_root ?: "/var/lib/machines");
113-
if (!i->image_root)
109+
i = new(RawImport, 1);
110+
if (!i)
114111
return -ENOMEM;
115112

116-
i->grow_machine_directory = path_startswith(i->image_root, "/var/lib/machines");
113+
*i = (RawImport) {
114+
.input_fd = -1,
115+
.output_fd = -1,
116+
.on_finished = on_finished,
117+
.userdata = userdata,
118+
.last_percent = (unsigned) -1,
119+
.image_root = TAKE_PTR(root),
120+
.grow_machine_directory = grow,
121+
};
122+
123+
RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
117124

118125
if (event)
119126
i->event = sd_event_ref(event);

src/import/import-tar.c

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -101,26 +101,33 @@ int tar_import_new(
101101
void *userdata) {
102102

103103
_cleanup_(tar_import_unrefp) TarImport *i = NULL;
104+
_cleanup_free_ char *root = NULL;
105+
bool grow;
104106
int r;
105107

106108
assert(ret);
107109

108-
i = new0(TarImport, 1);
109-
if (!i)
110+
root = strdup(image_root ?: "/var/lib/machines");
111+
if (!root)
110112
return -ENOMEM;
111113

112-
i->input_fd = i->tar_fd = -1;
113-
i->on_finished = on_finished;
114-
i->userdata = userdata;
115-
116-
RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
117-
i->last_percent = (unsigned) -1;
114+
grow = path_startswith(root, "/var/lib/machines");
118115

119-
i->image_root = strdup(image_root ?: "/var/lib/machines");
120-
if (!i->image_root)
116+
i = new(TarImport, 1);
117+
if (!i)
121118
return -ENOMEM;
122119

123-
i->grow_machine_directory = path_startswith(i->image_root, "/var/lib/machines");
120+
*i = (TarImport) {
121+
.input_fd = -1,
122+
.tar_fd = -1,
123+
.on_finished = on_finished,
124+
.userdata = userdata,
125+
.last_percent = (unsigned) -1,
126+
.image_root = TAKE_PTR(root),
127+
.grow_machine_directory = grow,
128+
};
129+
130+
RATELIMIT_INIT(i->progress_rate_limit, 100 * USEC_PER_MSEC, 1);
124131

125132
if (event)
126133
i->event = sd_event_ref(event);

src/import/importd.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,17 @@ static int transfer_new(Manager *m, Transfer **ret) {
146146
if (r < 0)
147147
return r;
148148

149-
t = new0(Transfer, 1);
149+
t = new(Transfer, 1);
150150
if (!t)
151151
return -ENOMEM;
152152

153-
t->type = _TRANSFER_TYPE_INVALID;
154-
t->log_fd = -1;
155-
t->stdin_fd = -1;
156-
t->stdout_fd = -1;
157-
t->verify = _IMPORT_VERIFY_INVALID;
153+
*t = (Transfer) {
154+
.type = _TRANSFER_TYPE_INVALID,
155+
.log_fd = -1,
156+
.stdin_fd = -1,
157+
.stdout_fd = -1,
158+
.verify = _IMPORT_VERIFY_INVALID,
159+
};
158160

159161
id = m->current_transfer_id + 1;
160162

src/import/pull-job.c

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -537,28 +537,33 @@ static int pull_job_progress_callback(void *userdata, curl_off_t dltotal, curl_o
537537

538538
int pull_job_new(PullJob **ret, const char *url, CurlGlue *glue, void *userdata) {
539539
_cleanup_(pull_job_unrefp) PullJob *j = NULL;
540+
_cleanup_free_ char *u = NULL;
540541

541542
assert(url);
542543
assert(glue);
543544
assert(ret);
544545

545-
j = new0(PullJob, 1);
546-
if (!j)
546+
u = strdup(url);
547+
if (u)
547548
return -ENOMEM;
548549

549-
j->state = PULL_JOB_INIT;
550-
j->disk_fd = -1;
551-
j->userdata = userdata;
552-
j->glue = glue;
553-
j->content_length = (uint64_t) -1;
554-
j->start_usec = now(CLOCK_MONOTONIC);
555-
j->compressed_max = j->uncompressed_max = 64LLU * 1024LLU * 1024LLU * 1024LLU; /* 64GB safety limit */
556-
j->style = VERIFICATION_STYLE_UNSET;
557-
558-
j->url = strdup(url);
559-
if (!j->url)
550+
j = new(PullJob, 1);
551+
if (!j)
560552
return -ENOMEM;
561553

554+
*j = (PullJob) {
555+
.state = PULL_JOB_INIT,
556+
.disk_fd = -1,
557+
.userdata = userdata,
558+
.glue = glue,
559+
.content_length = (uint64_t) -1,
560+
.start_usec = now(CLOCK_MONOTONIC),
561+
.compressed_max = 64LLU * 1024LLU * 1024LLU * 1024LLU, /* 64GB safety limit */
562+
.uncompressed_max = 64LLU * 1024LLU * 1024LLU * 1024LLU, /* 64GB safety limit */
563+
.style = VERIFICATION_STYLE_UNSET,
564+
.url = TAKE_PTR(u),
565+
};
566+
562567
*ret = TAKE_PTR(j);
563568

564569
return 0;

src/import/pull-raw.c

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -115,36 +115,46 @@ int raw_pull_new(
115115
RawPullFinished on_finished,
116116
void *userdata) {
117117

118+
_cleanup_(curl_glue_unrefp) CurlGlue *g = NULL;
119+
_cleanup_(sd_event_unrefp) sd_event *e = NULL;
118120
_cleanup_(raw_pull_unrefp) RawPull *i = NULL;
121+
_cleanup_free_ char *root = NULL;
122+
bool grow;
119123
int r;
120124

121125
assert(ret);
122126

123-
i = new0(RawPull, 1);
124-
if (!i)
125-
return -ENOMEM;
126-
127-
i->on_finished = on_finished;
128-
i->userdata = userdata;
129-
130-
i->image_root = strdup(image_root ?: "/var/lib/machines");
131-
if (!i->image_root)
127+
root = strdup(image_root ?: "/var/lib/machines");
128+
if (!root)
132129
return -ENOMEM;
133130

134-
i->grow_machine_directory = path_startswith(i->image_root, "/var/lib/machines");
131+
grow = path_startswith(root, "/var/lib/machines");
135132

136133
if (event)
137-
i->event = sd_event_ref(event);
134+
e = sd_event_ref(event);
138135
else {
139-
r = sd_event_default(&i->event);
136+
r = sd_event_default(&e);
140137
if (r < 0)
141138
return r;
142139
}
143140

144-
r = curl_glue_new(&i->glue, i->event);
141+
r = curl_glue_new(&g, e);
145142
if (r < 0)
146143
return r;
147144

145+
i = new(RawPull, 1);
146+
if (!i)
147+
return -ENOMEM;
148+
149+
*i = (RawPull) {
150+
.on_finished = on_finished,
151+
.userdata = userdata,
152+
.image_root = TAKE_PTR(root),
153+
.grow_machine_directory = grow,
154+
.event = TAKE_PTR(e),
155+
.glue = TAKE_PTR(g),
156+
};
157+
148158
i->glue->on_finished = pull_job_curl_on_finished;
149159
i->glue->userdata = i;
150160

src/import/pull-tar.c

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,36 +108,46 @@ int tar_pull_new(
108108
TarPullFinished on_finished,
109109
void *userdata) {
110110

111+
_cleanup_(curl_glue_unrefp) CurlGlue *g = NULL;
112+
_cleanup_(sd_event_unrefp) sd_event *e = NULL;
111113
_cleanup_(tar_pull_unrefp) TarPull *i = NULL;
114+
_cleanup_free_ char *root = NULL;
115+
bool grow;
112116
int r;
113117

114118
assert(ret);
115119

116-
i = new0(TarPull, 1);
117-
if (!i)
118-
return -ENOMEM;
119-
120-
i->on_finished = on_finished;
121-
i->userdata = userdata;
122-
123-
i->image_root = strdup(image_root ?: "/var/lib/machines");
124-
if (!i->image_root)
120+
root = strdup(image_root ?: "/var/lib/machines");
121+
if (!root)
125122
return -ENOMEM;
126123

127-
i->grow_machine_directory = path_startswith(i->image_root, "/var/lib/machines");
124+
grow = path_startswith(root, "/var/lib/machines");
128125

129126
if (event)
130-
i->event = sd_event_ref(event);
127+
e = sd_event_ref(event);
131128
else {
132-
r = sd_event_default(&i->event);
129+
r = sd_event_default(&e);
133130
if (r < 0)
134131
return r;
135132
}
136133

137-
r = curl_glue_new(&i->glue, i->event);
134+
r = curl_glue_new(&g, e);
138135
if (r < 0)
139136
return r;
140137

138+
i = new(TarPull, 1);
139+
if (!i)
140+
return -ENOMEM;
141+
142+
*i = (TarPull) {
143+
.on_finished = on_finished,
144+
.userdata = userdata,
145+
.image_root = TAKE_PTR(root),
146+
.grow_machine_directory = grow,
147+
.event = TAKE_PTR(e),
148+
.glue = TAKE_PTR(g),
149+
};
150+
141151
i->glue->on_finished = pull_job_curl_on_finished;
142152
i->glue->userdata = i;
143153

0 commit comments

Comments
 (0)
X Tutup