/** * @brief * Makes a connection to the server, returning the pbs_connect() result. * * @param[in] server - hostname of the pbs server to connect to * @param[in] extend - extend data to send along with the connection. * * @return int * @retval connection success * @retval 0 fail */ int cnt2server_extend(char *server, char *extend) { int connect; #if defined(PBS_SECURITY) && (PBS_SECURITY == KRB5) if (!getenv("PBSPRO_IGNORE_KERBEROS") && !pbsgss_can_get_creds()) { fprintf(stderr, "No Kerberos credentials found. Set \"PBSPRO_IGNORE_KERBEROS\" environment variable to skip this check.\n"); exit(1); } #endif connect = pbs_connect_extend(server, extend); if (connect <= 0) { if (pbs_errno > PBSE_) { switch (pbs_errno) { case PBSE_BADHOST: fprintf(stderr, "Unknown Host.\n"); break; case PBSE_NOCONNECTS: fprintf(stderr, "Too many open connections.\n"); break; case PBSE_NOSERVER: fprintf(stderr, "No default server name.\n"); break; case PBSE_SYSTEM: fprintf(stderr, "System call failure.\n"); break; case PBSE_PERM: fprintf(stderr, "No Permission.\n"); break; case PBSE_PROTOCOL: fprintf(stderr, "Communication failure.\n"); break; } } else if (errno != 0) perror(NULL); return (connect); } /* * Disable Nagle's algorithm on the TCP connection to server. * Nagle's algorithm is hurting cmd-server communication. */ if (pbs_connection_set_nodelay(connect) == -1) { fprintf(stderr, "Cannot set nodelay on connection %d (errno=%d)\n", connect, pbs_errno); return (PBSE_SYSTEM); } return (connect); }
/** * @brief * Makes a connection to the server, returning the pbs_connect() result. * * @param[in] server - hostname of the pbs server to connect to * @param[in] extend - extend data to send along with the connection. * * @return int * @retval connection success * @retval 0 fail */ int cnt2server_extend(char *server, char *extend) { int connect; connect = pbs_connect_extend(server, extend); if (connect <= 0) { if (pbs_errno > PBSE_) { switch (pbs_errno) { case PBSE_BADHOST: fprintf(stderr, "Unknown Host.\n"); break; case PBSE_NOCONNECTS: fprintf(stderr, "Too many open connections.\n"); break; case PBSE_NOSERVER: fprintf(stderr, "No default server name.\n"); break; case PBSE_SYSTEM: fprintf(stderr, "System call failure.\n"); break; case PBSE_PERM: fprintf(stderr, "No Permission.\n"); break; case PBSE_PROTOCOL: fprintf(stderr, "Communication failure.\n"); break; } } else if (errno != 0) perror(NULL); return (connect); } return (connect); }
/** * @brief * A wrapper progarm to pbs_connect_extend() but this one not * passing any 'extend' data to the connection. * * @param[in] server - server - the hostname of the pbs server to connect to. * * @retval int - return value of pbs_connect_extend(). */ int __pbs_connect(char *server) { return (pbs_connect_extend(server, NULL)); }