that is described in this section. Note that the parameter descriptions use the letterito indicate input, the letter oto indicate output, and i/oto indicate that a parameter is both input and output.

Each of these functions returns one of the HTTPD return codes, depending on the success of the request.

HTTPD_authenticate()

Authenticates a user ID and password. Valid only in PreExit, Authenticate, and Authorization steps.

void

 

HTTPD_authenticate(

 

unsigned char *handle,

/* i; handle */

long *return_code);

/* o; return code */

HTTPD_attributes

Extracts the attributes of a file. Valid in all steps.

The name of the file and the buffer containing the attributes are in the default CCSID of the job.

void

 

 

HTTPD_attributes(

 

 

unsigned char *handle,

/* i; handle

(NULL right now) */

unsigned char *name,

/* i; name of the file */

unsigned long *name_length,

/* i; length of the name */

unsigned char *value,

/* o; buffer containing attributes*/

unsigned long *value_length,

/* i/o;size of buffer/length of attributes*/

long *return_code);

/* o; return code */

HTTPD_extract()

Extracts the value of a variable associated with this request. The valid variables you can use for the name parameter are the same as those used in the CGI. This function is valid in all steps, however not all variables are.

The CCSID of the name of the value to extract and the buffer in which to put the value depends upon the step and the CGI mode. For all steps except Service, these parameters are in the default CCSID of the job. For the Service step, the CGI mode determines the CCSID. For the %%MIXED%% CGI mode, these fields are in EBCIDIC CCSID 37. For all other CGI modes, these fields are in the default CCSID of the job.

void

 

 

HTTPD_extract(

 

 

unsigned char *handle,

/* i; handle

*/

unsigned char *name,

/* i; name of value to extract /*

unsigned long *name_length,

/* i; length of the name */

unsigned char *value,

/* o; buffer in which to put value */

unsigned long *value_length,

/* i/o; buffer size/length of value */

long *return_code);

/* o; return code */

If this function returns the HTTPD_BUFFER_TOO_SMALL return code, the buffer size you requested was not big enough for the extracted value. In this case, the function does not fill in the buffer but does update value_length with the buffer size you would need in order to successfully extract this value. Retry the extract with a buffer that is at least as big as the returned value_length.

Note: Server API programs gain access to information about a particular HTTP request by examining predefined variables. This information is obtained from the server using the HTTPD_extract() function. The PASSWORD variable used when basic authentication is requested.

Chapter 7. Writing Server API programs 115

Page 125
Image 125
IBM AS/400E manual HTTPDauthenticate, HTTPDattributes, HTTPDextract

AS/400E specifications

The IBM AS/400E, now more commonly known as IBM i, is a robust and versatile midrange server that has been designed to provide a comprehensive computing solution for businesses of all sizes. First introduced in the late 1980s, the AS/400 series has undergone multiple enhancements and rebranding, with the AS/400E being one of the notable iterations. This powerful platform is closely associated with IBM's commitment to reliability, scalability, and integrated business solutions.

One of the main features of the AS/400E is its highly integrated architecture that combines hardware and software into a cohesive system. This integration allows for seamless operations, reducing the complexity typically associated with managing disparate systems. The system is powered by IBM's proprietary OS/400 operating system, which has evolved into IBM i, featuring advanced capabilities like object-oriented programming, integrated database management, and security features that are essential for enterprise environments.

A key characteristic of the AS/400E is its robust database support, primarily through the use of DB2 for i. This integrated database management system enables efficient data handling and retrieval, facilitating real-time business analytics and reporting. Furthermore, the platform supports a variety of programming languages, including RPG, COBOL, and Java, making it flexible for developers who require diverse tools for application development.

The AS/400E is also known for its exceptional reliability and uptime, making it a preferred choice for critical business applications in industries such as finance, healthcare, and manufacturing. This reliability is backed by advanced error detection and correction mechanisms, as well as redundancy features that help prevent data loss and minimize downtime.

In terms of scalability, the AS/400E can effortlessly expand to accommodate growing business demands. Organizations can increase processing power by adding more resources without significant disruption. This scalability, combined with the system’s built-in virtualization capabilities, allows businesses to optimize resource usage and streamline operations.

Security is another defining feature of the AS/400E. The platform incorporates various layers of security measures, including user authentication, encryption, and comprehensive auditing capabilities, ensuring that sensitive business data is protected against unauthorized access.

Overall, the IBM AS/400E remains a powerful tool in the enterprise computing landscape, providing businesses with an integrated, reliable, and secure solution for their technological needs. Its enduring popularity is a testament to its capability to evolve with changing business requirements while maintaining its core attributes of high performance and stability.