From 11baace21e1fa04a92baa395f38ebad8001e9762 Mon Sep 17 00:00:00 2001 From: Tim Ruehsen Date: Tue, 18 Nov 2014 22:00:48 +0100 Subject: [PATCH] Trivial fixes for C89 compliancy. --- src/ChangeLog | 6 +++ src/cookies.c | 2 +- src/ftp-basic.c | 10 +++-- src/ftp.c | 4 +- src/gnutls.c | 12 ++++-- src/host.c | 2 +- src/html-url.c | 3 +- src/http.c | 10 +++-- src/main.c | 30 +++++++------- src/progress.c | 9 +++-- src/retr.c | 12 ++++-- src/warc.c | 123 +++++++++++++++++++++++++++++++++----------------------- 12 files changed, 135 insertions(+), 88 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 4e974b0..5e94b58 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,11 @@ 2014-11-18 Tim Ruehsen + * cookies.c, ftp-basic.c, ftp.c, gnutls.c, host.c, + html-url.c, http.c, main.c, progress.c, retr.c, warc.c: + Trivial fixes for C89 compliancy. + +2014-11-18 Tim Ruehsen + * Fix warnings from clang-analyzer 3.6 gnutls.c:457:3: warning: Value stored to 'err' is never read diff --git a/src/cookies.c b/src/cookies.c index bf872a8..f31a4ec 100644 --- a/src/cookies.c +++ b/src/cookies.c @@ -518,12 +518,12 @@ check_domain_match (const char *cookie_domain, const char *host) { #ifdef HAVE_LIBPSL - DEBUGP (("cdm: 1")); char *cookie_domain_lower = NULL; char *host_lower = NULL; const psl_ctx_t *psl; int is_acceptable; + DEBUGP (("cdm: 1")); if (!(psl = psl_builtin())) { DEBUGP (("\nlibpsl not built with a public suffix list. " diff --git a/src/ftp-basic.c b/src/ftp-basic.c index b6e67e2..06936ce 100644 --- a/src/ftp-basic.c +++ b/src/ftp-basic.c @@ -965,16 +965,18 @@ ftp_list (int csock, const char *file, bool avoid_list_a, bool avoid_list, bool ok = false; size_t i = 0; - *list_a_used = false; - /* 2013-10-12 Andrea Urbani (matfanjol) For more information about LIST and "LIST -a" please look at ftp.c, function getftp, text "__LIST_A_EXPLANATION__". If somebody changes the following commands, please, checks also the later "i" variable. */ - const char *list_commands[] = { "LIST -a", - "LIST" }; + static const char *list_commands[] = { + "LIST -a", + "LIST" + }; + + *list_a_used = false; if (avoid_list_a) { diff --git a/src/ftp.c b/src/ftp.c index d614a27..f02f057 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -2221,9 +2221,9 @@ has_insecure_name_p (const char *s) static bool is_invalid_entry (struct fileinfo *f) { - struct fileinfo *cur; - cur = f; + struct fileinfo *cur = f; char *f_name = f->name; + /* If the node we're currently checking has a duplicate later, we eliminate * the current node and leave the next one intact. */ while (cur->next) diff --git a/src/gnutls.c b/src/gnutls.c index 87d1d0b..42201e5 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -54,6 +54,10 @@ as that of the covered work. */ # include "w32sock.h" #endif +#ifdef HAVE_ALLOCA_H +# include +#endif + #include "host.h" static int @@ -122,9 +126,10 @@ ssl_init (void) while ((dent = readdir (dir)) != NULL) { struct stat st; - char ca_file[dirlen + strlen(dent->d_name) + 2]; + size_t ca_file_length = dirlen + strlen(dent->d_name) + 2; + char *ca_file = alloca(ca_file_length); - snprintf (ca_file, sizeof(ca_file), "%s/%s", ca_directory, dent->d_name); + snprintf (ca_file, ca_file_length, "%s/%s", ca_directory, dent->d_name); if (stat (ca_file, &st) != 0) continue; @@ -433,9 +438,10 @@ ssl_connect_wget (int fd, const char *hostname) struct wgnutls_transport_context *ctx; gnutls_session_t session; int err,alert; - gnutls_init (&session, GNUTLS_CLIENT); const char *str; + gnutls_init (&session, GNUTLS_CLIENT); + /* We set the server name but only if it's not an IP address. */ if (! is_valid_ip_address (hostname)) { diff --git a/src/host.c b/src/host.c index 86bf83b..28b56b4 100644 --- a/src/host.c +++ b/src/host.c @@ -592,7 +592,7 @@ cache_query (const char *host) al = hash_table_get (host_name_addresses_map, host); if (al) { - DEBUGP (("Found %s in host_name_addresses_map (%p)\n", host, al)); + DEBUGP (("Found %s in host_name_addresses_map (%p)\n", host, (void *) al)); ++al->refcount; return al; } diff --git a/src/html-url.c b/src/html-url.c index 903864e..29a68d6 100644 --- a/src/html-url.c +++ b/src/html-url.c @@ -788,6 +788,7 @@ get_urls_file (const char *file) { int up_error_code; char *url_text; + char *new_url; struct urlpos *entry; struct url *url; @@ -822,7 +823,7 @@ get_urls_file (const char *file) url_text = merged; } - char *new_url = rewrite_shorthand_url (url_text); + new_url = rewrite_shorthand_url (url_text); if (new_url) { xfree (url_text); diff --git a/src/http.c b/src/http.c index dd9d7e4..e395e3d 100644 --- a/src/http.c +++ b/src/http.c @@ -1531,6 +1531,7 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, int warc_payload_offset = 0; FILE *warc_tmp = NULL; int warcerr = 0; + int flags = 0; if (opt.warc_filename != NULL) { @@ -1567,7 +1568,6 @@ read_response_body (struct http_stat *hs, int sock, FILE *fp, wgint contlen, } /* Read the response body. */ - int flags = 0; if (contlen != -1) /* If content-length is present, read that much; otherwise, read until EOF. The HTTP spec doesn't require the server to @@ -2146,11 +2146,13 @@ gethttp (struct url *u, struct http_stat *hs, int *dt, struct url *proxy, write_error = fd_write (sock, opt.body_data, body_data_size, -1); if (write_error >= 0 && warc_tmp != NULL) { + int warc_tmp_written; + /* Remember end of headers / start of payload. */ warc_payload_offset = ftello (warc_tmp); /* Write a copy of the data to the WARC record. */ - int warc_tmp_written = fwrite (opt.body_data, 1, body_data_size, warc_tmp); + warc_tmp_written = fwrite (opt.body_data, 1, body_data_size, warc_tmp); if (warc_tmp_written != body_data_size) write_error = -2; } @@ -2333,6 +2335,7 @@ read_header: if (statcode == HTTP_STATUS_UNAUTHORIZED) { /* Authorization is required. */ + uerr_t auth_err = RETROK; /* Normally we are not interested in the response body. But if we are writing a WARC file we are: we like to keep everyting. */ @@ -2370,7 +2373,6 @@ read_header: } pconn.authorized = false; - uerr_t auth_err = RETROK; if (!auth_finished && (user && passwd)) { /* IIS sends multiple copies of WWW-Authenticate, one with @@ -3845,7 +3847,7 @@ digest_authentication_encode (const char *au, const char *user, snprintf (cnonce, sizeof (cnonce), "%08x", random_number(INT_MAX)); md5_init_ctx (&ctx); - // md5_process_bytes (hash, MD5_DIGEST_SIZE, &ctx); + /* md5_process_bytes (hash, MD5_DIGEST_SIZE, &ctx); */ md5_process_bytes (a1buf, MD5_DIGEST_SIZE * 2, &ctx); md5_process_bytes ((unsigned char *)":", 1, &ctx); md5_process_bytes ((unsigned char *)nonce, strlen (nonce), &ctx); diff --git a/src/main.c b/src/main.c index d00324d..7197223 100644 --- a/src/main.c +++ b/src/main.c @@ -1007,18 +1007,21 @@ char *program_argstring; /* Needed by wget_warc.c. */ int main (int argc, char **argv) { - char **url, **t; + char **url, **t, *p; int i, ret, longindex; int nurl; + int retconf; + int argstring_length; + bool use_userconfig = false; + bool noconfig = false; bool append_to_log = false; - total_downloaded_bytes = 0; - - program_name = argv[0]; - struct ptimer *timer = ptimer_new (); double start_time = ptimer_measure (timer); + total_downloaded_bytes = 0; + program_name = argv[0]; + i18n_initialize (); /* Construct the name of the executable, without the directory part. */ @@ -1039,10 +1042,9 @@ main (int argc, char **argv) #endif /* Construct the arguments string. */ - int argstring_length = 1; - for (i = 1; i < argc; i++) + for (argstring_length = 1, i = 1; i < argc; i++) argstring_length += strlen (argv[i]) + 2 + 1; - char *p = program_argstring = malloc (argstring_length * sizeof (char)); + p = program_argstring = malloc (argstring_length * sizeof (char)); if (p == NULL) { fprintf (stderr, _("Memory allocation problem\n")); @@ -1050,8 +1052,10 @@ main (int argc, char **argv) } for (i = 1; i < argc; i++) { + int arglen; + *p++ = '"'; - int arglen = strlen (argv[i]); + arglen = strlen (argv[i]); memcpy (p, argv[i], arglen); p += arglen; *p++ = '"'; @@ -1067,9 +1071,6 @@ main (int argc, char **argv) /* This separate getopt_long is needed to find the user config file option ("--config") and parse it before the other user options. */ longindex = -1; - int retconf; - bool use_userconfig = false; - bool noconfig = false; while ((retconf = getopt_long (argc, argv, short_options, long_options, &longindex)) != -1) @@ -1728,10 +1729,11 @@ outputting to a regular file.\n")); total_downloaded_bytes != 0) { double end_time = ptimer_measure (timer); - ptimer_destroy (timer); - char *wall_time = xstrdup (secs_to_human_time (end_time - start_time)); char *download_time = xstrdup (secs_to_human_time (total_download_time)); + + ptimer_destroy (timer); + logprintf (LOG_NOTQUIET, _("FINISHED --%s--\nTotal wall clock time: %s\n" "Downloaded: %d files, %s in %s (%s)\n"), diff --git a/src/progress.c b/src/progress.c index f813714..f7bffb1 100644 --- a/src/progress.c +++ b/src/progress.c @@ -946,6 +946,8 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done) /* The difference between the number of bytes used, and the number of columns used. */ int bytes_cols_diff = 0; + int cols_diff; + const char *down_size; if (progress_size < 5) progress_size = 0; @@ -963,6 +965,7 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done) int offset_cols; int bytes_in_filename, offset_bytes, col; int *cols_ret = &col; + int padding; if (((orig_filename_cols > MAX_FILENAME_COLS) && !opt.noscroll) && !done) offset_cols = ((int) bp->tick) % (orig_filename_cols - MAX_FILENAME_COLS + 1); @@ -972,7 +975,7 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done) bytes_in_filename = cols_to_bytes (bp->f_download + offset_bytes, MAX_FILENAME_COLS, cols_ret); memcpy (p, bp->f_download + offset_bytes, bytes_in_filename); p += bytes_in_filename; - int padding = MAX_FILENAME_COLS - *cols_ret; + padding = MAX_FILENAME_COLS - *cols_ret; for (;padding;padding--) *p++ = ' '; *p++ = ' '; @@ -1055,8 +1058,8 @@ create_image (struct bar_progress *bp, double dl_total_time, bool done) ++bp->tick; /* " 234.56M" */ - const char * down_size = human_readable (size, 1000, 2); - int cols_diff = 7 - count_cols (down_size); + down_size = human_readable (size, 1000, 2); + cols_diff = 7 - count_cols (down_size); while (cols_diff > 0) { *p++=' '; diff --git a/src/retr.c b/src/retr.c index ff5f5b3..8d76b1b 100644 --- a/src/retr.c +++ b/src/retr.c @@ -378,8 +378,10 @@ fd_read_body (const char *downloaded_filename, int fd, FILE *out, wgint toread, if (ret > 0) { + int write_res; + sum_read += ret; - int write_res = write_data (out, out2, dlbuf, ret, &skip, &sum_written); + write_res = write_data (out, out2, dlbuf, ret, &skip, &sum_written); if (write_res < 0) { ret = (write_res == -3) ? -3 : -2; @@ -1056,7 +1058,7 @@ retrieve_from_file (const char *file, bool html, int *count) for (cur_url = url_list; cur_url; cur_url = cur_url->next, ++*count) { - char *filename = NULL, *new_file = NULL; + char *filename = NULL, *new_file = NULL, *proxy; int dt; struct iri *tmpiri = iri_dup (iri); struct url *parsed_url = NULL; @@ -1072,7 +1074,7 @@ retrieve_from_file (const char *file, bool html, int *count) parsed_url = url_parse (cur_url->url->url, NULL, tmpiri, true); - char *proxy = getproxy (cur_url->url); + proxy = getproxy (cur_url->url); if ((opt.recursive || opt.page_requisites) && (cur_url->url->scheme != SCHEME_FTP || proxy)) { @@ -1285,9 +1287,11 @@ bool url_uses_proxy (struct url * u) { bool ret; + char *proxy; + if (!u) return false; - char *proxy = getproxy (u); + proxy = getproxy (u); ret = proxy != NULL; free(proxy); return ret; diff --git a/src/warc.c b/src/warc.c index 69c2b73..32675f8 100644 --- a/src/warc.c +++ b/src/warc.c @@ -165,10 +165,12 @@ warc_write_buffer (const char *buffer, size_t size) static bool warc_write_string (const char *str) { + size_t n; + if (!warc_write_ok) return false; - size_t n = strlen (str); + n = strlen (str); if (n != warc_write_buffer (str, n)) warc_write_ok = false; @@ -257,6 +259,9 @@ warc_write_block_from_file (FILE *data_in) { /* Add the Content-Length header. */ char content_length[MAX_INT_TO_STRING_LEN(off_t)]; + char buffer[BUFSIZ]; + size_t s; + fseeko (data_in, 0L, SEEK_END); number_to_string (content_length, ftello (data_in)); warc_write_header ("Content-Length", content_length); @@ -268,8 +273,6 @@ warc_write_block_from_file (FILE *data_in) warc_write_ok = false; /* Copy the data in the file to the WARC record. */ - char buffer[BUFSIZ]; - size_t s; while (warc_write_ok && (s = fread (buffer, 1, BUFSIZ, data_in)) > 0) { if (warc_write_buffer (buffer, s) < s) @@ -294,6 +297,11 @@ warc_write_end_record (void) /* We start a new gzip stream for each record. */ if (warc_write_ok && warc_current_gzfile) { + char extra_header[EXTRA_GZIP_HEADER_SIZE]; + char static_header[GZIP_STATIC_HEADER_SIZE]; + off_t current_offset, uncompressed_size, compressed_size; + size_t result; + if (gzclose (warc_current_gzfile) != Z_OK) { warc_write_ok = false; @@ -319,17 +327,16 @@ warc_write_end_record (void) */ /* Calculate the uncompressed and compressed sizes. */ - off_t current_offset = ftello (warc_current_file); - off_t uncompressed_size = current_offset - warc_current_gzfile_offset; - off_t compressed_size = warc_current_gzfile_uncompressed_size; + current_offset = ftello (warc_current_file); + uncompressed_size = current_offset - warc_current_gzfile_offset; + compressed_size = warc_current_gzfile_uncompressed_size; /* Go back to the static GZIP header. */ fseeko (warc_current_file, warc_current_gzfile_offset + EXTRA_GZIP_HEADER_SIZE, SEEK_SET); /* Read the header. */ - char static_header[GZIP_STATIC_HEADER_SIZE]; - size_t result = fread (static_header, 1, GZIP_STATIC_HEADER_SIZE, + result = fread (static_header, 1, GZIP_STATIC_HEADER_SIZE, warc_current_file); if (result != GZIP_STATIC_HEADER_SIZE) { @@ -346,7 +353,6 @@ warc_write_end_record (void) fwrite (static_header, 1, GZIP_STATIC_HEADER_SIZE, warc_current_file); /* Prepare the extra GZIP header. */ - char extra_header[EXTRA_GZIP_HEADER_SIZE]; /* XLEN, the length of the extra header fields. */ extra_header[0] = ((EXTRA_GZIP_HEADER_SIZE - 2) & 255); extra_header[1] = ((EXTRA_GZIP_HEADER_SIZE - 2) >> 8) & 255; @@ -660,16 +666,18 @@ warc_uuid_str (char *urn_str) static bool warc_write_warcinfo_record (char *filename) { + FILE *warc_tmp; + char timestamp[22]; + char *filename_copy, *filename_basename; + /* Write warc-info record as the first record of the file. */ /* We add the record id of this info record to the other records in the file. */ warc_current_warcinfo_uuid_str = (char *) malloc (48); warc_uuid_str (warc_current_warcinfo_uuid_str); - char timestamp[22]; warc_timestamp (timestamp); - char *filename_copy, *filename_basename; filename_copy = strdup (filename); filename_basename = strdup (basename (filename_copy)); @@ -681,7 +689,7 @@ warc_write_warcinfo_record (char *filename) warc_write_header ("WARC-Filename", filename_basename); /* Create content. */ - FILE *warc_tmp = warc_tempfile (); + warc_tmp = warc_tempfile (); if (warc_tmp == NULL) { free (filename_copy); @@ -731,6 +739,21 @@ warc_write_warcinfo_record (char *filename) static bool warc_start_new_file (bool meta) { +#ifdef __VMS +# define WARC_GZ "warc-gz" +#else /* def __VMS */ +# define WARC_GZ "warc.gz" +#endif /* def __VMS [else] */ + +#ifdef HAVE_LIBZ + const char *extension = (opt.warc_compression_enabled ? WARC_GZ : "warc"); +#else + const char *extension = "warc"; +#endif + + int base_filename_length; + char *new_filename; + if (opt.warc_filename == NULL) return false; @@ -742,23 +765,11 @@ warc_start_new_file (bool meta) warc_current_file_number++; - int base_filename_length = strlen (opt.warc_filename); + base_filename_length = strlen (opt.warc_filename); /* filename format: base + "-" + 5 digit serial number + ".warc.gz" */ - char *new_filename = malloc (base_filename_length + 1 + 5 + 8 + 1); + new_filename = malloc (base_filename_length + 1 + 5 + 8 + 1); warc_current_filename = new_filename; -#ifdef __VMS -# define WARC_GZ "warc-gz" -#else /* def __VMS */ -# define WARC_GZ "warc.gz" -#endif /* def __VMS [else] */ - -#ifdef HAVE_LIBZ - const char *extension = (opt.warc_compression_enabled ? WARC_GZ : "warc"); -#else - const char *extension = "warc"; -#endif - /* If max size is enabled, we add a serial number to the file names. */ if (meta) sprintf (new_filename, "%s-meta.%s", opt.warc_filename, extension); @@ -830,12 +841,13 @@ static bool warc_parse_cdx_header (char *lineptr, int *field_num_original_url, int *field_num_checksum, int *field_num_record_id) { + char *token; + char *save_ptr; + *field_num_original_url = -1; *field_num_checksum = -1; *field_num_record_id = -1; - char *token; - char *save_ptr; token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); if (token != NULL && strcmp (token, "CDX") == 0) @@ -876,13 +888,12 @@ warc_process_cdx_line (char *lineptr, int field_num_original_url, char *original_url = NULL; char *checksum = NULL; char *record_id = NULL; - char *token; char *save_ptr; - token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); + int field_num = 0; /* Read this line to get the fields we need. */ - int field_num = 0; + token = strtok_r (lineptr, CDX_FIELDSEP, &save_ptr); while (token != NULL) { char **val; @@ -944,17 +955,17 @@ warc_process_cdx_line (char *lineptr, int field_num_original_url, static bool warc_load_cdx_dedup_file (void) { - FILE *f = fopen (opt.warc_cdx_dedup_filename, "r"); - if (f == NULL) - return false; - + FILE *f; + char *lineptr = NULL; + size_t n = 0; + ssize_t line_length; int field_num_original_url = -1; int field_num_checksum = -1; int field_num_record_id = -1; - char *lineptr = NULL; - size_t n = 0; - ssize_t line_length; + f = fopen (opt.warc_cdx_dedup_filename, "r"); + if (f == NULL) + return false; /* The first line should contain the CDX header. Format: " CDX x x x x x" @@ -983,6 +994,8 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); } else { + int nrecords; + /* Initialize the table. */ warc_cdx_dedup_table = hash_table_new (1000, warc_hash_sha1_digest, warc_cmp_sha1_digest); @@ -1000,7 +1013,7 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); while (line_length != -1); /* Print results. */ - int nrecords = hash_table_count (warc_cdx_dedup_table); + nrecords = hash_table_count (warc_cdx_dedup_table); logprintf (LOG_VERBOSE, ngettext ("Loaded %d record from CDX.\n\n", "Loaded %d records from CDX.\n\n", nrecords), @@ -1020,11 +1033,12 @@ _("CDX file does not list record ids. (Missing column 'u'.)\n")); static struct warc_cdx_record * warc_find_duplicate_cdx_record (char *url, char *sha1_digest_payload) { + struct warc_cdx_record *rec_existing; + if (warc_cdx_dedup_table == NULL) return NULL; - struct warc_cdx_record *rec_existing - = hash_table_get (warc_cdx_dedup_table, sha1_digest_payload); + rec_existing = hash_table_get (warc_cdx_dedup_table, sha1_digest_payload); if (rec_existing && strcmp (rec_existing->url, url) == 0) return rec_existing; @@ -1095,11 +1109,13 @@ warc_init (void) static void warc_write_metadata (void) { + char manifest_uuid[48]; + FILE *warc_tmp_fp; + /* If there are multiple WARC files, the metadata should be written to a separate file. */ if (opt.warc_maxsize > 0) warc_start_new_file (true); - char manifest_uuid [48]; warc_uuid_str (manifest_uuid); fflush (warc_manifest_fp); @@ -1109,7 +1125,7 @@ warc_write_metadata (void) warc_manifest_fp, -1); /* warc_write_resource_record has closed warc_manifest_fp. */ - FILE * warc_tmp_fp = warc_tempfile (); + warc_tmp_fp = warc_tempfile (); if (warc_tmp_fp == NULL) { logprintf (LOG_NOTQUIET, _("Could not open temporary WARC file.\n")); @@ -1164,6 +1180,8 @@ FILE * warc_tempfile (void) { char filename[100]; + int fd; + if (path_search (filename, 100, opt.warc_tempdir, "wget", true) == -1) return NULL; @@ -1182,7 +1200,7 @@ warc_tempfile (void) return fopen (tfn, "w+", "fop=tmd"); /* Create auto-delete temp file. */ } #else /* def __VMS */ - int fd = mkostemp (filename, O_TEMPORARY); + fd = mkostemp (filename, O_TEMPORARY); if (fd < 0) return NULL; @@ -1245,7 +1263,10 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, const char *response_uuid) { /* Transform the timestamp. */ - char timestamp_str_cdx [15]; + char timestamp_str_cdx[15]; + char offset_string[MAX_INT_TO_STRING_LEN(off_t)]; + const char *checksum; + memcpy (timestamp_str_cdx , timestamp_str , 4); /* "YYYY" "-" */ memcpy (timestamp_str_cdx + 4, timestamp_str + 5, 2); /* "mm" "-" */ memcpy (timestamp_str_cdx + 6, timestamp_str + 8, 2); /* "dd" "T" */ @@ -1255,7 +1276,6 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, timestamp_str_cdx[14] = '\0'; /* Rewrite the checksum. */ - const char *checksum; if (payload_digest != NULL) checksum = payload_digest + 5; /* Skip the "sha1:" */ else @@ -1266,7 +1286,6 @@ warc_write_cdx_record (const char *url, const char *timestamp_str, if (redirect_location == NULL || strlen(redirect_location) == 0) redirect_location = "-"; - char offset_string[MAX_INT_TO_STRING_LEN(off_t)]; number_to_string (offset_string, offset); /* Print the CDX line. */ @@ -1298,10 +1317,11 @@ warc_write_revisit_record (char *url, char *timestamp_str, char *refers_to, ip_address *ip, FILE *body) { char revisit_uuid [48]; - warc_uuid_str (revisit_uuid); - char *block_digest = NULL; char sha1_res_block[SHA1_DIGEST_SIZE]; + + warc_uuid_str (revisit_uuid); + sha1_stream (body, sha1_res_block); block_digest = warc_base32_sha1_digest (sha1_res_block); @@ -1351,6 +1371,8 @@ warc_write_response_record (char *url, char *timestamp_str, char *payload_digest = NULL; char sha1_res_block[SHA1_DIGEST_SIZE]; char sha1_res_payload[SHA1_DIGEST_SIZE]; + char response_uuid [48]; + off_t offset; if (opt.warc_digests_enabled) { @@ -1395,11 +1417,10 @@ warc_write_response_record (char *url, char *timestamp_str, /* Not a revisit, just store the record. */ - char response_uuid [48]; warc_uuid_str (response_uuid); fseeko (warc_current_file, 0L, SEEK_END); - off_t offset = ftello (warc_current_file); + offset = ftello (warc_current_file); warc_write_start_record (); warc_write_header ("WARC-Type", "response"); -- 2.1.3