Embedthis Appweb 3.2.2
Home > Programmers Reference > Native APIs > Appweb

See Also

Quick Nav

Appweb Native API

Components

MaAlias Aliases.
MaAuth Authorization The MaAuth struct is the foundation authorization object and is used as base class by MaDirectory and MaLocation.
MaConfigState Current config parse state.
MaConn Http Connections.
MaDir Directory Control.
MaFilter Filter Stages.
MaGroup Group Authorization.
MaHost Host Object A Host object represents a single listening HTTP connection endpoint.
MaHostAddress Host Address Mapping.
MaHttp Http Service.
MaLimits Server limits.
MaListen Listen endpoint.
MaLocation Location Control.
MaMimeType Mime Type hash table entry (the URL extension is the key).
MaRange Content range structure.
MaRequest Http Requests.
MaResponse Http Response.
MaServer Http Server Control An application may have any number of HTTP servers, each managed by an instance of the Server class.
MaUploadFile Upload File Each uploaded file has an MaUploadedFile entry.
MaUser User Authorization File based authorization backend.

Functions

MaHttp*maCreateHttp(MprCtx ctx)
 Create the MaHttp object.
intmaSetHttpGroup(MaHttp *http, cchar *group)
 Set the Http Group.
intmaSetHttpUser(MaHttp *http, cchar *user)
 Set the Http User.
intmaStartHttp(MaHttp *http)
 Start Http services.
intmaStopHttp(MaHttp *http)
 Stop Http services.
voidmaAddVars(MaConn *conn, cchar *buf, int len)
 Add query and post form variables.
intmaCompareFormVar(MaConn *conn, cchar *var, cchar *value)
 Compare a form variable.
cchar*maGetCookies(MaConn *conn)
 Get the cookies.
cchar*maGetFormVar(MaConn *conn, cchar *var, cchar *defaultValue)
 Get a form variable.
intmaGetIntFormVar(MaConn *conn, cchar *var, int defaultValue)
 Get a form variable as an integer.
cchar*maGetQueryString(MaConn *conn)
 Get the request query string.
voidmaSetFormVar(MaConn *conn, cchar *var, cchar *value)
 Set a form variable value.
voidmaSetIntFormVar(MaConn *conn, cchar *var, int value)
 Set a form variable value.
intmaTestFormVar(MaConn *conn, cchar *var)
 Test if a form variable is defined.
voidmaDontCacheResponse(MaConn *conn)
 Dont cache the response.
voidmaFailRequest(MaConn *conn, int code, cchar *fmt, ...)
 Fail a request.
voidmaFillHeaders(MaConn *conn, MaPacket *packet)
 Create the response headers.
intmaFormatBody(MaConn *conn, cchar *title, cchar *fmt, ...)
 Format an alternate response body.
voidmaRedirect(MaConn *conn, int code, cchar *uri)
 Redirect the client.
voidmaSetCookie(MaConn *conn, cchar *name, cchar *value, cchar *path, cchar *domain, int lifetime, bool secure)
 Set a response cookie.
voidmaSetHeader(MaConn *conn, bool allowMultiple, cchar *key, cchar *fmt, ...)
 Set a response header.
voidmaSetResponseCode(MaConn *conn, int code)
 Set a Http response code.
voidmaSetResponseMimeType(MaConn *conn, cchar *mimeType)
 Set the response mime type.
intmaConfigureServer(MprCtx ctx, MaHttp *http, MaServer *server, cchar *configFile, cchar *ipAddr, int port, cchar *documentRoot)
 Configure a web server.
MaServer*maCreateServer(MaHttp *http, cchar *name, cchar *root, cchar *ipAddr, int port)
 Create a MaServer object.
MaHttp*maCreateWebServer(cchar *configFile)
 Create a web server.
voidmaLoadStaticModules(MaHttp *http)
 Load static modules.
intmaRunSimpleWebServer(cchar *ipAddress, int port, cchar *docRoot)
 Create and run a simple web server listening on a single IP address.
intmaRunWebServer(cchar *configFile)
 Create and run a web server based on a configuration file.
intmaServiceWebServer(MaHttp *http)
 Service a web server.

Typedefs

Defines

#define_h_APPWEB_MONITOR   1
 appwebMonitor.h - Monitor Header.
#define_h_HTTP_TUNE   1
 httpTune.h - Tunable parameters for the Embedthis Http Web Server.
#defineMA_BUFSIZE   (4 * 1024)
 Default I/O buffer size.
#defineMA_CGI_PERIOD   20
 CGI poll period (only for windows).
#defineMA_CGI_TIMEOUT   4000
 Time to wait to reap exit status.
#defineMA_CHUNK_DATA   2
 Start of chunk data.
#defineMA_CHUNK_EOF   3
 End of last chunk.
#defineMA_CHUNK_START   1
 Start of a new chunk.
#defineMA_CONN_CASE_INSENSITIVE   0x2
 System case-insensitive for file matches.
#defineMA_CONN_CLEAN_MASK   0x1
 Mask to clear flags after a request completes.
#defineMA_CONN_CLOSE   0x1
 Connection needs to be closed.
#defineMA_CONN_PIPE_CREATED   0x4
 Request pipeline created.
#defineMA_DEFAULT_MAX_THREADS   10
 Default number of threads.
#defineMA_KEEP_TIMEOUT   60000
 Keep connection alive timeout.
#defineMA_LOC_APP   0x2
 Location defines an application.
#defineMA_LOC_APP_DIR   0x4
 Location defines a directory of applications.
#defineMA_LOC_AUTO_SESSION   0x8
 Auto create sessions in this location.
#defineMA_LOC_BROWSER   0x10
 Send errors back to the browser for this location.
#defineMA_LOC_PUT_DELETE   0x20
 Support PUT|DELETE.
#defineMA_MAX_ACCESS_LOG   (20971520)
 Access file size (20 MB).
#defineMA_MAX_IOVEC   16
 Number of fragments in a single socket write.
#defineMA_MAX_KEEP_ALIVE   100
 Default requests per TCP conn.
#defineMA_MAX_PASS   64
 Size of password.
#defineMA_MAX_QUEUE   2
 Number of queue types.
#defineMA_MAX_SECRET   32
 Number of random bytes to use.
#defineMA_MAX_STAGE_BUFFER   (4 * 1024)
 Max buffer for any stage.
#defineMA_MIN_PACKET   512
 Minimum packet size.
#defineMA_PACKET_DATA   0x4
 Packet contains actual content data.
#defineMA_PACKET_END   0x8
 End of stream packet.
#defineMA_PACKET_HEADER   0x1
 Packet contains HTTP headers.
#defineMA_PACKET_RANGE   0x2
 Packet is a range boundary packet.
#defineMA_QUEUE_ALL   0x8
 Queue has all the data there is and will be.
#defineMA_QUEUE_DISABLED   0x2
 Queue's service routine is disabled.
#defineMA_QUEUE_EOF   0x40
 Queue at end of data.
#defineMA_QUEUE_FULL   0x4
 Queue is full.
#defineMA_QUEUE_OPEN   0x1
 Queue's open routine has been called.
#defineMA_QUEUE_RECEIVE   1
 Receive (read from client) queue.
#defineMA_QUEUE_SEND   0
 Send (transmit to client) queue.
#defineMA_QUEUE_SERVICED   0x10
 Queue has been serviced at least once.
#defineMA_QUEUE_STARTED   0x20
 Queue's start routine has been called.
#defineMA_REQ_CHUNKED   0x4
 Content is chunk encoded.
#defineMA_REQ_CREATE_ENV   0x1
 Must create env for this request.
#defineMA_REQ_DELETE   0x1
 DELETE method.
#defineMA_REQ_GET   0x2
 GET method.
#defineMA_REQ_HEAD   0x4
 HEAD method.
#defineMA_REQ_IF_MODIFIED   0x2
 If-[un]modified-since supplied.
#defineMA_REQ_MASK   0x7F
 Method mask.
#defineMA_REQ_MEM   ((1 * 1024 * 1024) - MPR_HEAP_OVERHEAD)
 Initial virt memory arena size.
#defineMA_REQ_OPTIONS   0x8
 OPTIONS method.
#defineMA_REQ_POST   0x10
 Post method.
#defineMA_REQ_PUT   0x20
 PUT method.
#defineMA_REQ_TRACE   0x40
 TRACE method.
#defineMA_RESP_DONT_CACHE   0x1
 Add no-cache to the response.
#defineMA_RESP_DONT_FINISH   0x2
 Don't auto finish the request.
#defineMA_RESP_HEADERS_CREATED   0x8
 Response headers have been created.
#defineMA_RESP_NO_BODY   0x4
 No respose body, only return headers to client.
#defineMA_STAGE_ALL   MA_REQ_MASK
 Mask for all methods.
#defineMA_STAGE_AUTO_DIR   0x100000
 Want auto directory redirection.
#defineMA_STAGE_CONNECTOR   0x1000
 Stage is a connector.
#defineMA_STAGE_DELETE   MA_REQ_DELETE
 Support DELETE requests.
#defineMA_STAGE_ENV_VARS   0x20000
 Create CGI style environment variables table.
#defineMA_STAGE_FILTER   0x4000
 Stage is a filter.
#defineMA_STAGE_GET   MA_REQ_GET
 Support GET requests.
#defineMA_STAGE_HANDLER   0x2000
 Stage is a handler.
#defineMA_STAGE_HEAD   MA_REQ_HEAD
 Support HEAD requests.
#defineMA_STAGE_MODULE   0x8000
 Stage is a filter.
#defineMA_STAGE_OPTIONS   MA_REQ_OPTIONS
 Support OPTIONS requests.
#defineMA_STAGE_PATH_INFO   0x80000
 Always do path info processing.
#defineMA_STAGE_POST   MA_REQ_POST
 Support POST requests.
#defineMA_STAGE_PUT   MA_REQ_PUT
 Support PUT requests.
#defineMA_STAGE_TRACE   MA_REQ_TRACE
 Support TRACE requests.
#defineMA_STAGE_VARS   0x10000
 Create query and form variables table.
#defineMA_STAGE_VERIFY_ENTITY   0x200000
 Verify the request entity exists.
#defineMA_STAGE_VIRTUAL   0x40000
 Handler serves virtual resources not the physical file system.
#defineMA_TIMER_PERIOD   1000
 Timer checks ever 1 second.

MaAlias

MaAlias

Aliases.

API Stability:
Evolving.
See Also:
Fields:
char *filename Alias to a physical path name.
char *prefix Original URI prefix.
intprefixLen Prefix length.
char *uri Redirect to a uri.

MaAuth

MaAuth

Authorization The MaAuth struct is the foundation authorization object and is used as base class by MaDirectory and MaLocation.

API Stability:
Evolving.
See Also:
Fields:

MaConfigState

MaConfigState

Current config parse state.

API Stability:
Evolving.
See Also:

MaConn

MaConn

Http Connections.

Description:
The MaConn object represents a TCP/IP connection to the client. A connection object is created for each socket connection initiated by the client. One MaConn object may service many Http requests due to HTTP/1.1 keep-alive.
API Stability:
Evolving.
See Also:
MaQueue, MaRequest, MaResponse, MaStage
Fields:
MaHostAddress *address Host address structure for this connection.
MprHeap *arena Connection memory arena.
intcanProceed State machine should continue to process the request.
intconnectionFailed Request failed and connection protocol is compromised.
intdisconnected Connection is disconnected. Abandon current request.
MprTimeexpire When the connection should expire.
intflags Connection flags.
MaPacket *freePackets Free list of packets.
MaHost *host Owning host for this request.
MaHttp *http Http handle.
MaPacket *input Header packet.
intkeepAliveCount Count of remaining keep alive requests for this connection.
MprMutex *mutex Optional multi-thread sync.
MaHost *originalHost Owning host for this connection. May be changed by Host header.
intprotocol HTTP protocol version 0 == HTTP/1.0, 1 == HTTP/1.1.
char *remoteIpAddr Remote client IP address (REMOTE_ADDR).
intremotePort Remote client IP port number.
struct MaRequest *request Request object.
intrequestFailed Request failed. Abbreviate request processing.
struct MaResponse *response Response object.
intseqno Unique connection sequence number.
struct MaQueueserviceq List of queues that require service for request pipeline.
MprSocket *sock Underlying socket handle.
MprTimestarted When the connection started.
intstate Connection state.
MprTimetime Cached current time.
inttimeout Timeout period in msec.
inttrace Current request should be traced.

MaDir

MaDir

Directory Control.

API Stability:
Evolving.
See Also:

MaFilter

MaFilter

Filter Stages.

API Stability:
Evolving.
See Also:
Fields:

MaGroup

MaGroup

Group Authorization.

API Stability:
Evolving.
See Also:
Fields:

MaHost

MaHost

Host Object A Host object represents a single listening HTTP connection endpoint.

API Stability:
Evolving.
See Also:

MaHostAddress

MaHostAddress

Host Address Mapping.

API Stability:
Evolving.
See Also:
Fields:
intflags Mapping flags.
char *ipAddr IP Address for this endpoint.
intport Port for this endpoint.
MprList *vhosts Vhosts using this address.

MaHttp

MaHttp

Http Service.

Description:
There is one instance of MaHttp per application. It manages a list of HTTP servers running in the application.
API Stability:
Evolving.
See Also:
maCreateHttp, maStartHttp, maStopHttp
Fields:
struct MaStage *authFilter Authorization filter (digest and basic).
struct MaStage *chunkFilter Chunked transfer encoding filter.
struct MaServer *defaultServer Default web server object.
struct MaStage *dirHandler Directory listing handler.
struct MaStage *egiHandler Embedded Gateway Interface (EGI) handler.
struct MaStage *ejsHandler Ejscript Web Framework handler.
struct MaStage *fileHandler Static file handler.
intgid Group Id.
char *groupname Http server group name.
MaLimitslimits Security and resource limits.
MprMutex *mutex Multi-thread sync.
struct MaStage *netConnector Network connector.
struct MaStage *passHandler Pass through handler.
struct MaStage *rangeFilter Ranged requests filter.
struct MaStage *sendConnector Send file connector.
MprList *servers List of web servers objects.
MprHashTable *stages Hash table of stages.
intuid User Id.
char *username Http server user name.
MaHttp * maCreateHttp (MprCtx ctx)

Create the MaHttp object.

Description:
The Appweb library uses a singleton MaHttp object to manage multiple embedded web servers.
Parameters:
ctxAny memory context object returned by mprAlloc.
Returns:
A MaHttp object. Use mprFree to close and release.
See Also:
MaHttp, maStartHttp, maStopHttp
int maSetHttpGroup (MaHttp *http, cchar *group)

Set the Http Group.

Description:
Define the group name under which to run the Appweb service.
Parameters:
httpMaHttp object created via maCreateHttp.
groupGroup name. Must be defined in the system group file.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaHttp, maCreateHttp, maStartHttp, maStopHttp
int maSetHttpUser (MaHttp *http, cchar *user)

Set the Http User.

Description:
Define the user name under which to run the Appweb service.
Parameters:
httpMaHttp object created via maCreateHttp.
userUser name. Must be defined in the system password file.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaHttp, maCreateHttp, maStartHttp, maStopHttp
int maStartHttp (MaHttp *http)

Start Http services.

Description:
This starts listening for requests on all configured servers.
Parameters:
httpMaHttp object created via maCreateHttp.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaHttp, maCreateHttp, maStopHttp
int maStopHttp (MaHttp *http)

Stop Http services.

Description:
This stops listening for requests on all configured servers. Shutdown is somewhat graceful.
Parameters:
httpMaHttp object created via maCreateHttp.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaHttp, maCreateHttp, maStartHttp

MaLimits

MaLimits

Server limits.

API Stability:
Evolving.
See Also:
Fields:
intmaxBody Max size of an incoming request.
intmaxChunkSize Max chunk size for transfer encoding.
intmaxHeader Max size of the total header.
intmaxNumHeaders Max number of lines of header.
intmaxResponseBody Max size of generated response content.
intmaxStageBuffer Max buffering by any pipeline stage.
intmaxThreads Max number of pool threads.
intmaxUploadSize Max size of an uploaded file.
intmaxUrl Max size of a URL.
intminThreads Min number of pool threads.
intthreadStackSize Stack size for each pool thread.

MaListen

MaListen

Listen endpoint.

API Stability:
Evolving.
See Also:
Fields:
intflags Listen flags.
char *ipAddr IP address on which to listen.
intport Port number to listen on.
struct MaServer *server Server owning this listening endpoint.
MprSocket *sock Underlying socket.
struct MprSsl *ssl SSL configuration.

MaLocation

MaLocation

Location Control.

API Stability:
Evolving.
See Also:
Fields:
MaAuth *auth Per location block authentication.
intautoDelete Auto delete uploaded files.
struct MaStage *connector Network connector.
char *ejsPath EjsPath search path.
MprHashTable *extensions Hash of handlers by extensions.
intflags Location flags.
struct MaStage *handler Set handler.
void *handlerData Data reserved for the handler.
MprList *handlers List of handlers for this location.
MprList *inputStages Input stages.
MprList *outputStages Output stages.
struct MaLocation *parent Parent location.
char *prefix Location prefix name.
intprefixLen Length of the prefix name.
intsessionTimeout Session timeout for this location.
struct MprSsl *ssl SSL configuration.
char *uploadDir Upload directory.

MaMimeType

MaMimeType

Mime Type hash table entry (the URL extension is the key).

API Stability:
Evolving.
See Also:
Fields:

MaRange

MaRange

Content range structure.

Range: 0, 49 First 50 bytes Range: -1, -50 Last 50 bytes Range: 1, -1 Skip first byte then select content to the end.
API Stability:
Evolving.
See Also:

MaRequest

MaRequest

Http Requests.

Description:
Most of the APIs in the Request group still take a MaConn object as their first parameter. This is to make the API easier to remember - APIs take a connection object rather than a request or response object.
API Stability:
Evolving.
See Also:
MaConn, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar, maTestFormVar
Fields:
char *accept Accept header.
char *acceptCharset Accept-Charset header.
char *acceptEncoding Accept-Encoding header.
MaAlias *alias Matching alias.
MprHeap *arena Request memory arena.
MaAuth *auth Set to either dir or location auth information.
char *authType Authorization type (basic|digest) (ENV: AUTH_TYPE).
intchunkRemainingData Remaining chunk data to read.
intchunkSize Size of the next chunk.
intchunkState Chunk encoding state.
struct MaConn *conn Connection object.
char *connection Connection header.
char *contentLengthStr Content length string value.
char *cookie Request cookie header.
MaDir *dir Best matching dir (PTR only).
MprList *etags Document etag to uniquely identify the document version.
MprHashTable *files Uploaded files. Managed by the upload filter.
intflags Request modifiers.
MprHashTable *formVars Query and post data variables.
char *forwarded Forwarded header.
char *group Supplied via basic / digest auth.
MaPacket *headerpacket Packet containing all headers ( == conn->input).
MaPacket *headerPacket HTTP headers.
MprHashTable *headers Header variables.
MaHost *host Owning host for this request.
char *hostName Client supplied host name.
char *httpProtocol HTTP/1.0 or HTTP/1.1.
boolifMatch If-Match processing requested.
boolifModified If-Modified processing requested.
MprList *inputPipeline Input processing.
MaRange *inputRange Specified range for input (post) data.
intlength Declared content length (ENV: CONTENT_LENGTH).
MaLocation *location Location block.
intmethod Request method.
char *methodName Protocol method GET|PUT. (ENV: REQUEST_METHOD).
char *mimeType Mime type of the request payload (ENV: CONTENT_TYPE).
MaPacket *packet Current input packet.
MprUri *parsedUri Parsed query string. parsedUri->query is the query string.
char *pathInfo Extra path information (ENV: PATH_INFO).
char *pathTranslated Mapped extraPath to storage (ENV: PATH_TRANSLATED).
char *pragma Pragma header.
MaRange *ranges Requested ranges for response data.
intreceivedContent Length of content actually received.
char *referer Refering URL.
intremainingContent Remaining content data to read.
MprTimesince If-Modified date.
char *url Decoded URL. Doesn't include scheme, host, extra path, query or fragments.
char *user Remote user (ENV: REMOTE_USER).
char *userAgent User-Agent header.
void maAddVars (MaConn *conn, cchar *buf, int len)

Add query and post form variables.

Description:
Add new variables encoded in the supplied buffer.
Parameters:
connMaConn connection object.
bufBuffer containing www-urlencoded data.
lenLength of buf.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar, maTestFormVar
int maCompareFormVar (MaConn *conn, cchar *var, cchar *value)

Compare a form variable.

Description:
Compare a form variable and return true if it exists and its value matches.
Parameters:
connMaConn connection object.
varName of the form variable.
valueValue to compare.
Returns:
True if the value matches.
See Also:
MaConn, MaRequest, MaResponse, maGetCookies, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar, maTestFormVar
cchar * maGetCookies (MaConn *conn)

Get the cookies.

Description:
Get the cookies defined in the current requeset.
Parameters:
connMaConn connection object.
Returns:
Return a string containing the cookies sent in the Http header of the last request.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar, maTestFormVar
cchar * maGetFormVar (MaConn *conn, cchar *var, cchar *defaultValue)

Get a form variable.

Description:
Get the value of a named form variable. Form variables are define via www-urlencoded query or post data contained in the request.
Parameters:
connMaConn connection object.
varName of the form variable to retrieve.
defaultValueDefault value to return if the variable is not defined. Can be null.
Returns:
String containing the form variable's value. Caller should not free.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetIntFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar, maTestFormVar
int maGetIntFormVar (MaConn *conn, cchar *var, int defaultValue)

Get a form variable as an integer.

Description:
Get the value of a named form variable as an integer. Form variables are define via www-urlencoded query or post data contained in the request.
Parameters:
connMaConn connection object.
varName of the form variable to retrieve.
defaultValueDefault value to return if the variable is not defined. Can be null.
Returns:
Integer containing the form variable's value.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar, maTestFormVar
cchar * maGetQueryString (MaConn *conn)

Get the request query string.

Description:
Get query string sent with the current request.
Parameters:
connMaConn connection object.
Returns:
String containing the request query string. Caller should not free.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetIntFormVar, maSetFormVar, maSetIntFormVar, maTestFormVar
void maSetFormVar (MaConn *conn, cchar *var, cchar *value)

Set a form variable value.

Description:
Set the value of a named form variable to a string value. Form variables are define via www-urlencoded query or post data contained in the request.
Parameters:
connMaConn connection object.
varName of the form variable to retrieve.
valueDefault value to return if the variable is not defined. Can be null.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetIntFormVar, maTestFormVar
void maSetIntFormVar (MaConn *conn, cchar *var, int value)

Set a form variable value.

Description:
Set the value of a named form variable to an integer value. Form variables are define via www-urlencoded query or post data contained in the request.
Parameters:
connMaConn connection object.
varName of the form variable to retrieve.
valueDefault value to return if the variable is not defined. Can be null.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetFormVar, maTestFormVar
int maTestFormVar (MaConn *conn, cchar *var)

Test if a form variable is defined.

Parameters:
connMaConn connection object.
varName of the form variable to retrieve.
Returns:
True if the form variable is defined.
See Also:
MaConn, MaRequest, MaResponse, maCompareFormVar, maGetCookies, maGetFormVar, maGetIntFormVar, maGetQueryString, maSetFormVar, maSetIntFormVar

MaResponse

MaResponse

Http Response.

Description:
Most of the APIs in the Response group still take a MaConn object as their first parameter. This is to make the API easier to remember - APIs take a connection object rather than a request or response object.
API Stability:
Evolving.
See Also:
MaConn, MaRequest, maFailRequest, maFormatBody, maSetCookie
Fields:
char *altBody Alternate response for errors.
intbytesWritten Bytes written including headers.
intchunkSize Chunk size to use when using transfer encoding.
intcode HTTP response code.
struct MaConn *conn Current connection object.
MaStage *connector Response connector.
MaRange *currentRange Current range being fullfilled.
intentityLength Original content length before range subsetting.
char *etag Unique identifier tag.
cchar *extension Filename extension.
MprFile *file File to be served.
MprPathfileInfo File information if there is a real file to serve.
char *filename Name of a real file being served.
intflags Response flags.
MaPacket *freePackets List of free packets.
MaStage *handler Response handler.
void *handlerData Data reserved for the handler.
char *header HTTP response header.
MprHashTable *headers Custom response headers.
intheaderSize Size of the header written.
intlength Response content length.
cchar *mimeType Mime type of the response document.
MprList *outputPipeline Output processing.
intpos Current I/O position.
MaQueuequeue[2] Dummy head for the response queues.
char *rangeBoundary Inter-range boundary.
void maDontCacheResponse (MaConn *conn)

Dont cache the response.

Description:
Instruct the client not to cache the response body. This is done by setting the Cache-control Http header.
Parameters:
connMaConn connection object.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody, maSetCookie
void maFailRequest (MaConn *conn, int code, cchar *fmt, ...)

Fail a request.

Description:
Fail a request with the specified http status code. The formatted message is logged to the appweb error log.
Parameters:
connMaConn connection object.
codeHttp status code.
fmtPrintf style formatted string.
...Arguments for fmt.
See Also:
MaConn, MaRequest, MaResponse, maFormatBody, maSetCookie
void maFillHeaders (MaConn *conn, MaPacket *packet)

Create the response headers.

Description:
Fill the given empty packet with the Http response headers. This should only be called by connectors just prior to sending output to the client. It should be delayed as long as possible if the content length is not yet known to give the pipeline a chance to determine the response length. This way, a non-chunked response can be sent with a content-length header. This is the fastest HTTP response.
Parameters:
connMaConn connection object.
packetPacket into which to place the headers.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody, maSetCookie
int maFormatBody (MaConn *conn, cchar *title, cchar *fmt, ...)

Format an alternate response body.

Description:
Format a response body to use instead of data generated by the request processing pipeline. This is typically used to send error responses and redirections.
Parameters:
connMaConn connection object.
titleTitle string to format into the HTML response body.
fmtPrintf style formatted string. This string may contain HTML tags and is not HTML encoded before sending to the user. NOTE: Do not send user input back to the client using this method. Otherwise you open large security holes.
...Arguments for fmt.
Returns:
A count of the number of bytes in the response body.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maSetCookie
void maRedirect (MaConn *conn, int code, cchar *uri)

Redirect the client.

Description:
Redirect the client to a new uri.
Parameters:
connMaConn connection object.
codeHttp status code to send with the response.
uriNew uri for the client.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody, maSetCookie
void maSetCookie (MaConn *conn, cchar *name, cchar *value, cchar *path, cchar *domain, int lifetime, bool secure)

Set a response cookie.

Description:
Define a cookie to send in the response Http header.
Parameters:
connMaConn connection object.
nameCookie name.
valueCookie value.
pathURI path to which the cookie applies.
domainDomain in which the cookie applies. Must have 2-3 dots.
lifetimeDuration for the cookie to persist in seconds.
secureSet to true if the cookie only applies for SSL based connections.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody
void maSetHeader (MaConn *conn, bool allowMultiple, cchar *key, cchar *fmt, ...)

Set a response header.

Description:
Set the response header. If allowMultiple is true, then duplicate keys can be defined. Otherwise, prior key headers are overwritten.
Parameters:
connMaConn connection object.
allowMultipleIf true, allow duplicate keys of the same value.
keyHttp response header key.
fmtPrintf style formatted string to use as the header key value.
...Arguments for fmt.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody, maSetCookie
void maSetResponseCode (MaConn *conn, int code)

Set a Http response code.

Description:
Set the Http response code for the request. This defaults to 200 (OK).
Parameters:
connMaConn connection object.
codeHttp status code.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody, maSetCookie
void maSetResponseMimeType (MaConn *conn, cchar *mimeType)

Set the response mime type.

Description:
Set the response mime type Http header.
Parameters:
connMaConn connection object.
mimeTypeMime type string.
See Also:
MaConn, MaRequest, MaResponse, maFailRequest, maFormatBody, maSetCookie

MaServer

MaServer

Http Server Control An application may have any number of HTTP servers, each managed by an instance of the Server class.

API Stability:
Evolving.
See Also:
maConfigureServer, maCreateServer, maCreateWebServer, maLoadStaticModules, maRunSimpleWebServer, maRunWebServer, maServiceWebServer
Fields:
boolalreadyLogging Already logging.
struct MaHost *defaultHost Primary host.
MprList *hostAddresses List of HostAddress objects.
MprList *hosts List of host objects.
MprList *listens List of listening sockets.
intmaxConcurrentRequests Maximum number of clients.
char *name Unique name for this server.
char *serverRoot Server root.
int maConfigureServer (MprCtx ctx, MaHttp *http, MaServer *server, cchar *configFile, cchar *ipAddr, int port, cchar *documentRoot)

Configure a web server.

Description:
This will configure a web server based on either a configuration file or using the supplied IP address and port.
Parameters:
ctxAny memory context object returned by mprAlloc.
httpMaHttp object created via maCreateHttp.
serverMaServer object created via maCreateServer.
configFileFile name of the Appweb configuration file (appweb.conf) that defines the web server configuration.
ipAddrIf using a config file, set to null. Otherwise, set to a host name or IP address.
portIf using a config file, set to -1. Otherwise, set to the port number to listen on.
documentRootIf not using a config file, set this to the directory containing the web documents to serve.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaServer, maCreateServer, maCreateWebServer, maLoadStaticModules, maRunSimpleWebServer, maRunWebServer, maServiceWebServer
MaServer * maCreateServer (MaHttp *http, cchar *name, cchar *root, cchar *ipAddr, int port)

Create a MaServer object.

Description:
Create new MaServer object. This routine creates a bare MaServer object, loads any required static modules and performs minimal configuration. To use the server object created, more configuration will be required before starting Http services. If you want a one-line embedding of Appweb, use maRunWebServer or maRunSimpleWebServer.
Parameters:
httpHttp object returned from maCreateHttp.
nameName of the web server. This name is used as the initial server name.
rootServer root directory.
ipAddrIf not-null, create and open a listening endpoint on this IP address. If you are configuring via a config file, use maConfigureServer and set ipAddr to null.
portPort number to listen on. Set to -1 if you do not want to open a listening endpoint on ipAddr:port.
Returns:
MaServer A newly created MaServer object. Use mprFree to free and release.
See Also:
MaServer, maConfigureServer, maCreateWebServer, maLoadStaticModules, maRunSimpleWebServer, maRunWebServer, maServiceWebServer
MaHttp * maCreateWebServer (cchar *configFile)

Create a web server.

Description:
Create a web server configuration based on the supplied config file. Once created, the web server should be run by calling maServiceWebServer. Use this routine when you need access to the MaHttp object. If you want a one-line embedding of Appweb, use maRunWebServer or maRunSimpleWebServer.
Parameters:
configFileFile name of the Appweb configuration file (appweb.conf) that defines the web server configuration.
Returns:
MaHttp object.
See Also:
MaServer, maConfigureServer, maCreateServer, maLoadStaticModules, maRunSimpleWebServer, maRunWebServer, maServiceWebServer
void maLoadStaticModules (MaHttp *http)

Load static modules.

Description:
Load the statically configured modules, handlers, filters and connectors. The configure program can specify a static or shared build of Appweb. The maCreateServer routine will call maLoadStaticModules automatically. It should not be called by in user programs.
Parameters:
httpMaHttp object created via maCreateHttp.
See Also:
MaServer, maConfigureServer, maCreateServer, maCreateWebServer, maRunSimpleWebServer, maRunWebServer, maServiceWebServer
int maRunSimpleWebServer (cchar *ipAddress, int port, cchar *docRoot)

Create and run a simple web server listening on a single IP address.

Description:
Create a simple web server without using a configuration file. The server is created to listen on the specified IP addresss and port. This routine provides is a one-line embedding of Appweb. If you want to use a config file, try the maRunWebServer instead. If you need more control, try maCreateWebServer which exposes the MaHttp object.
Parameters:
ipAddressIP address on which to listen. Set to "0.0.0.0" to listen on all interfaces.
portPort number to listen to.
docRootDirectory containing the documents to serve.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaServer, maConfigureServer, maCreateServer, maCreateWebServer, maLoadStaticModules, maRunWebServer, maServiceWebServer
int maRunWebServer (cchar *configFile)

Create and run a web server based on a configuration file.

Description:
Create a web server configuration based on the supplied config file. This routine provides is a one-line embedding of Appweb. If you don't want to use a config file, try the maRunSimpleWebServer instead. If you need more control, try maCreateWebServer which exposes the MaHttp object.
Parameters:
configFileFile name of the Appweb configuration file (appweb.conf) that defines the web server configuration.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaServer, maConfigureServer, maCreateServer, maCreateWebServer, maLoadStaticModules, maRunSimpleWebServer, maServiceWebServer
int maServiceWebServer (MaHttp *http)

Service a web server.

Description:
Run a web server configuration. This is will start http services via maStartHttp and will service incoming Http requests until instructed to exit. This is often used in conjunction with maCreateWebServer.
Parameters:
httpHttp object created via maCreateWebServer or maCreateHttp.
Returns:
Zero if successful, otherwise a negative Mpr error code. See the Appweb log for diagnostics.
See Also:
MaServer, maConfigureServer, maCreateServer, maCreateWebServer, maLoadStaticModules, maRunSimpleWebServer, maRunWebServer

MaUploadFile

MaUploadFile

Upload File Each uploaded file has an MaUploadedFile entry.

API Stability:
Evolving.
See Also:
Fields:

MaUser

MaUser

User Authorization File based authorization backend.

API Stability:
Evolving.
See Also:
Fields:

Functions

Typedefs

© Embedthis Software LLC, 2003-2010. All rights reserved. Embedthis, Ejscript and Appweb are trademarks of Embedthis Software LLC.