From 4cc0861dacaaa3bd735245ba20d7147ac2f4b87d Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Thu, 19 Apr 2018 22:32:22 +0500 Subject: sstp: fix coexistance of host-name= & port= options --- accel-pppd/ctrl/sstp/sstp.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/accel-pppd/ctrl/sstp/sstp.c b/accel-pppd/ctrl/sstp/sstp.c index d6262e8..18bffda 100644 --- a/accel-pppd/ctrl/sstp/sstp.c +++ b/accel-pppd/ctrl/sstp/sstp.c @@ -834,7 +834,7 @@ static int http_send_response(struct sstp_conn_t *conn, char *proto, char *statu static int http_recv_request(struct sstp_conn_t *conn, uint8_t *data, int len) { char linebuf[1024], protobuf[sizeof("HTTP/1.x")]; - char *line, *method, *request, *proto, *host; + char *line, *method, *request, *proto, *host, *ptr; struct buffer_t buf; int ret = -1; @@ -878,8 +878,10 @@ static int http_recv_request(struct sstp_conn_t *conn, uint8_t *data, int len) if (!host && conf_hostname) { host = http_getvalue(line, "Host", sizeof("Host") - 1); - if (host) - host = _strdup(host); + if (host) { + ptr = _strdup(host); + host = strsep(&ptr, ":"); + } } } @@ -2195,11 +2197,11 @@ static int sstp_connect(struct triton_md_handler_t *h) conn->ctrl.ifname = ""; conn->ctrl.mppe = MPPE_UNSET; - conn->ctrl.calling_station_id = strdup(addr_buf); + conn->ctrl.calling_station_id = _strdup(addr_buf); addr.len = sizeof(addr.u); getsockname(sock, &addr.u.sa, &addr.len); sockaddr_ntop(&addr, addr_buf, sizeof(addr_buf)); - conn->ctrl.called_station_id = strdup(addr_buf); + conn->ctrl.called_station_id = _strdup(addr_buf); ppp_init(&conn->ppp); conn->ppp.ses.ctrl = &conn->ctrl; -- cgit v1.2.3 From 1dbc4c4ab811edc1321d502de18fa3f2f9b8dc1b Mon Sep 17 00:00:00 2001 From: Vladislav Grishenko Date: Thu, 19 Apr 2018 22:34:56 +0500 Subject: sstp: fix connection drop with global mppe=required option --- accel-pppd/ctrl/sstp/sstp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accel-pppd/ctrl/sstp/sstp.c b/accel-pppd/ctrl/sstp/sstp.c index 18bffda..0206b69 100644 --- a/accel-pppd/ctrl/sstp/sstp.c +++ b/accel-pppd/ctrl/sstp/sstp.c @@ -2195,7 +2195,7 @@ static int sstp_connect(struct triton_md_handler_t *h) conn->ctrl.ppp = 1; conn->ctrl.name = "sstp"; conn->ctrl.ifname = ""; - conn->ctrl.mppe = MPPE_UNSET; + conn->ctrl.mppe = MPPE_DENY; conn->ctrl.calling_station_id = _strdup(addr_buf); addr.len = sizeof(addr.u); -- cgit v1.2.3