*/
#include "amanda.h"
+#include "match.h"
#include "util.h"
#include "event.h"
#include "packet.h"
-#include "queue.h"
#include "security.h"
#include "security-util.h"
#include "stream.h"
-#include "version.h"
/*
* Number of seconds amandad has to start up
"LOCAL",
local_connect,
sec_accept,
+ sec_get_authenticated_peer_name_gethostname,
sec_close,
stream_sendpkt,
stream_recvpkt,
auth_debug(1, _("local: local_connect: %s\n"), hostname);
- rh = alloc(SIZEOF(*rh));
+ rh = g_new0(struct sec_handle, 1);
security_handleinit(&rh->sech, &local_security_driver);
rh->hostname = NULL;
rh->rs = NULL;
return (0);
}
- safe_fd(-1, 0);
+ /* drop root privs for good */
+ set_root_privs(-1);
if(!xamandad_path || strlen(xamandad_path) <= 1)
- xamandad_path = vstralloc(amlibexecdir, "/", "amandad",
- versionsuffix(), NULL);
+ xamandad_path = vstralloc(amlibexecdir, "/", "amandad", NULL);
#ifndef SINGLE_USERID
+ if (client_username && *client_username != '\0') {
+ initgroups(client_username, gid);
+ } else {
+ initgroups(CLIENT_LOGIN, gid);
+ }
+ if (gid != 0)
+ setregid(uid, gid);
if (uid != 0)
setreuid(uid, uid);
- if (gid != 0)
- setregid(gid, gid);
#endif
+ safe_fd(-1, 0);
+
execlp(xamandad_path, xamandad_path,
- "-auth=local", "amdump", "amindexd", "amidxtaped", (char *)NULL);
+ "-auth=local", (char *)NULL);
error(_("error: couldn't exec %s: %s"), xamandad_path, strerror(errno));
/* should never go here, shut up compiler warning */