diff options
Diffstat (limited to 'winsup/cygserver')
-rw-r--r-- | winsup/cygserver/ChangeLog | 12 | ||||
-rw-r--r-- | winsup/cygserver/Makefile.in | 4 | ||||
-rw-r--r-- | winsup/cygserver/client.cc | 4 | ||||
-rw-r--r-- | winsup/cygserver/pwdgrp.cc | 161 |
4 files changed, 2 insertions, 179 deletions
diff --git a/winsup/cygserver/ChangeLog b/winsup/cygserver/ChangeLog index 1104918c3..653f531fb 100644 --- a/winsup/cygserver/ChangeLog +++ b/winsup/cygserver/ChangeLog @@ -21,11 +21,6 @@ 2014-04-16 Corinna Vinschen <corinna@vinschen.de> - * pwdgrp.cc (client_request_pwdgrp::pwd_serve): Add 1 to the message - length to account for the trailing NUL. - -2014-04-16 Corinna Vinschen <corinna@vinschen.de> - * cygserver-config: Use numeric id 18 instead of "system" in chown. 2014-04-07 Corinna Vinschen <corinna@vinschen.de> @@ -35,13 +30,6 @@ 2014-03-12 Corinna Vinschen <corinna@vinschen.de> - * Makefile.in (OBJS): Add pwdgrp.o. - * client.cc (client_request::handle_request): Handle - CYGSERVER_REQUEST_PWDGRP message. - * pwdgrp.cc: New file implementing CYGSERVER_REQUEST_PWDGRP. - -2014-03-12 Corinna Vinschen <corinna@vinschen.de> - * Throughout, fix format specifiers in debug statements to accommodate x86_64. diff --git a/winsup/cygserver/Makefile.in b/winsup/cygserver/Makefile.in index 816f5b3db..e2fe30992 100644 --- a/winsup/cygserver/Makefile.in +++ b/winsup/cygserver/Makefile.in @@ -1,5 +1,5 @@ # Makefile for Cygwin server -# Copyright 2003, 2006, 2007, 2008, 2009, 2014 Red Hat, Inc. +# Copyright 2003, 2006, 2007, 2008, 2009 Red Hat, Inc. # This file is part of Cygwin. @@ -46,7 +46,7 @@ AR:=@AR@ OBJS:= cygserver.o client.o process.o msg.o sem.o shm.o threaded_queue.o \ transport.o transport_pipes.o \ bsd_helper.o bsd_log.o bsd_mutex.o \ - sysv_msg.o sysv_sem.o sysv_shm.o setpwd.o pwdgrp.o + sysv_msg.o sysv_sem.o sysv_shm.o setpwd.o LIBOBJS:=${patsubst %.o,lib%.o,$(OBJS)} CYGWIN_OBJS:=$(cygwin_build)/version.o diff --git a/winsup/cygserver/client.cc b/winsup/cygserver/client.cc index 0c6c24ba9..9c890f7a8 100644 --- a/winsup/cygserver/client.cc +++ b/winsup/cygserver/client.cc @@ -26,7 +26,6 @@ details. */ #include "cygserver_sem.h" #include "cygserver_shm.h" #include "cygserver_setpwd.h" -#include "cygserver_pwdgrp.h" #include "cygserver.h" #include "transport.h" @@ -286,9 +285,6 @@ client_request::handle_request (transport_layer_base *const conn, case CYGSERVER_REQUEST_SETPWD: req = new client_request_setpwd; break; - case CYGSERVER_REQUEST_PWDGRP: - req = new client_request_pwdgrp; - break; default: syscall_printf ("unknown request code %d received: request ignored", header.request_code); diff --git a/winsup/cygserver/pwdgrp.cc b/winsup/cygserver/pwdgrp.cc deleted file mode 100644 index cc12deadd..000000000 --- a/winsup/cygserver/pwdgrp.cc +++ /dev/null @@ -1,161 +0,0 @@ -/* pwdgrp.cc: Request account information - - Copyright 2014 Red Hat, Inc. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#ifdef __OUTSIDE_CYGWIN__ -#include "woutsup.h" - -#include <stdio.h> -#include <errno.h> -#include <pwd.h> -#include <grp.h> -#include <sys/cygwin.h> - -#include "cygserver.h" -#include "process.h" -#include "transport.h" - -#include "cygserver_pwdgrp.h" - -#include <sddl.h> - -client_request_pwdgrp::client_request_pwdgrp () - : client_request (CYGSERVER_REQUEST_PWDGRP, - &_parameters, sizeof (_parameters)) -{ -} - -void -client_request_pwdgrp::pwd_serve () -{ - struct passwd *pwd = NULL; - - switch (_parameters.in.type) - { - case SID_arg: - pwd = (struct passwd *) cygwin_internal (CW_GETPWSID, 0, - &_parameters.in.arg.sid); - break; - case NAME_arg: - pwd = getpwnam (_parameters.in.arg.name); - break; - case ID_arg: - pwd = getpwuid (_parameters.in.arg.id); - break; - } - if (pwd) - msglen (snprintf (_parameters.out.line, sizeof _parameters.out.line, - "%s:%s:%u:%u:%s:%s:%s", - pwd->pw_name ?: "", - pwd->pw_passwd ?: "", - (uint32_t) pwd->pw_uid, - (uint32_t) pwd->pw_gid, - pwd->pw_gecos ?: "", - pwd->pw_dir ?: "", - pwd->pw_shell ?: "") + 1); - else - { - switch (_parameters.in.type) - { - case SID_arg: - { - char *str; - if (ConvertSidToStringSid (&_parameters.in.arg.sid, &str)) - { - debug_printf ("User <%s> failed", str); - LocalFree (str); - } - } - break; - case NAME_arg: - debug_printf ("User <%s> failed", _parameters.in.arg.name); - break; - case ID_arg: - debug_printf ("User <%u> failed", _parameters.in.arg.id); - break; - } - _parameters.out.line[0] = '\0'; - msglen (0); - error_code (ENOENT); - } -} - -void -client_request_pwdgrp::grp_serve () -{ - struct group *grp = NULL; - - switch (_parameters.in.type) - { - case SID_arg: - grp = (struct group *) cygwin_internal (CW_GETGRSID, 0, - &_parameters.in.arg.sid); - break; - case NAME_arg: - grp = getgrnam (_parameters.in.arg.name); - break; - case ID_arg: - grp = getgrgid (_parameters.in.arg.id); - break; - } - if (grp) - msglen (snprintf (_parameters.out.line, sizeof _parameters.out.line, - "%s:%s:%u:", - grp->gr_name ?: "", - grp->gr_passwd ?: "", - (uint32_t) grp->gr_gid) + 1); - else - { - switch (_parameters.in.type) - { - case SID_arg: - { - char *str; - if (ConvertSidToStringSid (&_parameters.in.arg.sid, &str)) - { - debug_printf ("Group <%s> failed", str); - LocalFree (str); - } - } - break; - case NAME_arg: - debug_printf ("Group <%s> failed", _parameters.in.arg.name); - break; - case ID_arg: - debug_printf ("Group <%u> failed", _parameters.in.arg.id); - break; - } - _parameters.out.line[0] = '\0'; - msglen (0); - error_code (ENOENT); - } -} - -void -client_request_pwdgrp::serve (transport_layer_base *const conn, - process_cache *const cache) -{ - debug_printf ("Request account information"); - if (msglen () < __builtin_offsetof (struct _pwdgrp_param_t::_pwdgrp_in_t, arg) - + sizeof (uint32_t) - || msglen () > sizeof (_parameters.in)) - { - syscall_printf ("bad request body length: got %lu", msglen ()); - error_code (EINVAL); - msglen (0); - return; - } - error_code (0); - if (_parameters.in.group) - grp_serve (); - else - pwd_serve (); - debug_printf ("Request account information returns <%s> error %d", _parameters.out.line, error_code ()); -} -#endif /* __OUTSIDE_CYGWIN__ */ |