1*9139SJan.Pechanec@Sun.COM /* $OpenBSD: sftp-server-main.c,v 1.4 2009/02/21 19:32:04 tobias Exp $ */
2*9139SJan.Pechanec@Sun.COM /*
3*9139SJan.Pechanec@Sun.COM * Copyright (c) 2008 Markus Friedl. All rights reserved.
4*9139SJan.Pechanec@Sun.COM *
5*9139SJan.Pechanec@Sun.COM * Permission to use, copy, modify, and distribute this software for any
6*9139SJan.Pechanec@Sun.COM * purpose with or without fee is hereby granted, provided that the above
7*9139SJan.Pechanec@Sun.COM * copyright notice and this permission notice appear in all copies.
8*9139SJan.Pechanec@Sun.COM *
9*9139SJan.Pechanec@Sun.COM * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10*9139SJan.Pechanec@Sun.COM * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11*9139SJan.Pechanec@Sun.COM * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12*9139SJan.Pechanec@Sun.COM * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13*9139SJan.Pechanec@Sun.COM * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14*9139SJan.Pechanec@Sun.COM * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15*9139SJan.Pechanec@Sun.COM * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*9139SJan.Pechanec@Sun.COM */
17*9139SJan.Pechanec@Sun.COM
18*9139SJan.Pechanec@Sun.COM #include "includes.h"
19*9139SJan.Pechanec@Sun.COM
20*9139SJan.Pechanec@Sun.COM #include <sys/types.h>
21*9139SJan.Pechanec@Sun.COM #include <pwd.h>
22*9139SJan.Pechanec@Sun.COM #include <stdarg.h>
23*9139SJan.Pechanec@Sun.COM #include <stdio.h>
24*9139SJan.Pechanec@Sun.COM #include <unistd.h>
25*9139SJan.Pechanec@Sun.COM
26*9139SJan.Pechanec@Sun.COM #include "log.h"
27*9139SJan.Pechanec@Sun.COM #include "sftp.h"
28*9139SJan.Pechanec@Sun.COM #include "misc.h"
29*9139SJan.Pechanec@Sun.COM
30*9139SJan.Pechanec@Sun.COM /* defined in sftp-server.c */
31*9139SJan.Pechanec@Sun.COM extern struct passwd *pw;
32*9139SJan.Pechanec@Sun.COM extern char *client_addr;
33*9139SJan.Pechanec@Sun.COM
34*9139SJan.Pechanec@Sun.COM void cleanup_exit(int i);
35*9139SJan.Pechanec@Sun.COM
36*9139SJan.Pechanec@Sun.COM int
main(int argc,char ** argv)37*9139SJan.Pechanec@Sun.COM main(int argc, char **argv)
38*9139SJan.Pechanec@Sun.COM {
39*9139SJan.Pechanec@Sun.COM struct passwd *user_pw;
40*9139SJan.Pechanec@Sun.COM
41*9139SJan.Pechanec@Sun.COM /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
42*9139SJan.Pechanec@Sun.COM sanitise_stdfd();
43*9139SJan.Pechanec@Sun.COM
44*9139SJan.Pechanec@Sun.COM if ((user_pw = getpwuid(getuid())) == NULL) {
45*9139SJan.Pechanec@Sun.COM fprintf(stderr, "No user found for uid %lu\n",
46*9139SJan.Pechanec@Sun.COM (ulong_t)getuid());
47*9139SJan.Pechanec@Sun.COM return (1);
48*9139SJan.Pechanec@Sun.COM }
49*9139SJan.Pechanec@Sun.COM
50*9139SJan.Pechanec@Sun.COM return (sftp_server_main(argc, argv, user_pw));
51*9139SJan.Pechanec@Sun.COM }
52