aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am57
-rw-r--r--src/freerdp-auth-check.c (renamed from src/freerdp2-auth-check.c)33
-rw-r--r--src/pam-freerdp-children.c (renamed from src/pam-freerdp2-children.c)4
-rw-r--r--src/pam-freerdp-children.h (renamed from src/pam-freerdp2-children.h)6
-rw-r--r--src/pam-freerdp-private.h (renamed from src/pam-freerdp2-private.h)6
-rw-r--r--src/pam-freerdp.c (renamed from src/pam-freerdp2.c)24
6 files changed, 84 insertions, 46 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 581b080..32a8184 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,61 +1,80 @@
NULL =
pamlibdir = $(PAMMODULEDIR)
-pamlib_LTLIBRARIES = pam_freerdp2.la
+pamlib_LTLIBRARIES = pam_freerdp.la
-pam_freerdp2_la_SOURCES = \
+pam_freerdp_la_SOURCES = \
auth-check-path.c auth-check-path.h \
- pam-freerdp2.c \
- pam-freerdp2-children.c \
+ pam-freerdp.c \
+ pam-freerdp-children.c \
$(NULL)
-pam_freerdp2_la_LDFLAGS = \
+pam_freerdp_la_LDFLAGS = \
-no-undefined \
-module \
-avoid-version \
$(COVERAGE_LDFLAGS) \
$(NULL)
-pam_freerdp2_la_CFLAGS = \
+pam_freerdp_la_CFLAGS = \
-Wall -Werror \
- -DAUTH_CHECK="\"$(libexecdir)/freerdp2-auth-check\"" \
+ -DAUTH_CHECK="\"$(libexecdir)/freerdp-auth-check\"" \
$(COVERAGE_CFLAGS) \
$(NULL)
-pam_freerdp2_la_CPPFLAGS = \
+pam_freerdp_la_CPPFLAGS = \
-I$(top_srcdir)/include \
$(NULL)
-pam_freerdp2_la_LIBADD = \
+pam_freerdp_la_LIBADD = \
-lpam \
$(NULL)
-pam_freerdp2includedir = $(includedir)/security/
-pam_freerdp2include_HEADERS = \
- $(top_srcdir)/include/pam-freerdp2.h \
+pam_freerdpincludedir = $(includedir)/security/
+pam_freerdpinclude_HEADERS = \
+ $(top_srcdir)/include/pam-freerdp.h \
$(NULL)
libexec_PROGRAMS = \
- freerdp2-auth-check \
+ freerdp-auth-check \
$(NULL)
-freerdp2_auth_check_SOURCES = \
- freerdp2-auth-check.c \
+freerdp_auth_check_SOURCES = \
+ freerdp-auth-check.c \
$(NULL)
-freerdp2_auth_check_CFLAGS = \
+if HAVE_FREERDP3
+freerdp_auth_check_CFLAGS = \
+ -Wall -Werror \
+ $(FREERDP3_CFLAGS) \
+ $(WINPR3_CFLAGS) \
+ $(COVERAGE_CFLAGS) \
+ $(NULL)
+freerdp_auth_check_LDADD = \
+ $(FREERDP3_LIBS) \
+ $(WINPR3_LIBS) \
+ $(NULL)
+
+freerdp_auth_check_LDFLAGS = \
+ $(FREERDP3_LDFLAGS) \
+ $(WINPR3_LDFLAGS) \
+ $(COVERAGE_LDFLAGS) \
+ $(NULL)
+else
+freerdp_auth_check_CFLAGS = \
+ -Wall -Werror \
$(FREERDP2_CFLAGS) \
$(WINPR2_CFLAGS) \
$(COVERAGE_CFLAGS) \
$(NULL)
-
-freerdp2_auth_check_LDADD = \
+freerdp_auth_check_LDADD = \
$(FREERDP2_LIBS) \
$(WINPR2_LIBS) \
$(NULL)
-freerdp2_auth_check_LDFLAGS = \
+freerdp_auth_check_LDFLAGS = \
$(FREERDP2_LDFLAGS) \
$(WINPR2_LDFLAGS) \
$(COVERAGE_LDFLAGS) \
$(NULL)
+endif \ No newline at end of file
diff --git a/src/freerdp2-auth-check.c b/src/freerdp-auth-check.c
index 04558fb..752f2bf 100644
--- a/src/freerdp2-auth-check.c
+++ b/src/freerdp-auth-check.c
@@ -18,41 +18,42 @@
#include <freerdp/freerdp.h>
#include <freerdp/channels/channels.h>
+#include <freerdp/version.h>
#include <string.h>
#include <sys/mman.h>
#include <winpr/wlog.h>
BOOL
-auth_context_new (freerdp * instance, rdpContext * context)
+auth_context_new (freerdp __attribute__((unused)) *instance, rdpContext __attribute__((unused)) *context)
{
return TRUE;
}
void
-auth_context_free (freerdp * instance, rdpContext * context)
+auth_context_free (freerdp __attribute__((unused)) *instance, rdpContext __attribute__((unused)) *context)
{
return;
}
BOOL
-auth_pre_connect (freerdp * instance)
+auth_pre_connect (freerdp __attribute__((unused)) *instance)
{
return TRUE;
}
BOOL
-auth_post_connect (freerdp * instance)
+auth_post_connect (freerdp __attribute__((unused)) *instance)
{
return TRUE;
}
int
-main (int argc, char * argv[])
+main (int argc, char *argv[])
{
char password[512];
if (argc != 4) {
- printf("Usage: echo <passwd> | freerdp2-auth-check <host>[:<port>] <user> <domain>\n\n");
+ printf("Usage: echo <passwd> | freerdp-auth-check <host>[:<port>] <user> <domain>\n\n");
printf("ERROR: Incorrect number of parameters.\n\n");
return -1;
}
@@ -91,15 +92,26 @@ main (int argc, char * argv[])
/* We've got a port to deal with */
colonloc[0] = '\0';
colonloc++;
-
+#if FREERDP_VERSION_MAJOR >= 3
+ freerdp_settings_set_uint32(instance->context->settings, FreeRDP_ServerPort, strtoul(colonloc, NULL, 10));
+#else
instance->settings->ServerPort = strtoul(colonloc, NULL, 10);
+#endif
}
+#if FREERDP_VERSION_MAJOR >= 3
+ freerdp_settings_set_bool(instance->context->settings, FreeRDP_AuthenticationOnly, TRUE);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_ServerHostname, argv[1]);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_Username, argv[2]);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_Domain, argv[3]);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_Password, password);
+#else
instance->settings->AuthenticationOnly = TRUE;
instance->settings->ServerHostname = argv[1];
instance->settings->Username = argv[2];
instance->settings->Domain = argv[3];
instance->settings->Password = password;
+#endif
BOOL connection_successful;
connection_successful = freerdp_connect(instance);
@@ -107,10 +119,17 @@ main (int argc, char * argv[])
memset(password, 0, sizeof(password));
munlock(password, sizeof(password));
+#if FREERDP_VERSION_MAJOR >= 3
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_Password, NULL);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_ServerHostname, NULL);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_Username, NULL);
+ freerdp_settings_set_string(instance->context->settings, FreeRDP_Domain, NULL);
+#else
instance->settings->Password = NULL;
instance->settings->ServerHostname = NULL;
instance->settings->Username = NULL;
instance->settings->Domain = NULL;
+#endif
int retval = 0;
if (!connection_successful) {
diff --git a/src/pam-freerdp2-children.c b/src/pam-freerdp-children.c
index 91b4a3a..8cd4ef8 100644
--- a/src/pam-freerdp2-children.c
+++ b/src/pam-freerdp-children.c
@@ -34,7 +34,7 @@
#include <security/pam_modutil.h>
#include <security/pam_appl.h>
-#include "pam-freerdp2-children.h"
+#include "pam-freerdp-children.h"
#include "auth-check-path.h"
void
@@ -172,7 +172,7 @@ session_socket_handler (struct passwd * pwdent, int readypipe, const char * ruse
memset(&socket_addr, 0, sizeof(struct sockaddr_un));
socket_addr.sun_family = AF_UNIX;
strncpy(socket_addr.sun_path, pwdent->pw_dir, sizeof(socket_addr.sun_path) - 1);
- strncpy(socket_addr.sun_path + strlen(pwdent->pw_dir), "/.freerdp2-socket", (sizeof(socket_addr.sun_path) - strlen(pwdent->pw_dir)) - 1);
+ strncpy(socket_addr.sun_path + strlen(pwdent->pw_dir), "/.freerdp-socket", (sizeof(socket_addr.sun_path) - strlen(pwdent->pw_dir)) - 1);
/* We bind the socket before forking so that we ensure that
there isn't a race condition to get to it. Things will block
diff --git a/src/pam-freerdp2-children.h b/src/pam-freerdp-children.h
index dac3b19..1109587 100644
--- a/src/pam-freerdp2-children.h
+++ b/src/pam-freerdp-children.h
@@ -16,8 +16,8 @@
* Author: Ted Gould <ted@canonical.com>
*/
-#ifndef _PAM_FREERDP2_CHILDREN_H_
-#define _PAM_FREERDP2_CHILDREN_H_
+#ifndef _PAM_FREERDP_CHILDREN_H_
+#define _PAM_FREERDP_CHILDREN_H_
#define PAM_TYPE_RDP_USER 1234
#define PAM_TYPE_RDP_SERVER 1235
@@ -29,4 +29,4 @@ pam_sm_authenticate_helper (int *stdinpipe, const char* username, const char* rh
int
session_socket_handler (struct passwd * pwdent, int readypipe, const char * ruser, const char * rhost, const char * rdomain, const char * password);
-#endif //_PAM_FREERDP2_CHILDREN_H_
+#endif //_PAM_FREERDP_CHILDREN_H_
diff --git a/src/pam-freerdp2-private.h b/src/pam-freerdp-private.h
index 74663ef..0b7520f 100644
--- a/src/pam-freerdp2-private.h
+++ b/src/pam-freerdp-private.h
@@ -17,8 +17,8 @@
* Author libpam-freerdp (where we forked from): Ted Gould <ted@canonical.com>
*/
-#ifndef _PAM_FREERDP2_PRIVATE_H_
-#define _PAM_FREERDP2_PRIVATE_H_
+#ifndef _PAM_FREERDP_PRIVATE_H_
+#define _PAM_FREERDP_PRIVATE_H_
PAM_EXTERN int
pam_sm_authenticate (pam_handle_t *pamh, int flags, int argc, const char **argv);
@@ -29,4 +29,4 @@ pam_sm_close_session (pam_handle_t *pamh, int flags, int argc, const char **argv
PAM_EXTERN int
pam_sm_setcred (pam_handle_t *pamh, int flags, int argc, const char ** argv);
-#endif //_PAM_FREERDP2_PRIVATE_H_
+#endif //_PAM_FREERDP_PRIVATE_H_
diff --git a/src/pam-freerdp2.c b/src/pam-freerdp.c
index 18a4c18..8bf505f 100644
--- a/src/pam-freerdp2.c
+++ b/src/pam-freerdp.c
@@ -36,9 +36,9 @@
#include <security/pam_modutil.h>
#include <security/pam_appl.h>
-#include "pam-freerdp2.h"
+#include "pam-freerdp.h"
-#include "pam-freerdp2-children.h"
+#include "pam-freerdp-children.h"
#include "auth-check-path.h"
static int unpriveleged_kill (struct passwd * pwdent);
@@ -93,20 +93,20 @@ get_item (pam_handle_t * pamh, int type)
switch (type) {
case PAM_USER:
- message.msg = PAM_FREERDP2_PROMPT_GUESTLOGIN;
+ message.msg = PAM_FREERDP_PROMPT_GUESTLOGIN;
break;
case PAM_TYPE_RDP_USER:
- message.msg = PAM_FREERDP2_PROMPT_USER;
+ message.msg = PAM_FREERDP_PROMPT_USER;
break;
case PAM_TYPE_RDP_SERVER:
- message.msg = PAM_FREERDP2_PROMPT_HOST;
+ message.msg = PAM_FREERDP_PROMPT_HOST;
break;
case PAM_AUTHTOK:
- message.msg = PAM_FREERDP2_PROMPT_PASSWORD;
+ message.msg = PAM_FREERDP_PROMPT_PASSWORD;
message.msg_style = PAM_PROMPT_ECHO_OFF;
break;
case PAM_TYPE_RDP_DOMAIN:
- message.msg = PAM_FREERDP2_PROMPT_DOMAIN;
+ message.msg = PAM_FREERDP_PROMPT_DOMAIN;
break;
default:
return NULL;
@@ -240,7 +240,7 @@ get_item (pam_handle_t * pamh, int type)
/* Authenticate. We need to make sure we have a user account, that
there are remote accounts and then verify them with FreeRDP */
PAM_EXTERN int
-pam_sm_authenticate (pam_handle_t *pamh, int flags, int argc, const char **argv)
+pam_sm_authenticate (pam_handle_t *pamh, int __attribute__((unused)) flags, int __attribute__((unused)) argc, const char __attribute__((unused)) **argv)
{
char * username = NULL;
char * password = NULL;
@@ -305,7 +305,7 @@ pid_t session_pid = 0;
give the credentials to the session itself so that it can startup the
xfreerdp viewer for the login */
PAM_EXTERN int
-pam_sm_open_session (pam_handle_t *pamh, int flags, int argc, const char ** argv)
+pam_sm_open_session (pam_handle_t *pamh, int __attribute__((unused)) flags, int __attribute__((unused)) argc, const char __attribute__((unused)) **argv)
{
char * username = NULL;
char * password = NULL;
@@ -372,7 +372,7 @@ done:
/* Close Session. Make sure our little guy has died so he doesn't become
a zombie and eat things. */
PAM_EXTERN int
-pam_sm_close_session (pam_handle_t *pamh, int flags, int argc, const char **argv)
+pam_sm_close_session (pam_handle_t *pamh, int __attribute__((unused)) flags, int __attribute__((unused)) argc, const char __attribute__((unused)) **argv)
{
if (session_pid == 0) {
return PAM_IGNORE;
@@ -452,7 +452,7 @@ unpriveleged_kill (struct passwd * pwdent)
/* LightDM likes to have this function around, but we don't need it as we
don't have a token hanging around. */
PAM_EXTERN int
-pam_sm_setcred (pam_handle_t *pamh, int flags, int argc, const char ** argv)
+pam_sm_setcred (pam_handle_t __attribute__((unused)) *pamh, int __attribute__((unused)) flags, int __attribute__((unused)) argc, const char __attribute__((unused)) **argv)
{
return PAM_SUCCESS;
}
@@ -460,7 +460,7 @@ pam_sm_setcred (pam_handle_t *pamh, int flags, int argc, const char ** argv)
#ifdef PAM_STATIC
struct pam_module _pam_freerdp_modstruct = {
- "pam_freerdp2",
+ "pam_freerdp",
pam_sm_authenticate,
pam_sm_setcred,
NULL,