You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
* @file gnunet-namestore.c
GNUNET_free_non_null (ego_name);
ego_name = NULL;
- if (! (add|del|list|(NULL != nickstring)|(NULL != uri)|(NULL != reverse_pkey))|(NULL != recordset) )
+ if (! (add|del|list|(NULL != nickstring)|(NULL != uri)|(NULL != reverse_pkey)|(NULL != recordset)) )
{
/* nothing more to be done */
fprintf (stderr,
{
fprintf (stderr,
_("Missing option `%s' for operation `%s'\n"),
- "-n", _("replace"));
+ "-R", _("replace"));
GNUNET_SCHEDULER_shutdown ();
ret = 1;
return;
(void) cls;
(void) args;
(void) cfgfile;
+ if (NULL != args[0])
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ _("Superfluous command line arguments (starting with `%s') ignored\n"),
+ args[0]);
if ( (NULL != args[0]) &&
(NULL == uri) )
uri = GNUNET_strdup (args[0]);
* @param option name of the option (typically 'R')
* @param value command line argument given; format is
* "TTL TYPE FLAGS VALUE" where TTL is an expiration time (rel or abs),
+ * always given in seconds (without the unit),
* TYPE is a DNS/GNS record type, FLAGS is either "n" for no flags or
* a combination of 's' (shadow) and 'p' (public) and VALUE is the
* value (in human-readable format)
struct GNUNET_GNSRECORD_Data record;
char *cp;
char *tok;
+ char *saveptr;
int etime_is_rel;
void *raw_data;
(void) ctx;
(void) option;
cp = GNUNET_strdup (value);
- tok = strtok (cp, " ");
+ tok = strtok_r (cp, " ", &saveptr);
if (NULL == tok)
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Empty record line argument is not allowed.\n"));
GNUNET_free (cp);
return GNUNET_SYSERR;
}
- if (GNUNET_OK !=
- parse_expiration (tok,
- &etime_is_rel,
- &record.expiration_time))
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
- _("Invalid expiration time `%s'\n"),
- tok);
- GNUNET_free (cp);
- return GNUNET_SYSERR;
+ char *etime_in_s;
+
+ GNUNET_asprintf (&etime_in_s,
+ "%s s",
+ tok);
+ if (GNUNET_OK !=
+ parse_expiration (etime_in_s,
+ &etime_is_rel,
+ &record.expiration_time))
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+ _("Invalid expiration time `%s' (must be without unit)\n"),
+ tok);
+ GNUNET_free (cp);
+ GNUNET_free (etime_in_s);
+ return GNUNET_SYSERR;
+ }
+ GNUNET_free (etime_in_s);
}
- tok = strtok (NULL, " ");
+ tok = strtok_r (NULL, " ", &saveptr);
if (NULL == tok)
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Missing entries in record line `%s'.\n"),
value);
GNUNET_free (cp);
record.record_type = GNUNET_GNSRECORD_typename_to_number (tok);
if (UINT32_MAX == record.record_type)
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Unknown record type `%s'\n"),
tok);
GNUNET_free (cp);
return GNUNET_SYSERR;
}
- tok = strtok (NULL, " ");
+ tok = strtok_r (NULL, " ", &saveptr);
if (NULL == tok)
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Missing entries in record line `%s'.\n"),
value);
GNUNET_free (cp);
tok = strchr (&value[tok - cp], (unsigned char) ' ');
if (NULL == tok)
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Missing entries in record line `%s'.\n"),
value);
GNUNET_free (cp);
&raw_data,
&record.data_size))
{
- GNUNET_log (GNUNET_ERROR_TYPE_MESSAGE,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Invalid record data for type %s: `%s'.\n"),
GNUNET_GNSRECORD_number_to_typename (record.record_type),
tok);