summaryrefslogtreecommitdiff
path: root/fw/esp32/components/eos/cell_pdp.c
diff options
context:
space:
mode:
Diffstat (limited to 'fw/esp32/components/eos/cell_pdp.c')
-rw-r--r--fw/esp32/components/eos/cell_pdp.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/fw/esp32/components/eos/cell_pdp.c b/fw/esp32/components/eos/cell_pdp.c
new file mode 100644
index 0000000..1aa0575
--- /dev/null
+++ b/fw/esp32/components/eos/cell_pdp.c
@@ -0,0 +1,31 @@
+#include <stdlib.h>
+#include <string.h>
+
+#include <esp_log.h>
+
+#include "eos.h"
+#include "cell.h"
+
+void eos_cell_pdp_handler(unsigned char mtype, unsigned char *buffer, uint16_t size) {
+ char *apn, *user, *pass;
+
+ buffer += 1;
+ size -= 1;
+ switch (mtype) {
+ case EOS_CELL_MTYPE_PDP_CONFIG:
+ apn = (char *)buffer;
+ user = apn + strlen(apn) + 1;
+ pass = user + strlen(user) + 1;
+ eos_ppp_set_apn(apn);
+ eos_ppp_set_auth(user, pass);
+ break;
+
+ case EOS_CELL_MTYPE_PDP_CONNECT:
+ eos_ppp_connect();
+ break;
+
+ case EOS_CELL_MTYPE_PDP_DISCONNECT:
+ eos_ppp_disconnect();
+ break;
+ }
+}