diff options
-rw-r--r-- | src/freerdp-auth-check.c | 9 | ||||
-rw-r--r-- | src/pam-freerdp.c | 17 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/freerdp-auth-check.c b/src/freerdp-auth-check.c index 83bab2f..d50833b 100644 --- a/src/freerdp-auth-check.c +++ b/src/freerdp-auth-check.c @@ -79,6 +79,15 @@ main (int argc, char * argv[]) instance->settings->password = password; instance->settings->ignore_certificate = true; + char * colonloc = strstr(argv[1], ":"); + if (colonloc != NULL) { + /* We've got a port to deal with */ + colonloc[0] = '\0'; + colonloc++; + + instance->settings->port = strtoul(colonloc, NULL, 10); + } + if (freerdp_connect(instance)) { freerdp_disconnect(instance); return 0; diff --git a/src/pam-freerdp.c b/src/pam-freerdp.c index 5295098..d1a6578 100644 --- a/src/pam-freerdp.c +++ b/src/pam-freerdp.c @@ -86,6 +86,23 @@ get_item (pam_handle_t * pamh, int type) char * retval = responses->resp; free(responses); + + if (type == PAM_RHOST) { + char * subloc = strstr(retval, "://"); + if (subloc != NULL) { + char * original = retval; + char * newish = subloc + strlen("://"); + char * endslash = strstr(newish, "/"); + + if (endslash != NULL) { + endslash[0] = '\0'; + } + + retval = strdup(newish); + free(original); + } + } + return retval; } |