Skip to content

Commit

Permalink
Improve type safety
Browse files Browse the repository at this point in the history
Use the appropriate enum typedef instead of plain int for generated
string table functions.
  • Loading branch information
cgzones committed Nov 26, 2024
1 parent 2ce9e8f commit 7e1338c
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/netlog/netlog-manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,14 @@ static const char *const protocol_table[_SYSLOG_TRANSMISSION_PROTOCOL_MAX] = {
[SYSLOG_TRANSMISSION_PROTOCOL_TLS] = "tls",
};

DEFINE_STRING_TABLE_LOOKUP(protocol, int);
DEFINE_STRING_TABLE_LOOKUP(protocol, SysLogTransmissionProtocol);

static const char *const log_format_table[_SYSLOG_TRANSMISSION_LOG_FORMAT_MAX] = {
[SYSLOG_TRANSMISSION_LOG_FORMAT_RFC_5424] = "rfc5424",
[SYSLOG_TRANSMISSION_LOG_FORMAT_RFC_3339] = "rfc3339",
};

DEFINE_STRING_TABLE_LOOKUP(log_format, int);
DEFINE_STRING_TABLE_LOOKUP(log_format, SysLogTransmissionLogFormat);

static const char *const syslog_facility_table[_SYSLOG_FACILITY_MAX] = {
[SYSLOG_FACILITY_KERN] = "kern",
Expand Down
8 changes: 4 additions & 4 deletions src/netlog/netlog-manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,11 +166,11 @@ int manager_push_to_network(Manager *m,
const char *syslog_structured_data,
const char *syslog_msgid);

const char *protocol_to_string(int v) _const_;
int protocol_from_string(const char *s) _pure_;
const char *protocol_to_string(SysLogTransmissionProtocol v) _const_;
SysLogTransmissionProtocol protocol_from_string(const char *s) _pure_;

const char *log_format_to_string(int v) _const_;
int log_format_from_string(const char *s) _pure_;
const char *log_format_to_string(SysLogTransmissionLogFormat v) _const_;
SysLogTransmissionLogFormat log_format_from_string(const char *s) _pure_;

const char *syslog_facility_to_string(SysLogFacility v) _const_;
SysLogFacility syslog_facility_from_string(const char *s) _pure_;
Expand Down
4 changes: 2 additions & 2 deletions src/netlog/netlog-tls.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@

#include "netlog-ssl.h"

static const char *const certificate_auth_mode_table[OPEN_SSL_CERTIFICATE_AUTH_MODE_MAX] = {
static const char *const certificate_auth_mode_table[_OPEN_SSL_CERTIFICATE_AUTH_MODE_MAX] = {
[OPEN_SSL_CERTIFICATE_AUTH_MODE_NONE] = "no",
[OPEN_SSL_CERTIFICATE_AUTH_MODE_ALLOW] = "allow",
[OPEN_SSL_CERTIFICATE_AUTH_MODE_DENY] = "deny",
[OPEN_SSL_CERTIFICATE_AUTH_MODE_WARN] = "warn",
};

DEFINE_STRING_TABLE_LOOKUP(certificate_auth_mode, int);
DEFINE_STRING_TABLE_LOOKUP(certificate_auth_mode, OpenSSLCertificateAuthMode);

static int tls_write(TLSManager *m, const char *buf, size_t count) {
int r;
Expand Down
15 changes: 8 additions & 7 deletions src/netlog/netlog-tls.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,12 @@
#include "openssl-util.h"

typedef enum OpenSSLCertificateAuthMode {
OPEN_SSL_CERTIFICATE_AUTH_MODE_NONE = 1 << 0,
OPEN_SSL_CERTIFICATE_AUTH_MODE_ALLOW = 1 << 1,
OPEN_SSL_CERTIFICATE_AUTH_MODE_DENY = 1 << 2,
OPEN_SSL_CERTIFICATE_AUTH_MODE_WARN = 1 << 3,
OPEN_SSL_CERTIFICATE_AUTH_MODE_MAX = 1 << 4,
OPEN_SSL_CERTIFICATE_AUTH_MODE_NONE = 0,
OPEN_SSL_CERTIFICATE_AUTH_MODE_ALLOW = 1,
OPEN_SSL_CERTIFICATE_AUTH_MODE_DENY = 2,
OPEN_SSL_CERTIFICATE_AUTH_MODE_WARN = 3,
_OPEN_SSL_CERTIFICATE_AUTH_MODE_MAX,
_OPEN_SSL_CERTIFICATE_AUTH_MODE_INVALID = -EINVAL,
} OpenSSLCertificateAuthMode;

typedef struct TLSManager TLSManager;
Expand All @@ -36,8 +37,8 @@ void tls_disconnect(TLSManager *m);

int tls_stream_writev(TLSManager *m, const struct iovec *iov, size_t iovcnt);

const char *certificate_auth_mode_to_string(int v) _const_;
int certificate_auth_mode_from_string(const char *s) _pure_;
const char *certificate_auth_mode_to_string(OpenSSLCertificateAuthMode v) _const_;
OpenSSLCertificateAuthMode certificate_auth_mode_from_string(const char *s) _pure_;


DEFINE_TRIVIAL_CLEANUP_FUNC(TLSManager*, tls_manager_free);

0 comments on commit 7e1338c

Please # to comment.