/** * @brief Client stub * @author Claudiu Dragalina-Paraipan */ #ifndef __KAVCLIENTSTUB_H_INCLUDED #define __KAVCLIENTSTUB_H_INCLUDED #define BUFSIZE 10240 /** * @struct kavHeaderItem * @brief Structure used to keep a header line */ struct kavHeaderItem { /// Pointer to data char *data; /// Length of data int slen; }; /** * @struct kavHeaderItem * @brief linked-list used to store headers */ struct kavHeaderList { /// Header line information struct kavHeaderItem data; /// Pointer to next item in linked-list struct kavHeaderList *next; }; /** * @brief Scans a file * @param[in] fname Name of the file to be scanned * @param[in] sock Socket used to communicate with kavmd * @param[in] sender Sender * @param[in] rcpts Recipients * @param[in] qid Queue ID * @param[in] clid Client ID/IP * @param[in] serverip Server IP * @param[out] headers Will receive a list of headers from kavmd, after scan * @param[out] rejectMsg Will receive information about the reject action * @return Scan Result */ int kavProcess(const char *fname, const char *sock, const char *sender, const char *rcpts, const char *qid, const char *clid, const char *serverip, struct kavHeaderList **headers, char **rejectMsg); #ifdef __KAVCLIENTSTUB_C static int processLocal(const char *fname, int sock, struct kavCommandStruct *request, struct kavCommandStruct *response); static int processRemote(const char *fname, int sock, struct kavCommandStruct *request, struct kavCommandStruct *response); static int fillRequest(const char *sender, const char *rcpts, const char *qid, const char *clid, const char *serverip, struct kavCommandStruct *request); static int processResponse(struct kavCommandStruct *response, struct kavHeaderList **headers, char **rejectMsg); static int sendFile(const char *fname, const int sock); static int recvFile(const char *fname, const int sock); static struct kavHeaderList *headerAdd(struct kavHeaderList **h, const char * const data, const int slen); static void headersDestroy(struct kavHeaderList **h); #endif #endif // __KAVCLIENTSTUB_H_INCLUDED