scp.c (511b41d2) scp.c (a8f6863a)
1/*
2 *
3 * scp - secure remote copy. This is basically patched BSD rcp which uses ssh
4 * to do the data transfer (instead of using rcmd).
5 *
6 * NOTE: This version should NOT be suid root. (This uses ssh to do the transfer
7 * and ssh has the necessary privileges.)
8 *

--- 31 unchanged lines hidden (view full) ---

40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 * SUCH DAMAGE.
44 *
45 */
46
47#include "includes.h"
1/*
2 *
3 * scp - secure remote copy. This is basically patched BSD rcp which uses ssh
4 * to do the data transfer (instead of using rcmd).
5 *
6 * NOTE: This version should NOT be suid root. (This uses ssh to do the transfer
7 * and ssh has the necessary privileges.)
8 *

--- 31 unchanged lines hidden (view full) ---

40 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
41 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
42 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
43 * SUCH DAMAGE.
44 *
45 */
46
47#include "includes.h"
48RCSID("$Id: scp.c,v 1.25 2000/01/24 22:11:20 markus Exp $");
48RCSID("$Id: scp.c,v 1.26 2000/03/16 20:56:14 markus Exp $");
49
50#include "ssh.h"
51#include "xmalloc.h"
52#include <utime.h>
53
54#define _PATH_CP "cp"
55
56/* For progressmeter() -- number of seconds before xfer considered "stalled" */

--- 944 unchanged lines hidden (view full) ---

1001 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1002 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1003 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1004 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1005 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
1006 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
1007 * SUCH DAMAGE.
1008 *
49
50#include "ssh.h"
51#include "xmalloc.h"
52#include <utime.h>
53
54#define _PATH_CP "cp"
55
56/* For progressmeter() -- number of seconds before xfer considered "stalled" */

--- 944 unchanged lines hidden (view full) ---

1001 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1002 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
1003 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1004 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
1005 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
1006 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
1007 * SUCH DAMAGE.
1008 *
1009 * $Id: scp.c,v 1.25 2000/01/24 22:11:20 markus Exp $
1009 * $Id: scp.c,v 1.26 2000/03/16 20:56:14 markus Exp $
1010 */
1011
1012char *
1013colon(cp)
1014 char *cp;
1015{
1016 int flag = 0;
1017

--- 95 unchanged lines hidden (view full) ---

1113
1114 itv.it_value.tv_sec = wait;
1115 itv.it_value.tv_usec = 0;
1116 itv.it_interval = itv.it_value;
1117 setitimer(ITIMER_REAL, &itv, NULL);
1118}
1119
1120void
1010 */
1011
1012char *
1013colon(cp)
1014 char *cp;
1015{
1016 int flag = 0;
1017

--- 95 unchanged lines hidden (view full) ---

1113
1114 itv.it_value.tv_sec = wait;
1115 itv.it_value.tv_usec = 0;
1116 itv.it_interval = itv.it_value;
1117 setitimer(ITIMER_REAL, &itv, NULL);
1118}
1119
1120void
1121updateprogressmeter(void)
1121updateprogressmeter(int ignore)
1122{
1123 int save_errno = errno;
1124
1125 progressmeter(0);
1126 errno = save_errno;
1127}
1128
1129int

--- 89 unchanged lines hidden (view full) ---

1219 " ");
1220 i = remaining % 3600;
1221 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
1222 "%02d:%02d ETA", i / 60, i % 60);
1223 }
1224 atomicio(write, fileno(stdout), buf, strlen(buf));
1225
1226 if (flag == -1) {
1122{
1123 int save_errno = errno;
1124
1125 progressmeter(0);
1126 errno = save_errno;
1127}
1128
1129int

--- 89 unchanged lines hidden (view full) ---

1219 " ");
1220 i = remaining % 3600;
1221 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
1222 "%02d:%02d ETA", i / 60, i % 60);
1223 }
1224 atomicio(write, fileno(stdout), buf, strlen(buf));
1225
1226 if (flag == -1) {
1227 signal(SIGALRM, (void *) updateprogressmeter);
1227 signal(SIGALRM, updateprogressmeter);
1228 alarmtimer(1);
1229 } else if (flag == 1) {
1230 alarmtimer(0);
1231 write(fileno(stdout), "\n", 1);
1232 statbytes = 0;
1233 }
1234}
1235
1236int
1237getttywidth(void)
1238{
1239 struct winsize winsize;
1240
1241 if (ioctl(fileno(stdout), TIOCGWINSZ, &winsize) != -1)
1242 return (winsize.ws_col ? winsize.ws_col : 80);
1243 else
1244 return (80);
1245}
1228 alarmtimer(1);
1229 } else if (flag == 1) {
1230 alarmtimer(0);
1231 write(fileno(stdout), "\n", 1);
1232 statbytes = 0;
1233 }
1234}
1235
1236int
1237getttywidth(void)
1238{
1239 struct winsize winsize;
1240
1241 if (ioctl(fileno(stdout), TIOCGWINSZ, &winsize) != -1)
1242 return (winsize.ws_col ? winsize.ws_col : 80);
1243 else
1244 return (80);
1245}