* or implied warranty.
*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <netdb.h>
+
#include <gsscon.h>
-/* --------------------------------------------------------------------------- */
+/* ---------------------------------------------------------------------------
+*/
-int gsscon_connect (const char *inHost, int inPort, const char *inServiceName, int *outFD, gss_ctx_id_t *outGSSContext)
+int gsscon_connect (const char *inHost, unsigned int inPort, const char *inServiceName, int *outFD, gss_ctx_id_t *outGSSContext)
{
int err = 0;
int fd = -1;
if (!err) {
hp = gethostbyname (inHost);
- if (hp == NULL) { err = errno; }
+ if (hp == NULL) { err = h_errno; }
}
if (!err) {
}
if (!err) {
+ fprintf (stderr, "gss_connect: Connecting to host '%s' on port %d\n", inHost, inPort);
err = connect (fd, (struct sockaddr *) &saddr, sizeof (saddr));
if (err < 0) { err = errno; }
}
if (!err) {
- printf ("connecting to host '%s' on port %d\n", inHost, inPort);
*outFD = fd;
fd = -1; /* takes ownership */
} else {
- gsscon_print_error (err, "OpenConnection failed");
+ gsscon_print_error (err, "OpenConnection failed");
}
if (fd >= 0) { close (fd); }
nameBuffer.length = asprintf(&name, "%s@%s", inServiceName, inHost);
nameBuffer.value = name;
- majorStatus = gss_import_name (&minorStatus, &nameBuffer, (gss_OID) GSS_KRB5_NT_PRINCIPAL_NAME, &serviceName);
+ majorStatus = gss_import_name (&minorStatus, &nameBuffer, (gss_OID) GSS_C_NT_HOSTBASED_SERVICE, &serviceName);
if (majorStatus != GSS_S_COMPLETE) {
gsscon_print_gss_errors ("gss_import_name(inServiceName)", majorStatus, minorStatus);
err = minorStatus ? minorStatus : majorStatus;
OM_uint32 requestedFlags = (GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG | GSS_C_SEQUENCE_FLAG |
GSS_C_CONF_FLAG | GSS_C_INTEG_FLAG);
- // printf ("Calling gss_init_sec_context...\n");
majorStatus = gss_init_sec_context (&minorStatus,
clientCredentials,
&gssContext,