Skip to content

Commit 9e85767

Browse files
committed
tlshd: Add tlshd_log_completion()
Refactor the code that emits the handshake completion notice. Simplify and de-duplicate. One functional change: Emit the completion notice only when debugging is enabled. It's a best practice to avoid giving remote attackers a mechanism to flood the system journal. Signed-off-by: Chuck Lever <[email protected]>
1 parent a6eec63 commit 9e85767

File tree

3 files changed

+19
-38
lines changed

3 files changed

+19
-38
lines changed

src/tlshd/handshake.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,10 @@ void tlshd_service_socket(void)
181181

182182
out:
183183
tlshd_genl_done(&parms);
184+
tlshd_log_completion(&parms);
184185

185186
if (parms.keyring)
186187
keyctl_unlink(parms.keyring, KEY_SPEC_SESSION_KEYRING);
187188

188189
free(parms.peerids);
189-
190-
if (parms.session_status) {
191-
tlshd_log_failure(parms.peername, parms.peeraddr,
192-
parms.peeraddr_len);
193-
return;
194-
}
195-
tlshd_log_success(parms.peername, parms.peeraddr, parms.peeraddr_len);
196190
}

src/tlshd/log.c

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,40 +45,31 @@ int tlshd_tls_debug;
4545
int tlshd_stderr;
4646

4747
/**
48-
* tlshd_log_success - Emit "handshake successful" notification
49-
* @hostname: peer's DNS name
50-
* @sap: peer's IP address
51-
* @salen: length of IP address
48+
* tlshd_log_completion - Emit completion notification
49+
* @parms: handshake parameters
5250
*
5351
*/
54-
void tlshd_log_success(const char *hostname, const struct sockaddr *sap,
55-
socklen_t salen)
52+
void tlshd_log_completion(struct tlshd_handshake_parms *parms)
5653
{
57-
char buf[NI_MAXHOST];
54+
const char *status = "succeeded";
55+
int priority = LOG_INFO;
5856

59-
getnameinfo(sap, salen, buf, sizeof(buf), NULL, 0, NI_NUMERICHOST);
60-
syslog(LOG_INFO, "Handshake with %s (%s) was successful\n",
61-
hostname, buf);
62-
}
57+
if (!tlshd_debug)
58+
return;
6359

64-
/**
65-
* tlshd_log_failure - Emit "handshake failed" notification
66-
* @hostname: peer's DNS name
67-
* @sap: peer's IP address
68-
* @salen: length of IP address
69-
*
70-
*/
71-
void tlshd_log_failure(const char *hostname, const struct sockaddr *sap,
72-
socklen_t salen)
73-
{
74-
if (salen) {
60+
if (parms->session_status) {
61+
status = "failed";
62+
priority = LOG_ERR;
63+
}
64+
if (parms->peeraddr_len) {
7565
char buf[NI_MAXHOST];
7666

77-
getnameinfo(sap, salen, buf, sizeof(buf), NULL, 0, NI_NUMERICHOST);
78-
syslog(LOG_ERR, "Handshake with '%s' (%s) failed\n",
79-
hostname, buf);
67+
getnameinfo(parms->peeraddr, parms->peeraddr_len, buf,
68+
sizeof(buf), NULL, 0, NI_NUMERICHOST);
69+
syslog(priority, "Handshake with '%s' (%s) %s\n",
70+
parms->peername, buf, status);
8071
} else
81-
syslog(LOG_ERR, "Handshake request failed\n");
72+
syslog(priority, "Handshake request %s\n", status);
8273
}
8374

8475
/**

src/tlshd/tlshd.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,7 @@ extern void tlshd_log_init(const char *progname);
9696
extern void tlshd_log_shutdown(void);
9797
extern void tlshd_log_close(void);
9898

99-
extern void tlshd_log_success(const char *hostname,
100-
const struct sockaddr *sap, socklen_t salen);
101-
extern void tlshd_log_failure(const char *hostname,
102-
const struct sockaddr *sap, socklen_t salen);
103-
99+
extern void tlshd_log_completion(struct tlshd_handshake_parms *parms);
104100
extern void tlshd_log_debug(const char *fmt, ...);
105101
extern void tlshd_log_notice(const char *fmt, ...);
106102
extern void tlshd_log_error(const char *fmt, ...);

0 commit comments

Comments
 (0)