Lines Matching refs:data

60     ret += pack->nb->tail - pack->nb->data;
65 parse_line (grub_file_t file, http_data_t data, char *ptr, grub_size_t len)
72 if (data->in_chunk_len == 1)
74 data->in_chunk_len = 2;
77 if (data->in_chunk_len == 2)
79 data->chunk_rem = grub_strtoul (ptr, 0, 16);
81 if (data->chunk_rem == 0)
87 data->in_chunk_len = 0;
92 data->headers_recv = 1;
93 if (data->chunked)
94 data->in_chunk_len = 2;
98 if (!data->first_line_recv)
113 data->err = GRUB_ERR_FILE_NOT_FOUND;
114 data->errmsg = grub_xasprintf ("file `%s' not found", data->filename);
117 data->err = GRUB_ERR_NET_UNKNOWN_ERROR;
118 data->errmsg = grub_xasprintf ("unsupported HTTP error %d: %s",
122 data->first_line_recv = 1;
126 == 0 && !data->size_recv)
130 data->size_recv = 1;
136 data->chunked = 1;
148 http_data_t data = file->data;
150 if (data->sock)
151 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
152 if (data->current_line)
153 grub_free (data->current_line);
154 grub_free (data);
166 http_data_t data = file->data;
171 char *ptr = (char *) nb->data;
172 if ((!data->headers_recv || data->in_chunk_len) && data->current_line)
176 ptr = grub_memchr (nb->data, '\n', nb->tail - nb->data);
184 t = grub_realloc (data->current_line,
185 data->current_line_len + (ptr - (char *) nb->data));
189 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
193 data->current_line = t;
194 grub_memcpy (data->current_line + data->current_line_len,
195 nb->data, ptr - (char *) nb->data);
196 data->current_line_len += ptr - (char *) nb->data;
202 err = parse_line (file, data, data->current_line,
203 data->current_line_len);
204 grub_free (data->current_line);
205 data->current_line = 0;
206 data->current_line_len = 0;
209 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
215 while (ptr < (char *) nb->tail && (!data->headers_recv
216 || data->in_chunk_len))
222 data->current_line = grub_malloc ((char *) nb->tail - ptr);
223 if (!data->current_line)
226 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
229 data->current_line_len = (char *) nb->tail - ptr;
230 grub_memcpy (data->current_line, ptr, data->current_line_len);
234 err = parse_line (file, data, ptr, ptr2 - ptr);
237 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
249 err = grub_netbuff_pull (nb, ptr - (char *) nb->data);
252 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
256 if (!(data->chunked && (grub_ssize_t) data->chunk_rem
257 < nb->tail - nb->data))
260 if (data->chunked)
261 data->chunk_rem -= nb->tail - nb->data;
264 if (data->chunk_rem)
267 nb2 = grub_netbuff_alloc (data->chunk_rem);
270 grub_netbuff_put (nb2, data->chunk_rem);
271 grub_memcpy (nb2->data, nb->data, data->chunk_rem);
273 grub_netbuff_pull (nb, data->chunk_rem);
275 data->in_chunk_len = 1;
282 http_data_t data = file->data;
290 + grub_strlen (data->filename)
313 err = grub_netbuff_put (nb, grub_strlen (data->filename));
319 grub_memcpy (ptr, data->filename, grub_strlen (data->filename));
368 data->sock = grub_net_tcp_open (file->device->net->server,
372 if (!data->sock)
380 err = grub_net_send_tcp_packet (data->sock, nb, 1);
383 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
387 for (i = 0; !data->headers_recv && i < 100; i++)
393 if (!data->headers_recv)
395 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
396 if (data->err)
398 char *str = data->errmsg;
399 err = grub_error (data->err, "%s", str);
401 return data->err;
411 struct http_data *old_data, *data;
413 old_data = file->data;
425 data = grub_zalloc (sizeof (*data));
426 if (!data)
429 data->size_recv = 1;
430 data->filename = old_data->filename;
431 if (!data->filename)
433 grub_free (data);
438 file->data = data;
442 grub_free (data->filename);
443 grub_free (data);
453 struct http_data *data;
455 data = grub_zalloc (sizeof (*data));
456 if (!data)
460 data->filename = grub_strdup (filename);
461 if (!data->filename)
463 grub_free (data);
468 file->data = data;
473 grub_free (data->filename);
474 grub_free (data);
484 http_data_t data = file->data;
486 if (data->sock)
487 grub_net_tcp_close (data->sock, GRUB_NET_TCP_ABORT);
488 if (data->current_line)
489 grub_free (data->current_line);
490 grub_free (data);