2 Unix SMB/CIFS implementation.
4 provide hooks into C calls from esp scripts
6 Copyright (C) Andrew Tridgell 2005
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 #include "web_server/esp/esp.h"
28 return the type of a variable
30 static int esp_typeof(struct EspRequest *ep, int argc, struct MprVar **argv)
36 { MPR_TYPE_UNDEFINED, "undefined" },
37 { MPR_TYPE_NULL, "null" },
38 { MPR_TYPE_BOOL, "boolean" },
39 { MPR_TYPE_CFUNCTION, "function" },
40 { MPR_TYPE_FLOAT, "float" },
41 { MPR_TYPE_INT, "int" },
42 { MPR_TYPE_INT64, "int64" },
43 { MPR_TYPE_OBJECT, "object" },
44 { MPR_TYPE_FUNCTION, "function" },
45 { MPR_TYPE_STRING, "string" },
46 { MPR_TYPE_STRING_CFUNCTION, "function" }
49 const char *type = "unknown";
51 if (argc != 1) return -1;
53 for (i=0;i<ARRAY_SIZE(types);i++) {
54 if (argv[0]->type == types[i].type) {
60 espSetReturnString(ep, type);
66 setup the C functions that be called from ejs
68 void http_setup_ejs_functions(void)
70 espDefineStringCFunction(NULL, "lpGet", esp_lpGet, NULL);
71 espDefineCFunction(NULL, "typeof", esp_typeof, NULL);