source: TI05-delivery/trunk/src/bbftp-server-3.2.0/bbftpd/bbftpd_private_user.c @ 802

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI05-delivery/trunk/src/bbftp-server-3.2.0/bbftpd/bbftpd_private_user.c@802
Revision 802, 5.5 KB checked in by spascoe, 14 years ago (diff)

Added a trivial private authentication function.
WARNING: Untested, almost certainly broken.

Line 
1/*
2 * bbftpd/bbftpd_private_user.c
3 * Copyright (C) 1999, 2000, 2001, 2002 IN2P3, CNRS
4 * bbftp@in2p3.fr
5 * http://doc.in2p3.fr/bbftp
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20 */ 
21
22/****************************************************************************
23
24 
25 
26 bbftpd_private_user.c  v 2.1.0 2001/05/21  - Routines creation
27
28*****************************************************************************/
29#include <netinet/in.h>
30#include <utime.h>
31
32#include <bbftpd.h>
33#include <daemon_proto.h>
34#include <structures.h>
35
36#include <bbftp_private_user.h>
37
38extern char currentusername[MAXLEN] ;
39
40/*******************************************************************************
41** bbftpd_private_auth :                                                       *
42**                                                                             *
43**      Routine to do the private authentication. This routine just have to    *
44**      send or to receive private data to the bbftpd daemon. For that it will *
45**      use the two routines :                                                 *
46**          bbftpd_private_send                                                *
47**          bbftpd_private_recv                                                *
48**      The reception of the OK or BAD message will be done by the calling     *
49**      routine, so if this routine has no check to do (for example just       *
50**      sending username and password) it will just call bbftp_private_send    *
51**      twice and let the calling program check if it is OK or BAD.            *
52**                                                                             *
53**      The bbftp_private_send routine has to be called with the following     *
54**      parameters:                                                            *
55**                                                                             *
56**      int bbftpd_private_send(char *buffertosend,int buffertosendlength,     *
57**                             char *logmessage)                               *
58**          char    *buffertosend = string to be send to the daemon            *
59**          int     buffertosendlength = length of the string                  *
60**          char    *logmessage                                                *
61**                                                                             *
62**      and return 0 in case of success, -1 in case of error with logmessage   *
63**      filled                                                                 *
64**                                                                             *
65**      The bbftpd_private_recv routine has to be called with the following    *
66**      parameters:                                                            *
67**                                                                             *
68**      int bbftpd_private_recv(char *buffertorecv,int lengthtoreceive,        *
69**                             char *logmessage)                               *
70**          char    *buffertorecv = string to be send to the daemon            *
71**          int     lengthtorecv = length to be received                       *
72**          char    *logmessage                                                *
73**                                                                             *
74**      and return number of byte received in case of success, -1 in case of   *
75**      error with logmessage filled                                           *
76**      It is the duty of the programmer to take care that the buffer is large *
77**      enought                                                                *
78**                                                                             *
79**                                                                             *
80**      OUPUT variable :                                                       *
81**          logmessage :  to write the error message in case of error          *
82**                                                                             *
83**      GLOBAL VARIABLE USED :                                                 *
84**                                                                             *
85**                                                                             *
86**      RETURN:                                                                *
87**          -1  Unrecoverable error                                            *
88**           0  OK                                                             *
89**                                                                             *
90*******************************************************************************/
91
92int bbftpd_private_auth(char *logmessage) 
93{   
94  char msg[NDG_MESSAGE_LEN];
95  /* Send version verification message.  */
96  if (bbftp_private_recv(msg, NDG_MESSAGE_LEN, logmessage) == -1) {
97    return -1;
98  }
99 
100  return 0 ; 
101}
Note: See TracBrowser for help on using the repository browser.