Exemplo n.º 1
0
/**
 * \brief This function prints the messages associated with each error flag.
 * \param all_flags The array that will hold all of the error flags from the run
 */
void printFlags(int **all_flags){
    int noError = 0;
    int i,j;

    // Print System errors, if needed.
    for(j = 0; j < SYS_ERR_SIZE; j++){
        //printf("Error flag[0][%d] = %d\n", j, all_flags[0][j]);
        if(all_flags[0][j] > 0){
            EmitLog(MyRank, SCHEDULER_THREAD, build_msg(0,j), all_flags[0][j], PRINT_ALWAYS);
        } else {
            noError++;
        }
    }
    // Print Plan errors
    for(i = 1; i < ERR_FLAG_SIZE; i++){
        for(j = 0; j < plan_list[i - 1]->esize + GEN_SIZE; j++){
            //printf("Error flag[%d][%d] = %d\n", i, j, all_flags[i][j]);
            if(all_flags[i][j] > 0){
                EmitLog(MyRank, SCHEDULER_THREAD, build_msg(i,j), all_flags[i][j], PRINT_ALWAYS);
            } else {
                noError++;
            }
        }
    }
    /*
       if (noError == ERR_FLAG_SIZE) {
       EmitLog(MyRank, SCHEDULER_THREAD, "No flagged errors have occured in this time period.", -1, PRINT_ALWAYS);
       }
     */
} /* printFlags */
Exemplo n.º 2
0
static int warn_and_interrupt(struct asfd *asfd, struct sbuf *sb,
	struct cntr *cntr, enum protocol protocol,
	const char *text, const char *param)
{
	return restore_interrupt(asfd, sb, build_msg(text, param), cntr,
		protocol);
}
Exemplo n.º 3
0
HRESULT send_email(UINT8 *jpeg_data, DWORD sz)
{
	CURL *curl = curl_easy_init();
	if (!curl) {
		aslog::error(L"curl_easy_init failed");
		return MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xFF00);
	}
	curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

	CComPtr<IStream> stream = SHCreateMemStream(NULL, 0);
	build_msg(stream, jpeg_data, sz);

	curl_easy_setopt(curl, CURLOPT_READFUNCTION, payload_source);
	curl_easy_setopt(curl, CURLOPT_READDATA, stream.p);
	curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

	curl_easy_setopt(curl, CURLOPT_URL, g_smtpURL);
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
	curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);

	curl_easy_setopt(curl, CURLOPT_USERNAME, g_smtpUser);
	curl_easy_setopt(curl, CURLOPT_PASSWORD, g_smtpPass);
	curl_easy_setopt(curl, CURLOPT_MAIL_FROM, g_smtpFrom);

	struct curl_slist *recipients = NULL;
	recipients = curl_slist_append(recipients, g_smtpTo);
	curl_easy_setopt(curl, CURLOPT_MAIL_RCPT, recipients);

	char errbufA[CURL_ERROR_SIZE];
	errbufA[0] = 0;
	curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbufA);

	CURLcode res = curl_easy_perform(curl);
	if (res != CURLE_OK) {
		wchar_t errbufW[CURL_ERROR_SIZE];
		MultiByteToWideChar(CP_UTF8, 0, errbufA, CURL_ERROR_SIZE, errbufW, CURL_ERROR_SIZE);
		aslog::error(L"Mail sending failed: %s", errbufW);
	}
	curl_slist_free_all(recipients);
	curl_easy_cleanup(curl);
	return S_OK;
}
Exemplo n.º 4
0
int send_r(int sk, int stream, int order, int send_size, int assoc_i)
{
	int error = 0;
	struct msghdr outmsg;
	struct iovec iov;
	char *message = NULL;
	int msglen = 0;
	char outcmsg[CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))];
	struct cmsghdr *cmsg;
	struct sctp_sndrcvinfo *sinfo;

	if (send_size > 0) {
		message = build_msg(send_size);
		msglen = strlen(message) + 1;
		iov.iov_base = message;
		iov.iov_len = msglen;
	}
	else {
		if (do_exit) {
			exit(1);
		} else {
			goto error_out;
		}
	}

	outmsg.msg_name = &s_rem;
       	outmsg.msg_namelen = sizeof(struct sockaddr_storage);
	outmsg.msg_iov = &iov;
	outmsg.msg_iovlen = 1;
	outmsg.msg_control = outcmsg;
	outmsg.msg_controllen = sizeof(outcmsg);
	outmsg.msg_flags = 0;

	cmsg = CMSG_FIRSTHDR(&outmsg);
	cmsg->cmsg_level = IPPROTO_SCTP;
	cmsg->cmsg_type = SCTP_SNDRCV;
	cmsg->cmsg_len = CMSG_LEN(sizeof(struct sctp_sndrcvinfo));

	outmsg.msg_controllen = cmsg->cmsg_len;
	sinfo = (struct sctp_sndrcvinfo *)CMSG_DATA(cmsg);
	memset(sinfo, 0, sizeof(struct sctp_sndrcvinfo));
	sinfo->sinfo_ppid = rand();
	sinfo->sinfo_stream = stream;
	sinfo->sinfo_flags = 0;
	if (!order)
		sinfo->sinfo_flags = SCTP_UNORDERED;
	if (timetolive)
		sinfo->sinfo_timetolive = timetolive;

	DEBUG_PRINT(DEBUG_MIN, "\tsendmsg(sk=%d, assoc=%d) %4d bytes.\n",
		    sk, assoc_i, send_size);
	DEBUG_PRINT(DEBUG_MAX, "\t  SNDRCV");
	if (DEBUG_MAX == debug_level) {
        	printf("(stream=%u ", 	sinfo->sinfo_stream);
		printf("flags=0x%x ",	sinfo->sinfo_flags);
		printf("ppid=%u\n",	sinfo->sinfo_ppid);
	}

	/* Send to our neighbor.  */
	error = sendmsg(sk, &outmsg, MSG_WAITALL);
	if (error != msglen) {
		fprintf(stderr, "\n\t\t*** sendmsg: %s ***\n\n",
			strerror(errno));
		fflush(stdout);
	
		if (do_exit) {
			exit(1);
		} else {
			if (!drain)
				goto error_out;
		}
	}

	if (send_size > 0) free(message);
	return 0;
error_out:
	if (send_size > 0) free(message);
	return -1;

} /* send_r() */
Exemplo n.º 5
0
static int restore_special(struct asfd *asfd, struct sbuf *sb,
	const char *fname, enum action act, struct cntr *cntr,
	enum protocol protocol)
{
	int ret=0;
	char *rpath=NULL;
#ifdef HAVE_WIN32
	logw(asfd, cntr, "Cannot restore special files to Windows: %s\n", fname);
	goto end;
#else
	struct stat statp=sb->statp;

	if(act==ACTION_VERIFY)
	{
		cntr_add(cntr, CMD_SPECIAL, 1);
		return 0;
	}

	if(build_path(fname, "", &rpath, NULL))
	{
		// failed - do a warning
		if(restore_interrupt(asfd, sb,
			build_msg("build path failed: %s", fname),
			cntr, protocol))
				ret=-1;
		goto end;
	}
	if(S_ISFIFO(statp.st_mode))
	{
		if(mkfifo(rpath, statp.st_mode) && errno!=EEXIST)
			do_logw(asfd, cntr,
				"Cannot make fifo: %s\n", strerror(errno));
		else
		{
			attribs_set(asfd, rpath, &statp, sb->winattr, cntr);
			cntr_add(cntr, CMD_SPECIAL, 1);
		}
	}
	else if(S_ISSOCK(statp.st_mode))
	{
		if(mksock(rpath))
			do_logw(asfd, cntr,
				"Cannot make socket: %s\n", strerror(errno));
		else
		{
			attribs_set(asfd, rpath, &statp, sb->winattr, cntr);
			cntr_add(cntr, CMD_SPECIAL, 1);
		}
	}
#ifdef S_IFDOOR     // Solaris high speed RPC mechanism
	else if (S_ISDOOR(statp.st_mode))
		do_logw(asfd, cntr,
			"Skipping restore of door file: %s\n", fname);
#endif
#ifdef S_IFPORT     // Solaris event port for handling AIO
	else if (S_ISPORT(statp.st_mode))
		do_logw(asfd, cntr,
			"Skipping restore of event port file: %s\n", fname);
#endif
	else if(mknod(fname, statp.st_mode, statp.st_rdev) && errno!=EEXIST)
		do_logw(asfd, cntr, "Cannot make node: %s\n", strerror(errno));
	else
	{
		attribs_set(asfd, rpath, &statp, sb->winattr, cntr);
		cntr_add(cntr, CMD_SPECIAL, 1);
	}
#endif
end:
	free_w(&rpath);
	return ret;
}
Exemplo n.º 6
0
static void do_logw(struct asfd *asfd, struct cntr *cntr,
	const char *text, const char *param)
{
	logw(asfd, cntr, "%s", build_msg(text, param));
}
Exemplo n.º 7
0
static int warn_and_interrupt(struct asfd *asfd, struct sbuf *sb,
	struct conf **confs, const char *text, const char *param)
{
	return restore_interrupt(asfd, sb, build_msg(text, param), confs);
}