File: command.h

package info (click to toggle)
gopher 2.3-2
  • links: PTS
  • area: non-free
  • in suites: hamm
  • size: 2,364 kB
  • ctags: 2,030
  • sloc: ansic: 22,451; perl: 1,950; sh: 1,510; makefile: 397; asm: 1
file content (124 lines) | stat: -rw-r--r-- 3,540 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/********************************************************************
 * $Author: lindner $
 * $Revision: 3.11 $
 * $Date: 1995/09/25 05:02:31 $
 * $Source: /home/arcwelder/GopherSrc/CVS/gopher+/gopherd/command.h,v $
 * $State: Exp $
 *
 * Paul Lindner, University of Minnesota CIS.
 *
 * Copyright 1991, 1992, 1993 by the Regents of the University of Minnesota
 * see the file "Copyright" in the distribution for conditions of use.
 *********************************************************************
 * MODULE: command.h
 * Definitions and prototypes for CMD object.
 *********************************************************************
 * Revision History:
 * $Log: command.h,v $
 * Revision 3.11  1995/09/25  05:02:31  lindner
 * Convert to ANSI C
 *
 * Revision 3.10  1995/08/29  07:10:21  lindner
 * Many changes to support HTTP
 *
 * Revision 3.9  1995/07/06  20:12:29  lindner
 * More mods for HTTP serving
 *
 * Revision 3.8  1994/07/22  22:28:22  lindner
 * Remove tix.h
 *
 * Revision 3.7  1994/06/29  05:27:44  lindner
 * Add define to remove ask items
 *
 * Revision 3.6  1993/10/04  06:49:21  lindner
 * ASK data stored in core, for a while..
 *
 * Revision 3.5  1993/09/30  16:56:58  lindner
 * Fix for WAIS and $ requests
 *
 * Revision 3.4  1993/07/23  03:11:22  lindner
 * Added CMDgetFile() fcn
 *
 * Revision 3.3  1993/04/09  16:50:26  lindner
 * nothing
 *
 * Revision 3.2  1993/03/24  20:18:50  lindner
 * Fixed bug in macro declaration
 *
 * Revision 3.1  1993/03/19  19:56:56  lindner
 * New CMD object
 *
 *
 *********************************************************************/


#ifndef COMMAND_H
#define COMMAND_H

#include "STRstring.h"
#include "STAarray.h"
#include "boolean.h"

typedef enum {UnknownProtocol, Gopher0, GopherPlus, HTTP0_9, HTTP1_0} CMDprotocol;
typedef enum {UnknownHTTPcmd, POST, GET} HTTPcmd;

struct command_struct {
     String      *datafromnet;

     boolean     isGplus;
     CMDprotocol proto;

     char    *selstr;
     char    *command;
     char    *search;
     
     String  *view;
     String  *secureuser;
     String  *ticket;
     HTTPcmd httpcmd;

     StrArray *asklines;
};

typedef struct command_struct CMDobj;


#define CMDgetSelstr(a)    ((a)->selstr)
#define CMDsetSelstr(a,b)  ((a)->selstr=(b))
#define CMDgetCommand(a)   ((a)->command)
#define CMDsetCommand(a,b) ((a)->command=(b))

#define CMDgetSearch(a)    ((a)->search)
#define CMDsetSearch(a,b)  ((a)->search=(b))

#define CMDgetProtocol(a)    ((a)->proto)
#define CMDsetProtocol(a,b)  ((a)->proto=(b))

#define CMDgetData(a)      (STRget((a)->datafromnet))
#define CMDsetData(a,b)    (STRset((a)->datafromnet, b))

#define CMDgetHTTPcmd(a)      ((a)->httpcmd)
#define CMDsetHTTPcmd(a,b)    ((a)->httpcmd=(b))

#define CMDremoveAsk(a)     (STAinit((a)->asklines))
#define CMDgetAskline(a,b)  (STAgetText((a)->asklines,b))
#define CMDisAskitem(a)     (STAgetTop((a)->asklines)!= 0 && (CMDgetHTTPcmd(cmd)==UnknownProtocol))
#define CMDnumAsklines(a)   (STAgetTop((a)->asklines))

#define CMDisGplus(a)      ((a)->isGplus)
#define CMDsetGplus(a,b)   ((a)->isGplus=b)

#define CMDgetView(a)      (STRget((a)->view))
#define CMDsetView(a,b)    (STRset((a)->view,b))

#define CMDgetUser(a)      (STRget((a)->secureuser))
#define CMDsetUser(a,b)    (STRset((a)->secureuser,(b)))

#define CMDgetTicket(a)    (STRget((a)->ticket))
#define CMDsetTicket(a,b)  (STRset((a)->ticket,(b)))

CMDobj *CMDnew();
void    CMDdestroy(CMDobj*);
void    CMDfromNet(CMDobj *cmd, int sockfd);
char   *CMDgetFile(CMDobj *);
#endif