summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp/lcp_opt_magic.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pptpd/ppp/lcp_opt_magic.c')
-rw-r--r--accel-pptpd/ppp/lcp_opt_magic.c91
1 files changed, 0 insertions, 91 deletions
diff --git a/accel-pptpd/ppp/lcp_opt_magic.c b/accel-pptpd/ppp/lcp_opt_magic.c
deleted file mode 100644
index 4a61ef9..0000000
--- a/accel-pptpd/ppp/lcp_opt_magic.c
+++ /dev/null
@@ -1,91 +0,0 @@
-#include <stdlib.h>
-#include <string.h>
-#include <arpa/inet.h>
-
-#include "ppp.h"
-#include "ppp_lcp.h"
-#include "log.h"
-
-#include "memdebug.h"
-
-static struct lcp_option_t *magic_init(struct ppp_lcp_t *lcp);
-static void magic_free(struct ppp_lcp_t *lcp, struct lcp_option_t *opt);
-static int magic_send_conf_req(struct ppp_lcp_t *lcp, struct lcp_option_t *opt, uint8_t *ptr);
-static int magic_recv_conf_req(struct ppp_lcp_t *lcp, struct lcp_option_t *opt, uint8_t *ptr);
-static void magic_print(void (*print)(const char *fmt,...),struct lcp_option_t*, uint8_t *ptr);
-
-struct magic_option_t
-{
- struct lcp_option_t opt;
- int magic;
-};
-
-static struct lcp_option_handler_t magic_opt_hnd=
-{
- .init=magic_init,
- .send_conf_req=magic_send_conf_req,
- .recv_conf_req=magic_recv_conf_req,
- .free=magic_free,
- .print=magic_print,
-};
-
-static struct lcp_option_t *magic_init(struct ppp_lcp_t *lcp)
-{
- struct magic_option_t *magic_opt=_malloc(sizeof(*magic_opt));
- memset(magic_opt,0,sizeof(*magic_opt));
- magic_opt->magic=random();
- magic_opt->opt.id=CI_MAGIC;
- magic_opt->opt.len=6;
-
- lcp->magic = magic_opt->magic;
-
- return &magic_opt->opt;
-}
-
-static void magic_free(struct ppp_lcp_t *lcp, struct lcp_option_t *opt)
-{
- struct magic_option_t *magic_opt=container_of(opt,typeof(*magic_opt),opt);
-
- _free(magic_opt);
-}
-
-static int magic_send_conf_req(struct ppp_lcp_t *lcp, struct lcp_option_t *opt, uint8_t *ptr)
-{
- struct magic_option_t *magic_opt=container_of(opt,typeof(*magic_opt),opt);
- struct lcp_opt32_t *opt32=(struct lcp_opt32_t*)ptr;
- opt32->hdr.id=CI_MAGIC;
- opt32->hdr.len=6;
- opt32->val=htonl(magic_opt->magic);
- return 6;
-}
-
-static int magic_recv_conf_req(struct ppp_lcp_t *lcp, struct lcp_option_t *opt, uint8_t *ptr)
-{
- struct magic_option_t *magic_opt=container_of(opt,typeof(*magic_opt),opt);
- struct lcp_opt32_t *opt32=(struct lcp_opt32_t*)ptr;
-
- /*if (!ptr)
- return LCP_OPT_NAK;*/
-
- if (opt32->hdr.len != 6)
- return LCP_OPT_REJ;
-
- if (magic_opt->magic==ntohl(opt32->val))
- {
- log_ppp_error("loop detected");
- return -1;
- }
- return LCP_OPT_ACK;
-}
-
-static void magic_print(void (*print)(const char *fmt,...),struct lcp_option_t *opt, uint8_t *ptr)
-{
- struct magic_option_t *magic_opt=container_of(opt,typeof(*magic_opt),opt);
-
- print("<magic %04x>",magic_opt->magic);
-}
-
-static void __init magic_opt_init()
-{
- lcp_option_register(&magic_opt_hnd);
-}