summaryrefslogtreecommitdiff
path: root/pppdump/deflate.c
diff options
context:
space:
mode:
authorEivind Næss <eivnaes@yahoo.com>2022-05-29 22:14:08 -0700
committerEivind Næss <eivnaes@yahoo.com>2022-07-15 15:25:39 -0700
commit199e97bae9c03f5cec5202a511b5c436aff05af9 (patch)
treeaae67baaaf1116f72c7139201589bcde3f72af1a /pppdump/deflate.c
parent1d3327b87170d5d8db4a5ad06b465925cff4488a (diff)
downloadppp-199e97bae9c03f5cec5202a511b5c436aff05af9.tar.gz
For Linux, use the Linux / Glibc based defines instead of included headers
This is to ensure compatibility with the OS you are compiling against and that headers are maintained in upstream projects. - Moved PPP_EAP and PPP_ECP into respective header files in lieu of not currently existing in the linux/ppp_defs.h - Unchained the top-level ${topsrc_dir}/include, this folder is included for prosterity and may continue to exist on github, but in the future eliminated from distribution - Bogus upstream file in glibc for <net/if_ppp.h>, its content should be replaced with a simple include to <linux/ppp-ioctl.h>. The lack of an appropriate ifreq structure with ppp_stats or ppp_comp_stats, implementet that inline (and tested). - Updated instances where PPP_FCS() macro would expand the fcstab, while PPP_GOODFCS and PPP_INITFCS is provided in <linux/ppp_defs.h>, the latter is tied to a lookup table. It's used in two places, so add the PPP_FCS macro where applicable. Signed-off-by: Eivind Næss <eivnaes@yahoo.com>
Diffstat (limited to 'pppdump/deflate.c')
-rw-r--r--pppdump/deflate.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/pppdump/deflate.c b/pppdump/deflate.c
index 5668a4d..0f090b2 100644
--- a/pppdump/deflate.c
+++ b/pppdump/deflate.c
@@ -41,7 +41,8 @@
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
-#include "ppp_defs.h"
+#include <net/ppp_defs.h>
+
#include "ppp-comp.h"
#include "zlib.h"
@@ -115,12 +116,13 @@ z_comp_stats(void *arg, struct compstat *stats)
*stats = state->stats;
stats->ratio = stats->unc_bytes;
out = stats->comp_bytes + stats->unc_bytes;
- if (stats->ratio <= 0x7ffffff)
- stats->ratio <<= 8;
+ u_int ratio = stats->ratio;
+ if (ratio <= 0x7ffffff)
+ ratio <<= 8;
else
out >>= 8;
if (out != 0)
- stats->ratio /= out;
+ stats->ratio = ratio / out;
}
/*