Copies the System Resource Controller (SRC) request header to the specified buffer. The SRC request header contains the return address where the caller sends responses for this request.
System Resource Controller (libsrc.a)
#include <spc.h> struct srchdr *srcrrqs_r (Packet, SRChdr) char *Packet; struct srchdr *SRChdr;
The srcrrqs_r subroutine saves the SRC request header (srchdr) information contained in the packet the subsystem received from the Source Resource Controller. The srchdr structure is defined in the spc.h file. This routine must be called by the subsystem to complete the reception process of any packet received from the SRC. The subsystem requires this information to reply to any request that the subsystem receives from the SRC.
This subroutine is threadsafe and reentrant.
The following will obtain the subsystem reply information:
int rc; struct sockaddr addr; int addrsz; struct srcreq packet; struct srchdr *header; struct srchdr *rtn_addr; /*wait to receive packet from SRC daemon */ rc=recvfrom(0, &packet, sizeof(packet), 0, &addr, &addrsz; /* grab the reply information from the SRC packet */ if (rc>0) { header = (struct srchdr *)malloc(sizeof(struct srchdr)); rtn_addr = srcrrqs_r(&packet,header); if (rtn_addr == NULL) { /* handle error */ . . }
Upon successful completion, the srcrrq_r subroutine returns the address of the caller-supplied buffer.
If either of the input addresses is NULL, the srcrrqs_r subroutine fails and returns a value of NULL.