Nobody needs PPTP any more.
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
+++ /dev/null
-Index: pptp_compat.c
-===================================================================
-RCS file: /cvsroot/pptpclient/pptp-linux/pptp_compat.c,v
-retrieving revision 1.1
-retrieving revision 1.3
-diff -u -r1.1 -r1.3
---- a/pptp_compat.c 19 Feb 2008 21:43:28 -0000 1.1
-+++ b/pptp_compat.c 25 Jul 2008 00:13:56 -0000 1.3
-@@ -7,14 +7,15 @@
- #include <fcntl.h>
- #include <sys/types.h>
- #include <unistd.h>
--#include <stropts.h>
- #include <stdlib.h>
-+#if defined (__SVR4) && defined (__sun) /* Solaris */
-+#include <stropts.h>
-+#endif
- #include <strings.h>
- #include "pptp_compat.h"
- #include <stdio.h>
- #include "util.h"
-
--
- #if defined (__SVR4) && defined (__sun) /* Solaris */
- /*
- * daemon implementation from uClibc
-Index: pptp.c
-===================================================================
-RCS file: /cvsroot/pptpclient/pptp-linux/pptp.c,v
-retrieving revision 1.49
-retrieving revision 1.51
-diff -u -r1.49 -r1.51
---- a/pptp.c 14 May 2008 06:32:52 -0000 1.49
-+++ b/pptp.c 24 Jul 2008 05:53:05 -0000 1.51
-@@ -61,9 +61,8 @@
- #include "version.h"
- #if defined(__linux__)
- #include <sys/prctl.h>
--#else
--#include "inststr.h"
- #endif
-+#include "inststr.h"
- #include "util.h"
- #include "pptp_quirks.h"
- #include "pqueue.h"
-@@ -129,7 +128,7 @@
- }
-
- #if defined (__SVR4) && defined (__sun)
--struct in_addr localbind = { INADDR_ANY };
-+struct in_addr localbind = { .s_addr = INADDR_ANY };
- #else
- struct in_addr localbind = { INADDR_NONE };
- #endif
-@@ -183,6 +182,7 @@
- struct in_addr inetaddr;
- volatile int callmgr_sock = -1;
- char ttydev[PATH_MAX];
-+ char *tty_name;
- int pty_fd, tty_fd, gre_fd, rc;
- volatile pid_t parent_pid, child_pid;
- u_int16_t call_id, peer_call_id;
-@@ -391,7 +391,7 @@
- file2fd("/dev/null", "wb", STDERR_FILENO);
- }
-
-- char *tty_name = ttyname(tty_fd);
-+ tty_name = ttyname(tty_fd);
- snprintf(buf, sizeof(buf), "pptp: GRE-to-PPP gateway on %s",
- tty_name ? tty_name : "(null)");
- #ifdef PR_SET_NAME
+++ /dev/null
-Tue Jun 15 15:00:40 2010 James Cameron <quozl@laptop.org>
-
- * pptp_ctrl.c (pptp_conn_is_dead): immediately destroying the
- connection and freeing the structure has led to segmentation
- faults on more recent heap implementations, since we use the
- structure after it has been freed.
-
- Defer the free of the structure until after all uses of it have
- ceased, by adding a connection state for dead and terminating the
- main loop once it is detected.
-
---- a/pptp_callmgr.c 2008-05-14 07:33:55.000000000 +0100
-+++ b/pptp_callmgr.c 2010-06-15 14:32:00.478100392 +0100
-@@ -167,6 +170,7 @@
- do {
- int rc;
- fd_set read_set = call_set, write_set;
-+ if (pptp_conn_is_dead(conn)) break;
- FD_ZERO (&write_set);
- if (pptp_conn_established(conn)) {
- FD_SET (unix_sock, &read_set);
-@@ -294,6 +298,7 @@
- }
- /* with extreme prejudice */
- pptp_conn_destroy(conn);
-+ pptp_conn_free(conn);
- vector_destroy(call_list);
- }
- cleanup:
---- a/pptp_ctrl.c 2008-05-14 07:33:55.000000000 +0100
-+++ b/pptp_ctrl.c 2010-06-15 14:32:00.480100647 +0100
-@@ -58,8 +62,11 @@
- struct PPTP_CONN {
- int inet_sock;
- /* Connection States */
-- enum {
-- CONN_IDLE, CONN_WAIT_CTL_REPLY, CONN_WAIT_STOP_REPLY, CONN_ESTABLISHED
-+ enum {
-+ CONN_IDLE,
-+ CONN_WAIT_CTL_REPLY, CONN_WAIT_STOP_REPLY,
-+ CONN_ESTABLISHED,
-+ CONN_DEAD
- } conn_state; /* on startup: CONN_IDLE */
- /* Keep-alive states */
- enum {
-@@ -448,6 +457,16 @@
- close(conn->inet_sock);
- /* deallocate */
- vector_destroy(conn->call);
-+ conn->conn_state = CONN_DEAD;
-+}
-+
-+int pptp_conn_is_dead(PPTP_CONN * conn)
-+{
-+ return conn->conn_state == CONN_DEAD;
-+}
-+
-+void pptp_conn_free(PPTP_CONN * conn)
-+{
- free(conn);
- }
-
-@@ -1038,11 +1059,13 @@
- int i;
- /* "Keep Alives and Timers, 1": check connection state */
- if (global.conn->conn_state != CONN_ESTABLISHED) {
-- if (global.conn->conn_state == CONN_WAIT_STOP_REPLY)
-+ if (global.conn->conn_state == CONN_WAIT_STOP_REPLY) {
- /* hard close. */
- pptp_conn_destroy(global.conn);
-- else /* soft close */
-- pptp_conn_close(global.conn, PPTP_STOP_NONE);
-+ return;
-+ }
-+ /* soft close */
-+ pptp_conn_close(global.conn, PPTP_STOP_NONE);
- }
- /* "Keep Alives and Timers, 2": check echo status */
- if (global.conn->ka_state == KA_OUTSTANDING) {
---- a/pptp_ctrl.h 2008-05-14 07:33:55.000000000 +0100
-+++ b/pptp_ctrl.h 2010-06-15 14:32:00.864975405 +0100
-@@ -33,6 +33,8 @@
- void pptp_call_close(PPTP_CONN * conn, PPTP_CALL * call);
- /* hard close. */
- void pptp_call_destroy(PPTP_CONN *conn, PPTP_CALL *call);
-+int pptp_conn_is_dead(PPTP_CONN * conn);
-+void pptp_conn_free(PPTP_CONN * conn);
- /* soft close. Will callback on completion. */
- void pptp_conn_close(PPTP_CONN * conn, u_int8_t close_reason);
- /* hard close */
+++ /dev/null
-Fri Jun 4 10:54:04 2010 Jan Just Keijser <jan.just.keijser@gmail.com>
-
- * pptp_ctrl.c: check for failure return by pptp_send_ctrl_packet
- and avoid using freed struct conn.
-
---- a/pptp_ctrl.c 2010-06-15 15:05:46.743913798 +0100
-+++ b/pptp_ctrl.c 2010-06-15 14:32:00.480100647 +0100
-@@ -396,9 +400,10 @@
- /* don't check state against WAIT_DISCONNECT... allow multiple disconnect
- * requests to be made.
- */
-- pptp_send_ctrl_packet(conn, &rqst, sizeof(rqst));
-- pptp_reset_timer();
-- call->state.pns = PNS_WAIT_DISCONNECT;
-+ if (pptp_send_ctrl_packet(conn, &rqst, sizeof(rqst))) {
-+ pptp_reset_timer();
-+ call->state.pns = PNS_WAIT_DISCONNECT;
-+ }
- /* call structure will be freed when we have confirmation of disconnect. */
- }
-
-@@ -431,9 +436,10 @@
- pptp_call_close(conn, vector_get_Nth(conn->call, i));
- /* now close connection */
- log("Closing PPTP connection");
-- pptp_send_ctrl_packet(conn, &rqst, sizeof(rqst));
-- pptp_reset_timer(); /* wait 60 seconds for reply */
-- conn->conn_state = CONN_WAIT_STOP_REPLY;
-+ if (pptp_send_ctrl_packet(conn, &rqst, sizeof(rqst))) {
-+ pptp_reset_timer(); /* wait 60 seconds for reply */
-+ conn->conn_state = CONN_WAIT_STOP_REPLY;
-+ }
- return;
- }
-
-@@ -733,8 +739,8 @@
- reply.version = packet->version;
- /* protocol version not supported */
- reply.result_code = hton8(5);
-- pptp_send_ctrl_packet(conn, &reply, sizeof(reply));
-- pptp_reset_timer(); /* give sender a chance for a retry */
-+ if (pptp_send_ctrl_packet(conn, &reply, sizeof(reply)))
-+ pptp_reset_timer(); /* give sender a chance for a retry */
- } else { /* same or greater version */
- if (pptp_send_ctrl_packet(conn, &reply, sizeof(reply))) {
- conn->conn_state = CONN_ESTABLISHED;
-@@ -841,8 +847,8 @@
- hton8(1), hton8(PPTP_GENERAL_ERROR_NONE), 0
- };
- logecho( PPTP_ECHO_RQST);
-- pptp_send_ctrl_packet(conn, &reply, sizeof(reply));
-- pptp_reset_timer();
-+ if (pptp_send_ctrl_packet(conn, &reply, sizeof(reply)))
-+ pptp_reset_timer();
- break;
- }
- /* ----------- OUTGOING CALL MESSAGES ------------ */
-@@ -928,9 +935,10 @@
- vector_search(conn->call, ntoh16(packet->call_id), &call);
- if (call->callback != NULL)
- call->callback(conn, call, CALL_CLOSE_RQST);
-- pptp_send_ctrl_packet(conn, &reply, sizeof(reply));
-- pptp_call_destroy(conn, call);
-- log("Call closed (RQST) (call id %d)", (int) call->call_id);
-+ if (pptp_send_ctrl_packet(conn, &reply, sizeof(reply))) {
-+ pptp_call_destroy(conn, call);
-+ log("Call closed (RQST) (call id %d)", (int) call->call_id);
-+ }
- }
- break;
- }
-@@ -1067,8 +1075,9 @@
- } else { /* ka_state == NONE */ /* send keep-alive */
- struct pptp_echo_rqst rqst = {
- PPTP_HEADER_CTRL(PPTP_ECHO_RQST), hton32(global.conn->ka_id) };
-- pptp_send_ctrl_packet(global.conn, &rqst, sizeof(rqst));
-- global.conn->ka_state = KA_OUTSTANDING;
-+ if (pptp_send_ctrl_packet(global.conn, &rqst, sizeof(rqst))) {
-+ global.conn->ka_state = KA_OUTSTANDING;
-+ }
- }
- /* check incoming/outgoing call states for !IDLE && !ESTABLISHED */
- for (i = 0; i < vector_size(global.conn->call); i++) {
+++ /dev/null
-Index: routing.c
-===================================================================
-RCS file: /cvsroot/pptpclient/pptp-linux/routing.c,v
-retrieving revision 1.1
-diff -u -r1.1 routing.c
---- a/routing.c 2 Aug 2006 07:07:37 -0000 1.1
-+++ b/routing.c 25 Mar 2009 13:58:28 -0000
-@@ -23,9 +23,26 @@
- #include <stdio.h>
- #include <string.h>
- #include "routing.h"
-+#include "config.h"
-
-+#if defined (__SVR4) && defined (__sun) /* Solaris */
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <net/if.h>
-+#include <arpa/inet.h>
-+#include <errno.h>
-+#include "util.h"
-+/* PF_ROUTE socket*/
-+int rts;
-+/* Destination and gateway addresses */
-+struct sockaddr_in rdst, rgw;
-+/* Request sequence */
-+int rseq;
-+int dorouting;
-+#else /* Solaris */
- /* route to the server */
- char *route;
-+#endif /* Solaris */
-
- /*
-
-@@ -54,26 +71,113 @@
- */
-
- void routing_init(char *ip) {
-+#if defined (__SVR4) && defined (__sun) /* Solaris */
-+ rdst.sin_family = AF_INET;
-+ if ( ! inet_pton(AF_INET, ip, &rdst.sin_addr) ) {
-+ log("Cannot convert address: %s", strerror(errno));
-+ return;
-+ }
-+
-+ if ( (rts = socket(PF_ROUTE, SOCK_RAW, AF_INET )) < 0 ) {
-+ log("Cannot open routing socket: %s", strerror(errno));
-+ return;
-+ }
-+
-+ struct rt_msg rtm = {
-+ .hdr.rtm_msglen = sizeof(struct rt_msg),
-+ .hdr.rtm_version = RTM_VERSION,
-+ .hdr.rtm_type = RTM_GET,
-+ .hdr.rtm_addrs = RTA_DST,
-+ .hdr.rtm_pid = getpid(),
-+ .hdr.rtm_seq = ++rseq,
-+ .addrs[RTAX_DST] = rdst
-+ };
-+
-+ if ( write(rts, &rtm, rtm.hdr.rtm_msglen) != rtm.hdr.rtm_msglen ) {
-+ log("Error writing to routing socket: %s", strerror(errno));
-+ close(rts);
-+ return;
-+ }
-+
-+ while ( read(rts, &rtm, sizeof(struct rt_msg)) > 0 )
-+ if ( rtm.hdr.rtm_pid == getpid() && rtm.hdr.rtm_seq == rseq) {
-+ /* Check if host route already present */
-+ if ( ( rtm.hdr.rtm_flags & RTF_HOST ) != RTF_HOST ) {
-+ rgw = rtm.addrs[RTAX_GATEWAY];
-+ dorouting = 1;
-+ }
-+ break;
-+ }
-+#else /* Solaris */
- char buf[256];
-- snprintf(buf, 255, "/bin/ip route get %s", ip);
-- FILE *p = popen(buf, "r");
-+ FILE *p;
-+
-+ snprintf(buf, 255, "%s route get %s", IP_BINARY, ip);
-+ p = popen(buf, "r");
- fgets(buf, 255, p);
- /* TODO: check for failure of fgets */
- route = strdup(buf);
- pclose(p);
- /* TODO: check for failure of command */
-+#endif /* Solaris */
- }
-
- void routing_start() {
-+#if defined (__SVR4) && defined (__sun) /* Solaris */
-+ if ( ! dorouting )
-+ return;
-+
-+ struct rt_msg rtm = {
-+ .hdr.rtm_msglen = sizeof(struct rt_msg),
-+ .hdr.rtm_version = RTM_VERSION,
-+ .hdr.rtm_type = RTM_ADD,
-+ .hdr.rtm_flags = RTF_HOST | RTF_GATEWAY | RTF_STATIC,
-+ .hdr.rtm_addrs = RTA_DST | RTA_GATEWAY,
-+ .hdr.rtm_pid = getpid(),
-+ .hdr.rtm_seq = ++rseq,
-+ .addrs[RTAX_DST] = rdst,
-+ .addrs[RTAX_GATEWAY] = rgw
-+ };
-+
-+ if ( write(rts, &rtm, rtm.hdr.rtm_msglen) != rtm.hdr.rtm_msglen ) {
-+ log("Error adding route: %s", strerror(errno));
-+ }
-+#else /* Solaris */
- char buf[256];
-- snprintf(buf, 255, "/bin/ip route replace %s", route);
-- FILE *p = popen(buf, "r");
-+ FILE *p;
-+
-+ snprintf(buf, 255, "%s route replace %s", IP_BINARY, route);
-+ p = popen(buf, "r");
- pclose(p);
-+#endif /* Solaris */
- }
-
- void routing_end() {
-+#if defined (__SVR4) && defined (__sun) /* Solaris */
-+ if ( ! dorouting)
-+ return;
-+
-+ struct rt_msg rtm = {
-+ .hdr.rtm_msglen = sizeof(struct rt_msg),
-+ .hdr.rtm_version = RTM_VERSION,
-+ .hdr.rtm_type = RTM_DELETE,
-+ .hdr.rtm_flags = RTF_HOST | RTF_GATEWAY | RTF_STATIC,
-+ .hdr.rtm_addrs = RTA_DST | RTA_GATEWAY,
-+ .hdr.rtm_pid = getpid(),
-+ .hdr.rtm_seq = ++rseq,
-+ .addrs[RTAX_DST] = rdst,
-+ .addrs[RTAX_GATEWAY] = rgw
-+ };
-+
-+ if ( write(rts, &rtm, rtm.hdr.rtm_msglen) != rtm.hdr.rtm_msglen ) {
-+ log("Error deleting route: %s", strerror(errno));
-+ }
-+#else /* Solaris */
- char buf[256];
-- snprintf(buf, 255, "/bin/ip route delete %s", route);
-- FILE *p = popen(buf, "r");
-+ FILE *p;
-+
-+ snprintf(buf, 255, "%s route delete %s", IP_BINARY, route);
-+ p = popen(buf, "r");
- pclose(p);
-+#endif /* Solaris */
- }
-Index: Makefile
-===================================================================
-RCS file: /cvsroot/pptpclient/pptp-linux/Makefile,v
-retrieving revision 1.47
-retrieving revision 1.49
-diff -u -r1.47 -r1.49
---- a/Makefile 14 May 2008 06:32:52 -0000 1.47
-+++ b/Makefile 24 Jul 2008 05:37:47 -0000 1.49
-@@ -1,10 +1,13 @@
--# $Id: Makefile,v 1.47 2008/05/14 06:32:52 quozl Exp $
-+# $Id: Makefile,v 1.49 2008/07/24 05:37:47 quozl Exp $
- VERSION=1.7.2
- RELEASE=
-
- #################################################################
--# CHANGE THIS LINE to point to the location of your pppd binary.
-+# CHANGE THIS LINE to point to the location of binaries
- PPPD = /usr/sbin/pppd
-+# Solaris
-+# PPPD = /usr/bin/pppd
-+IP = /bin/ip
- #################################################################
-
- BINDIR=$(DESTDIR)/usr/sbin
-@@ -47,6 +52,7 @@
- echo "/* text added by Makefile target config.h */" > config.h
- echo "#define PPTP_LINUX_VERSION \"$(VERSION)$(RELEASE)\"" >> config.h
- echo "#define PPPD_BINARY \"$(PPPD)\"" >> config.h
-+ echo "#define IP_BINARY \"$(IP)\"" >> config.h
-
- vector_test: vector_test.o vector.o
- $(CC) -o vector_test vector_test.o vector.o
+++ /dev/null
-Index: Makefile
-===================================================================
-RCS file: /cvsroot/pptpclient/pptp-linux/Makefile,v
-retrieving revision 1.47
-retrieving revision 1.49
-diff -u -r1.47 -r1.49
---- a/Makefile 14 May 2008 06:32:52 -0000 1.47
-+++ b/Makefile 24 Jul 2008 05:37:47 -0000 1.49
-@@ -96,3 +102,71 @@
- release:
- cp pptp_$(VERSION)-0_i386.deb $(WEB)
- cd $(WEB);make
-+
-+# The following include file dependencies were generated using
-+# "makedepend -w0 *.c", then manually removing out of tree entries.
-+# DO NOT DELETE
-+
-+dirutil.o: dirutil.h
-+orckit_quirks.o: pptp_msg.h
-+orckit_quirks.o: pptp_compat.h
-+orckit_quirks.o: pptp_options.h
-+orckit_quirks.o: pptp_ctrl.h
-+orckit_quirks.o: util.h
-+ppp_fcs.o: ppp_fcs.h
-+ppp_fcs.o: pptp_compat.h
-+pptp.o: config.h
-+pptp.o: pptp_callmgr.h
-+pptp.o: pptp_gre.h
-+pptp.o: pptp_compat.h
-+pptp.o: version.h
-+pptp.o: inststr.h
-+pptp.o: util.h
-+pptp.o: pptp_quirks.h
-+pptp.o: pptp_msg.h
-+pptp.o: pptp_ctrl.h
-+pptp.o: pqueue.h
-+pptp.o: pptp_options.h
-+pptp_callmgr.o: pptp_callmgr.h
-+pptp_callmgr.o: pptp_ctrl.h
-+pptp_callmgr.o: pptp_compat.h
-+pptp_callmgr.o: pptp_msg.h
-+pptp_callmgr.o: dirutil.h
-+pptp_callmgr.o: vector.h
-+pptp_callmgr.o: util.h
-+pptp_callmgr.o: routing.h
-+pptp_compat.o: pptp_compat.h
-+pptp_compat.o: util.h
-+pptp_ctrl.o: pptp_msg.h
-+pptp_ctrl.o: pptp_compat.h
-+pptp_ctrl.o: pptp_ctrl.h
-+pptp_ctrl.o: pptp_options.h
-+pptp_ctrl.o: vector.h
-+pptp_ctrl.o: util.h
-+pptp_ctrl.o: pptp_quirks.h
-+pptp_gre.o: ppp_fcs.h
-+pptp_gre.o: pptp_compat.h
-+pptp_gre.o: pptp_msg.h
-+pptp_gre.o: pptp_gre.h
-+pptp_gre.o: util.h
-+pptp_gre.o: pqueue.h
-+pptp_gre.o: test.h
-+pptp_quirks.o: orckit_quirks.h
-+pptp_quirks.o: pptp_options.h
-+pptp_quirks.o: pptp_ctrl.h
-+pptp_quirks.o: pptp_compat.h
-+pptp_quirks.o: pptp_msg.h
-+pptp_quirks.o: pptp_quirks.h
-+pqueue.o: util.h
-+pqueue.o: pqueue.h
-+routing.o: routing.h
-+test.o: util.h
-+test.o: test.h
-+util.o: util.h
-+vector.o: pptp_ctrl.h
-+vector.o: pptp_compat.h
-+vector.o: vector.h
-+vector_test.o: vector.h
-+vector_test.o: pptp_ctrl.h
-+vector_test.o: pptp_compat.h
-+version.o: config.h
+++ /dev/null
---- a/pptpsetup 2009-06-01 14:30:36.000000000 +0100
-+++ b/pptpsetup 2009-06-01 14:36:39.000000000 +0100
-@@ -43,12 +43,13 @@
- sub create {
- my $TUNNEL = shift;
-
-- # system checking
-- &Check_MPPE_in_kernel
-- or die "$0: couldn't find MPPE support in kernel.\n";
--
-- &Check_MPPE_in_pppd
-- or die "$0: couldn't find MPPE support in pppd.\n";
-+ # if encryption is requested, check for support in kernel and pppd
-+ if ( $ENCRYPT ) {
-+ &Check_MPPE_in_kernel
-+ or die "$0: couldn't find MPPE support in kernel.\n";
-+ &Check_MPPE_in_pppd
-+ or die "$0: couldn't find MPPE support in pppd.\n";
-+ }
-
- # input validation
- ($TUNNEL) = $TUNNEL =~ m{^(\w+)$}
+++ /dev/null
---- pptp-1.7.2/pptpsetup 2009-06-01 15:18:25.000000000 +0100
-+++ pptp-1.7.2/pptpsetup 2009-06-01 15:19:25.000000000 +0100
-@@ -43,14 +43,6 @@
- sub create {
- my $TUNNEL = shift;
-
-- # if encryption is requested, check for support in kernel and pppd
-- if ( $ENCRYPT ) {
-- &Check_MPPE_in_kernel
-- or die "$0: couldn't find MPPE support in kernel.\n";
-- &Check_MPPE_in_pppd
-- or die "$0: couldn't find MPPE support in pppd.\n";
-- }
--
- # input validation
- ($TUNNEL) = $TUNNEL =~ m{^(\w+)$}
- or die "$0: invalid tunnel name.\nTry '$0 --help' for more information.\n";
-@@ -180,29 +172,6 @@
- exit;
- }
-
--### AUXILIAR SUBS ###
--
--sub Check_MPPE_in_kernel {
-- my $command = q/modprobe ppp-compress-18/;
-- if (system( $command ) == 0) {
-- # no error!
-- return 1;
-- } else {
-- return 0;
-- }
--}
--
--sub Check_MPPE_in_pppd {
-- my $command = q/strings `which pppd`|grep -i mppe|wc --lines/;
-- my $answer = `$command`;
-- if ($answer > 0) {
-- # ok!
-- return 1;
-- } else {
-- return 0;
-- }
--}
--
- __END__
-
- =head1 NAME
+++ /dev/null
-Index: pptpsetup
-===================================================================
-RCS file: /cvsroot/pptpclient/pptp-linux/pptpsetup,v
-retrieving revision 1.4
-diff -u -r1.4 pptpsetup
---- a/pptpsetup 2 Aug 2006 07:02:47 -0000 1.4
-+++ b/pptpsetup 25 Mar 2009 13:41:37 -0000
-@@ -154,6 +154,7 @@
-
- # delete entry from chap-secrets
- my $chap_file = '/etc/ppp/chap-secrets';
-+ my $mode = (stat($chap_file))[2] & 07777;
-
- open( FILE, $chap_file )
- or die "$0: can't read '$chap_file': $!\n";
-@@ -171,6 +172,7 @@
- # write new chap-secrets
- open( FILE, ">$chap_file" )
- or die "$0: can't write '$chap_file': $!\n";
-+ chmod $mode, $chap_file;
- print FILE $new_chap;
- close FILE;
-
+++ /dev/null
-Tue Jun 15 15:02:28 2010 James Cameron <quozl@us.netrek.org>
-
- * pptp.c (open_callmgr): fix usage of status returned by waitpid;
- it must be wrapped by WEXITSTATUS to shift bits as required.
-
---- a/pptp.c 2010-06-15 14:35:20.265852021 +0100
-+++ b/pptp.c 2010-06-15 14:32:00.478100392 +0100
-@@ -475,7 +475,7 @@
- }
- default: /* parent */
- waitpid(pid, &status, 0);
-- if (status!= 0)
-+ if (WEXITSTATUS(status) != 0)
- fatal("Call manager exited with error %d", status);
- break;
- }
+++ /dev/null
-###############################################################################
-# IPFire.org - An Open Source Firewall Solution #
-# Copyright (C) - IPFire Development Team <info@ipfire.org> #
-###############################################################################
-
-name = pptp
-version = 1.7.2
-release = 3
-
-groups = Networking/Dialin
-url = http://pptpclient.sourceforge.net/
-license = GPLv2+
-summary = Point-to-Point Tunneling Protocol (PPTP) Client.
-
-description
- Client for the proprietary Microsoft Point-to-Point Tunneling
- Protocol, PPTP. Allows connection to a PPTP based VPN as used
- by employers and some cable and ADSL service providers.
-end
-
-source_dl =
-sources = %{thisapp}.tar.gz
-
-build
- requires
- perl
- ppp-devel
- end
-
- prepare_cmds
- sed -i Makefile \
- -e "s/install -o root -m 555 pptp/install -m 755 pptp/" \
- -e "s/^OPTIMIZE=.*/OPTIMIZE=%{CFLAGS}/" \
- -e "s/^LDFLAGS =/LDFLAGS=%{LDFLAGS}/" \
- -e "s/^IP.*/IP=\/sbin\/ip/"
- end
-
- install_cmds
- rm -rvf %{BUILDROOT}/etc
- end
-end
-
-packages
- package %{name}
- requires
- iproute2
- end
- end
-
- package %{name}-debuginfo
- template DEBUGINFO
- end
-end