aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/freerdp-auth-check.c9
-rw-r--r--src/pam-freerdp.c17
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 89161af..9774bfb 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;
}