diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-dialup/pptpclient | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-dialup/pptpclient')
-rw-r--r-- | net-dialup/pptpclient/Manifest | 3 | ||||
-rw-r--r-- | net-dialup/pptpclient/files/pptp_fe.pl | 370 | ||||
-rw-r--r-- | net-dialup/pptpclient/files/pptpclient-1.7.2-ip-path.patch | 29 | ||||
-rw-r--r-- | net-dialup/pptpclient/files/pptpclient-1.7.2-process-name.patch | 42 | ||||
-rw-r--r-- | net-dialup/pptpclient/files/pptpclient-1.8.0-process-name.patch | 39 | ||||
-rw-r--r-- | net-dialup/pptpclient/files/xpptp_fe.pl | 255 | ||||
-rw-r--r-- | net-dialup/pptpclient/metadata.xml | 9 | ||||
-rw-r--r-- | net-dialup/pptpclient/pptpclient-1.7.2-r3.ebuild | 53 | ||||
-rw-r--r-- | net-dialup/pptpclient/pptpclient-1.8.0.ebuild | 53 |
9 files changed, 853 insertions, 0 deletions
diff --git a/net-dialup/pptpclient/Manifest b/net-dialup/pptpclient/Manifest new file mode 100644 index 000000000000..5d87072b55a1 --- /dev/null +++ b/net-dialup/pptpclient/Manifest @@ -0,0 +1,3 @@ +DIST pptp-1.7.2.tar.gz 81113 SHA256 e98ae0065d2a39fa3131654ff28cb7070e996f668ed6d0e7d9a445b8d37694bc SHA512 8c070bd0e2fac68e54eefcc21a31b567f74080764130cf94bf1e29138c3a43b8f56721836d826343528062fc6afcffee03ad93631678cc9b946bc6a8f4ce3dec WHIRLPOOL 4a1a38e3e50fe77e553933532147a202858ba54f009fb8b98c33539122014a61fae6df69d985d118329a5b62f86bdfe4ca4bcb62b1586c4dbd76f4a9750f1280 +DIST pptp-1.8.0.tar.gz 86778 SHA256 e39c42d933242a8a6dd8600a0fa7f0a5ec8f066d10c4149d8e81a5c68fe4bbda SHA512 cabcc2ef29d20859af923c6d96c524e83a80549839d1ad6fccaf9ec0ed5e7a5de7120e0694e6160b374952ea3ecb7b69d9809641000d6bf2585eeedb2d29c073 WHIRLPOOL da21a83f78c2973d90679d2ae76b47bd32ad0327d55ff943c5f663513fe2ce6736ca0910f55cb9929667e935975c1ac523641e12eaa3c42ba60e30d017d5942c +DIST pptp-command-20130515.bz2 7269 SHA256 c94f6ccb4370adb4c8f857ed260326583484d461df54dc06a966b1387c68cd6a SHA512 3b0ad28c5f7bf4f674ba8742e8a3be50cb62521f767142a1a1e74263707bc860126b7238a4aea307366a71100a193d18f3ec7599f4c0c52cd259f8b1d6b429bf WHIRLPOOL 2f1c9c1e6c4fb75bc4932c8536d0b10aa89c7fc53ba0887875b7920c8fc2bc894e7863ae4830dd907e9a4459c16f747b3454fda542664f61ac80353164121773 diff --git a/net-dialup/pptpclient/files/pptp_fe.pl b/net-dialup/pptpclient/files/pptp_fe.pl new file mode 100644 index 000000000000..01d291c9ade1 --- /dev/null +++ b/net-dialup/pptpclient/files/pptp_fe.pl @@ -0,0 +1,370 @@ +#!/usr/bin/perl +# +# $Id$ +# +# pptp_fe.pl, privileged portion of xpptp_fe.pl +# Copyright (C) 2001 Smoot Carl-Mitchell (smoot@tic.com) +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +use strict; +use Getopt::Std; +use Time::localtime; +use IO::Handle; + +my $Usage = "usage: pptp_fe [-c config_file] [-d] [-h] [-k] [-n network] + [-p] [-r routes] [-t timeout] [host] + where: + -c - configuration file (default is ~/.pptp_fe.conf) + -d - pppd debug flag + -h - this help message + -k - kill pppd daemon with route to network + -n - network number of remote private network in x.x.x.x/n notation + -r - routes to add to routing table separated by commas + -p - suppress prompting + -t - connection timeout retry interval in seconds (default 60 seconds) + host - remote PPTP server name +"; + +my %Opt; +getopts("c:dhkn:pr:t:", \%Opt); + +my $Config_File = $Opt{'c'}; +$Config_File = "$ENV{'HOME'}/.pptp_fe.conf" unless $Opt{'c'}; +my $Config; +my $Debug = $Opt{'d'}; +$Debug = 0 unless $Debug; +my $Debug_Flag = "debug" if $Debug; +my $Help = $Opt{'h'}; +my $Kill = $Opt{'k'}; +my $Net = $Opt{'n'}; +my $No_Prompt = $Opt{'p'}; +my $Route = $Opt{'r'}; +my $Timeout = $Opt{'t'}; $Timeout = 60 unless $Timeout; + +print($Usage), exit(1) if $Help; + +my $Server = $ARGV[0]; + +my $State = "disconnected"; + +system("modprobe ppp-compress-18"); + +$Config = cmd_read_config_file($Config_File); +for my $cmd (@$Config) { + cmd_set($cmd, 1); +} + +print "($State) > " unless $No_Prompt; +STDOUT->flush; +for (;;) { + my $rin = ''; + my $rout = ''; + vec($rin, fileno(STDIN), 1) = 1; + command() if select($rout=$rin, undef, undef, 5); + + my $interface = ""; + if ($State eq "connected" && ! ($interface = net_interface_up($Net))) { + print "\n"; + print "interface $interface for $Net not up - restarting\n"; + cmd_connect(); + print "($State) > " unless $No_Prompt;; + } +} + +sub command { + + my $input; + sysread(STDIN, $input, 1024); + + for my $line1 (split("\n", $input)) { + my $line = $line1; + $line =~ s/\s*$//; + $line =~ s/^\s*//; + my ($command, $arguments) = split(" ", $line, 2); + + if ($command eq "c") { + cmd_connect(); + } + elsif ($command eq "d") { + cmd_disconnect(); + } + elsif ($command eq "h") { + cmd_help(); + } + elsif ($command eq "l") { + cmd_list(); + } + elsif ($command eq "q") { + cmd_disconnect(); + exit 0; + } + elsif ($command eq "r") { + $Config = cmd_read_config_file($arguments); + } + elsif ($command eq "s") { + cmd_set($arguments, 0); + } + elsif ($command eq "w") { + cmd_write_config_file($arguments); + } + elsif ($command ne "") { + print "unknown command\n"; + } + } + print "($State) > " unless $No_Prompt; + STDOUT->flush; +} + +sub cmd_connect { + + cmd_disconnect() if $State eq "connected"; + + my $start_time = time(); + my $date_string = ctime($start_time); + print "$date_string Running pptp $Server $Debug_Flag"; + system("pptp $Server $Debug_Flag"); + + my $interface = ""; + + do { + sleep 1; + $interface = net_interface_up($Net); + print "."; + } until ($interface || time() > $start_time + $Timeout); + + if (time() > $start_time + $Timeout) { + print "timed out after $Timeout sec\n"; + $State = "disconnected"; + return 0; + } + + print "\n"; + + my $ifcfg = `ifconfig $interface`; + $ifcfg =~ /P-t-P:(.*) Mask/; + my $ip = $1; + print "setting route to network $Net to interface $interface\n"; + system("route add -net $Net dev $interface metric 2"); + + # Routes are separated by commas + my @route = split(/,/, $Route); + for my $route (@route) { + my $net_flag = ""; + $net_flag = "-net" if $route =~ /\//; + + print "setting route to $route to interface $interface\n"; + system("route add $net_flag $route dev $interface"); + } + + $State = "connected"; + print "connected\n"; + return 1; +} + +sub cmd_disconnect { + + return 1 if $State eq "disconnected"; + + my $interface = net_interface_up($Net); + my $pid_file = "/var/run/$interface.pid"; + + # delete the named pipes - XXX this is a bit crude + system("rm -f /var/run/pptp/*"); + + $State = "disconnected", return 1 unless $interface && -f $pid_file; + + my $pid = `cat $pid_file`; + chomp $pid; + print "killing pppd($pid)\n"; + kill("HUP", $pid); + print "waiting for pppd to die"; + do { + sleep 1; + print "."; + } + until (kill(0, $pid)); + + print "\n"; + $State = "disconnected"; + print "disconnected\n"; + return 1; +} + +sub cmd_list { + + print "Server = $Server\n"; + print "Network = $Net\n"; + print "Routes = $Route\n"; + print "Debug = $Debug_Flag\n"; + print "No_Prompt = $No_Prompt\n"; + print "Timeout = $Timeout\n"; + print "\n"; +} + +sub cmd_help { + + print "Commands are:\n"; + print "c - initiate PPTP connection\n"; + print "d - disconnect PPTP\n"; + print "h - this help message\n"; + print "l - list current configuration\n"; + print "q - quite the program\n"; + print "r - read configuration file\n"; + print "s - set configuration variable (l for a list)\n"; + print "w - write the configuration file\n"; + +} + +sub cmd_set { + my $input = shift; + my $no_replace = shift; + + my ($variable, $value) = split(/\s*=\s*/, $input); + + $variable = "\L$variable"; + if (! $variable) { + print "syntax: s variable = value\n"; + return 0; + } + + if ($variable eq "server") { + $Server = $value unless $no_replace && $Server; + } + elsif ($variable eq "network") { + $Net = $value unless $no_replace && $Net; + } + elsif ($variable eq "routes") { + $Route = $value unless $no_replace && $Route; + } + elsif ($variable eq "debug") { + $Debug_Flag = $value unless $no_replace && $Debug_Flag; + } + elsif ($variable eq "no_prompt") { + $No_Prompt = $value unless $no_replace && $No_Prompt; + } + elsif ($variable eq "timeout") { + $Timeout = $value unless $no_replace && $Timeout; + } + elsif ($variable eq "config_file") { + $Config_File = $value unless $no_replace && $Config_File; + } + else { + print "unknown variable\n"; + } +} + +sub cmd_read_config_file { + my $file = shift; + + my $config = []; + $file = $Config_File unless $file; + local *IN; + if (!open(IN, $file)) { + print "cannot open $file\n"; + return $config; + } + + my @config_file = <IN>; + close IN; + push @config_file, "\n"; + chomp @config_file; + + for my $line (@config_file) { + next if /\s*#/; + + if ($line =~ /\S/) { + $line =~ s/^\s*//; + $line =~ s/\s*$//; + push @$config, $line; + next; + } + } + return $config; +} + +sub cmd_write_config_file { + my $file = shift; + + $file = $Config_File unless $file; + local *OUT; + if (!open(OUT, ">$file")) { + print "cannot open $file\n"; + return 0; + } + + my $oldfh = select OUT; + cmd_list(); + close OUT; + select $oldfh; + + return 1; +} + +sub net_interface_up { + my $cidr = shift; + + # cidr is net/bits + my($net, $nbits) = split(/\//, $cidr); + + # compute the network number + my $netnum = netnum($net, $nbits); + local(*INTERFACE); + open(INTERFACE, "ifconfig|") || die "cannot run ifconfig - $!\n"; + + my $interface = ""; + my @interface = <INTERFACE>; + close INTERFACE; + for (@interface) { + chomp; + + # new interface + if (/^[a-zA-Z]/) { + if ($interface =~ /(.*) Link.*P-t-P:(.*) Mask/) { + my $interface_name = $1; + my $ip = $2; + return $interface_name + if netnum($ip, $nbits) == $netnum; + } + $interface = ""; + } + $interface .= $_; + } + return ""; +} + +sub netnum { + my $net = shift; + my $bits = shift; + + my @octets = split(/\./, $net); + my $netnum = 0; + for my $octet (@octets) { + $netnum <<= 8; + $netnum |= $octet; + } + + my $mask = 0; + for (1..$bits) { + $mask <<= 1; + $mask |= 1; + } + $mask = $mask << (32-$bits); + + $netnum &= $mask; + + return $netnum; +} diff --git a/net-dialup/pptpclient/files/pptpclient-1.7.2-ip-path.patch b/net-dialup/pptpclient/files/pptpclient-1.7.2-ip-path.patch new file mode 100644 index 000000000000..0e5902113f47 --- /dev/null +++ b/net-dialup/pptpclient/files/pptpclient-1.7.2-ip-path.patch @@ -0,0 +1,29 @@ +diff -Nru pptp-1.7.2.orig/routing.c pptp-1.7.2/routing.c +--- pptp-1.7.2.orig/routing.c 2008-05-14 08:33:55.000000000 +0200 ++++ pptp-1.7.2/routing.c 2009-09-16 23:28:11.000000000 +0200 +@@ -55,7 +55,7 @@ + + void routing_init(char *ip) { + char buf[256]; +- snprintf(buf, 255, "/bin/ip route get %s", ip); ++ snprintf(buf, 255, "/sbin/ip route get %s", ip); + FILE *p = popen(buf, "r"); + fgets(buf, 255, p); + /* TODO: check for failure of fgets */ +@@ -66,14 +66,14 @@ + + void routing_start() { + char buf[256]; +- snprintf(buf, 255, "/bin/ip route replace %s", route); ++ snprintf(buf, 255, "/sbin/ip route replace %s", route); + FILE *p = popen(buf, "r"); + pclose(p); + } + + void routing_end() { + char buf[256]; +- snprintf(buf, 255, "/bin/ip route delete %s", route); ++ snprintf(buf, 255, "/sbin/ip route delete %s", route); + FILE *p = popen(buf, "r"); + pclose(p); + } diff --git a/net-dialup/pptpclient/files/pptpclient-1.7.2-process-name.patch b/net-dialup/pptpclient/files/pptpclient-1.7.2-process-name.patch new file mode 100644 index 000000000000..b0051f81bde0 --- /dev/null +++ b/net-dialup/pptpclient/files/pptpclient-1.7.2-process-name.patch @@ -0,0 +1,42 @@ +diff -Nru pptp-1.7.2.orig/pptp.c pptp-1.7.2/pptp.c +--- pptp-1.7.2.orig/pptp.c 2008-05-14 08:33:55.000000000 +0200 ++++ pptp-1.7.2/pptp.c 2009-06-20 10:53:07.000000000 +0200 +@@ -59,11 +59,7 @@ + #include "pptp_callmgr.h" + #include "pptp_gre.h" + #include "version.h" +-#if defined(__linux__) +-#include <sys/prctl.h> +-#else + #include "inststr.h" +-#endif + #include "util.h" + #include "pptp_quirks.h" + #include "pqueue.h" +@@ -394,12 +390,7 @@ + char *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 +- rc = prctl(PR_SET_NAME, "pptpgw", 0, 0, 0); +- if (rc != 0) perror("prctl"); +-#else + inststr(argc, argv, envp, buf); +-#endif + if (sigsetjmp(env, 1)!= 0) goto shutdown; + + signal(SIGINT, sighandler); +@@ -495,13 +486,7 @@ + char *my_argv[3] = { argv[0], inet_ntoa(inetaddr), phonenr }; + char buf[128]; + snprintf(buf, sizeof(buf), "pptp: call manager for %s", my_argv[1]); +-#ifdef PR_SET_NAME +- int rc; +- rc = prctl(PR_SET_NAME, "pptpcm", 0, 0, 0); +- if (rc != 0) perror("prctl"); +-#else + inststr(argc, argv, envp, buf); +-#endif + exit(callmgr_main(3, my_argv, envp)); + } + diff --git a/net-dialup/pptpclient/files/pptpclient-1.8.0-process-name.patch b/net-dialup/pptpclient/files/pptpclient-1.8.0-process-name.patch new file mode 100644 index 000000000000..926574762499 --- /dev/null +++ b/net-dialup/pptpclient/files/pptpclient-1.8.0-process-name.patch @@ -0,0 +1,39 @@ +--- pptp.c.orig 2013-10-23 12:10:46.000000000 +0400 ++++ pptp.c 2013-11-26 13:05:43.259867888 +0400 +@@ -60,9 +60,6 @@ + #include "pptp_callmgr.h" + #include "pptp_gre.h" + #include "version.h" +-#if defined(__linux__) +-#include <sys/prctl.h> +-#endif + #include "inststr.h" + #include "util.h" + #include "pptp_quirks.h" +@@ -413,12 +410,7 @@ + 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 +- rc = prctl(PR_SET_NAME, "pptpgw", 0, 0, 0); +- if (rc != 0) perror("prctl"); +-#else + inststr(argc, argv, envp, buf); +-#endif + if (sigsetjmp(env, 1)!= 0) goto shutdown; + + signal(SIGINT, sighandler); +@@ -517,13 +509,7 @@ + char *my_argv[3] = { argv[0], inet_ntoa(inetaddr), phonenr }; + char buf[128]; + snprintf(buf, sizeof(buf), "pptp: call manager for %s", my_argv[1]); +-#ifdef PR_SET_NAME +- int rc; +- rc = prctl(PR_SET_NAME, "pptpcm", 0, 0, 0); +- if (rc != 0) perror("prctl"); +-#else + inststr(argc, argv, envp, buf); +-#endif + exit(callmgr_main(3, my_argv, envp)); + } + diff --git a/net-dialup/pptpclient/files/xpptp_fe.pl b/net-dialup/pptpclient/files/xpptp_fe.pl new file mode 100644 index 000000000000..c43a93abc8c9 --- /dev/null +++ b/net-dialup/pptpclient/files/xpptp_fe.pl @@ -0,0 +1,255 @@ +#!/usr/bin/perl -w +# +# $Id$ +# +# xpptp_fe.pl.pl, graphical user interface for PPTP configuration +# Copyright (C) 2001 Smoot Carl-Mitchell (smoot@tic.com) +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +use Tk; +use Tk::DirTree; + +=pod +TK driver for pptp_fe.pl command script +=cut + +=pod +Global flags which correspnd to the pptp_fe.pl flags and options +=cut + +my $Debug = 0; +my $Debug_Flag = ""; +my $Network = ""; +my $Server = ""; +my $Routes = ""; +my $Get_Current_Config = 0; + +=pod + +Start up pptp_fe.pl and connect its input and output to the TK frontend. +All I/O is done in raw mode, so the reads and writes are atomic and +unbuffered. + +=cut + +pipe OUTPUT_READ, OUTPUT_WRITE; +pipe COMMAND_READ, COMMAND_WRITE; + +my $Child_Pid = fork(); +die "cannot fork - $!\n" if $Child_Pid == -1; + +if ($Child_Pid) { # parent + close OUTPUT_WRITE; + close COMMAND_READ; +} +else { # child + close OUTPUT_READ; + close COMMAND_WRITE; + + open(STDIN, "<&COMMAND_READ"); + open(STDOUT, ">&OUTPUT_WRITE"); + + exec("pptp_fe.pl -p"); +} + +=pod +The main window which present the various pptp_fe.pl options. + +The window is composed of: + + Server name + Network number + Routes +Connect Button Disconnect Button Write Config Button Quit Button +=cut + +my $Main = MainWindow->new(); +$Main->Label(-text => "PPTP")->pack; + +my $Server_Frame = $Main->Frame->pack(-fill => 'x', + -padx => 5, + -pady => 5); + +$Server_Frame->Label(-text => "Remote PPTP Host")->pack(-side => "left"); +$Server_Frame->Entry( + -text => "Host", + -width => 30, + -textvariable => \$Server, + )->pack(-side => "left"); + + +my $Net_Frame = $Main->Frame->pack(-fill => 'x', + -padx => 5, + -pady => 5); + +=pod +Network number entry box. This is the argument to the the -n flag +=cut + +$Net_Frame->Label(-text => "Network Number")->pack(-side => "left"); +$Net_Frame->Entry( + -text => "Network", + -width => 15, + -textvariable => \$Network, + )->pack(-side => "left"); + +=pod +Additional static routes (-r) flag +=cut + +my $Route_Frame = $Main->Frame->pack( + -fill => 'x', + -padx => 5, + -pady => 5); + +$Route_Frame->Label(-text => "Routes")->pack(-side => "left"); + +$Route_Frame->Entry( + -text => "Routes", + -width => 30, + -textvariable => \$Routes + )->pack( + -side => "left", + -padx => 5, + -pady => 5); + +=pod +Buttons + +Connect - Connect to a remote PPTP server + +Disconnect - Disconnect from the remote PPTP server + +Write - Write a configuration file + +Quit - Terminates the running pptp daemon and pptp_fe.pl program. +=cut + +my $Button_Frame = $Main->Frame->pack(-fill => 'x', -pady => 5); + +my $Disconnect_Button; +my $Connect_Button; +my $Read_Button; +my $Write_Button; +my $Quit_Button; + +$Connect_Button = $Button_Frame->Button( + -text => "Connect", + -command => + sub { + update_config(); + syswrite(COMMAND_WRITE, "c\n"); + + $Connect_Button->configure(-state => "disabled"); + $Disconnect_Button->configure(-state => "normal"); + }, + )->pack(-side => "left", -pady => 5, -padx => 5); + +$Disconnect_Button = $Button_Frame->Button( + -text => "Disconnect", + -state => "disabled", + -command => + sub { + syswrite(COMMAND_WRITE, "d\n"); + + $Connect_Button->configure(-state => "normal"); + $Disconnect_Button->configure(-state => "disabled"); + } + )->pack(-side => "left", -pady => 5, -padx => 5); + +$Write_Button = $Button_Frame->Button( + -text => "Write Config", + -command => + sub { + syswrite(COMMAND_WRITE, "w\n"); + + } + )->pack(-side => "left", -pady => 5, -padx => 5); + +$Quit_Button = $Button_Frame->Button( + -text => "Quit", + -command => + sub { + syswrite(COMMAND_WRITE, "q\n"); + + $Connect_Button->configure(-state => "disabled"); + $Disconnect_Button->configure(-state => "disabled"); + $Quit_Button->configure(-state => "disabled"); + } + )->pack(-side => "left", -pady => 5, -padx => 5); + +my $Log_Window = $Main->Toplevel; +$Log_Window->title("PPTP Log"); + +my $Log_Widget = $Log_Window->Text( + -height => 20, + -width => 80, + )->pack; + + +$Log_Widget->fileevent(OUTPUT_READ, "readable", sub { + my $in = ""; + my $n = sysread(OUTPUT_READ, $in, 1024); + if ($n == 0) { + close OUTPUT_READ; + $Main->destroy; + exit 0; + } + + if (!$Get_Current_Config) { + $Log_Widget->insert("end", $in); + $Log_Widget->see("end"); + } + else { + $Get_Current_Config = 0; + + for my $line (split("\n", $in)) { + next unless $line =~ /\S/; + + my ($variable, $value) = split(/\s*=\s*/, $line); + $variable = "\L$variable"; + + if ($variable eq "server") { + $Server = $value; + } + elsif ($variable eq "network") { + $Network = $value; + } + elsif ($variable eq "routes") { + $Routes = $value; + } + elsif ($variable eq "debug") { + $Debug = $value; + } + } + } + + return 1; +}); + +syswrite(COMMAND_WRITE, "l\n"); +$Get_Current_Config = 1; + +MainLoop; + +sub update_config { + + syswrite(COMMAND_WRITE, "s server = $Server\n"); + syswrite(COMMAND_WRITE, "s network = $Network\n"); + syswrite(COMMAND_WRITE, "s routes = $Routes\n"); + syswrite(COMMAND_WRITE, "s debug = $Debug_Flag\n"); +} diff --git a/net-dialup/pptpclient/metadata.xml b/net-dialup/pptpclient/metadata.xml new file mode 100644 index 000000000000..65fb9b5c3f7d --- /dev/null +++ b/net-dialup/pptpclient/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>net-dialup</herd> + <longdescription>PPTP Client is a client for the proprietary Microsoft Point-to-Point Tunneling Protocol.</longdescription> + <upstream> + <remote-id type="sourceforge">pptpclient</remote-id> + </upstream> +</pkgmetadata> diff --git a/net-dialup/pptpclient/pptpclient-1.7.2-r3.ebuild b/net-dialup/pptpclient/pptpclient-1.7.2-r3.ebuild new file mode 100644 index 000000000000..8634505757e5 --- /dev/null +++ b/net-dialup/pptpclient/pptpclient-1.7.2-r3.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit eutils toolchain-funcs + +MY_P="${P/client}" +MY_CMD="pptp-command-20130515" + +DESCRIPTION="Linux client for PPTP" +HOMEPAGE="http://pptpclient.sourceforge.net/" +SRC_URI="mirror://sourceforge/pptpclient/${MY_P}.tar.gz + http://dev.gentoo.org/~pinkbyte/distfiles/pptpclient/${MY_CMD}.bz2" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="alpha amd64 ~arm ppc ppc64 x86" +IUSE="tk" + +DEPEND="net-dialup/ppp + dev-lang/perl + tk? ( dev-perl/perl-tk )" +RDEPEND="${DEPEND} + sys-apps/iproute2" + +RESTRICT="test" #make test is useless and vector_test.c is broken + +S="${WORKDIR}/${MY_P}" + +DOCS=( AUTHORS ChangeLog DEVELOPERS NEWS README TODO USING ) + +src_prepare() { + epatch "${FILESDIR}"/${P}-process-name.patch + epatch_user +} + +src_compile() { + emake OPTIMISE= DEBUG= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" +} + +src_install() { + default + dodoc Documentation/* + dodir /etc/pptp.d + + # The current version of pptp-linux doesn't include the + # RH-specific portions, so include them ourselves. + newsbin "${WORKDIR}/${MY_CMD}" pptp-command + dosbin "${FILESDIR}/pptp_fe.pl" + use tk && dosbin "${FILESDIR}/xpptp_fe.pl" +} diff --git a/net-dialup/pptpclient/pptpclient-1.8.0.ebuild b/net-dialup/pptpclient/pptpclient-1.8.0.ebuild new file mode 100644 index 000000000000..603c3dc8e0ac --- /dev/null +++ b/net-dialup/pptpclient/pptpclient-1.8.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit eutils toolchain-funcs + +MY_P="${P/client}" +MY_CMD="pptp-command-20130515" + +DESCRIPTION="Linux client for PPTP" +HOMEPAGE="http://pptpclient.sourceforge.net/" +SRC_URI="mirror://sourceforge/pptpclient/${MY_P}.tar.gz + http://dev.gentoo.org/~pinkbyte/distfiles/pptpclient/${MY_CMD}.bz2" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="alpha amd64 ~arm ppc ~ppc64 x86" +IUSE="tk" + +DEPEND="net-dialup/ppp + dev-lang/perl + tk? ( dev-perl/perl-tk )" +RDEPEND="${DEPEND} + sys-apps/iproute2" + +RESTRICT="test" #make test is useless and vector_test.c is broken + +S="${WORKDIR}/${MY_P}" + +DOCS=( AUTHORS ChangeLog DEVELOPERS NEWS README TODO USING ) + +src_prepare() { + epatch "${FILESDIR}"/${P}-process-name.patch + epatch_user +} + +src_compile() { + emake OPTIMISE= DEBUG= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" CC="$(tc-getCC)" +} + +src_install() { + default + dodoc Documentation/* + dodir /etc/pptp.d + + # The current version of pptp-linux doesn't include the + # RH-specific portions, so include them ourselves. + newsbin "${WORKDIR}/${MY_CMD}" pptp-command + dosbin "${FILESDIR}/pptp_fe.pl" + use tk && dosbin "${FILESDIR}/xpptp_fe.pl" +} |