コード例 #1
0
ファイル: lswlog_realtime.c プロジェクト: dkg/libreswan
/*
 *  Display a date either in local or UTC time
 */
void lswlog_realtime(struct lswlog *buf, const realtime_t rtm, bool utc)
{
	if (is_realtime_epoch(rtm)) {
		lswlogf(buf, "--- -- --:--:--%s----", (utc) ? " UTC " : " ");
	} else {
		struct realtm t = (utc ? utc_realtime : local_realtime)(rtm);

		lswlogf(buf, "%s %02d %02d:%02d:%02d%s%04d",
			months[t.tm.tm_mon], t.tm.tm_mday, t.tm.tm_hour,
			t.tm.tm_min, t.tm.tm_sec,
			(utc) ? " UTC " : " ", t.tm.tm_year + 1900);
	}
}
コード例 #2
0
ファイル: retransmit.c プロジェクト: libreswan/libreswan
/*
 * If there is still space, increment the retransmit counter.
 *
 * Used by the duplicate packet code to cap the number of times
 * duplicate packets are replied to.
 */
bool count_duplicate(struct state *st, unsigned long limit)
{
	retransmit_t *rt = &st->st_retransmit;
	unsigned long nr_retransmits = retransmit_count(st);
	if (nr_retransmits < limit) {
		double_delay(rt, nr_retransmits);
		rt->nr_duplicate_replies++;
		LSWDBGP(DBG_RETRANSMITS, buf) {
			lswlog_retransmit_prefix(buf, st);
			lswlogf(buf, "duplicate reply %lu + retransmit %lu of duplicate limit %lu (retransmit limit %lu)",
			       rt->nr_duplicate_replies, rt->nr_retransmits,
			       limit, rt->limit);
		}
コード例 #3
0
ファイル: lswlog_nss_ckm.c プロジェクト: libreswan/libreswan
size_t lswlog_nss_ckm(struct lswlog *buf, CK_MECHANISM_TYPE mechanism)
{
	switch (mechanism) {
#define CASE(T) case T: return lswlogs(buf, #T + strlen("CKM_"))

		CASE(CKM_CONCATENATE_BASE_AND_DATA);
		CASE(CKM_CONCATENATE_BASE_AND_KEY);
		CASE(CKM_CONCATENATE_DATA_AND_BASE);

		CASE(CKM_XOR_BASE_AND_DATA);

		CASE(CKM_EXTRACT_KEY_FROM_KEY);

		CASE(CKM_AES_CBC);
		CASE(CKM_DES3_CBC);
		CASE(CKM_CAMELLIA_CBC);
		CASE(CKM_AES_CTR);
		CASE(CKM_AES_GCM);
		CASE(CKM_AES_MAC);

		CASE(CKM_AES_KEY_GEN);

		CASE(CKM_MD5);
		CASE(CKM_SHA_1);
		CASE(CKM_SHA256);
		CASE(CKM_SHA384);
		CASE(CKM_SHA512);

		CASE(CKM_MD5_KEY_DERIVATION);
		CASE(CKM_SHA1_KEY_DERIVATION);
		CASE(CKM_SHA256_KEY_DERIVATION);
		CASE(CKM_SHA384_KEY_DERIVATION);
		CASE(CKM_SHA512_KEY_DERIVATION);

		CASE(CKM_MD5_HMAC);
		CASE(CKM_SHA_1_HMAC);
		CASE(CKM_SHA256_HMAC);
		CASE(CKM_SHA384_HMAC);
		CASE(CKM_SHA512_HMAC);

		CASE(CKM_DH_PKCS_DERIVE);
		CASE(CKM_ECDH1_DERIVE);

		CASE(CKM_VENDOR_DEFINED);

#undef CASE

	default:
		return lswlogf(buf, "CKM_%08lx", (long)mechanism);
	}
}
コード例 #4
0
ファイル: lswlog_bytes.c プロジェクト: libreswan/libreswan
size_t lswlog_bytes(struct lswlog *buf, const uint8_t *bytes,
		    size_t sizeof_bytes)
{
	if (bytes == NULL) {
		return lswlogs(buf, NULL); /* appends error */
	}

	size_t size = 0;
	const char *sep = "";
	for (size_t byte = 0; byte < sizeof_bytes; byte++) {
		size += lswlogf(buf, "%s%02x", sep, bytes[byte]);
		/*
		 * Roughly mimic DBG_dump(): use a space separator;
		 * and after the 4th byte, a double space separator.
		 *
		 * This is so that values dumped by DBG_dump() and
		 * lswlog_bytes() have the same 'look' - make
		 * searching and grepping easier.
		 */
		sep = (byte % 4 == 3) ? "  " : " ";
	}
	return size;
}
コード例 #5
0
ファイル: retransmit.c プロジェクト: libreswan/libreswan
size_t lswlog_retransmit_prefix(struct lswlog *buf, struct state *st)
{
	return lswlogf(buf, "#%ld %s: retransmits: ",
		       st->st_serialno, st->st_state->name);
}
コード例 #6
0
ファイル: lswlog_errno.c プロジェクト: libreswan/libreswan
size_t lswlog_errno(struct lswlog *buf, int e)
{
	return lswlogf(buf, " Errno %d: %s", e, strerror(e));
}
コード例 #7
0
ファイル: lswlog_source_line.c プロジェクト: dkg/libreswan
size_t lswlog_source_line(struct lswlog *buf, const char *func,
			  const char *file, unsigned long line)
{
	return lswlogf(buf, " (in %s() at %s:%lu)",
		       func, file, line);
}