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} |