/*---------------------------------------------------------------------------*/ void psock_init(struct psock *psock, u8 *buffer, u32 buffersize) { psock->state = STATE_NONE; psock->readlen = 0; psock->bufptr = buffer; psock->bufsize = buffersize; buf_setup(&psock->buf, (u8 *)(buffer), buffersize); PT_INIT(&psock->pt); PT_INIT(&psock->psockpt); }
/*---------------------------------------------------------------------------*/ void psock_init(register struct psock *psock, char *buffer, unsigned int buffersize) { psock->state = STATE_NONE; psock->readlen = 0; psock->bufptr = buffer; psock->bufsize = buffersize; buf_setup(&psock->buf, (unsigned char*)buffer, buffersize); PT_INIT(&psock->pt); PT_INIT(&psock->psockpt); }
void pbpal_init(pubnub_t *pb) { if (PUBNUB_BLOCKING_IO_SETTABLE) { pb->options.use_blocking_io = true; } pal_init(); pb->pal.socket = SOCKET_INVALID; pb->sock_state = STATE_NONE; pb->readlen = 0; buf_setup(pb); }
/*---------------------------------------------------------------------------*/ void psock_init( struct psock *psock, uint8_t *buffer, uint16_t buffersize) { psock->state = STATE_NONE; psock->readlen = 0; psock->bufptr = (uint8_t*)buffer; psock->bufsize = buffersize; buf_setup(&psock->buf, (uint8_t *)buffer, buffersize); PT_INIT(&psock->pt); PT_INIT(&psock->psockpt); }
/*---------------------------------------------------------------------------*/ void psock_init(CC_REGISTER_ARG struct psock *psock, uint8_t *buffer, unsigned int buffersize) { psock->state = STATE_NONE; psock->readlen = 0; psock->bufptr = buffer; psock->bufsize = buffersize; buf_setup(&psock->buf, buffer, buffersize); PT_INIT(&psock->pt); PT_INIT(&psock->psockpt); }
int pbpal_start_read(pubnub_t *pb, size_t n) { if (pb->sock_state != STATE_NONE) { PUBNUB_LOG_ERROR("pbpal_start_read(): pb->sock_state != STATE_NONE: "); WATCH_ENUM(pb->sock_state); return -1; } if (pb->ptr > (uint8_t*)pb->core.http_buf) { unsigned distance = pb->ptr - (uint8_t*)pb->core.http_buf; memmove(pb->core.http_buf, pb->ptr, pb->readlen); pb->ptr -= distance; pb->left += distance; } else { if (pb->left == 0) { /* Obviously, our buffer is not big enough, maybe some error should be reported */ buf_setup(pb); } } pb->sock_state = STATE_READ; pb->len = n; return +1; }
static void setup(void) { char *fname = NULL; uint64_t intvl; if (atexit(teardown) != 0) { log_stderr("cannot register teardown procedure with atexit()"); exit(EX_OSERR); /* only failure comes from NOMEM */ } /* Setup logging first */ log_setup(&stats.log); if (debug_setup(&setting.debug) != CC_OK) { log_stderr("debug log setup failed"); exit(EX_CONFIG); } /* setup top-level application options */ if (option_bool(&setting.ds.daemonize)) { daemonize(); } fname = option_str(&setting.ds.pid_filename); if (fname != NULL) { /* to get the correct pid, call create_pidfile after daemonize */ create_pidfile(fname); } /* setup library modules */ buf_setup(&setting.buf, &stats.buf); dbuf_setup(&setting.dbuf, &stats.dbuf); event_setup(&stats.event); sockio_setup(&setting.sockio, &stats.sockio); tcp_setup(&setting.tcp, &stats.tcp); timing_wheel_setup(&stats.timing_wheel); /* setup pelikan modules */ time_setup(&setting.time); procinfo_setup(&stats.procinfo); request_setup(&setting.request, &stats.request); response_setup(&setting.response, &stats.response); parse_setup(&stats.parse_req, NULL); compose_setup(NULL, &stats.compose_rsp); slab_setup(&setting.slab, &stats.slab); process_setup(&setting.process, &stats.process); admin_process_setup(); core_admin_setup(&setting.admin); core_server_setup(&setting.server, &stats.server); core_worker_setup(&setting.worker, &stats.worker); /* adding recurring events to maintenance/admin thread */ intvl = option_uint(&setting.ds.dlog_intvl); if (core_admin_register(intvl, debug_log_flush, NULL) == NULL) { log_stderr("Could not register timed event to flush debug log"); goto error; } return; error: if (fname != NULL) { remove_pidfile(fname); } /* since we registered teardown with atexit, it'll be called upon exit */ exit(EX_CONFIG); }