struct chirp_client * chirp_client_connect_starter() { FILE *file; int fields; struct chirp_client *client; char *default_filename; char host[CONDOR_HOSTNAME_MAX]; char cookie[CHIRP_LINE_MAX]; MyString path; int port; int result; const char *dir; if ((default_filename = getenv("_CONDOR_CHIRP_CONFIG"))) { path.formatstr( "%s", default_filename ); } else { if (NULL == (dir = getenv("_CONDOR_SCRATCH_DIR"))) { dir = "."; } path.formatstr( "%s%c%s",dir,DIR_DELIM_CHAR,".chirp.config"); } file = safe_fopen_wrapper_follow(path.Value(),"r"); if(!file) { fprintf(stderr, "Can't open %s file\n",path.Value()); return 0; } fields = fscanf(file,"%s %d %s",host,&port,cookie); fclose(file); if(fields!=3) { errno = EINVAL; return 0; } client = chirp_client_connect(host,port); if(!client) return 0; result = chirp_client_cookie(client,cookie); if(result!=0) { DISCONNECT_AND_RETURN(client, 0); } return client; }
DLLEXPORT struct chirp_client * chirp_client_connect_default() { FILE *file; int fields; int save_errno; struct chirp_client *client; char *default_filename; char host[CHIRP_LINE_MAX]; char cookie[CHIRP_LINE_MAX]; int port; int result; if (!(default_filename = getenv("_CONDOR_CHIRP_CONFIG"))) { default_filename = ".chirp.config"; } file = fopen(default_filename,"r"); if(!file) return 0; fields = fscanf(file,"%s %d %s",host,&port,cookie); fclose(file); if(fields!=3) { errno = EINVAL; return 0; } client = chirp_client_connect(host,port); if(!client) return 0; result = chirp_client_cookie(client,cookie); if(result!=0) { save_errno = errno; chirp_client_disconnect(client); errno = save_errno; return 0; } return client; }
struct chirp_client *chirp_client_connect_condor(time_t stoptime) { FILE *file; int fields; int save_errno; struct chirp_client *client; char host[CHIRP_LINE_MAX]; char hostport[CHIRP_LINE_MAX]; char cookie[CHIRP_LINE_MAX]; int port; int result; file = fopen("chirp.config", "r"); if(!file) return 0; fields = fscanf(file, "%s %d %s", host, &port, cookie); fclose(file); if(fields != 3) { errno = EINVAL; return 0; } sprintf(hostport, "%s:%d", host, port); client = chirp_client_connect(hostport, 0, stoptime); if(!client) return 0; result = chirp_client_cookie(client, cookie, stoptime); if(result != 0) { save_errno = errno; chirp_client_disconnect(client); errno = save_errno; return 0; } return client; }