Import Upstream version 1.1~pre12
This commit is contained in:
parent
1813f3157e
commit
aa10d88732
134 changed files with 8673 additions and 4989 deletions
|
|
@ -35,8 +35,10 @@ bool send_request(void *c, const char *msg, ...) { return false; }
|
|||
struct list_t *connection_list = NULL;
|
||||
bool send_meta(void *c, const char *msg , int len) { return false; }
|
||||
char *logfilename = NULL;
|
||||
bool do_detach = false;
|
||||
struct timeval now;
|
||||
|
||||
static bool special;
|
||||
static bool verbose;
|
||||
static bool readonly;
|
||||
static bool writeonly;
|
||||
|
|
@ -69,6 +71,7 @@ static struct option const long_options[] = {
|
|||
{"writeonly", no_argument, NULL, 'w'},
|
||||
{"packet-loss", required_argument, NULL, 'L'},
|
||||
{"replay-window", required_argument, NULL, 'W'},
|
||||
{"special", no_argument, NULL, 's'},
|
||||
{"verbose", required_argument, NULL, 'v'},
|
||||
{"help", no_argument, NULL, 1},
|
||||
{NULL, 0, NULL, 0}
|
||||
|
|
@ -88,6 +91,7 @@ static void usage() {
|
|||
" -w, --writeonly Only send data from stdin to the socket.\n"
|
||||
" -L, --packet-loss RATE Fake packet loss of RATE percent.\n"
|
||||
" -R, --replay-window N Set replay window to N bytes.\n"
|
||||
" -s, --special Enable special handling of lines starting with #, ^ and $.\n"
|
||||
" -v, --verbose Display debug messages.\n"
|
||||
"\n");
|
||||
fprintf(stderr, "Report bugs to tinc@tinc-vpn.org.\n");
|
||||
|
|
@ -106,7 +110,7 @@ int main(int argc, char *argv[]) {
|
|||
ecdsa_t *mykey = NULL, *hiskey = NULL;
|
||||
bool quit = false;
|
||||
|
||||
while((r = getopt_long(argc, argv, "dqrtwL:W:v", long_options, &option_index)) != EOF) {
|
||||
while((r = getopt_long(argc, argv, "dqrstwL:W:v", long_options, &option_index)) != EOF) {
|
||||
switch (r) {
|
||||
case 0: /* long option */
|
||||
break;
|
||||
|
|
@ -149,6 +153,10 @@ int main(int argc, char *argv[]) {
|
|||
verbose = true;
|
||||
break;
|
||||
|
||||
case 's': /* special character handling */
|
||||
special = true;
|
||||
break;
|
||||
|
||||
case '?': /* wrong options */
|
||||
usage();
|
||||
return 1;
|
||||
|
|
@ -271,11 +279,19 @@ int main(int argc, char *argv[]) {
|
|||
crypto_init();
|
||||
|
||||
FILE *fp = fopen(argv[1], "r");
|
||||
if(!fp) {
|
||||
fprintf(stderr, "Could not open %s: %s\n", argv[1], strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
if(!(mykey = ecdsa_read_pem_private_key(fp)))
|
||||
return 1;
|
||||
fclose(fp);
|
||||
|
||||
fp = fopen(argv[2], "r");
|
||||
if(!fp) {
|
||||
fprintf(stderr, "Could not open %s: %s\n", argv[2], strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
if(!(hiskey = ecdsa_read_pem_public_key(fp)))
|
||||
return 1;
|
||||
fclose(fp);
|
||||
|
|
@ -315,11 +331,11 @@ int main(int argc, char *argv[]) {
|
|||
readonly = true;
|
||||
continue;
|
||||
}
|
||||
if(buf[0] == '#')
|
||||
if(special && buf[0] == '#')
|
||||
s.outseqno = atoi(buf + 1);
|
||||
if(buf[0] == '^')
|
||||
if(special && buf[0] == '^')
|
||||
sptps_send_record(&s, SPTPS_HANDSHAKE, NULL, 0);
|
||||
else if(buf[0] == '$') {
|
||||
else if(special && buf[0] == '$') {
|
||||
sptps_force_kex(&s);
|
||||
if(len > 1)
|
||||
sptps_send_record(&s, 0, buf, len);
|
||||
|
|
@ -348,8 +364,19 @@ int main(int argc, char *argv[]) {
|
|||
fprintf(stderr, "Dropped.\n");
|
||||
continue;
|
||||
}
|
||||
if(!sptps_receive_data(&s, buf, len) && !datagram)
|
||||
return 1;
|
||||
char *bufp = buf;
|
||||
while(len) {
|
||||
size_t done = sptps_receive_data(&s, bufp, len);
|
||||
if(!done) {
|
||||
if(!datagram)
|
||||
return 1;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
||||
bufp += done;
|
||||
len -= done;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue