webget/webpost.c

80 satır
1.9 KiB
C

/**
* @PROJECT WebGet Downloader
* @COPYRIGHT See COPYING in the top level directory
* @FILE webpost.c
* @PURPOSE Web POST Operation Dumper
* @DEVELOPERS Al Globus <globus@nas.nasa.gov>
* Rafal Kupiec <belliash@asiotec.eu.org>
* Jef Poskanzer <jef@mail.acme.com>
*/
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include "libweb.h"
int main(int argc, char** argv) {
int argn;
char* referer;
char* user_agent;
char* auth_token;
int ncookies;
char* cookies[MAX_COOKIES];
char* header_name;
char* header_value;
argv0 = argv[0];
argn = 1;
timeout = 60;
referer = (char*) 0;
user_agent = "http_post";
auth_token = (char*) 0;
ncookies = 0;
header_name = (char*) 0;
header_value = (char*) 0;
verbose = 0;
while(argn < argc && argv[argn][0] == '-' && argv[argn][1] != '\0') {
if(strcmp(argv[argn], "-t") == 0 && argn + 1 < argc) {
++argn;
timeout = atoi(argv[argn]);
} else if(strcmp(argv[argn], "-r") == 0 && argn + 1 < argc) {
++argn;
referer = argv[argn];
} else if(strcmp(argv[argn], "-u") == 0 && argn + 1 < argc) {
++argn;
user_agent = argv[argn];
} else if(strcmp(argv[argn], "-a") == 0 && argn + 1 < argc) {
++argn;
auth_token = argv[argn];
} else if(strcmp(argv[argn], "-c") == 0 && argn + 1 < argc) {
if(ncookies >= MAX_COOKIES) {
(void) fprintf(stderr, "%s: too many cookies\n", argv0);
exit(1);
}
++argn;
cookies[ncookies++] = argv[argn];
} else if(strcmp(argv[argn], "-h") == 0 && argn + 2 < argc) {
++argn;
header_name = argv[argn];
++argn;
header_value = argv[argn];
} else if(strcmp(argv[argn], "-v") == 0) {
verbose = 1;
} else {
usage();
}
++argn;
}
if(argn >= argc) {
usage();
}
url = argv[argn];
++argn;
(void) signal(SIGALRM, sigcatch);
postURL(url, referer, user_agent, auth_token, ncookies, cookies, header_name, header_value, &(argv[argn]), argc - argn);
exit(0);
}