Sun Java System Web Server 6.1 SP12 NSAPI Programmer's Guide

fc_net_write

The fc_net_write function is used to send a header and/or footer and a file that exists somewhere in the system. The fileName should be the full path name of a file.

Syntax

PRInt32 fc_net_write(const char *fileName, const char *hdr, const 
char *ftr, PRUint32 hlen, PRUint32 flen, PRUint32 flags, 
PRIntervalTime timeout, Session *sn, Request *rq);

Returns

IO_OKAY if successful.

IO_ERROR if an error occurs.

FC_ERROR if an error in file handling occurs.

Parameters

The following table describes parameters for the fc_net_write function.

Table 11–5 fc_net_write parameters

Parameter  

Description  

const char *fileName

File to be inserted. 

const char *hdr

Any header data (which can be NULL). 

const char *ftr

Any footer data (which can be NULL). 

PRUint32 hlen

Length of the header data in bytes (which can be 0). 

PRUint32 flen

Length of the footer data in bytes (which can be 0). 

PRUint32 flags

ORed directives for this function (see the Flags table, below). 

PRIntervalTime timeout

Timeout before this function aborts. 

Request *rq

Pointer to the request. 

Session *sn

Pointer to the session.

Flags

The following table describes flags for fc_net_write.

Table 11–6 Flags for fc_net_write

Flag  

Description  

FC_CNTLEN

Supplies the Content-Length header and does a PROTOCOL_START_RESPONSE.

FC_PROTO

Does a PROTOCOL_START_RESPONSE.

Example

const char *fileName = "/docs/myads/file1.ad";
char *hdr = GenHdr(); // Implemented by plugin
char *ftr = GenFtr(); // Implemented by plugin

if(fc_net_write(fileName, hdr, ftr, strlen(hdr), strlen(ftr),
    FC_CNTLEN, PR_INTERVAL_NO_TIMEOUT, sn, rq) != IO_OKEY)
{
    ereport(LOG_FAILURE, "fc_net_write() failed");
    return REQ_ABORTED;
}