Example #1
0
void LogFile::append(const char* msg, const size_t len)
{
    if (m_logHour != timeNow().tm_hour)
        roll();

    ssize_t n = writeto(msg, len);
    if (-1 == n)
    {
        printf("append log file failed\n");
        printf("Error no is: %d\n", errno);
        printf("Error description is:%s\n", strerror(errno));
        return ;
    }
    size_t rest = len - n;
    while (rest)
    {
        ssize_t rt = writeto(msg + n, rest);
        if (-1 == rt)
        {
            printf("append log file failed\n");
            printf("Error no is: %d\n", errno);
            printf("Error description is:%s\n", strerror(errno));
            break;
        }
        rest -= rt;
    }
}
Example #2
0
void ROMFileWidget::saveFile() {
    QSettings qs;

    QString saveto = QFileDialog::getSaveFileName(this, tr("Save ROM"),
                                                  qs.value("main/last_save_zdata").toString(),
                                                  tr("Generic Z64 Data (*.zdata);;Any Files (*)"));

    if (saveto == "") {
        return;
    }

    std::ofstream writeto(saveto.toStdString(), std::ios::binary);

    if (!writeto) {
        // use parentWidget() so we don't possibly center over the dock widget
        // awkwardly
        QMessageBox::critical(parentWidget(), tr("Error in Saving"),
                              tr("Couldn't open file \"%1\" for writing!").arg(saveto));
        return;
    }

    qs.setValue("main/last_save_zdata", saveto);

    std::vector<uint8_t> thedata = the_rom->fileAtNum(filelist->currentIndex().row(), want_dec->isChecked()).getData();

    writeto.write(reinterpret_cast<char *>(thedata.data()), thedata.size());

    if (!writeto) {
        QMessageBox::warning(parentWidget(), tr("Possible Error in Saving"),
                             tr("Something went wrong in writing the file, the saved file may be incomplete."));
    }

    writeto.close();
}
Example #3
0
static void
parse_msg(const char *bytes, size_t len, struct user *user, int kq)
{
        static char chanhdr[] = "GOTROOMMSG ";
        static char usrhdr[] = "GOTUSERMSG ";
        static size_t ftrlen = sizeof(CRLF)-1;
        struct user *u;
        struct msg *m;
        size_t offset, hlen, rlen, size;
        char *buf, *hdr, *cp;

        if (len == 0) {
                cmderr(user, MNORECIP, kq);
                return;
        }
        if ((cp = memchr(bytes, ' ', len)) == NULL) {
                cmderr(user, MNOSPACE, kq);
                return;
        }
        rlen = cp-bytes;
        if (bytes[0] == '#') {
                hdr = chanhdr;
                hlen = sizeof(chanhdr)-1;
                offset = 0;
        } else {
                hdr = usrhdr;
                hlen = sizeof(usrhdr)-1;
                offset = rlen+1;
        }
        size = hlen + (user->namelen+1) + (len-offset) + ftrlen;
        m = malloc_or_die(sizeof(*m) + size);
        buf = (char *)(m+1);
        bcopy(hdr, buf, hlen);
        buf += hlen;
        bcopy(user->name, buf, user->namelen);
        buf += user->namelen;
        *buf++ = ' ';
        bcopy(bytes+offset, buf, len-offset);
        bcopy(CRLF, buf+len-offset, ftrlen);
        m->bytes = (char *)(m+1);
        m->len = size;
        m->refcnt = 0;
        if (bytes[0] == '#') {
                struct channel *c;
                struct list *up;

                for (short i = 0; i < user->nchans; i++) {
                        c = user->joined_chans[i];
                        if (bequal(c->name, c->len, bytes, rlen)) {
                                LIST_FOREACH_ELT(up, &c->users, struct user, u)
                                        writeto(u, m, kq);
                                ok(user, kq);
                                return;
                        }
                }
                cmderr(user, CHNJOINED, kq);
                free_msg(m);
        } else if ((u = table_get(users, bytes, rlen)) == NULL) {
Example #4
0
size_t TCPBuffer::_push(const char *address, size_t len)
{
    if(ioerr)
        return 0;

    ssize_t result = writeto(address, len);
    if(result < 0)
        result = 0;

    return (size_t)result;
}
Example #5
0
int send_attachedfile (char *file_name,int pcEmailId, int sockfd)
{
	char buffer[FILE_BUFFER_SIZE]="attafrcli|";
    sprintf(buffer,"attafrcli|%d|",pcEmailId);
    char *buf=strrchr(buffer,'|')+1;
	FILE *fp = fopen (file_name, "rb");
	if (NULL == fp)
	{
		printf ("File:\t%s Not Found\n", file_name);
        return 1;
	}
	else
	{
		//bzero (buffer, BUFFER_SIZE);
		int file_block_length = 0;
		//            while( (file_block_length = read(fp,buffer,BUFFER_SIZE))>0)
		while ((file_block_length = fread (buf, sizeof (char), FILE_BUFFER_SIZE, fp)) > 0)
		{
			printf ("file_block_length = %d\n", file_block_length);
			//发送buffer中的字符串到new_server_socket,实际是给客户端
			/*if (send (sockfd, buffer, file_block_length, 0) < 0)
			{
				printf ("Send File:\t%s Failed\n", file_name);
				break;
			}*/
            strcat(buffer,"\0");
            printf("string sended to server:%s\n",buffer);
			writeto(sockfd,buffer);
			bzero (buffer, FILE_BUFFER_SIZE);
		}
		//            close(fp);
	}
	fclose (fp);
	printf ("File:%s Transfer Finished\n", file_name);
    return 0;
}
Example #6
0
static inline void
ok(struct user *u, int kq)
{
        static struct msg OK = { "OK" CRLF, 4, 1 };
        writeto(u, &OK, kq);
}
Example #7
0
static inline void
cmderr(struct user *u, enum error err, int kq)
{

        writeto(u, &error_msg[err], kq);
}