Cita:Firefox ha detectado una potencial amenaza de seguridad y no ha continuado a www.sede.fnmt.gob.es porque este sitio web requiere una conexión segura.
¿Qué puede hacer al respecto?
www.sede.fnmt.gob.es tiene una política de seguridad llamada HTTP Strict Transport Security (HSTS), que significa que Firefox solo puede conectarse a él de forma segura. No puede añadir una excepción para visitar este sitio.
El problema está probablemente en el sitio web, y no hay nada que pueda hacer para resolverlo.
Si está en una red corporativa o utilizando un antivirus, puede ponerse en contacto con el equipo de asistencia para obtener ayuda. También puede notificar el problema al administrador del sitio web.
Ventana inferior dice:
Alguien podría estar tratando de suplantar el sitio y usted no debería continuar. Los sitios web prueban su identidad mediante certificados. Firefox no confía en www.sede.fnmt.gob.es porque su emisor del certificado es desconocido, el certificado es autofirmado o el servidor no está enviando los certificados intermediarios correctos.
which java
java -version
#include <stdio.h>
#include <stdlib.h>
#include <libredwg.h>
const char* list_blocks(const char* filename) {
static char result[4096];
DWG_Data *dwg;
int i;
// Inicializa la biblioteca
dwg = dwg_read(filename);
if (!dwg) {
return "Error reading DWG file.";
}
// Recorre los bloques y crea una lista
result[0] = '\0';
for (i = 0; i < dwg->num_blocks; i++) {
strcat(result, dwg->blocks[i].name);
strcat(result, "\n");
}
// Limpia
dwg_free(dwg);
return result;
}
/*****************************************************************************/
/* LibreDWG - free implementation of the DWG file format */
/* */
/* Copyright (C) 2018-2019 Free Software Foundation, Inc. */
/* */
/* This library is free software, licensed under the terms of the GNU */
/* General Public License as published by the Free Software Foundation, */
/* either version 3 of the License, or (at your option) any later version. */
/* You should have received a copy of the GNU General Public License */
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/*****************************************************************************/
/*
* dwglayers.c: print list of layers in a DWG
*
* written by Reini Urban
*/
#include "../src/config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <getopt.h>
#ifdef HAVE_VALGRIND_VALGRIND_H
# include <valgrind/valgrind.h>
#endif
#include <dwg.h>
#include "common.h"
#include "bits.h"
#include "logging.h"
static int
usage (void)
{
printf ("\nUsage: dwglayers [-f|--flags] [--on] <input_file.dwg>\n");
return 1;
}
static int
opt_version (void)
{
printf ("dwglayers %s\n", PACKAGE_VERSION);
return 0;
}
static int
help (void)
{
printf ("\nUsage: dwglayers [OPTION]... DWGFILE\n");
printf ("Print list of layers.\n"
"\n");
#ifdef HAVE_GETOPT_LONG
printf (" -x, --extnames prints EXTNAMES (r13-r14 only)\n"
" i.e. space instead of _\n");
printf (" -f, --flags prints also flags:\n"
" 3 chars for: f for frozen, + or - for ON or OFF, l "
"for locked\n");
printf (" -o, --on prints only ON layers\n");
printf (" -h, --help display this help and exit\n");
printf (" --version output version information and exit\n"
"\n");
#else
printf (" -x prints EXTNAMES (r13-r14 only)\n"
" i.e. space instead of _\n");
printf (" -f prints also flags:\n"
" 3 chars for: f for frozen, + or - for ON or OFF, l "
"for locked\n");
printf (" -o prints only ON layers\n");
printf (" -h display this help and exit\n");
printf (" -i output version information and exit\n"
"\n");
#endif
printf ("GNU LibreDWG online manual: "
"<https://www.gnu.org/software/libredwg/>\n");
return 0;
}
int
main (int argc, char *argv[])
{
int error;
long i = 1;
int flags = 0, on = 0, extnames = 0;
char *filename_in;
Dwg_Data dwg;
Dwg_Object *obj;
Dwg_Object_LAYER *layer;
Dwg_Object_LAYER_CONTROL *_ctrl;
int c;
#ifdef HAVE_GETOPT_LONG
int option_index = 0;
static struct option long_options[] = { { "flags", 0, 0, 'f' },
{ "extnames", 0, 0, 'x' },
{ "on", 0, 0, 'o' },
{ "help", 0, 0, 0 },
{ "version", 0, 0, 0 },
{ NULL, 0, NULL, 0 } };
#endif
while
#ifdef HAVE_GETOPT_LONG
((c = getopt_long (argc, argv, "xfoh", long_options, &option_index))
!= -1)
#else
((c = getopt (argc, argv, "xfohi")) != -1)
#endif
{
if (c == -1)
break;
switch (c)
{
#ifdef HAVE_GETOPT_LONG
case 0:
if (!strcmp (long_options[option_index].name, "version"))
return opt_version ();
if (!strcmp (long_options[option_index].name, "help"))
return help ();
break;
#else
case 'i':
return opt_version ();
#endif
case 'x':
extnames = 1;
break;
case 'f':
flags = 1;
break;
case 'o':
on = 1;
break;
case 'h':
return help ();
case '?':
fprintf (stderr, "%s: invalid option '-%c' ignored\n", argv[0],
optopt);
break;
default:
return usage ();
}
}
i = optind;
if (i >= argc)
return usage ();
filename_in = argv[i];
memset (&dwg, 0, sizeof (Dwg_Data));
error = dwg_read_file (filename_in, &dwg);
if (error >= DWG_ERR_CRITICAL)
fprintf (stderr, "READ ERROR %s: 0x%x\n", filename_in, error);
obj = dwg_get_first_object (&dwg, DWG_TYPE_LAYER_CONTROL);
_ctrl = obj->tio.object->tio.LAYER_CONTROL;
for (i = 0; i < _ctrl->num_entries; i++)
{
char *name;
assert (_ctrl->entries);
assert (_ctrl->entries[i]);
obj = _ctrl->entries[i]->obj;
if (!obj || obj->type != DWG_TYPE_LAYER) // can be DICTIONARY also
continue;
assert (_ctrl->entries[i]->obj->tio.object);
layer = _ctrl->entries[i]->obj->tio.object->tio.LAYER;
if (on && (!layer->on || layer->frozen))
continue;
if (flags)
printf ("%s%s%s\t", layer->frozen ? "f" : " ", layer->on ? "+" : "-",
layer->locked ? "l" : " ");
if (extnames && dwg.header.from_version >= R_13 && dwg.header.from_version < R_2000)
{
if (!(name = dwg_find_table_extname (&dwg, obj)))
name = layer->name;
}
else
name = layer->name;
// since r2007 unicode, converted to utf-8
if (dwg.header.from_version >= R_2007)
{
char *utf8 = bit_convert_TU ((BITCODE_TU)name);
printf ("%s\n", utf8);
free (utf8);
}
else
printf ("%s\n", name);
fflush (stdout);
}
// forget about valgrind. really huge DWG's need endlessly here.
if ((dwg.header.version && dwg.num_objects < 1000)
#if defined __SANITIZE_ADDRESS__ || __has_feature(address_sanitizer)
|| 1
#endif
#ifdef HAVE_VALGRIND_VALGRIND_H
|| (RUNNING_ON_VALGRIND)
#endif
)
dwg_free (&dwg);
return error >= DWG_ERR_CRITICAL ? 1 : 0;
}
Cita:
Internet es un entorno que cambia rápidamente y en el que un año equivale a 5 en el mundo real. Las empresas van y vienen, cada día surgen nuevas tendencias y nuevas normativas sustituyen regularmente a las directivas anteriores. Antiguamente, los certificados SSL tenían una validez de cinco años, luego se acortó a tres, dos y, finalmente, se fijó en sólo un año.