Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Mike Perry
Tor
Commits
30166261
Commit
30166261
authored
Jun 28, 2018
by
Nick Mathewson
👁
Browse files
Move string_is_key_value to lib/encoding
parent
48ebd9bf
Changes
7
Hide whitespace changes
Inline
Side-by-side
src/common/util.c
View file @
30166261
...
...
@@ -225,39 +225,6 @@ add_laplace_noise(int64_t signal_, double random_, double delta_f,
* String manipulation
* ===== */
/** Return true if <b>string</b> is a valid 'key=[value]' string.
* "value" is optional, to indicate the empty string. Log at logging
* <b>severity</b> if something ugly happens. */
int
string_is_key_value
(
int
severity
,
const
char
*
string
)
{
/* position of equal sign in string */
const
char
*
equal_sign_pos
=
NULL
;
tor_assert
(
string
);
if
(
strlen
(
string
)
<
2
)
{
/* "x=" is shortest args string */
tor_log
(
severity
,
LD_GENERAL
,
"'%s' is too short to be a k=v value."
,
escaped
(
string
));
return
0
;
}
equal_sign_pos
=
strchr
(
string
,
'='
);
if
(
!
equal_sign_pos
)
{
tor_log
(
severity
,
LD_GENERAL
,
"'%s' is not a k=v value."
,
escaped
(
string
));
return
0
;
}
/* validate that the '=' is not in the beginning of the string. */
if
(
equal_sign_pos
==
string
)
{
tor_log
(
severity
,
LD_GENERAL
,
"'%s' is not a valid k=v value."
,
escaped
(
string
));
return
0
;
}
return
1
;
}
/** Return a newly allocated string equal to <b>string</b>, except that every
* character in <b>chars_to_escape</b> is preceded by a backslash. */
char
*
...
...
src/common/util.h
View file @
30166261
...
...
@@ -72,8 +72,6 @@ int64_t clamp_double_to_int64(double number);
/* String manipulation */
int
string_is_key_value
(
int
severity
,
const
char
*
string
);
char
*
tor_escape_str_for_pt_args
(
const
char
*
string
,
const
char
*
chars_to_escape
);
...
...
src/lib/encoding/include.am
View file @
30166261
...
...
@@ -8,6 +8,7 @@ src_lib_libtor_encoding_a_SOURCES = \
src/lib/encoding/binascii.c \
src/lib/encoding/confline.c \
src/lib/encoding/cstring.c \
src/lib/encoding/keyval.c \
src/lib/encoding/time_fmt.c
src_lib_libtor_encoding_testing_a_SOURCES = \
...
...
@@ -19,4 +20,5 @@ noinst_HEADERS += \
src/lib/encoding/binascii.h \
src/lib/encoding/confline.h \
src/lib/encoding/cstring.h \
src/lib/encoding/keyval.h \
src/lib/encoding/time_fmt.h
src/lib/encoding/keyval.c
0 → 100644
View file @
30166261
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include
"orconfig.h"
#include
"lib/encoding/keyval.h"
#include
"lib/log/escape.h"
#include
"lib/log/torlog.h"
#include
"lib/log/util_bug.h"
#include
<stdlib.h>
#include
<string.h>
/** Return true if <b>string</b> is a valid 'key=[value]' string.
* "value" is optional, to indicate the empty string. Log at logging
* <b>severity</b> if something ugly happens. */
int
string_is_key_value
(
int
severity
,
const
char
*
string
)
{
/* position of equal sign in string */
const
char
*
equal_sign_pos
=
NULL
;
tor_assert
(
string
);
if
(
strlen
(
string
)
<
2
)
{
/* "x=" is shortest args string */
tor_log
(
severity
,
LD_GENERAL
,
"'%s' is too short to be a k=v value."
,
escaped
(
string
));
return
0
;
}
equal_sign_pos
=
strchr
(
string
,
'='
);
if
(
!
equal_sign_pos
)
{
tor_log
(
severity
,
LD_GENERAL
,
"'%s' is not a k=v value."
,
escaped
(
string
));
return
0
;
}
/* validate that the '=' is not in the beginning of the string. */
if
(
equal_sign_pos
==
string
)
{
tor_log
(
severity
,
LD_GENERAL
,
"'%s' is not a valid k=v value."
,
escaped
(
string
));
return
0
;
}
return
1
;
}
src/lib/encoding/keyval.h
0 → 100644
View file @
30166261
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
* Copyright (c) 2007-2018, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_KEYVAL_H
#define TOR_KEYVAL_H
int
string_is_key_value
(
int
severity
,
const
char
*
string
);
#endif
src/or/config.c
View file @
30166261
...
...
@@ -117,6 +117,7 @@
#include
"lib/process/setuid.h"
#include
"lib/process/subprocess.h"
#include
"lib/encoding/keyval.h"
#include
"lib/fs/conffile.h"
#include
"common/procmon.h"
...
...
src/test/test_util.c
View file @
30166261
...
...
@@ -21,6 +21,7 @@
#include
"lib/process/waitpid.h"
#include
"test/log_test_helpers.h"
#include
"lib/compress/compress_zstd.h"
#include
"lib/encoding/keyval.h"
#include
"lib/fdio/fdio.h"
#include
"lib/process/env.h"
#include
"lib/process/pidfile.h"
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment