#define MAX_REG_CONNS 500
#define JPPS_NO_RESPONSE_TIMEOUT 120
+#define JPREG_REPEAT_TIMEOUT 300
+#define JPREG_GIVUP_TIMEOUT 3000
+#define JP_REPEAT_TIMEOUT 360
+#define JP_GIVUP_TIMEOUT 3600
static int debug = 0;
static int die = 0;
static int sandbox_importer(void);
static int parse_msg(char *, msg_pattern_t []);
static int gftp_put_file(const char *, int);
-static int refresh_gsoap(struct soap *soap);
+static int refresh_connection(struct soap *soap);
int main(int argc, char *argv[])
*fname = NULL,
*aux;
- refresh_gsoap(soap);
if ( readnew ) ret = edg_wll_MaildirTransStart(reg_mdir, &msg, &fname);
- else ret = edg_wll_MaildirRetryTransStart(reg_mdir, (time_t)30, (time_t)500, &msg, &fname);
+ else ret = edg_wll_MaildirRetryTransStart(reg_mdir, (time_t)JPREG_REPEAT_TIMEOUT, (time_t)JPREG_GIVUP_TIMEOUT, &msg, &fname);
if ( !ret ) {
readnew = !readnew;
if ( readnew ) ret = edg_wll_MaildirTransStart(reg_mdir, &msg, &fname);
- else ret = edg_wll_MaildirRetryTransStart(reg_mdir, (time_t)30, (time_t)500, &msg, &fname);
+ else ret = edg_wll_MaildirRetryTransStart(reg_mdir, (time_t)JPREG_REPEAT_TIMEOUT, (time_t)500, &msg, &fname);
if ( !ret ) {
readnew = !readnew;
return 0;
}
if (!(sink & 2)) {
#endif
+ refresh_connection(soap);
ret = soap_call___jpsrv__RegisterJob(soap, jpps, "", &in, &empty);
if ( (ret = check_soap_fault(soap, ret)) ) break;
#ifdef JP_PERF
#define _proxy 3
- refresh_gsoap(soap);
if ( readnew ) ret = edg_wll_MaildirTransStart(dump_mdir, &msg, &fname);
- else ret = edg_wll_MaildirRetryTransStart(dump_mdir, (time_t)60, (time_t)600, &msg, &fname);
+ else ret = edg_wll_MaildirRetryTransStart(dump_mdir, (time_t)JP_REPEAT_TIMEOUT, (time_t)JP_GIVUP_TIMEOUT, &msg, &fname);
if ( !ret ) {
readnew = !readnew;
if ( readnew ) ret = edg_wll_MaildirTransStart(dump_mdir, &msg, &fname);
- else ret = edg_wll_MaildirRetryTransStart(dump_mdir, (time_t)60, (time_t)600, &msg, &fname);
+ else ret = edg_wll_MaildirRetryTransStart(dump_mdir, (time_t)JP_REPEAT_TIMEOUT, (time_t)JP_GIVUP_TIMEOUT, &msg, &fname);
if ( !ret ) {
readnew = !readnew;
return 0;
}
if (!(sink & 2)) {
#endif
+ refresh_connection(soap);
ret = soap_call___jpsrv__StartUpload(soap, tab[_jpps].val?:jpps, "", &su_in, &su_out);
if ( (ret = check_soap_fault(soap, ret)) ) break;
dprintf("[%s] Destination: %s\n\tCommit before: %s\n", name, su_out.destination, ctime(&su_out.commitBefore));
close(fhnd);
dprintf("[%s] File sent, commiting the upload\n", name);
cu_in.destination = su_out.destination;
+ refresh_connection(soap);
ret = soap_call___jpsrv__CommitUpload(soap, tab[_jpps].val?:jpps, "", &cu_in, &empty);
if ( (ret = check_soap_fault(soap, ret)) ) break;
dprintf("[%s] Dump upload succesfull\n", name);
#define _proxy 3
- refresh_gsoap(soap);
if ( readnew ) ret = edg_wll_MaildirTransStart(sandbox_mdir, &msg, &fname);
- else ret = edg_wll_MaildirRetryTransStart(sandbox_mdir, (time_t)60, (time_t) 600,&msg, &fname);
+ else ret = edg_wll_MaildirRetryTransStart(sandbox_mdir, (time_t)JP_REPEAT_TIMEOUT, (time_t)JP_GIVUP_TIMEOUT ,&msg, &fname);
if ( !ret ) {
readnew = !readnew;
if ( readnew ) ret = edg_wll_MaildirTransStart(sandbox_mdir, &msg, &fname);
- else ret = edg_wll_MaildirRetryTransStart(sandbox_mdir, (time_t)60, (time_t) 600,&msg, &fname);
+ else ret = edg_wll_MaildirRetryTransStart(sandbox_mdir, (time_t)JP_REPEAT_TIMEOUT, (time_t)JP_GIVUP_TIMEOUT ,&msg, &fname);
if ( !ret ) {
readnew = !readnew;
return 0;
#ifdef JP_PERF
if (!(sink & 2)) {
#endif
+ refresh_connection(soap);
ret = soap_call___jpsrv__StartUpload(soap, tab[_jpps].val?:jpps, "", &su_in, &su_out);
ret = check_soap_fault(soap, ret);
/* XXX: grrrrrrr! test it!!!*/
close(fhnd);
dprintf("[%s] File sent, commiting the upload\n", name);
cu_in.destination = su_out.destination;
+ refresh_connection(soap);
ret = soap_call___jpsrv__CommitUpload(soap, tab[_jpps].val?:jpps, "", &cu_in, &empty);
if ( (ret = check_soap_fault(soap, ret)) ) break;
dprintf("[%s] Dump upload succesfull\n", name);
}
-static int refresh_gsoap(struct soap *soap) {
+static int refresh_connection(struct soap *soap) {
struct timeval to = {JPPS_NO_RESPONSE_TIMEOUT, 0};
gss_cred_id_t newcred;
edg_wll_GssStatus gss_code;
OM_uint32 min_stat;
+ glite_gsplugin_Context gp_ctx;
- glite_gsplugin_set_timeout(glite_gsplugin_get_context(soap), &to);
+ gp_ctx = glite_gsplugin_get_context(soap);
+ glite_gsplugin_set_timeout(gp_ctx, &to);
switch ( edg_wll_gss_watch_creds(server_cert, &cert_mtime) ) {
case 0: break;
case 1:
if ( !edg_wll_gss_acquire_cred_gsi(server_cert, server_key, &newcred, NULL, &gss_code) ) {
- dprintf(("[%s] reloading credentials successful\n", name));
+ dprintf("[%s] reloading credentials successful\n", name);
gss_release_cred(&min_stat, &mycred);
mycred = newcred;
- } else { dprintf(("[%s] reloading credentials failed, using old ones\n", name)); }
+ if (glite_gsplugin_set_credential(gp_ctx, server_cert, server_key) != 0)
+ dprintf("[%s] reloading credentials for WS failed, using old ones\n", name);
+ } else { dprintf("[%s] reloading credentials failed, using old ones\n", name); }
break;
- case -1: dprintf(("[%s] edg_wll_gss_watch_creds failed\n", name)); break;
+ case -1: dprintf("[%s] edg_wll_gss_watch_creds failed\n", name); break;
}
return 0;