diff --git a/pppd/utils.c b/pppd/utils.c
index 6f668b8..6f1db8f 100644
--- a/pppd/utils.c
+++ b/pppd/utils.c
@@ -670,9 +670,10 @@ log_write(level, buf)
int level;
char *buf;
{
+ dbglog("%s",buf);
syslog(level, "%s", buf);
- fprintf(stderr, buf);
+ fprintf(stderr,"%s", buf);
if (log_to_fd >= 0 && (level != LOG_DEBUG || debug)) {
int n = strlen(buf);
@@ -861,8 +862,20 @@ dump_packet(const char *tag, unsigned char *p, int len)
&& l >= HEADERLEN && l <= len - PPP_HDRLEN)
return;
}
+ {
+ char bufout[100] = {0};
+ int i = 0;
+ int level;
- dbglog("%s %P", tag, p, len);
+ for(i = 0; i < len; i++)
+ sprintf(&(bufout[2*i]), "%.2x", p[i]);
+ dbglog("%s [%s], len %d", tag, bufout, len);
+
+ level = ANDROID_LOG_DEBUG;
+ init_pr_log(tag, level);
+ format_packet(p, len, pr_log, &level);
+ end_pr_log();
+ }
}
修改后的函数如下
static void
log_write(level, buf)
int level;
char *buf;
{
dbglog("%s",buf);
syslog(level, "%s", buf);
fprintf(stderr,"%s", buf);
if (log_to_fd >= 0 && (level != LOG_DEBUG || debug)) {
int n = strlen(buf);
if (n > 0 && buf[n-1] == '\n')
--n;
if (write(log_to_fd, buf, n) != n
|| write(log_to_fd, "\n", 1) != 1)
log_to_fd = -1;
}
}
void
dump_packet(const char *tag, unsigned char *p, int len)
{
int proto;
if (!debug)
return;
/*
* don't print LCP echo request/reply packets if debug <= 1
* and the link is up.
*/
proto = (p[2] << 8) + p[3];
if (debug <= 1 && unsuccess == 0 && proto == PPP_LCP
&& len >= PPP_HDRLEN + HEADERLEN) {
unsigned char *lcp = p + PPP_HDRLEN;
int l = (lcp[2] << 8) + lcp[3];
if ((lcp[0] == ECHOREQ || lcp[0] == ECHOREP)
&& l >= HEADERLEN && l <= len - PPP_HDRLEN)
return;
}
{
char bufout[100] = {0};
int i = 0;
int level;
for(i = 0; i < len; i++)
sprintf(&(bufout[2*i]), "%.2x", p[i]);
dbglog("%s [%s], len %d", tag, bufout, len);
level = ANDROID_LOG_DEBUG;
init_pr_log(tag, level);
format_packet(p, len, pr_log, &level);
end_pr_log();
}
}
打开ppp packet打印
最新推荐文章于 2022-06-21 20:08:27 发布