/* Copyright (c) 2008 Richard Bilson */
typedef struct S3Con S3Con;
typedef struct S3Req S3Req;
typedef struct S3Resp S3Resp;
struct S3Con {
int fd;
char *host;
char *port;
};
struct S3Req {
char *method;
char *resource;
int cfd;
uchar *content;
int clen;
char *ctype;
char *cmd5;
};
struct S3Resp {
char *result;
char *httpver;
Biobuf bin;
int chunk;
vlong clen;
};
char *S3close(S3Con *c);
char *S3open(S3Con *c, char *host, char *port);
char *S3reopen(S3Con *c);
char *S3request(S3Con *c, S3Req *r, S3Resp *resp);
long S3response(S3Resp *resp, uchar buf[], long size);
char *S3responsefd(S3Resp *resp, int fd);
char* S3responsediscard(S3Resp *resp);
extern int chattyS3;
|