X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=gsscon%2Fgsscon_active.c;h=1f4d91fa7cbbf6d533895b7d6f900a093b8455de;hb=1b419d2f80dd88c79565bece98dfcb591e722b3e;hp=f8946b93dc253c69150683e26227f5f972e196cb;hpb=2339f3eab22ec004ee4d982b8d5561663440c967;p=trust_router.git diff --git a/gsscon/gsscon_active.c b/gsscon/gsscon_active.c index f8946b9..1f4d91f 100755 --- a/gsscon/gsscon_active.c +++ b/gsscon/gsscon_active.c @@ -52,11 +52,16 @@ * or implied warranty. */ +#include +#include +#include + #include -/* --------------------------------------------------------------------------- */ +/* --------------------------------------------------------------------------- +*/ -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; @@ -81,7 +86,7 @@ int gsscon_connect (const char *inHost, int inPort, const char *inServiceName, i if (!err) { hp = gethostbyname (inHost); - if (hp == NULL) { err = errno; } + if (hp == NULL) { err = h_errno; } } if (!err) { @@ -94,16 +99,16 @@ int gsscon_connect (const char *inHost, int inPort, const char *inServiceName, i } 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); } @@ -169,7 +174,7 @@ int gsscon_connect (const char *inHost, int inPort, const char *inServiceName, i 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; @@ -195,7 +200,6 @@ int gsscon_connect (const char *inHost, int inPort, const char *inServiceName, i 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,