diff options
| author | 杨威 <[email protected]> | 2020-09-28 14:31:40 +0800 |
|---|---|---|
| committer | 杨威 <[email protected]> | 2020-09-28 14:31:40 +0800 |
| commit | 1b3ff3f1f7111dfa2d774b2206ca80973c9332d6 (patch) | |
| tree | 488fb2ff4ac37ab3df1de0247ef2f816c480e436 /src/print-beep.c | |
| parent | 5427b568de89bcca1bc5a6dcd2a5cf724704a1c3 (diff) | |
| parent | 453f442a037a03b038ad67383b18e259649e94b6 (diff) | |
Merge branch 'dev' into 'master'v1.0.1
支持CI
Closes #1
See merge request common_tools/tcpdump_mesa!1
Diffstat (limited to 'src/print-beep.c')
| -rw-r--r-- | src/print-beep.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/print-beep.c b/src/print-beep.c new file mode 100644 index 0000000..1240a3e --- /dev/null +++ b/src/print-beep.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2000, Richard Sharpe + * + * This software may be distributed either under the terms of the + * BSD-style license that accompanies tcpdump or under the GNU GPL + * version 2 or later. + * + * print-beep.c + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <netdissect-stdinc.h> + +#include <string.h> + +#include "netdissect.h" + +/* Check for a string but not go beyond length + * Return TRUE on match, FALSE otherwise + * + * Looks at the first few chars up to tl1 ... + */ + +static int +l_strnstart(const char *tstr1, u_int tl1, const char *str2, u_int l2) +{ + + if (tl1 > l2) + return 0; + + return (strncmp(tstr1, str2, tl1) == 0 ? 1 : 0); +} + +void +beep_print(netdissect_options *ndo, const u_char *bp, u_int length) +{ + + if (l_strnstart("MSG", 4, (const char *)bp, length)) /* A REQuest */ + ND_PRINT((ndo, " BEEP MSG")); + else if (l_strnstart("RPY ", 4, (const char *)bp, length)) + ND_PRINT((ndo, " BEEP RPY")); + else if (l_strnstart("ERR ", 4, (const char *)bp, length)) + ND_PRINT((ndo, " BEEP ERR")); + else if (l_strnstart("ANS ", 4, (const char *)bp, length)) + ND_PRINT((ndo, " BEEP ANS")); + else if (l_strnstart("NUL ", 4, (const char *)bp, length)) + ND_PRINT((ndo, " BEEP NUL")); + else if (l_strnstart("SEQ ", 4, (const char *)bp, length)) + ND_PRINT((ndo, " BEEP SEQ")); + else if (l_strnstart("END", 4, (const char *)bp, length)) + ND_PRINT((ndo, " BEEP END")); + else + ND_PRINT((ndo, " BEEP (payload or undecoded)")); +} |
