Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

upscli_list_next(3) [freebsd man page]

UPSCLI_LIST_NEXT(3)						    NUT Manual						       UPSCLI_LIST_NEXT(3)

NAME
upscli_list_next - retrieve list items from a UPS SYNOPSIS
#include <upsclient.h> int upscli_list_next(UPSCONN_t *ups, int numq, const char **query, int *numa, char ***answer) DESCRIPTION
The upscli_list_next() function takes the pointer ups to a UPSCONN_t state structure, and the pointer query to an array of numq query elements. It performs a read from the network and expects to find either another list item or the end of a list. You must call upscli_list_start(3) before calling this function. This function will return 1 and set values in numa and answer if a list item is received. If the list is done, it will return 0, and the values in numa and answer are undefined. Calling this function after it returns something other than 1 is undefined. QUERY FORMATTING
You may not change the values of numq or query between the call to upscli_list_start(3) and the first call to this function. You also may not change the values between calls to this function. ANSWER FORMATTING
The contents of numa and answer work just like a call to upscli_get(3). The values returned by upsd(8) are identical to a single item request, so this is not surprising. ERROR CHECKING
This function checks the response from upsd(8) against your query. If the response is not part of the list you have requested, it will return an error code. When this happens, upscli_upserror(3) will return UPSCLI_ERR_PROTOCOL. RETURN VALUE
The upscli_list_next() function returns 1 when list data is present, 0 if the list is finished, or -1 if an error occurs. It is possible to have an empty list. The function will return 0 for its first call in that case. SEE ALSO
upscli_list_start(3), upscli_strerror(3), upscli_upserror(3) Network UPS Tools 05/22/2012 UPSCLI_LIST_NEXT(3)

Check Out this Related Man Page

UPSCLI_GET(3)							    NUT Manual							     UPSCLI_GET(3)

NAME
upscli_get - retrieve data from a UPS SYNOPSIS
#include <upsclient.h> int upscli_get(UPSCONN_t *ups, int numq, const char **query, int *numa, char ***answer) DESCRIPTION
The upscli_get() function takes the pointer ups to a UPSCONN_t state structure, and the pointer query to an array of numq query elements. It builds a properly-formatted request from those elements and transmits it to upsd(8). Upon success, the response will be split into separate components. A pointer to those components will be returned in answer. The number of usable answer components will be returned in numa. USES
This function implements the "GET" command in the protocol. As a result, you can use it to request many different things from the server. Some examples are: o GET NUMLOGINS <ups> o GET UPSDESC <ups> o GET VAR <ups> <var> o GET TYPE <ups> <var> o GET DESC <ups> <var> o GET CMDDESC <ups> <cmd> QUERY FORMATTING
To generate a request for GET NUMLOGINS su700, you would populate query and numq as follows: int numq; const char *query[2]; query[0] = "NUMLOGINS"; query[1] = "su700"; numq = 2; All escaping of special characters and quoting of elements with spaces is handled for you inside this function. ANSWER FORMATTING
The raw response from upsd to the above query would be NUMLOGINS su700 1. Since this is split up for you, the values work out like this: numa = 3; answer[0] = "NUMLOGINS" answer[1] = "su700" answer[2] = "1" Notice that the value which you seek typically starts at answer[numq]. ERROR CHECKING
This function will check your query against the response from upsd(8). For example, if you send "VAR" "su700" "ups.status", it will expect to see those at the beginning of the response. If the results from upsd do not pass this case-insensitive test against your request, this function will return an error. When this happens, upscli_upserror(3) will return UPSCLI_ERR_PROTOCOL. ANSWER ARRAY LIFETIME
The pointers contained within the answer array are only valid until the next call to a upsclient function which references them. If you need to use data from multiple calls, you must copy it somewhere else first. The answer array and its elements may change locations, so you must not rely on previous addresses. You must only use the addresses which were returned by the most recent call. You also must not attempt to use more than numa elements in answer. Such behavior is undefined, and may yield bogus data or a crash. The array will be deleted after calling upscli_disconnect(3). Any access after that point is also undefined. RETURN VALUE
The upscli_get() function returns 0 on success, or -1 if an error occurs. SEE ALSO
upscli_list_start(3), upscli_list_next(3), upscli_strerror(3), upscli_upserror(3) Network UPS Tools 05/22/2012 UPSCLI_GET(3)
Man Page