isc-parse.c 1.82 KB
Newer Older
Linus Tolke Y's avatar
Linus Tolke Y committed
1
/*
2
 * $Id: isc-parse.c,v 0.10 1996/07/24 23:57:19 ceder Exp $
Per Cederqvist's avatar
Per Cederqvist committed
3
 * Copyright (C) 1991, 1993, 1994  Lysator Academic Computer Association.
Linus Tolke Y's avatar
Linus Tolke Y committed
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
 *
 * This file is part of the LysKOM server.
 * 
 * LysKOM is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by 
 * the Free Software Foundation; either version 1, or (at your option) 
 * any later version.
 * 
 * LysKOM is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with LysKOM; see the file COPYING.  If not, write to
 * Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN,
 * or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, 
 * MA 02139, USA.
 *
 * Please mail bug reports to bug-lyskom@lysator.liu.se. 
 */
Per Cederqvist's avatar
Per Cederqvist committed
25 26 27 28
/*
 * Generic parse routines.
 */

29
static char *rcsid = "$Id: isc-parse.c,v 0.10 1996/07/24 23:57:19 ceder Exp $";
30 31
#include "rcs.h"
USE(rcsid);
Per Cederqvist's avatar
Per Cederqvist committed
32

Per Cederqvist's avatar
Per Cederqvist committed
33 34
#ifdef HAVE_STRING_H
#  include <string.h>
35 36 37 38 39 40 41
#else
#  ifdef HAVE_STRINGS_H
#    include <strings.h>
#  endif
#endif
#ifndef HAVE_STRCHR
#  define strchr index
Per Cederqvist's avatar
Per Cederqvist committed
42
#endif
Per Cederqvist's avatar
Per Cederqvist committed
43
#include <setjmp.h>
44 45
#include <time.h>
#include <sys/types.h>
Per Cederqvist's avatar
Per Cederqvist committed
46

47
#include "s-string.h"
Per Cederqvist's avatar
Per Cederqvist committed
48
#include "kom-types.h"
Per Cederqvist's avatar
Per Cederqvist committed
49
#include "com.h"
50
#include "async.h"
Per Cederqvist's avatar
Per Cederqvist committed
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
#include "connections.h"
#include "isc-parse.h"

int
parse_char(Connection *client)
{
    if ( client->unparsed.len <= client->first_to_parse )
	longjmp(parse_env, ISC_MSG_INCOMPLETE);

    return client->unparsed.string[ client->first_to_parse++ ];
}
	

int
parse_nonwhite_char(Connection *client)
{
    int c;

    while ( strchr(" \t\n\r", c=parse_char(client) ) != NULL )
	;
    return c;
}